From 597796b3fd4221161f76530124b811db71da1927 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Fri, 6 Sep 2024 11:28:19 +0200 Subject: [PATCH] reafactor: delete unnecessary class files from NMS/NMS-v1_21_0 submodule --- .../nms/v1_21_0/NmsImplementationsImpl.java | 70 ------ .../nms/v1_21_0/entity/NMSPlayerImpl.java | 37 ---- .../nms/v1_21_0/entity/NmsEntityImpl.java | 33 --- .../core/nms/v1_21_0/item/NmsItemImpl.java | 21 -- .../core/nms/v1_21_0/nbt/NBTCompoundImpl.java | 209 ------------------ .../core/nms/v1_21_0/nbt/NBTCoreImpl.java | 23 -- .../core/nms/v1_21_0/nbt/NBTEntityImpl.java | 65 ------ .../core/nms/v1_21_0/nbt/NBTObjectImpl.java | 72 ------ .../nms/v1_21_0/world/NmsWorldBorderImpl.java | 34 --- .../nms/v1_21_0/world/SItemStackImpl.java | 39 ---- .../core/nms/v1_21_0/world/SSpawnerImpl.java | 136 ------------ .../core/nms/v1_21_0/world/SWorldImpl.java | 52 ----- .../core/nms/v1_21_0/world/WorldCoreImpl.java | 110 --------- .../world/spawner/BBaseSpawnerImpl.java | 208 ----------------- 14 files changed, 1109 deletions(-) delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/NmsImplementationsImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NMSPlayerImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NmsEntityImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/item/NmsItemImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCompoundImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCoreImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTEntityImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTObjectImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/NmsWorldBorderImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SItemStackImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SSpawnerImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SWorldImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/WorldCoreImpl.java delete mode 100644 NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/spawner/BBaseSpawnerImpl.java diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/NmsImplementationsImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/NmsImplementationsImpl.java deleted file mode 100644 index b937bb7d..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/NmsImplementationsImpl.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.craftaro.core.nms.v1_21_0; - -import com.craftaro.core.nms.NmsImplementations; -import com.craftaro.core.nms.entity.NMSPlayer; -import com.craftaro.core.nms.entity.NmsEntity; -import com.craftaro.core.nms.nbt.NBTCore; -import com.craftaro.core.nms.v1_21_0.anvil.AnvilCore; -import com.craftaro.core.nms.v1_21_0.entity.NMSPlayerImpl; -import com.craftaro.core.nms.v1_21_0.entity.NmsEntityImpl; -import com.craftaro.core.nms.v1_21_0.nbt.NBTCoreImpl; -import com.craftaro.core.nms.v1_21_0.world.NmsWorldBorderImpl; -import com.craftaro.core.nms.v1_21_0.world.WorldCoreImpl; -import com.craftaro.core.nms.world.NmsWorldBorder; -import com.craftaro.core.nms.world.WorldCore; -import org.jetbrains.annotations.NotNull; - -public class NmsImplementationsImpl implements NmsImplementations { - private final NmsEntity entity; - private final NMSPlayer player; - private final WorldCore world; - private final NmsWorldBorder worldBorder; - private final com.craftaro.core.nms.anvil.AnvilCore anvil; - private final NBTCore nbt; - private final NmsItem item; - - public NmsImplementationsImpl() { - this.entity = new NmsEntityImpl(); - this.player = new NMSPlayerImpl(); - this.world = new WorldCoreImpl(); - this.worldBorder = new NmsWorldBorderImpl(); - this.anvil = new AnvilCore(); - this.nbt = new NBTCoreImpl(); - this.item = new NmsItemImpl(); - } - - @Override - public @NotNull NmsEntity getEntity() { - return this.entity; - } - - @Override - public @NotNull NMSPlayer getPlayer() { - return this.player; - } - - @Override - public @NotNull WorldCore getWorld() { - return this.world; - } - - @Override - public @NotNull NmsWorldBorder getWorldBorder() { - return this.worldBorder; - } - - @Override - public @NotNull com.craftaro.core.nms.anvil.AnvilCore getAnvil() { - return this.anvil; - } - - @Override - public @NotNull NBTCore getNbt() { - return this.nbt; - } - - @Override - public @NotNull NmsItem getItem() { - return this.item; - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NMSPlayerImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NMSPlayerImpl.java deleted file mode 100644 index c9df771c..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NMSPlayerImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.entity; - -import com.craftaro.core.nms.entity.NMSPlayer; -import com.craftaro.core.nms.entity.player.GameProfile; -import com.mojang.authlib.properties.Property; -import net.minecraft.network.protocol.Packet; -import org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - -public class NMSPlayerImpl implements NMSPlayer { - @Override - public void sendPacket(Player p, Object packet) { - ((CraftPlayer) p).getHandle().connection.send((Packet) packet); - } - - public GameProfile getProfile(Player p) { - com.mojang.authlib.GameProfile profile = ((CraftPlayer) p).getHandle().getGameProfile(); - - String textureValue = null; - String textureSignature = null; - for (Property property : profile.getProperties().get("textures")) { - if (property.name().equals("SKIN")) { - textureValue = property.value(); - textureSignature = property.signature(); - } - } - - return new GameProfile( - profile, - - profile.getId(), - profile.getName(), - textureValue, - textureSignature - ); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NmsEntityImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NmsEntityImpl.java deleted file mode 100644 index f04d918a..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/entity/NmsEntityImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.entity; - -import com.craftaro.core.nms.entity.NmsEntity; -import net.minecraft.world.entity.Mob; -import org.bukkit.craftbukkit.v1_21_R1.entity.CraftEntity; -import org.bukkit.entity.Entity; - -public class NmsEntityImpl implements NmsEntity { - @Override - public boolean isMob(Entity entity) { - return ((CraftEntity) entity).getHandle() instanceof Mob; - } - - @Override - public void setMobAware(Entity entity, boolean aware) { - if (!isMob(entity)) { - throw new IllegalArgumentException("Entity is not a mob and cannot be set aware"); - } - - var nmsEntity = ((CraftEntity) entity).getHandle(); - ((Mob) nmsEntity).aware = aware; - } - - @Override - public boolean isAware(Entity entity) { - var nmsEntity = ((CraftEntity) entity).getHandle(); - if (nmsEntity instanceof Mob nmsMob) { - return nmsMob.aware; - } - - return false; - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/item/NmsItemImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/item/NmsItemImpl.java deleted file mode 100644 index 4cafe127..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/item/NmsItemImpl.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.item; - -import com.craftaro.core.nms.item.NmsItem; -import net.minecraft.util.RandomSource; -import net.minecraft.world.item.enchantment.EnchantmentHelper; -import org.bukkit.craftbukkit.v1_21_R1.CraftRegistry; -import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack; -import org.bukkit.inventory.ItemStack; - -import java.util.Optional; - -public class NmsItemImpl implements NmsItem { - private final RandomSource randomSource = RandomSource.createNewThreadLocalInstance(); - - @Override - public ItemStack copyAndApplyRandomEnchantment(ItemStack item, int level) { - net.minecraft.world.item.ItemStack nmsItem = CraftItemStack.asNMSCopy(item); - EnchantmentHelper.enchantItem(this.randomSource, nmsItem, level, CraftRegistry.getMinecraftRegistry(), Optional.empty()); - return CraftItemStack.asBukkitCopy(nmsItem); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCompoundImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCompoundImpl.java deleted file mode 100644 index 0a8c53fb..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCompoundImpl.java +++ /dev/null @@ -1,209 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.nbt; - -import com.craftaro.core.nms.nbt.NBTCompound; -import com.craftaro.core.nms.nbt.NBTObject; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtAccounter; -import net.minecraft.nbt.NbtIo; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; -import java.util.Set; -import java.util.UUID; - -public class NBTCompoundImpl implements NBTCompound { - protected CompoundTag compound; - - protected NBTCompoundImpl(CompoundTag compound) { - this.compound = compound; - } - - public NBTCompoundImpl() { - this.compound = new CompoundTag(); - } - - @Override - public NBTCompound set(String tag, String s) { - this.compound.putString(tag, s); - return this; - } - - @Override - public NBTCompound set(String tag, boolean b) { - this.compound.putBoolean(tag, b); - return this; - } - - @Override - public NBTCompound set(String tag, int i) { - this.compound.putInt(tag, i); - return this; - } - - @Override - public NBTCompound set(String tag, double i) { - this.compound.putDouble(tag, i); - return this; - } - - @Override - public NBTCompound set(String tag, long l) { - this.compound.putLong(tag, l); - return this; - } - - @Override - public NBTCompound set(String tag, short s) { - this.compound.putShort(tag, s); - return this; - } - - @Override - public NBTCompound set(String tag, byte b) { - this.compound.putByte(tag, b); - return this; - } - - @Override - public NBTCompound set(String tag, int[] i) { - this.compound.putIntArray(tag, i); - return this; - } - - @Override - public NBTCompound set(String tag, byte[] b) { - this.compound.putByteArray(tag, b); - return this; - } - - @Override - public NBTCompound set(String tag, UUID u) { - this.compound.putUUID(tag, u); - return this; - } - - @Override - public NBTCompound remove(String tag) { - this.compound.remove(tag); - return this; - } - - @Override - public boolean has(String tag) { - return this.compound.contains(tag); - } - - @Override - public NBTObject getNBTObject(String tag) { - return new NBTObjectImpl(this.compound, tag); - } - - @Override - public String getString(String tag) { - return getNBTObject(tag).asString(); - } - - @Override - public boolean getBoolean(String tag) { - return getNBTObject(tag).asBoolean(); - } - - @Override - public int getInt(String tag) { - return getNBTObject(tag).asInt(); - } - - @Override - public double getDouble(String tag) { - return getNBTObject(tag).asDouble(); - } - - @Override - public long getLong(String tag) { - return getNBTObject(tag).asLong(); - } - - @Override - public short getShort(String tag) { - return getNBTObject(tag).asShort(); - } - - @Override - public byte getByte(String tag) { - return getNBTObject(tag).asByte(); - } - - @Override - public int[] getIntArray(String tag) { - return getNBTObject(tag).asIntArray(); - } - - @Override - public byte[] getByteArray(String tag) { - return getNBTObject(tag).asByteArray(); - } - - @Override - public NBTCompound getCompound(String tag) { - if (has(tag)) { - return getNBTObject(tag).asCompound(); - } - - CompoundTag newCompound = new CompoundTag(); - this.compound.put(tag, newCompound); - return new NBTCompoundImpl(newCompound); - } - - @Override - public Set getKeys() { - return this.compound.getAllKeys(); - } - - @Override - public Set getKeys(String tag) { - return this.compound.getCompound(tag).getAllKeys(); - } - - @Override - public byte[] serialize(String... exclusions) { - try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - ObjectOutputStream dataOutput = new ObjectOutputStream(outputStream)) { - addExtras(); - CompoundTag compound = this.compound.copy(); - - for (String exclusion : exclusions) { - compound.remove(exclusion); - } - - NbtIo.writeCompressed(compound, dataOutput); - - return outputStream.toByteArray(); - } catch (Exception ex) { - ex.printStackTrace(); - } - - return null; - } - - @Override - public void deSerialize(byte[] serialized) { - try (ByteArrayInputStream inputStream = new ByteArrayInputStream(serialized); - ObjectInputStream dataInput = new ObjectInputStream(inputStream)) { - this.compound = NbtIo.readCompressed(dataInput, NbtAccounter.unlimitedHeap()); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - @Override - public void addExtras() { - // None - } - - @Override - public String toString() { - return this.compound.toString(); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCoreImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCoreImpl.java deleted file mode 100644 index 1d1726bc..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTCoreImpl.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.nbt; - -import com.craftaro.core.nms.nbt.NBTCore; -import com.craftaro.core.nms.nbt.NBTEntity; -import net.minecraft.nbt.CompoundTag; -import org.bukkit.craftbukkit.v1_21_R1.entity.CraftEntity; -import org.bukkit.entity.Entity; - -public class NBTCoreImpl implements NBTCore { - @Override - public NBTEntity of(Entity entity) { - net.minecraft.world.entity.Entity nmsEntity = ((CraftEntity) entity).getHandle(); - CompoundTag nbt = new CompoundTag(); - nmsEntity.saveWithoutId(nbt); - - return new NBTEntityImpl(nbt, nmsEntity); - } - - @Override - public NBTEntity newEntity() { - return new NBTEntityImpl(new CompoundTag(), null); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTEntityImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTEntityImpl.java deleted file mode 100644 index 2f4153e1..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTEntityImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.nbt; - -import com.craftaro.core.nms.nbt.NBTEntity; -import net.minecraft.core.BlockPos; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.MobSpawnType; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; - -import java.util.Optional; - -public class NBTEntityImpl extends NBTCompoundImpl implements NBTEntity { - private Entity nmsEntity; - - public NBTEntityImpl(CompoundTag entityNBT, Entity nmsEntity) { - super(entityNBT); - - this.nmsEntity = nmsEntity; - } - - @Override - public org.bukkit.entity.Entity spawn(Location location) { - String entityType = getNBTObject("entity_type").asString(); - getKeys().remove("UUID"); - - Optional> optionalEntity = EntityType.byString(entityType); - if (optionalEntity.isPresent()) { - assert location.getWorld() != null; - - Entity spawned = optionalEntity.get().spawn( - ((CraftWorld) location.getWorld()).getHandle(), - null, - new BlockPos(location.getBlockX(), location.getBlockY(), location.getBlockZ()), - MobSpawnType.COMMAND, - true, - false - ); - - if (spawned != null) { - spawned.load(this.compound); - org.bukkit.entity.Entity entity = spawned.getBukkitEntity(); - entity.teleport(location); - this.nmsEntity = spawned; - - return entity; - } - } - - return null; - } - - @Override - public org.bukkit.entity.Entity reSpawn(Location location) { - this.nmsEntity.discard(); - return spawn(location); - } - - @Override - public void addExtras() { - this.compound.putString("entity_type", BuiltInRegistries.ENTITY_TYPE.getKey(this.nmsEntity.getType()).toString()); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTObjectImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTObjectImpl.java deleted file mode 100644 index 4285bd74..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/nbt/NBTObjectImpl.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.nbt; - -import com.craftaro.core.nms.nbt.NBTCompound; -import com.craftaro.core.nms.nbt.NBTObject; -import net.minecraft.nbt.CompoundTag; - -import java.util.Set; - -public class NBTObjectImpl implements NBTObject { - private final CompoundTag compound; - private final String tag; - - public NBTObjectImpl(CompoundTag compound, String tag) { - this.compound = compound; - this.tag = tag; - } - - @Override - public String asString() { - return this.compound.getString(this.tag); - } - - @Override - public boolean asBoolean() { - return this.compound.getBoolean(this.tag); - } - - @Override - public int asInt() { - return this.compound.getInt(this.tag); - } - - @Override - public double asDouble() { - return this.compound.getDouble(this.tag); - } - - @Override - public long asLong() { - return this.compound.getLong(this.tag); - } - - @Override - public short asShort() { - return this.compound.getShort(this.tag); - } - - @Override - public byte asByte() { - return this.compound.getByte(this.tag); - } - - @Override - public int[] asIntArray() { - return this.compound.getIntArray(this.tag); - } - - @Override - public byte[] asByteArray() { - return this.compound.getByteArray(this.tag); - } - - @Override - public NBTCompound asCompound() { - return new NBTCompoundImpl(this.compound.getCompound(this.tag)); - } - - @Override - public Set getKeys() { - return this.compound.getAllKeys(); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/NmsWorldBorderImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/NmsWorldBorderImpl.java deleted file mode 100644 index eee83dca..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/NmsWorldBorderImpl.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world; - -import com.craftaro.core.nms.world.NmsWorldBorder; -import net.minecraft.network.protocol.game.ClientboundInitializeBorderPacket; -import net.minecraft.world.level.border.WorldBorder; -import org.bukkit.Location; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer; -import org.bukkit.entity.Player; - -import java.util.Objects; - -public class NmsWorldBorderImpl implements NmsWorldBorder { - @Override - public void send(Player player, BorderColor color, double size, Location center) { - Objects.requireNonNull(center.getWorld()); - - WorldBorder worldBorder = new WorldBorder(); - worldBorder.world = ((CraftWorld) center.getWorld()).getHandle(); - - worldBorder.setCenter(center.getX(), center.getZ()); - worldBorder.setSize(size); - worldBorder.setWarningTime(0); - worldBorder.setWarningBlocks(0); - - if (color == BorderColor.GREEN) { - worldBorder.lerpSizeBetween(size - 0.1D, size, Long.MAX_VALUE); - } else if (color == BorderColor.RED) { - worldBorder.lerpSizeBetween(size, size - 1.0D, Long.MAX_VALUE); - } - - ((CraftPlayer) player).getHandle().connection.send(new ClientboundInitializeBorderPacket(worldBorder)); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SItemStackImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SItemStackImpl.java deleted file mode 100644 index 73596592..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SItemStackImpl.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world; - -import com.craftaro.core.nms.world.SItemStack; -import net.minecraft.core.particles.ItemParticleOption; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.phys.Vec3; -import org.bukkit.craftbukkit.v1_21_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - -public class SItemStackImpl implements SItemStack { - private final ItemStack item; - - public SItemStackImpl(ItemStack item) { - this.item = item; - } - - @Override - public void breakItem(Player player, int amount) { - ServerPlayer entityPlayer = ((CraftPlayer) player).getHandle(); - - for (int i = 0; i < amount; ++i) { - Vec3 vec3d = new Vec3(((double) random.nextFloat() - 0.5D) * 0.1D, Math.random() * 0.1D + 0.1D, 0.0D); - vec3d = vec3d.xRot(-entityPlayer.getXRot() * 0.017453292F); - vec3d = vec3d.yRot(-entityPlayer.getYRot() * 0.017453292F); - - double d0 = (double) (-random.nextFloat()) * 0.6D - 0.3D; - - Vec3 vec3d1 = new Vec3(((double) random.nextFloat() - 0.5D) * 0.3D, d0, 0.6D); - vec3d1 = vec3d1.xRot(-entityPlayer.getXRot() * 0.017453292F); - vec3d1 = vec3d1.yRot(-entityPlayer.getYRot() * 0.017453292F); - vec3d1 = vec3d1.add(entityPlayer.getX(), entityPlayer.getEyeY(), entityPlayer.getZ()); - - entityPlayer.level().addParticle(new ItemParticleOption(ParticleTypes.ITEM, CraftItemStack.asNMSCopy(this.item)), vec3d1.x, vec3d1.y, vec3d1.z, vec3d.x, vec3d.y + 0.05D, vec3d.z); - } - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SSpawnerImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SSpawnerImpl.java deleted file mode 100644 index ccf5078d..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SSpawnerImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world; - -import com.craftaro.core.compatibility.CompatibleMaterial; -import com.craftaro.core.compatibility.CompatibleParticleHandler; -import com.craftaro.core.nms.world.SSpawner; -import com.craftaro.core.nms.world.SpawnedEntity; -import com.cryptomorin.xseries.XMaterial; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.world.DifficultyInstance; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.MobSpawnType; -import net.minecraft.world.level.SpawnData; -import org.bukkit.Location; -import org.bukkit.block.BlockFace; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.event.entity.CreatureSpawnEvent; - -import java.util.Optional; -import java.util.Set; - -public class SSpawnerImpl implements SSpawner { - private final Location spawnerLocation; - - public SSpawnerImpl(Location location) { - this.spawnerLocation = location; - } - - @Override - public LivingEntity spawnEntity(EntityType type, Location spawnerLocation) { - return spawnEntity(type, "EXPLOSION_NORMAL", null, null); - } - - @Override - public LivingEntity spawnEntity(EntityType type, String particleType, SpawnedEntity spawned, Set canSpawnOn) { - SpawnData data = new SpawnData(); - CompoundTag compound = data.getEntityToSpawn(); - - String name = type - .name() - .toLowerCase() - .replace("snowman", "snow_golem") - .replace("mushroom_cow", "mooshroom"); - compound.putString("id", "minecraft:" + name); - - short spawnRange = 4; - for (int i = 0; i < 50; ++i) { - assert this.spawnerLocation.getWorld() != null; - ServerLevel world = ((CraftWorld) this.spawnerLocation.getWorld()).getHandle(); - - RandomSource random = world.getRandom(); - double x = this.spawnerLocation.getX() + (random.nextDouble() - random.nextDouble()) * (double) spawnRange + 0.5D; - double y = this.spawnerLocation.getY() + random.nextInt(3) - 1; - double z = this.spawnerLocation.getZ() + (random.nextDouble() - random.nextDouble()) * (double) spawnRange + 0.5D; - - Optional optionalEntity = net.minecraft.world.entity.EntityType.create(compound, world); - if (optionalEntity.isEmpty()) continue; - - Entity entity = optionalEntity.get(); - entity.setPos(x, y, z); - - BlockPos position = entity.blockPosition(); - DifficultyInstance damageScaler = world.getCurrentDifficultyAt(position); - - if (!(entity instanceof Mob entityInsentient)) { - continue; - } - - Location spot = new Location(this.spawnerLocation.getWorld(), x, y, z); - - if (!canSpawn(world, entityInsentient, spot, canSpawnOn)) { - continue; - } - - entityInsentient.finalizeSpawn(world, damageScaler, MobSpawnType.SPAWNER, null); - - LivingEntity craftEntity = (LivingEntity) entity.getBukkitEntity(); - - if (spawned != null && !spawned.onSpawn(craftEntity)) { - return null; - } - - if (particleType != null) { - float xx = (float) (0 + (Math.random() * 1)); - float yy = (float) (0 + (Math.random() * 2)); - float zz = (float) (0 + (Math.random() * 1)); - - CompatibleParticleHandler.spawnParticles(CompatibleParticleHandler.ParticleType.getParticle(particleType), spot, 5, xx, yy, zz, 0); - } - - world.addFreshEntity(entity, CreatureSpawnEvent.SpawnReason.SPAWNER); - - spot.setYaw(random.nextFloat() * 360.0F); - craftEntity.teleport(spot); - - return craftEntity; - } - - return null; - } - - private boolean canSpawn(ServerLevel world, Mob entityInsentient, Location location, Set canSpawnOn) { - if (!world.noCollision(entityInsentient, entityInsentient.getBoundingBox())) { - return false; - } - - Optional spawnedIn = CompatibleMaterial.getMaterial(location.getBlock().getType()); - Optional spawnedOn = CompatibleMaterial.getMaterial(location.getBlock().getRelative(BlockFace.DOWN).getType()); - - if (spawnedIn.isEmpty() || spawnedOn.isEmpty()) { - return false; - } - - if (!CompatibleMaterial.isAir(spawnedIn.get()) && - spawnedIn.get() != XMaterial.WATER && - !spawnedIn.get().name().contains("PRESSURE") && - !spawnedIn.get().name().contains("SLAB")) { - return false; - } - - for (XMaterial material : canSpawnOn) { - if (material == null) continue; - - if (spawnedOn.get() == material || CompatibleMaterial.isAir(material)) { - return true; - } - } - - return false; - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SWorldImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SWorldImpl.java deleted file mode 100644 index dbb9c60d..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/SWorldImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world; - -import com.craftaro.core.nms.world.SWorld; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.LevelChunk; -import net.minecraft.world.level.entity.LevelEntityGetter; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_21_R1.block.data.CraftBlockData; -import org.bukkit.entity.LivingEntity; - -import java.util.ArrayList; -import java.util.List; - -public class SWorldImpl implements SWorld { - private final World world; - - public SWorldImpl(World world) { - this.world = world; - } - - @Override - public List getLivingEntities() { - List result = new ArrayList<>(); - - ServerLevel worldServer = ((CraftWorld) this.world).getHandle(); - LevelEntityGetter entities = worldServer.getEntities(); - - entities.getAll().forEach((mcEnt) -> { - org.bukkit.entity.Entity bukkitEntity = mcEnt.getBukkitEntity(); - - if (bukkitEntity instanceof LivingEntity && bukkitEntity.isValid()) { - result.add((LivingEntity) bukkitEntity); - } - }); - - return result; - } - - @Override - public void setBlockFast(int x, int y, int z, Material material) { - ServerLevel serverLevel = ((CraftWorld) this.world).getHandle(); - LevelChunk levelChunk = serverLevel.getChunk(x >> 4, z >> 4); - BlockState blockState = ((CraftBlockData) material.createBlockData()).getState(); - - levelChunk.setBlockState(new BlockPos(x & 0xF, y, z & 0xF), blockState, true); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/WorldCoreImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/WorldCoreImpl.java deleted file mode 100644 index b32f332b..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/WorldCoreImpl.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world; - -import com.craftaro.core.nms.ReflectionUtils; -import com.craftaro.core.nms.v1_21_0.world.spawner.BBaseSpawnerImpl; -import com.craftaro.core.nms.world.BBaseSpawner; -import com.craftaro.core.nms.world.SItemStack; -import com.craftaro.core.nms.world.SSpawner; -import com.craftaro.core.nms.world.SWorld; -import com.craftaro.core.nms.world.WorldCore; -import net.minecraft.core.BlockPos; -import net.minecraft.core.SectionPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.block.entity.SpawnerBlockEntity; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.chunk.LevelChunk; -import net.minecraft.world.level.chunk.LevelChunkSection; -import net.minecraft.world.level.chunk.status.ChunkStatus; -import net.minecraft.world.level.material.FluidState; -import org.bukkit.Location; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.block.CreatureSpawner; -import org.bukkit.craftbukkit.v1_21_R1.CraftChunk; -import org.bukkit.craftbukkit.v1_21_R1.block.CraftBlock; -import org.bukkit.inventory.ItemStack; -import org.jetbrains.annotations.NotNull; - -public class WorldCoreImpl implements WorldCore { - @Override - public SSpawner getSpawner(CreatureSpawner spawner) { - return new SSpawnerImpl(spawner.getLocation()); - } - - @Override - public SSpawner getSpawner(Location location) { - return new SSpawnerImpl(location); - } - - @Override - public SItemStack getItemStack(ItemStack item) { - return new SItemStackImpl(item); - } - - @Override - public SWorld getWorld(World world) { - return new SWorldImpl(world); - } - - @Override - public BBaseSpawner getBaseSpawner(CreatureSpawner spawner) throws NoSuchFieldException, IllegalAccessException { - Object cTileEntity = ReflectionUtils.getFieldValue(spawner, "tileEntity"); - - return new BBaseSpawnerImpl(spawner, ((SpawnerBlockEntity) cTileEntity).getSpawner()); - } - - /** - * Method is based on {@link ServerLevel#tickChunk(LevelChunk, int)}. - */ - @Override - public void randomTickChunk(org.bukkit.Chunk bukkitChunk, int tickAmount) { - LevelChunk chunk = (LevelChunk) ((CraftChunk) bukkitChunk).getHandle(ChunkStatus.FULL); - ServerLevel world = chunk.r; - ProfilerFiller gameProfilerFiller = world.getProfiler(); - - ChunkPos chunkcoordintpair = chunk.getPos(); - int j = chunkcoordintpair.getMinBlockX(); - int k = chunkcoordintpair.getMinBlockZ(); - - gameProfilerFiller.push("tickBlocks"); - if (tickAmount > 0) { - LevelChunkSection[] achunksection = chunk.getSections(); - - for (int i1 = 0; i1 < achunksection.length; ++i1) { - LevelChunkSection chunksection = achunksection[i1]; - if (chunksection.isRandomlyTicking()) { - int j1 = chunk.getSectionYFromSectionIndex(i1); - int k1 = SectionPos.sectionToBlockCoord(j1); - - for (int l1 = 0; l1 < tickAmount; ++l1) { - BlockPos blockposition1 = world.getBlockRandomPos(j, k1, k, 15); - gameProfilerFiller.push("randomTick"); - BlockState iblockdata = chunksection.getBlockState(blockposition1.getX() - j, blockposition1.getY() - k1, blockposition1.getZ() - k); - if (iblockdata.isRandomlyTicking()) { - iblockdata.randomTick(world, blockposition1, world.random); - } - - FluidState fluid = iblockdata.getFluidState(); - if (fluid.isRandomlyTicking()) { - fluid.randomTick(world, blockposition1, world.random); - } - - gameProfilerFiller.pop(); - } - } - } - } - - gameProfilerFiller.pop(); - } - - @Override - public void updateAdjacentComparators(@NotNull Block bukkitBlock) { - CraftBlock craftBlock = (CraftBlock) bukkitBlock; - ServerLevel serverLevel = craftBlock.getCraftWorld().getHandle(); - - serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); - } -} diff --git a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/spawner/BBaseSpawnerImpl.java b/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/spawner/BBaseSpawnerImpl.java deleted file mode 100644 index 81d15de7..00000000 --- a/NMS/NMS-v1_21_0/src/main/java/com/craftaro/core/nms/v1_21_0/world/spawner/BBaseSpawnerImpl.java +++ /dev/null @@ -1,208 +0,0 @@ -package com.craftaro.core.nms.v1_21_0.world.spawner; - -import com.craftaro.core.nms.world.BBaseSpawner; -import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.util.RandomSource; -import net.minecraft.util.random.WeightedEntry; -import net.minecraft.world.Difficulty; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntitySelector; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.EquipmentTable; -import net.minecraft.world.entity.Mob; -import net.minecraft.world.entity.MobSpawnType; -import net.minecraft.world.entity.SpawnPlacements; -import net.minecraft.world.level.BaseSpawner; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.SpawnData; -import net.minecraft.world.level.entity.EntityTypeTest; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.phys.AABB; -import org.bukkit.block.CreatureSpawner; -import org.bukkit.craftbukkit.v1_21_R1.CraftWorld; -import org.bukkit.craftbukkit.v1_21_R1.block.CraftCreatureSpawner; -import org.bukkit.craftbukkit.v1_21_R1.event.CraftEventFactory; -import org.bukkit.event.entity.CreatureSpawnEvent; - -import java.lang.reflect.InvocationTargetException; -import java.util.Objects; -import java.util.Optional; - -public class BBaseSpawnerImpl implements BBaseSpawner { - private final CreatureSpawner bukkitSpawner; - private final BaseSpawner spawner; - - public BBaseSpawnerImpl(CreatureSpawner bukkitSpawner, BaseSpawner spawner) { - this.bukkitSpawner = bukkitSpawner; - this.spawner = spawner; - } - - /** - * This method is based on {@link BaseSpawner#isNearPlayer(Level, BlockPos)}. - */ - @SuppressWarnings("JavadocReference") - @Override - public boolean isNearPlayer() { - BlockPos bPos = getBlockPosition(); - return getWorld().hasNearbyAlivePlayer( - (double) bPos.getX() + 0.5, - (double) bPos.getY() + 0.5, - (double) bPos.getZ() + 0.5, - this.spawner.requiredPlayerRange - ); - } - - /** - * This method is based on {@link BaseSpawner#serverTick(ServerLevel, BlockPos)}. - */ - @Override - public void tick() throws InvocationTargetException, IllegalAccessException { - ServerLevel worldServer = getWorld(); - BlockPos blockposition = getBlockPosition(); - - if (this.spawner.spawnDelay == -1) { - delay(worldServer, blockposition); - } - - if (this.spawner.spawnDelay > 0) { - --this.spawner.spawnDelay; - } else { - boolean flag = false; - RandomSource randomsource = worldServer.getRandom(); - SpawnData mobspawnerdata = getOrCreateNextSpawnData(randomsource); - int i = 0; - - while (true) { - if (i >= this.spawner.spawnCount) { - if (flag) { - delay(worldServer, blockposition); - } - break; - } - - CompoundTag nbttagcompound = mobspawnerdata.getEntityToSpawn(); - Optional> optional = EntityType.by(nbttagcompound); - if (optional.isEmpty()) { - delay(worldServer, blockposition); - return; - } - - ListTag nbttaglist = nbttagcompound.getList("Pos", 6); - int j = nbttaglist.size(); - double d0 = j >= 1 ? nbttaglist.getDouble(0) : (double) blockposition.getX() + (randomsource.nextDouble() - randomsource.nextDouble()) * (double) this.spawner.spawnRange + 0.5; - double d1 = j >= 2 ? nbttaglist.getDouble(1) : (double) (blockposition.getY() + randomsource.nextInt(3) - 1); - double d2 = j >= 3 ? nbttaglist.getDouble(2) : (double) blockposition.getZ() + (randomsource.nextDouble() - randomsource.nextDouble()) * (double) this.spawner.spawnRange + 0.5; - if (worldServer.noCollision(optional.get().getSpawnAABB(d0, d1, d2))) { - label119: - { - BlockPos blockposition1 = BlockPos.containing(d0, d1, d2); - if (mobspawnerdata.getCustomSpawnRules().isPresent()) { - if (!optional.get().getCategory().isFriendly() && worldServer.getDifficulty() == Difficulty.PEACEFUL) { - break label119; - } - - SpawnData.CustomSpawnRules mobspawnerdata_a = mobspawnerdata.getCustomSpawnRules().get(); - if (!mobspawnerdata_a.isValidPosition(blockposition1, worldServer)) { - break label119; - } - } else if (!SpawnPlacements.checkSpawnRules((EntityType) optional.get(), worldServer, MobSpawnType.SPAWNER, blockposition1, worldServer.getRandom())) { - break label119; - } - - Entity entity = EntityType.loadEntityRecursive(nbttagcompound, worldServer, (entity1) -> { - entity1.moveTo(d0, d1, d2, entity1.getYRot(), entity1.getXRot()); - return entity1; - }); - if (entity == null) { - delay(worldServer, blockposition); - return; - } - - int k = worldServer.getEntities(EntityTypeTest.forExactClass(entity.getClass()), (new AABB(blockposition.getX(), blockposition.getY(), blockposition.getZ(), blockposition.getX() + 1, blockposition.getY() + 1, blockposition.getZ() + 1)).inflate((double) this.spawner.spawnRange), EntitySelector.NO_SPECTATORS).size(); - if (k >= this.spawner.maxNearbyEntities) { - delay(worldServer, blockposition); - return; - } - - entity.moveTo(entity.getX(), entity.getY(), entity.getZ(), randomsource.nextFloat() * 360.0F, 0.0F); - if (entity instanceof Mob entityinsentient) { - if (mobspawnerdata.getCustomSpawnRules().isEmpty() && !entityinsentient.checkSpawnRules(worldServer, MobSpawnType.SPAWNER) || !entityinsentient.checkSpawnObstruction(worldServer)) { - break label119; - } - - boolean flag1 = mobspawnerdata.getEntityToSpawn().size() == 1 && mobspawnerdata.getEntityToSpawn().contains("id", 8); - if (flag1) { - ((Mob) entity).finalizeSpawn(worldServer, worldServer.getCurrentDifficultyAt(entity.blockPosition()), MobSpawnType.SPAWNER, null); - } - - Optional optional1 = mobspawnerdata.getEquipment(); - Objects.requireNonNull(entityinsentient); - Objects.requireNonNull(entityinsentient); - optional1.ifPresent(entityinsentient::equip); - if (entityinsentient.level().spigotConfig.nerfSpawnerMobs) { - entityinsentient.aware = false; - } - } - - if (!CraftEventFactory.callSpawnerSpawnEvent(entity, blockposition).isCancelled()) { - if (!worldServer.tryAddFreshEntityWithPassengers(entity, CreatureSpawnEvent.SpawnReason.SPAWNER)) { - delay(worldServer, blockposition); - return; - } - - worldServer.levelEvent(2004, blockposition, 0); - worldServer.gameEvent(entity, GameEvent.ENTITY_PLACE, blockposition1); - if (entity instanceof Mob) { - ((Mob) entity).spawnAnim(); - } - - flag = true; - } - } - } - - ++i; - } - } - } - - /** - * This method is based on {@link BaseSpawner#delay(Level, BlockPos)}. - */ - @SuppressWarnings("JavadocReference") - private void delay(ServerLevel world, BlockPos bPos) { - RandomSource randomsource = world.random; - if (this.spawner.maxSpawnDelay <= this.spawner.minSpawnDelay) { - this.spawner.spawnDelay = this.spawner.minSpawnDelay; - } else { - this.spawner.spawnDelay = this.spawner.minSpawnDelay + randomsource.nextInt(this.spawner.maxSpawnDelay - this.spawner.minSpawnDelay); - } - - this.spawner.spawnPotentials.getRandom(randomsource).ifPresent((entry) -> this.spawner.nextSpawnData = entry.data()); - this.spawner.broadcastEvent(world, bPos, 1); - } - - /** - * This method is based on {@link BaseSpawner#getOrCreateNextSpawnData(Level, RandomSource, BlockPos)}. - */ - @SuppressWarnings("JavadocReference") - private SpawnData getOrCreateNextSpawnData(RandomSource randomsource) { - if (this.spawner.nextSpawnData != null) { - return this.spawner.nextSpawnData; - } - - this.spawner.nextSpawnData = this.spawner.spawnPotentials.getRandom(randomsource).map(WeightedEntry.Wrapper::data).orElseGet(SpawnData::new); - return this.spawner.nextSpawnData; - } - - private ServerLevel getWorld() { - return ((CraftWorld) this.bukkitSpawner.getWorld()).getHandle(); - } - - private BlockPos getBlockPosition() { - return ((CraftCreatureSpawner) this.bukkitSpawner).getPosition(); - } -}