diff --git a/build.gradle.kts b/build.gradle.kts index 7584c0ff..8c7d6387 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -74,6 +74,7 @@ allprojects { dependencies { compileOnly(fileTree("${project.rootDir}/lib") { include("*.jar") }) compileOnly("com.mojang:authlib:1.5.25") + //compileOnly("org.spigotmc:spigot-api:1.18.2-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT") compileOnly("org.jetbrains:annotations:23.0.0") compileOnly("com.comphenix.protocol:ProtocolLib:5.1.0") diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/nms/HMCCNMSHandler.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/nms/HMCCNMSHandler.java index 9e0cb646..7029c885 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/nms/HMCCNMSHandler.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/nms/HMCCNMSHandler.java @@ -12,8 +12,6 @@ import java.util.List; public interface HMCCNMSHandler { - ArmorStand getMEGEntity(Location loc); - Entity spawnDisplayEntity(Location location, String text); void slotUpdate( diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBalloonManager.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBalloonManager.java index 7442776a..34748d0e 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBalloonManager.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBalloonManager.java @@ -1,5 +1,6 @@ package com.hibiscusmc.hmccosmetics.user.manager; +import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.config.Settings; import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticBalloonType; import com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandlers; @@ -16,9 +17,12 @@ import me.lojosho.hibiscuscommons.hooks.Hooks; import me.lojosho.hibiscuscommons.nms.NMSHandlers; import org.bukkit.Color; import org.bukkit.Location; +import org.bukkit.NamespacedKey; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.event.entity.CreatureSpawnEvent; +import org.bukkit.persistence.PersistentDataType; import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; @@ -38,7 +42,16 @@ public class UserBalloonManager { public UserBalloonManager(CosmeticUser user, @NotNull Location location) { this.user = user; this.pufferfish = new UserBalloonPufferfish(user.getUniqueId(), NMSHandlers.getHandler().getNextEntityId(), UUID.randomUUID()); - this.modelEntity = HMCCNMSHandlers.getHandler().getMEGEntity(location.add(Settings.getBalloonOffset())); + this.modelEntity = location.getWorld().spawn(location, ArmorStand.class, (e) -> { + e.setInvisible(true); + e.setGravity(false); + e.setSilent(true); + e.setInvulnerable(true); + e.setSmall(true); + e.setMarker(true); + e.setPersistent(false); + e.getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); + }); } public void spawnModel(@NotNull CosmeticBalloonType cosmeticBalloonType, Color color) { diff --git a/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/HMCCNMSHandler.java b/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/HMCCNMSHandler.java index d92eaf30..53a32498 100644 --- a/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/HMCCNMSHandler.java +++ b/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/HMCCNMSHandler.java @@ -30,11 +30,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { return null; diff --git a/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/MEGEntity.java b/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/MEGEntity.java deleted file mode 100644 index 9a3a2b85..00000000 --- a/v1_18_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_18_R2/MEGEntity.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_18_R2; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -} diff --git a/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/HMCCNMSHandler.java b/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/HMCCNMSHandler.java index be7a2a28..5b6cfb39 100644 --- a/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/HMCCNMSHandler.java +++ b/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/HMCCNMSHandler.java @@ -30,11 +30,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { return null; diff --git a/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/MEGEntity.java b/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/MEGEntity.java deleted file mode 100644 index b4202780..00000000 --- a/v1_19_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R2/MEGEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_19_R2; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_19_R2.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -} diff --git a/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/HMCCNMSHandler.java b/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/HMCCNMSHandler.java index 9e07fbe1..c319457c 100644 --- a/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/HMCCNMSHandler.java +++ b/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/HMCCNMSHandler.java @@ -35,11 +35,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { Display.TextDisplay entity = new Display.TextDisplay(net.minecraft.world.entity.EntityType.TEXT_DISPLAY, ((CraftWorld) location.getWorld()).getHandle()); diff --git a/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/MEGEntity.java b/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/MEGEntity.java deleted file mode 100644 index 70ab1bff..00000000 --- a/v1_19_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_19_R3/MEGEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_19_R3; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_19_R3.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -} diff --git a/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/HMCCNMSHandler.java b/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/HMCCNMSHandler.java index 764c3cb6..b42a166d 100644 --- a/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/HMCCNMSHandler.java +++ b/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/HMCCNMSHandler.java @@ -35,11 +35,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { Display.TextDisplay entity = new Display.TextDisplay(net.minecraft.world.entity.EntityType.TEXT_DISPLAY, ((CraftWorld) location.getWorld()).getHandle()); diff --git a/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/MEGEntity.java b/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/MEGEntity.java deleted file mode 100644 index 396c3ddd..00000000 --- a/v1_20_R1/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R1/MEGEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_20_R1; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R1.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -} diff --git a/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/HMCCNMSHandler.java b/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/HMCCNMSHandler.java index 25488c90..ca4e47f5 100644 --- a/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/HMCCNMSHandler.java +++ b/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/HMCCNMSHandler.java @@ -35,11 +35,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { Display.TextDisplay entity = new Display.TextDisplay(net.minecraft.world.entity.EntityType.TEXT_DISPLAY, ((CraftWorld) location.getWorld()).getHandle()); diff --git a/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/MEGEntity.java b/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/MEGEntity.java deleted file mode 100644 index 4f635bde..00000000 --- a/v1_20_R2/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R2/MEGEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_20_R2; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R2.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -} diff --git a/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/HMCCNMSHandler.java b/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/HMCCNMSHandler.java index 53f80c5f..1116fa39 100644 --- a/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/HMCCNMSHandler.java +++ b/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/HMCCNMSHandler.java @@ -35,11 +35,6 @@ import java.util.List; public class HMCCNMSHandler implements com.hibiscusmc.hmccosmetics.nms.HMCCNMSHandler { - @Override - public ArmorStand getMEGEntity(Location loc) { - return (ArmorStand) new MEGEntity(loc).getBukkitEntity(); - } - @Override public org.bukkit.entity.Entity spawnDisplayEntity(Location location, String text) { Display.TextDisplay entity = new Display.TextDisplay(net.minecraft.world.entity.EntityType.TEXT_DISPLAY, ((CraftWorld) location.getWorld()).getHandle()); diff --git a/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/MEGEntity.java b/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/MEGEntity.java deleted file mode 100644 index 5e6012a3..00000000 --- a/v1_20_R3/src/main/java/com/hibiscusmc/hmccosmetics/nms/v1_20_R3/MEGEntity.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.hibiscusmc.hmccosmetics.nms.v1_20_R3; - -import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; -import com.hibiscusmc.hmccosmetics.util.MessagesUtil; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.decoration.ArmorStand; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.craftbukkit.v1_20_R3.CraftWorld; -import org.bukkit.persistence.PersistentDataType; - -public class MEGEntity extends ArmorStand { - public MEGEntity(Location loc) { - super(EntityType.ARMOR_STAND, ((CraftWorld) loc.getWorld()).getHandle()); - this.setPos(loc.getX(), loc.getY(), loc.getZ()); - - MessagesUtil.sendDebugMessages("Spawned MEGEntity at " + loc); - setInvisible(true); - setNoGravity(true); - setSilent(true); - setInvulnerable(true); - setSmall(true); - setMarker(true); - - persist = false; - getBukkitEntity().getPersistentDataContainer().set(new NamespacedKey(HMCCosmeticsPlugin.getInstance(), "cosmeticMob"), PersistentDataType.SHORT, Short.valueOf("1")); - - ((CraftWorld) loc.getWorld()).getHandle().addFreshEntity(this); - } -}