From e9dc95275ccb82064db96a3078ce4d030a9bb6d2 Mon Sep 17 00:00:00 2001 From: = Date: Thu, 14 Nov 2024 01:10:52 +0200 Subject: [PATCH] Some more spawn providers --- .../me/tofaa/entitylib/wrapper/WrapperEntity.java | 1 + .../wrapper/spawning/SpawnPacketProviders.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java index fe79ff8..9584452 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java @@ -12,6 +12,7 @@ import me.tofaa.entitylib.meta.EntityMeta; import me.tofaa.entitylib.meta.types.ObjectData; import me.tofaa.entitylib.tick.Tickable; import me.tofaa.entitylib.ve.ViewerRule; +import me.tofaa.entitylib.wrapper.spawning.SpawnPacketProvider; import net.kyori.adventure.text.Component; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; diff --git a/api/src/main/java/me/tofaa/entitylib/wrapper/spawning/SpawnPacketProviders.java b/api/src/main/java/me/tofaa/entitylib/wrapper/spawning/SpawnPacketProviders.java index 181dcde..d694b2f 100644 --- a/api/src/main/java/me/tofaa/entitylib/wrapper/spawning/SpawnPacketProviders.java +++ b/api/src/main/java/me/tofaa/entitylib/wrapper/spawning/SpawnPacketProviders.java @@ -2,9 +2,11 @@ package me.tofaa.entitylib.wrapper.spawning; 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.WrapperPlayServerSpawnExperienceOrb; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity; import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnWeatherEntity; import me.tofaa.entitylib.utils.Check; +import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity; import org.jetbrains.annotations.NotNull; import sun.reflect.generics.reflectiveObjects.NotImplementedException; @@ -12,6 +14,18 @@ import java.util.Optional; interface SpawnPacketProviders { + @NotNull SpawnPacketProvider 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 GENERAL = (user, entity) -> { Location location = entity.getLocation(); return new WrapperPlayServerSpawnEntity(