Some more spawn providers

This commit is contained in:
= 2024-11-14 01:10:52 +02:00
parent b68c86d190
commit e9dc95275c
2 changed files with 15 additions and 0 deletions

View file

@ -12,6 +12,7 @@ import me.tofaa.entitylib.meta.EntityMeta;
import me.tofaa.entitylib.meta.types.ObjectData; import me.tofaa.entitylib.meta.types.ObjectData;
import me.tofaa.entitylib.tick.Tickable; import me.tofaa.entitylib.tick.Tickable;
import me.tofaa.entitylib.ve.ViewerRule; import me.tofaa.entitylib.ve.ViewerRule;
import me.tofaa.entitylib.wrapper.spawning.SpawnPacketProvider;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View file

@ -2,9 +2,11 @@ package me.tofaa.entitylib.wrapper.spawning;
import com.github.retrooper.packetevents.protocol.world.Location; import com.github.retrooper.packetevents.protocol.world.Location;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnExperienceOrb;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity;
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnWeatherEntity; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnWeatherEntity;
import me.tofaa.entitylib.utils.Check; import me.tofaa.entitylib.utils.Check;
import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import sun.reflect.generics.reflectiveObjects.NotImplementedException; import sun.reflect.generics.reflectiveObjects.NotImplementedException;
@ -12,6 +14,18 @@ import java.util.Optional;
interface SpawnPacketProviders { interface SpawnPacketProviders {
@NotNull SpawnPacketProvider<WrapperPlayServerSpawnExperienceOrb> EXPERIENCE_ORB = (user, entity) -> {
Check.stateCondition(!(entity instanceof WrapperExperienceOrbEntity), "Attempted to use spawn packet provider for Experience orbs on a non ExperienceOrb entity. Please use an instance of WrapperExperienceOrbEntity.");
WrapperExperienceOrbEntity expEntity = (WrapperExperienceOrbEntity) entity;
return new WrapperPlayServerSpawnExperienceOrb(
entity.getEntityId(),
entity.getX(),
entity.getY(),
entity.getZ(),
expEntity.getExperience()
);
};
@NotNull SpawnPacketProvider<WrapperPlayServerSpawnEntity> GENERAL = (user, entity) -> { @NotNull SpawnPacketProvider<WrapperPlayServerSpawnEntity> GENERAL = (user, entity) -> {
Location location = entity.getLocation(); Location location = entity.getLocation();
return new WrapperPlayServerSpawnEntity( return new WrapperPlayServerSpawnEntity(