From f7c9dfe1c5c83bb14335996b603897e2642174fa Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 14:41:46 +0200 Subject: [PATCH 1/7] feat: Add Message#getMessageLines(char) which EpicAutomators needs EpicAutomators just needs the method. It never existed in the core, it has been used in the plugin since for ever essentially... Somebody just never comitted it and published local builds I guess... I'm annoyed --- Core/src/main/java/com/craftaro/core/locale/Message.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Core/src/main/java/com/craftaro/core/locale/Message.java b/Core/src/main/java/com/craftaro/core/locale/Message.java index 63f89ce3..fdc206a2 100644 --- a/Core/src/main/java/com/craftaro/core/locale/Message.java +++ b/Core/src/main/java/com/craftaro/core/locale/Message.java @@ -138,8 +138,11 @@ public class Message { * @return the message */ public List getMessageLines() { - //return Arrays.asList(ChatColor.translateAlternateColorCodes('&', this.message.toText()).split("[\n|]")); - return AdventureUtils.splitComponent(this.message, '\n'); + return getMessageLines('\n'); + } + + public List getMessageLines(char splitChar) { + return AdventureUtils.splitComponent(this.message, splitChar); } /** From 9c3d6e5339bfae7f9df5ce676e591ba87b9dd585 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 18:54:40 +0200 Subject: [PATCH 2/7] feat: implement nms method WorldCore#toggleLever to replace BlockUtils This method uses vanilla functionality to toggle a lever 'the vanilla way'. This differs a bit from the original implementation, but I think this is the more desired one. --- .../com/craftaro/core/nms/world/WorldCore.java | 2 ++ .../core/nms/v1_10_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_11_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_12_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_13_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_13_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_14_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_15_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_16_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_16_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_16_R3/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_17_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_18_R1/world/WorldCoreImpl.java | 16 ++++++++++++++++ .../core/nms/v1_18_R2/world/WorldCoreImpl.java | 16 ++++++++++++++++ .../core/nms/v1_19_0/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_19_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_19_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_19_R3/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_20_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_20_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_20_R3/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_20_R4/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_21_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_8_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_8_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_8_R3/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_9_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_9_R2/world/WorldCoreImpl.java | 13 +++++++++++++ 28 files changed, 359 insertions(+) diff --git a/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java b/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java index 4c967efe..dd04c1e8 100644 --- a/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java +++ b/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java @@ -36,6 +36,8 @@ public interface WorldCore { void updateAdjacentComparators(@NotNull Block bukkitBlock); + void toggleLever(@NotNull Block bukkitBlock); + /** * Ticks all inactive spawners in a specific chunk ignoring the minimum required players within a specific range.
* A spawner is deemed inactive if no player is within its activation range. diff --git a/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java index f84d50d5..b882b43f 100644 --- a/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_10_R1.Block; +import net.minecraft.server.v1_10_R1.BlockLever; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Chunk; import net.minecraft.server.v1_10_R1.ChunkSection; @@ -99,4 +100,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java index dd374f19..16c2f547 100644 --- a/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_11_R1.Block; +import net.minecraft.server.v1_11_R1.BlockLever; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Chunk; import net.minecraft.server.v1_11_R1.ChunkSection; @@ -99,4 +100,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java index e3157110..cfade844 100644 --- a/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_12_R1.Block; +import net.minecraft.server.v1_12_R1.BlockLever; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.Chunk; import net.minecraft.server.v1_12_R1.ChunkSection; @@ -99,4 +100,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java index dbdb8839..87f85679 100644 --- a/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_13_R1.BlockLever; import net.minecraft.server.v1_13_R1.BlockPosition; import net.minecraft.server.v1_13_R1.Chunk; import net.minecraft.server.v1_13_R1.ChunkSection; @@ -20,6 +21,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_13_R1.CraftChunk; import org.bukkit.craftbukkit.v1_13_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_13_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -100,4 +102,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java index 7bf60ae0..fd520a3b 100644 --- a/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_13_R2.BlockLever; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.Chunk; import net.minecraft.server.v1_13_R2.ChunkSection; @@ -20,6 +21,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_13_R2.CraftChunk; import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_13_R2.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java index 790e1078..25dcb4c7 100644 --- a/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_14_R1.BlockLever; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.Chunk; import net.minecraft.server.v1_14_R1.ChunkCoordIntPair; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_14_R1.CraftChunk; import org.bukkit.craftbukkit.v1_14_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -104,4 +106,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null); + } } diff --git a/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java index 24b98529..539e5563 100644 --- a/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_15_R1.BlockLever; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.Chunk; import net.minecraft.server.v1_15_R1.ChunkCoordIntPair; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_15_R1.CraftChunk; import org.bukkit.craftbukkit.v1_15_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java index 29564f48..c9f9f539 100644 --- a/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R1.BlockLever; import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R1.Chunk; import net.minecraft.server.v1_16_R1.ChunkCoordIntPair; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R1.CraftChunk; import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -108,4 +110,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java index c642ced4..1cbdddae 100644 --- a/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R2.BlockLever; import net.minecraft.server.v1_16_R2.BlockPosition; import net.minecraft.server.v1_16_R2.Chunk; import net.minecraft.server.v1_16_R2.ChunkCoordIntPair; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R2.CraftChunk; import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_16_R2.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -108,4 +110,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java index a0fac77c..adf0b5d9 100644 --- a/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R3.BlockLever; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.Chunk; import net.minecraft.server.v1_16_R3.ChunkCoordIntPair; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R3.CraftChunk; import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_16_R3.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -109,4 +111,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java index 53f28bb6..08643071 100644 --- a/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.WorldServer; import net.minecraft.util.profiling.GameProfilerFiller; import net.minecraft.world.level.ChunkCoordIntPair; import net.minecraft.world.level.MobSpawnerAbstract; +import net.minecraft.world.level.block.BlockLever; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.chunk.Chunk; import net.minecraft.world.level.chunk.ChunkSection; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_17_R1.CraftChunk; import org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_17_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java index 296787b1..f0a0c3ac 100644 --- a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java @@ -8,11 +8,15 @@ 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.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.material.FluidState; @@ -22,6 +26,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_18_R1.CraftChunk; import org.bukkit.craftbukkit.v1_18_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -104,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java index 6294b1d5..e1d75d41 100644 --- a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java @@ -8,11 +8,15 @@ 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.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.material.FluidState; @@ -22,6 +26,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_18_R2.CraftChunk; import org.bukkit.craftbukkit.v1_18_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -103,4 +108,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java b/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java index d7483b8b..bcffd40a 100644 --- a/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_19_R1.CraftChunk; import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -101,4 +103,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java index 0ec36fba..00c492d2 100644 --- a/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_19_R1.CraftChunk; import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -101,4 +103,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java index 3114ae5d..82240862 100644 --- a/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; @@ -22,6 +23,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_19_R2.CraftChunk; import org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R2.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -101,4 +103,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java index c1e885c1..ba9ea8bc 100644 --- a/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunk; @@ -23,6 +24,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_19_R3.CraftChunk; import org.bukkit.craftbukkit.v1_19_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_19_R3.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -102,4 +104,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java index f4b5e743..b139fbc8 100644 --- a/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,6 +25,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_20_R1.CraftChunk; import org.bukkit.craftbukkit.v1_20_R1.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java index 586816ea..4b995c44 100644 --- a/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,6 +25,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_20_R2.CraftChunk; import org.bukkit.craftbukkit.v1_20_R2.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R2.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java index 57ab67a0..7e99a152 100644 --- a/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,6 +25,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_20_R3.CraftChunk; import org.bukkit.craftbukkit.v1_20_R3.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R3.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java index d62f66de..f27404c4 100644 --- a/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ 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.LeverBlock; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,6 +25,7 @@ import org.bukkit.block.Block; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_20_R4.CraftChunk; import org.bukkit.craftbukkit.v1_20_R4.block.CraftBlock; +import org.bukkit.craftbukkit.v1_20_R4.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java index 6e86e3f2..3cf7b185 100644 --- a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ 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.LeverBlock; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; @@ -24,6 +25,7 @@ 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.craftbukkit.v1_21_R1.block.data.CraftBlockData; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -107,4 +109,15 @@ public class WorldCoreImpl implements WorldCore { serverLevel.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock()); } + + @Override + public void toggleLever(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition, null); + } } diff --git a/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java index 30ad9878..4f2c7d50 100644 --- a/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R1.Block; +import net.minecraft.server.v1_8_R1.BlockLever; import net.minecraft.server.v1_8_R1.BlockPosition; import net.minecraft.server.v1_8_R1.Chunk; import net.minecraft.server.v1_8_R1.ChunkSection; @@ -101,4 +102,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java index 8aa31b3b..f9b8decb 100644 --- a/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R2.Block; +import net.minecraft.server.v1_8_R2.BlockLever; import net.minecraft.server.v1_8_R2.BlockPosition; import net.minecraft.server.v1_8_R2.Chunk; import net.minecraft.server.v1_8_R2.ChunkSection; @@ -101,4 +102,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java index fe3c52a9..62a89dc8 100644 --- a/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R3.Block; +import net.minecraft.server.v1_8_R3.BlockLever; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Chunk; import net.minecraft.server.v1_8_R3.ChunkSection; @@ -100,4 +101,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java index 16b72edb..613ed2ff 100644 --- a/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_9_R1.Block; +import net.minecraft.server.v1_9_R1.BlockLever; import net.minecraft.server.v1_9_R1.BlockPosition; import net.minecraft.server.v1_9_R1.Chunk; import net.minecraft.server.v1_9_R1.ChunkSection; @@ -100,4 +101,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java index 4e68752b..47ca23d8 100644 --- a/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_9_R2.Block; +import net.minecraft.server.v1_9_R2.BlockLever; import net.minecraft.server.v1_9_R2.BlockPosition; import net.minecraft.server.v1_9_R2.Chunk; import net.minecraft.server.v1_9_R2.ChunkSection; @@ -99,4 +100,16 @@ public class WorldCoreImpl implements WorldCore { Block nmsBlock = CraftMagicNumbers.getBlock(bukkitBlock.getType()); serverLevel.updateAdjacentComparators(blockPos, nmsBlock); } + + @Override + public void toggleLever(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockLever leverBlock = (BlockLever) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = leverBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } From 570db7b455f2239cc0e5394096ec62a7c0d04505 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 19:17:33 +0200 Subject: [PATCH 3/7] feat: implement nms method WorldCore#pressButton to replace BlockUtils This method uses vanilla functionality to press a button 'the vanilla way'. This differs a bit from the original implementation, but I think this is the more desired one. --- .../java/com/craftaro/core/nms/world/WorldCore.java | 2 ++ .../core/nms/v1_10_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_11_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_12_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_13_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_13_R2/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_14_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_15_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_16_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_16_R2/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_16_R3/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_17_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_18_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_18_R2/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_19_0/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_19_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_19_R2/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_19_R3/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_20_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_20_R2/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_20_R3/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_20_R4/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_21_R1/world/WorldCoreImpl.java | 12 ++++++++++++ .../core/nms/v1_8_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_8_R2/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_8_R3/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_9_R1/world/WorldCoreImpl.java | 13 +++++++++++++ .../core/nms/v1_9_R2/world/WorldCoreImpl.java | 13 +++++++++++++ 28 files changed, 334 insertions(+) diff --git a/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java b/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java index dd04c1e8..9e02a351 100644 --- a/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java +++ b/NMS/NMS-API/src/main/java/com/craftaro/core/nms/world/WorldCore.java @@ -38,6 +38,8 @@ public interface WorldCore { void toggleLever(@NotNull Block bukkitBlock); + void pressButton(@NotNull Block bukkitBlock); + /** * Ticks all inactive spawners in a specific chunk ignoring the minimum required players within a specific range.
* A spawner is deemed inactive if no player is within its activation range. diff --git a/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java index b882b43f..1c819f30 100644 --- a/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_10_R1/src/main/java/com/craftaro/core/nms/v1_10_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_10_R1.Block; +import net.minecraft.server.v1_10_R1.BlockButtonAbstract; import net.minecraft.server.v1_10_R1.BlockLever; import net.minecraft.server.v1_10_R1.BlockPosition; import net.minecraft.server.v1_10_R1.Chunk; @@ -112,4 +113,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java index 16c2f547..c330557e 100644 --- a/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_11_R1/src/main/java/com/craftaro/core/nms/v1_11_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_11_R1.Block; +import net.minecraft.server.v1_11_R1.BlockButtonAbstract; import net.minecraft.server.v1_11_R1.BlockLever; import net.minecraft.server.v1_11_R1.BlockPosition; import net.minecraft.server.v1_11_R1.Chunk; @@ -112,4 +113,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java index cfade844..b322d75b 100644 --- a/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_12_R1/src/main/java/com/craftaro/core/nms/v1_12_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_12_R1.Block; +import net.minecraft.server.v1_12_R1.BlockButtonAbstract; import net.minecraft.server.v1_12_R1.BlockLever; import net.minecraft.server.v1_12_R1.BlockPosition; import net.minecraft.server.v1_12_R1.Chunk; @@ -112,4 +113,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java index 87f85679..f5eb09f0 100644 --- a/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R1/src/main/java/com/craftaro/core/nms/v1_13_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_13_R1.BlockButtonAbstract; import net.minecraft.server.v1_13_R1.BlockLever; import net.minecraft.server.v1_13_R1.BlockPosition; import net.minecraft.server.v1_13_R1.Chunk; @@ -113,4 +114,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java index fd520a3b..3f6bfde2 100644 --- a/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R2/src/main/java/com/craftaro/core/nms/v1_13_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_13_R2.BlockButtonAbstract; import net.minecraft.server.v1_13_R2.BlockLever; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.Chunk; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java index 25dcb4c7..c555bebf 100644 --- a/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_14_R1/src/main/java/com/craftaro/core/nms/v1_14_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_14_R1.BlockButtonAbstract; import net.minecraft.server.v1_14_R1.BlockLever; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.Chunk; @@ -117,4 +118,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).interact(iBlockData, world, blockposition, null, null, null); + } } diff --git a/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java index 539e5563..6758dcdb 100644 --- a/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_15_R1/src/main/java/com/craftaro/core/nms/v1_15_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_15_R1.BlockButtonAbstract; import net.minecraft.server.v1_15_R1.BlockLever; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.Chunk; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java index c9f9f539..b24f66fd 100644 --- a/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R1/src/main/java/com/craftaro/core/nms/v1_16_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R1.BlockButtonAbstract; import net.minecraft.server.v1_16_R1.BlockLever; import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R1.Chunk; @@ -121,4 +122,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java index 1cbdddae..11498771 100644 --- a/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R2/src/main/java/com/craftaro/core/nms/v1_16_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R2.BlockButtonAbstract; import net.minecraft.server.v1_16_R2.BlockLever; import net.minecraft.server.v1_16_R2.BlockPosition; import net.minecraft.server.v1_16_R2.Chunk; @@ -121,4 +122,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java index adf0b5d9..071b1483 100644 --- a/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R3/src/main/java/com/craftaro/core/nms/v1_16_R3/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ 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.server.v1_16_R3.BlockButtonAbstract; import net.minecraft.server.v1_16_R3.BlockLever; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.Chunk; @@ -122,4 +123,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java index 08643071..bebe40fe 100644 --- a/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_17_R1/src/main/java/com/craftaro/core/nms/v1_17_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.WorldServer; import net.minecraft.util.profiling.GameProfilerFiller; import net.minecraft.world.level.ChunkCoordIntPair; import net.minecraft.world.level.MobSpawnerAbstract; +import net.minecraft.world.level.block.BlockButtonAbstract; import net.minecraft.world.level.block.BlockLever; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.chunk.Chunk; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((BlockLever) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + IBlockData iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPosition blockposition = craftBlock.getPosition(); + WorldServer world = craftBlock.getCraftWorld().getHandle(); + + ((BlockButtonAbstract) craftBlock.getNMS().getBlock()).d(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java index f0a0c3ac..f43d585e 100644 --- a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java @@ -14,6 +14,7 @@ import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java index e1d75d41..e0817014 100644 --- a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; @@ -119,4 +120,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java b/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java index bcffd40a..616e7751 100644 --- a/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_0/src/main/java/com/craftaro/core/nms/v1_19_0/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; @@ -114,4 +115,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java index 00c492d2..89d0ab52 100644 --- a/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R1/src/main/java/com/craftaro/core/nms/v1_19_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; @@ -114,4 +115,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java index 82240862..e5aa3e7d 100644 --- a/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R2/src/main/java/com/craftaro/core/nms/v1_19_R2/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; @@ -114,4 +115,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java index ba9ea8bc..9d4d82de 100644 --- a/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R3/src/main/java/com/craftaro/core/nms/v1_19_R3/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; @@ -115,4 +116,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java index b139fbc8..421c732b 100644 --- a/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R1/src/main/java/com/craftaro/core/nms/v1_20_R1/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java index 4b995c44..7457330b 100644 --- a/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R2/src/main/java/com/craftaro/core/nms/v1_20_R2/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java index 7e99a152..b52320c7 100644 --- a/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R3/src/main/java/com/craftaro/core/nms/v1_20_R3/world/WorldCoreImpl.java @@ -13,6 +13,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.ChunkStatus; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java b/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java index f27404c4..e362fc38 100644 --- a/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_20_R4/src/main/java/com/craftaro/core/nms/v1_20_R4/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ 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.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition); + } } diff --git a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java index 3cf7b185..408bdd9c 100644 --- a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/world/WorldCoreImpl.java @@ -12,6 +12,7 @@ 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.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -120,4 +121,15 @@ public class WorldCoreImpl implements WorldCore { ((LeverBlock) craftBlock.getNMS().getBlock()).pull(iBlockData, world, blockposition, null); } + + @Override + public void pressButton(@NotNull Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockState iBlockData = ((CraftBlockData) craftBlock.getBlockData()).getState(); + BlockPos blockposition = craftBlock.getPosition(); + ServerLevel world = craftBlock.getCraftWorld().getHandle(); + + ((ButtonBlock) craftBlock.getNMS().getBlock()).press(iBlockData, world, blockposition, null); + } } diff --git a/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java index 4f2c7d50..69b462bc 100644 --- a/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R1/src/main/java/com/craftaro/core/nms/v1_8_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R1.Block; +import net.minecraft.server.v1_8_R1.BlockButtonAbstract; import net.minecraft.server.v1_8_R1.BlockLever; import net.minecraft.server.v1_8_R1.BlockPosition; import net.minecraft.server.v1_8_R1.Chunk; @@ -114,4 +115,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java index f9b8decb..0bb1c73d 100644 --- a/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R2/src/main/java/com/craftaro/core/nms/v1_8_R2/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R2.Block; +import net.minecraft.server.v1_8_R2.BlockButtonAbstract; import net.minecraft.server.v1_8_R2.BlockLever; import net.minecraft.server.v1_8_R2.BlockPosition; import net.minecraft.server.v1_8_R2.Chunk; @@ -114,4 +115,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java index 62a89dc8..aa4e34f5 100644 --- a/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R3/src/main/java/com/craftaro/core/nms/v1_8_R3/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_8_R3.Block; +import net.minecraft.server.v1_8_R3.BlockButtonAbstract; import net.minecraft.server.v1_8_R3.BlockLever; import net.minecraft.server.v1_8_R3.BlockPosition; import net.minecraft.server.v1_8_R3.Chunk; @@ -113,4 +114,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java index 613ed2ff..87bd56c1 100644 --- a/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R1/src/main/java/com/craftaro/core/nms/v1_9_R1/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_9_R1.Block; +import net.minecraft.server.v1_9_R1.BlockButtonAbstract; import net.minecraft.server.v1_9_R1.BlockLever; import net.minecraft.server.v1_9_R1.BlockPosition; import net.minecraft.server.v1_9_R1.Chunk; @@ -113,4 +114,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } diff --git a/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java index 47ca23d8..e9443000 100644 --- a/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R2/src/main/java/com/craftaro/core/nms/v1_9_R2/world/WorldCoreImpl.java @@ -8,6 +8,7 @@ import com.craftaro.core.nms.world.SSpawner; import com.craftaro.core.nms.world.SWorld; import com.craftaro.core.nms.world.WorldCore; import net.minecraft.server.v1_9_R2.Block; +import net.minecraft.server.v1_9_R2.BlockButtonAbstract; import net.minecraft.server.v1_9_R2.BlockLever; import net.minecraft.server.v1_9_R2.BlockPosition; import net.minecraft.server.v1_9_R2.Chunk; @@ -112,4 +113,16 @@ public class WorldCoreImpl implements WorldCore { leverBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); } + + @Override + public void pressButton(@NotNull org.bukkit.block.Block bukkitBlock) { + CraftBlock craftBlock = (CraftBlock) bukkitBlock; + + BlockButtonAbstract buttonBlock = (BlockButtonAbstract) CraftMagicNumbers.getBlock(craftBlock); + IBlockData iBlockData = buttonBlock.getBlockData(); + BlockPosition blockposition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ()); + WorldServer world = ((CraftWorld) craftBlock.getWorld()).getHandle(); + + buttonBlock.interact(world, blockposition, iBlockData, null, null, null, null, 0, 0, 0); + } } From b25dc736ce7ab7c75bae3bb47328e6d7eca9f5fd Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 19:18:31 +0200 Subject: [PATCH 4/7] refactor: remove unused import --- .../src/main/java/com/craftaro/core/chat/AdventureUtils.java | 5 ----- .../main/java/com/craftaro/core/commands/MainCommand.java | 1 - Core/src/main/java/com/craftaro/core/gui/GuiUtils.java | 1 - .../java/com/craftaro/core/hooks/mcmmo/McMMOHandler.java | 1 - Core/src/main/java/com/craftaro/core/locale/Message.java | 5 ----- .../com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java | 3 --- .../com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java | 3 --- .../java/com/craftaro/core/nms/v1_21_R1/anvil/AnvilView.java | 2 -- 8 files changed, 21 deletions(-) diff --git a/Core/src/main/java/com/craftaro/core/chat/AdventureUtils.java b/Core/src/main/java/com/craftaro/core/chat/AdventureUtils.java index 56960c30..04194ddc 100644 --- a/Core/src/main/java/com/craftaro/core/chat/AdventureUtils.java +++ b/Core/src/main/java/com/craftaro/core/chat/AdventureUtils.java @@ -11,11 +11,8 @@ import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import net.kyori.adventure.title.Title; -import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.Plugin; @@ -25,12 +22,10 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.time.Duration; import java.time.temporal.ChronoUnit; -import java.time.temporal.TemporalUnit; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import java.util.concurrent.TimeUnit; public class AdventureUtils { private static Method displayNameMethod = null; diff --git a/Core/src/main/java/com/craftaro/core/commands/MainCommand.java b/Core/src/main/java/com/craftaro/core/commands/MainCommand.java index 3f95e2cc..89a03988 100644 --- a/Core/src/main/java/com/craftaro/core/commands/MainCommand.java +++ b/Core/src/main/java/com/craftaro/core/commands/MainCommand.java @@ -5,7 +5,6 @@ import com.craftaro.core.chat.AdventureUtils; import net.kyori.adventure.text.Component; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; diff --git a/Core/src/main/java/com/craftaro/core/gui/GuiUtils.java b/Core/src/main/java/com/craftaro/core/gui/GuiUtils.java index 78806b93..141ea01e 100644 --- a/Core/src/main/java/com/craftaro/core/gui/GuiUtils.java +++ b/Core/src/main/java/com/craftaro/core/gui/GuiUtils.java @@ -8,7 +8,6 @@ import net.kyori.adventure.text.Component; import org.bukkit.ChatColor; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Arrays; diff --git a/Core/src/main/java/com/craftaro/core/hooks/mcmmo/McMMOHandler.java b/Core/src/main/java/com/craftaro/core/hooks/mcmmo/McMMOHandler.java index 0568254c..97be5878 100644 --- a/Core/src/main/java/com/craftaro/core/hooks/mcmmo/McMMOHandler.java +++ b/Core/src/main/java/com/craftaro/core/hooks/mcmmo/McMMOHandler.java @@ -13,7 +13,6 @@ import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.random.ProbabilityUtil; import com.gmail.nossr50.util.skills.RankUtils; -import com.gmail.nossr50.util.skills.SkillActivationType; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.entity.LivingEntity; diff --git a/Core/src/main/java/com/craftaro/core/locale/Message.java b/Core/src/main/java/com/craftaro/core/locale/Message.java index fdc206a2..5e4cd57d 100644 --- a/Core/src/main/java/com/craftaro/core/locale/Message.java +++ b/Core/src/main/java/com/craftaro/core/locale/Message.java @@ -4,16 +4,11 @@ import com.craftaro.core.SongodaCore; import com.craftaro.core.chat.AdventureUtils; import com.craftaro.core.chat.MiniMessagePlaceholder; import com.craftaro.core.compatibility.ServerVersion; -import com.craftaro.core.utils.TextUtils; -import net.kyori.adventure.Adventure; import net.kyori.adventure.text.Component; -import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import java.util.Arrays; import java.util.List; -import java.util.regex.Matcher; /** * The Message object. This holds the message to be sent diff --git a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java index f43d585e..85cd691a 100644 --- a/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R1/src/main/java/com/craftaro/core/nms/v1_18_R1/world/WorldCoreImpl.java @@ -8,16 +8,13 @@ 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.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.ButtonBlock; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.material.FluidState; diff --git a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java index e0817014..85e9e84a 100644 --- a/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R2/src/main/java/com/craftaro/core/nms/v1_18_R2/world/WorldCoreImpl.java @@ -8,16 +8,13 @@ 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.Direction; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.level.BaseSpawner; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.block.ButtonBlock; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.LeverBlock; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.material.FluidState; diff --git a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/anvil/AnvilView.java b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/anvil/AnvilView.java index 484792a0..75fe3ab3 100644 --- a/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/anvil/AnvilView.java +++ b/NMS/NMS-v1_21_R1/src/main/java/com/craftaro/core/nms/v1_21_R1/anvil/AnvilView.java @@ -14,9 +14,7 @@ import net.minecraft.world.inventory.ContainerLevelAccess; import net.minecraft.world.inventory.MenuType; import org.bukkit.Location; import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftAbstractInventoryView; -import org.bukkit.craftbukkit.v1_21_R1.inventory.CraftInventoryView; import org.bukkit.craftbukkit.v1_21_R1.inventory.view.CraftAnvilView; -import org.bukkit.entity.HumanEntity; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; From bdcc9bb0b95c20385b92e8b69b225ef95bc25916 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 20:20:24 +0200 Subject: [PATCH 5/7] feat: Introduce CompatibleCrop class At least EpicFarming and EpicAutomators can make good use of this class and get rid of code that relies on magic numbers and needs cross-version support. --- .../compatibility/crops/CompatibleCrop.java | 85 +++++++++++++++++++ .../crops/CompatibleCropModern.java | 23 +++++ 2 files changed, 108 insertions(+) create mode 100644 Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCrop.java create mode 100644 Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCropModern.java diff --git a/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCrop.java b/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCrop.java new file mode 100644 index 00000000..12efa1b2 --- /dev/null +++ b/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCrop.java @@ -0,0 +1,85 @@ +package com.craftaro.core.compatibility.crops; + +import com.craftaro.core.compatibility.CompatibleMaterial; +import com.cryptomorin.xseries.XBlock; +import com.cryptomorin.xseries.XMaterial; +import org.bukkit.block.Block; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class CompatibleCrop { + private static final boolean USE_LEGACY_IMPLEMENTATION; + + static { + boolean useLegacy = false; + try { + Class.forName("org.bukkit.block.data.Ageable"); + } catch (ClassNotFoundException ignore) { + useLegacy = true; + } + USE_LEGACY_IMPLEMENTATION = useLegacy; + } + + public static boolean isCrop(@Nullable Block block) { + if (block == null) { + return false; + } + + XMaterial material = CompatibleMaterial.getMaterial(block.getType()).get(); + return isCrop(material); + } + + public static boolean isCrop(@Nullable XMaterial material) { + return material != null && XBlock.isCrop(material); + } + + public static boolean isCropFullyGrown(@NotNull Block crop) { + return getCropAge(crop) >= getCropMaxAge(crop); + } + + public static int getCropAge(@NotNull Block crop) { + if (!USE_LEGACY_IMPLEMENTATION) { + return CompatibleCropModern.getCropAge(crop); + } + return crop.getData(); + } + + public static int getCropMaxAge(@NotNull Block crop) { + if (!USE_LEGACY_IMPLEMENTATION) { + return CompatibleCropModern.getCropMaxAge(crop); + } + + switch (CompatibleMaterial.getMaterial(crop.getType()).get()) { + case BEETROOTS: + case NETHER_WART: + return 3; + default: + return 7; + } + } + + public static void resetCropAge(@NotNull Block crop) { + setCropAge(crop, 0); + } + + public static void incrementCropAge(@NotNull Block crop) { + setCropAge(crop, getCropAge(crop) + 1); + } + + private static void setCropAge(Block block, int stage) { + if (stage > getCropMaxAge(block)) { + return; + } + + if (!USE_LEGACY_IMPLEMENTATION) { + CompatibleCropModern.setGrowthStage(block, stage); + return; + } + + try { + Block.class.getDeclaredMethod("setData", byte.class).invoke(block, (byte) stage); + } catch (ReflectiveOperationException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCropModern.java b/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCropModern.java new file mode 100644 index 00000000..59676cb4 --- /dev/null +++ b/Compatibility/src/main/java/com/craftaro/core/compatibility/crops/CompatibleCropModern.java @@ -0,0 +1,23 @@ +package com.craftaro.core.compatibility.crops; + +import org.bukkit.block.Block; +import org.bukkit.block.data.Ageable; +import org.bukkit.block.data.BlockData; + +class CompatibleCropModern { + static int getCropAge(Block block) { + BlockData blockData = block.getBlockData(); + return ((Ageable) blockData).getAge(); + } + + static int getCropMaxAge(Block block) { + BlockData blockData = block.getBlockData(); + return ((Ageable) blockData).getMaximumAge(); + } + + static void setGrowthStage(Block block, int stage) { + Ageable blockData = (Ageable) block.getBlockData(); + blockData.setAge(stage); + block.setBlockData(blockData); + } +} From 380835a4cb0632cc6bac1175ee70eee9acee7f73 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 20:53:28 +0200 Subject: [PATCH 6/7] feat!: delete BlockUtils class FabledSkyBlock is the last plugin to rely on it and should be easy to migrate. We can finally delete it \o/ --- .../com/craftaro/core/utils/BlockUtils.java | 1129 ----------------- .../craftaro/core/utils/BlockUtilsModern.java | 371 ------ 2 files changed, 1500 deletions(-) delete mode 100644 Core/src/main/java/com/craftaro/core/utils/BlockUtils.java delete mode 100644 Core/src/main/java/com/craftaro/core/utils/BlockUtilsModern.java diff --git a/Core/src/main/java/com/craftaro/core/utils/BlockUtils.java b/Core/src/main/java/com/craftaro/core/utils/BlockUtils.java deleted file mode 100644 index 19b247b8..00000000 --- a/Core/src/main/java/com/craftaro/core/utils/BlockUtils.java +++ /dev/null @@ -1,1129 +0,0 @@ -package com.craftaro.core.utils; - -import com.craftaro.core.compatibility.ClassMapping; -import com.craftaro.core.compatibility.CompatibleMaterial; -import com.craftaro.core.compatibility.MethodMapping; -import com.craftaro.core.compatibility.ServerVersion; -import com.craftaro.core.nms.Nms; -import com.craftaro.core.nms.world.SWorld; -import com.craftaro.core.nms.world.WorldCore; -import com.cryptomorin.xseries.XBlock; -import com.cryptomorin.xseries.XMaterial; -import org.bukkit.Effect; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.EnumSet; -import java.util.Optional; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * @deprecated This class will be removed in the future and replaced with a more maintainable system. - */ -@Deprecated -public class BlockUtils { - protected static final Set DOORS; - protected static final Set PRESSURE_PLATES; - protected static final Set FENCE_GATES; - protected static final Set TRAP_DOORS; - protected static final boolean useLegacy = Material.getMaterial("OAK_LOG") == null; - protected static Method legacySetBlockData = null; - protected static Method legacyUpdateBlockData = null; - - static { - DOORS = EnumSet.noneOf(Material.class); - PRESSURE_PLATES = EnumSet.noneOf(Material.class); - FENCE_GATES = EnumSet.noneOf(Material.class); - TRAP_DOORS = EnumSet.noneOf(Material.class); - - for (Material material : Material.values()) { - String name = material.name(); - if (name.contains("DOOR") && !name.contains("ITEM")) { - if (name.contains("TRAP")) { - TRAP_DOORS.add(material); - } else { - DOORS.add(material); - } - } else if (name.contains("GATE") && !name.contains("END")) { - FENCE_GATES.add(material); - } else if (name.contains("_PLATE")) { - PRESSURE_PLATES.add(material); - } - } - - if (useLegacy) { - try { - //legacyUpdateBlockData = Block.class.getDeclaredMethod("update"); - legacySetBlockData = Block.class.getDeclaredMethod("setData", byte.class); - } catch (NoSuchMethodException ignore) { - } - } - } - - /** - * Interact with this block to either update redstone or open doors - * - * @param b block to update - * - * @return if this block's state was updated - */ - public static boolean tryInteract(Block b) { - final Material bType = b.getType(); - - if (isOpenable(bType)) { - toggleDoorStates(true, b); - return true; - } else if (bType == Material.LEVER) { - toggleLever(b); - return true; - } else if (bType.name().endsWith("_BUTTON")) { - pressButton(b); - return true; - } - - return false; - } - - /** - * Change a pressure plate's redstone state - * - * @param plate plate to update - * @param power power to set to 0-15 (wood plates are active if greater than 0) - */ - public static void updatePressurePlate(Block plate, int power) { - if (useLegacy && legacySetBlockData != null) { - _updatePressurePlateLegacy(plate, power); - } else { - BlockUtilsModern._updatePressurePlateModern(plate, power); - } - } - - private static void _updatePressurePlateLegacy(Block plate, int power) { - final Material m = plate.getType(); - - try { - if (m.name().equals("GOLD_PLATE") || m.name().equals("IRON_PLATE")) { - legacySetBlockData.invoke(plate, (byte) (power & 0x15)); - } else if (m.name().endsWith("_PLATE")) { - legacySetBlockData.invoke(plate, (byte) (power == 0 ? 0 : 1)); - } - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - - public static void pressButton(Block button) { - if (useLegacy && legacySetBlockData != null) { - _pressButtonLegacy(button); - } else { - BlockUtilsModern._pressButtonModern(button); - } - } - - public static void releaseButton(Block button) { - if (useLegacy && legacySetBlockData != null) { - _releaseButtonLegacy(button); - } else { - BlockUtilsModern._releaseButtonModern(button); - } - } - - private static void _pressButtonLegacy(Block button) { - final Material m = button.getType(); - - if (!m.name().endsWith("_BUTTON")) { - return; - } - - try { - legacySetBlockData.invoke(button, (byte) (button.getData() | (31 & 0x8))); - button.getState().update(); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - - private static void _releaseButtonLegacy(Block button) { - final Material m = button.getType(); - - if (!m.name().endsWith("_BUTTON")) { - return; - } - - try { - legacySetBlockData.invoke(button, (byte) (button.getData() & ~0x8)); - button.getState().update(); - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - - public static void toggleLever(Block lever) { - if (useLegacy && legacySetBlockData != null) { - _toggleLeverLegacy(lever); - } else { - BlockUtilsModern._toggleLeverModern(lever); - } - } - - private static void _toggleLeverLegacy(Block lever) { - final Material m = lever.getType(); - - if (m != Material.LEVER) { - return; - } - - try { - legacySetBlockData.invoke(lever, (byte) (lever.getData() ^ 0x8)); - lever.getState().update(); - //lever.getWorld().playEffect(lever.getLocation(), Effect.CLICK1, 0); - // now we need to update the redstone around it... -// int data = lever.getData() & ~0x8; -// Block attached; -// switch(data) { -// case 0: -// attached = lever.getRelative(BlockFace.UP); -// break; -// case 1: -// attached = lever.getRelative(BlockFace.WEST); -// break; -// case 2: -// attached = lever.getRelative(BlockFace.EAST); -// break; -// case 3: -// attached = lever.getRelative(BlockFace.NORTH); -// break; -// case 4: -// attached = lever.getRelative(BlockFace.SOUTH); -// break; -// case 5: -// attached = lever.getRelative(BlockFace.DOWN); -// break; -// default: -// return; -// } -// - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - - /** - * Change all of the given door states to be inverse; that is, if a door is - * open, it will be closed afterwards. If the door is closed, it will become - * open. - *

- * Note that the blocks given must be the bottom block of the door. - * - * @param allowDoorToOpen If FALSE, and the door is currently CLOSED, it - * will NOT be opened! - * @param doors Blocks given must be the bottom block of the door - */ - public static void toggleDoorStates(boolean allowDoorToOpen, Block... doors) { - if (useLegacy && legacySetBlockData != null) { - _toggleDoorStatesLegacy(allowDoorToOpen, doors); - } else { - BlockUtilsModern._toggleDoorStatesModern(allowDoorToOpen, doors); - } - } - - private static void _toggleDoorStatesLegacy(boolean allowDoorToOpen, Block... doors) { - try { - for (Block door : doors) { - if (door == null) { - continue; - } - - boolean isTop = (door.getData() & 0x8) != 0; - if (isTop) { - // The lower half of the door contains the direction & open/close state - door = door.getRelative(BlockFace.DOWN); - } - - // If we aren't allowing the door to open, check if it's already closed - if (!allowDoorToOpen && (door.getData() & 0x4) == 0) { - // The door is already closed and we don't want to open it - // the bit 0x4 is set when the door is open - continue; - } - - // Now xor both data values with 0x4, the flag that states if the door is open - legacySetBlockData.invoke(door, (byte) (door.getData() ^ 0x4)); - - // Play the door open/close sound - door.getWorld().playEffect(door.getLocation(), Effect.DOOR_TOGGLE, 0); - } - } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - - /** - * Get the double door for the given block - */ - public static Block getDoubleDoor(Block block) { - // TODO? if legacy, just search N/S/E/W to see if there's another door nearby - if (!isOpenable(block.getType())) { - return null; - } - - return BlockUtilsModern._getDoubleDoorModern(block); - } - - public static boolean isOpenable(Material m) { - return DOORS.contains(m) || - FENCE_GATES.contains(m) || - TRAP_DOORS.contains(m); - } - - public static BlockFace getDoorClosedDirection(Block door) { - return useLegacy ? _getDoorClosedDirectionLegacy(door) : BlockUtilsModern._getDoorClosedDirectionModern(door); - } - - private static BlockFace _getDoorClosedDirectionLegacy(Block door) { - final Material type = door.getType(); - - if (DOORS.contains(type)) { - boolean isTop = (door.getData() & 0x8) != 0; - - if (isTop) { - // The lower half of the door contains the direction & open/close state - door = door.getRelative(BlockFace.DOWN); - if (door.getType() != type) { - return null; - } - } - - boolean isOpen = (door.getData() & 0x4) != 0; - - //int facing = (door.getData() & 0x3); - // [east, south, west, north] - boolean facingNS = (door.getData() & 0x1) != 0; - if (facingNS) { - return isOpen ? BlockFace.EAST : BlockFace.SOUTH; - } else { - return isOpen ? BlockFace.SOUTH : BlockFace.EAST; - } - } else if (FENCE_GATES.contains(door.getType())) { - boolean isOpen = (door.getData() & 0x4) != 0; - - //int facing = (door.getData() & 0x3); - // so fence gate orientations are [south, west, north, east] - boolean facingNS = (door.getData() & 0x1) == 0; - if (facingNS) { - return isOpen ? BlockFace.EAST : BlockFace.SOUTH; - } else { - return isOpen ? BlockFace.SOUTH : BlockFace.EAST; - } - } else if (TRAP_DOORS.contains(door.getType())) { - boolean isOpen = (door.getData() & 0x4) != 0; - - // [south, north, east, west] - boolean facingNS = (door.getData() & 0x3) <= 1; - if (facingNS) { - return isOpen ? BlockFace.EAST : BlockFace.SOUTH; - } else { - return isOpen ? BlockFace.SOUTH : BlockFace.EAST; - } - } - - return null; - } - - /* Only to be used by #updateAdjacentComparators */ - private static Method chunkToNmsChunk, nmsChunkGetWorld, craftBlockGetPosition, craftBlockBlockDataGetter, blockDataGetBlock, craftMagicNumbersGetBlockByMaterial, nmsWorldUpdateAdjacentComparators; - /* Only to be used by #updateAdjacentComparators */ - private static Constructor blockPositionConstructor; - - /** - * Manually trigger the updateAdjacentComparators method for containers - * - * @param loc The Location of the container - * - * @deprecated Use {@link WorldCore#updateAdjacentComparators(Block)} - * via {@link Nms#getImplementations()} instead. - */ - @Deprecated - public static void updateAdjacentComparators(Location loc) { - if (loc == null || loc.getWorld() == null) { - return; - } - - Block craftBlock = loc.getBlock(); - - try { - if (chunkToNmsChunk == null) { - chunkToNmsChunk = MethodMapping.CB_GENERIC__GET_HANDLE.getMethod(ClassMapping.CRAFT_CHUNK.getClazz()); - nmsChunkGetWorld = MethodMapping.MC_CHUNK__GET_WORLD.getMethod(chunkToNmsChunk.getReturnType()); - - craftBlockGetPosition = MethodMapping.CB_BLOCK__GET_POSITION.getMethod(ClassMapping.CRAFT_BLOCK.getClazz()); - if (craftBlockGetPosition == null) { - blockPositionConstructor = ClassMapping.BLOCK_POSITION.getClazz().getConstructor(double.class, double.class, double.class); - } - - nmsWorldUpdateAdjacentComparators = MethodMapping.WORLD__UPDATE_ADJACENT_COMPARATORS.getMethod(ClassMapping.WORLD.getClazz()); - - craftBlockBlockDataGetter = MethodMapping.CB_BLOCK__GET_NMS.getMethod(ClassMapping.CRAFT_BLOCK.getClazz()); - blockDataGetBlock = MethodMapping.I_BLOCK_DATA__GET_BLOCK.getMethod(ClassMapping.I_BLOCK_DATA.getClazz()); - if (craftBlockBlockDataGetter == null || blockDataGetBlock == null) { - craftMagicNumbersGetBlockByMaterial = MethodMapping.CRAFT_MAGIC_NUMBERS__GET_BLOCK__MATERIAL.getMethod(ClassMapping.CRAFT_MAGIC_NUMBERS.getClazz()); - } - } - - Object nmsChunk = chunkToNmsChunk.invoke(loc.getChunk()); - Object nmsWorld = nmsChunkGetWorld.invoke(nmsChunk); - - Object blockPosition; - if (craftBlockGetPosition != null) { - blockPosition = craftBlockGetPosition.invoke(craftBlock); - } else { - blockPosition = blockPositionConstructor.newInstance(loc.getX(), loc.getY(), loc.getZ()); - } - - Object nmsBlock; - if (craftBlockBlockDataGetter != null) { - nmsBlock = blockDataGetBlock.invoke(craftBlockBlockDataGetter.invoke(craftBlock)); - } else { - nmsBlock = craftMagicNumbersGetBlockByMaterial.invoke(null, craftBlock.getType()); - } - - nmsWorldUpdateAdjacentComparators.invoke(nmsWorld, blockPosition, nmsBlock); - } catch (NullPointerException | ReflectiveOperationException ex) { - ex.printStackTrace(); - } - } - - /* Only to be used by #setBlockFast */ - private static Class clazzIBlockData, clazzBlocks, clazzCraftWorld, clazzBlockPosition; - /* Only to be used by #setBlockFast */ - private static Method getHandle, getByCombinedId, setType, getChunkAt, getBlockData; - - /** - * Set a block to a certain type by updating the block directly in the - * NMS chunk. - *

- * The chunk must be loaded and players must relog if they have the - * chunk loaded in order to use this method. - * - * @deprecated Use {@link SWorld#setBlockFast(int, int, int, Material)} - * via {@link Nms#getImplementations()} instead. - */ - @Deprecated - public static void setBlockFast(World world, int x, int y, int z, Material material, byte data) { - try { - // Cache reflection - if (clazzIBlockData == null) { - clazzIBlockData = ClassMapping.I_BLOCK_DATA.getClazz(); - clazzBlockPosition = ClassMapping.BLOCK_POSITION.getClazz(); - clazzCraftWorld = ClassMapping.CRAFT_WORLD.getClazz(); - clazzBlocks = ClassMapping.BLOCKS.getClazz(); - Class clazzBlock = ClassMapping.BLOCK.getClazz(); - Class clazzWorld = ClassMapping.WORLD.getClazz(); - Class clazzChunk = ClassMapping.CHUNK.getClazz(); - - getHandle = clazzCraftWorld.getMethod("getHandle"); - getChunkAt = MethodMapping.WORLD__GET_CHUNK_AT.getMethod(clazzWorld); - - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { - getBlockData = MethodMapping.BLOCK__GET_BLOCK_DATA.getMethod(ClassMapping.BLOCK.getClazz()); - setType = MethodMapping.CHUNK__SET_BLOCK_STATE.getMethod(ClassMapping.CHUNK.getClazz()); - } else { - getByCombinedId = clazzBlock.getMethod("getByCombinedId", int.class); - setType = clazzChunk.getMethod("a", clazzBlockPosition, clazzIBlockData); - } - } - - // invoke and cast objects. - Object craftWorld = clazzCraftWorld.cast(world); - Object nmsWorld = getHandle.invoke(craftWorld); - Object chunk = getChunkAt.invoke(nmsWorld, x >> 4, z >> 4); - Object blockPosition = clazzBlockPosition.getConstructor(int.class, int.class, int.class).newInstance(x & 0xF, y, z & 0xF); - - // Invoke final method. - if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { - Object block = clazzBlocks.getField(material.name()).get(null); - Object IBlockData = getBlockData.invoke(block); - setType.invoke(chunk, blockPosition, IBlockData, true); - } else { - Object IBlockData = getByCombinedId.invoke(null, material.getId() + (data << 12)); - setType.invoke(chunk, blockPosition, IBlockData); - } - } catch (Exception ex) { - ex.printStackTrace(); - } - } - - /** - * @deprecated Use {@link SWorld#setBlockFast(int, int, int, Material)} - * via {@link Nms#getImplementations()} instead. - */ - @Deprecated - public static void setBlockFast(World world, int x, int y, int z, XMaterial material, byte data) { - setBlockFast(world, x, y, z, material.parseMaterial(), data); - } - - /** - * Checks if a crop is at its max growth stage - * - * @param block The crop block to check - * - * @return true if the block is a crop and at its max growth stage - */ - public static boolean isCropFullyGrown(Block block) { - if (block == null) { - return false; - } - - if (!useLegacy) { - return BlockUtilsModern._isCropFullyGrown(block); - } - - Optional mat = CompatibleMaterial.getMaterial(block.getType()); - if (!mat.isPresent() || !XBlock.isCrop(mat.get())) { - return false; - } - - return block.getData() >= (mat.get() == XMaterial.BEETROOTS || mat.get() == XMaterial.NETHER_WART ? 3 : 7); - } - - /** - * Gets the max growth stage for the given block - * - * @param block The crop block to check - * - * @return The max growth stage of the given crop type, or -1 if not a crop - */ - public static int getMaxGrowthStage(Block block) { - if (block == null) { - return -1; - } - - if (!useLegacy) { - return BlockUtilsModern._getMaxGrowthStage(block); - } - - Optional mat = CompatibleMaterial.getMaterial(block.getType()); - if (!mat.isPresent() || !XBlock.isCrop(mat.get())) { - return -1; - } - - return (mat.get() == XMaterial.BEETROOTS || mat.get() == XMaterial.NETHER_WART ? 3 : 7); - } - - /** - * Gets the max growth stage for the given material - * - * @param material The material of the crop - * - * @return The max growth stage of the given crop type - */ - public static int getMaxGrowthStage(Material material) { - if (material == null) { - return -1; - } - - if (!useLegacy) { - return BlockUtilsModern._getMaxGrowthStage(material); - } - - Optional mat = CompatibleMaterial.getMaterial(material); - if (!mat.isPresent() || XBlock.isCrop(mat.get())) { - return -1; - } - - return (mat.get() == XMaterial.BEETROOTS || mat.get() == XMaterial.NETHER_WART ? 3 : 7); - } - - /** - * Sets the max growth stage for the given block - * - * @param block The crop block to change - * @param stage new growth stage to use - */ - public static void setGrowthStage(Block block, int stage) { - if (block == null) { - } else if (!useLegacy) { - BlockUtilsModern._setGrowthStage(block, stage); - } else { - Optional mat = CompatibleMaterial.getMaterial(block.getType()); - if (mat.isPresent() && XBlock.isCrop(mat.get())) { - try { - legacySetBlockData.invoke(block, (byte) Math.max(0, Math.min(stage, (mat.get() == XMaterial.BEETROOTS || mat.get() == XMaterial.NETHER_WART ? 3 : 7)))); - } catch (Exception ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - } - } - - /** - * Increments the growth stage for the given block - * - * @param block The crop block to grow - */ - public static void incrementGrowthStage(Block block) { - if (block == null) { - } else if (!useLegacy) { - BlockUtilsModern._incrementGrowthStage(block); - } else { - Optional mat = CompatibleMaterial.getMaterial(block.getType()); - - if (mat.isPresent() && XBlock.isCrop(mat.get()) && block.getData() < (mat.get() == XMaterial.BEETROOTS || mat.get() == XMaterial.NETHER_WART ? 3 : 7)) { - try { - legacySetBlockData.invoke(block, (byte) (block.getData() + 1)); - } catch (Exception ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - } - } - - /** - * Sets a crop's growth back to stage 0 - * - * @param block The crop block to set - */ - public static void resetGrowthStage(Block block) { - if (block == null) { - } else if (!useLegacy) { - BlockUtilsModern._resetGrowthStage(block); - } else { - Optional mat = CompatibleMaterial.getMaterial(block.getType()); - - if (mat.isPresent() && XBlock.isCrop(mat.get())) { - try { - legacySetBlockData.invoke(block, (byte) 0); - } catch (Exception ex) { - Logger.getLogger(BlockUtils.class.getName()).log(Level.SEVERE, "Unexpected method error", ex); - } - } - } - } - - /** - * Check to see if this material does not impede player/mob movement at all. - * - * @param m material to check - * - * @return true if this material doesn't have a solid hitbox - */ - public static boolean canPassThrough(Material m) { - switch (m.name()) { - case "ACACIA_BUTTON": - case "ACACIA_PRESSURE_PLATE": - case "ACACIA_SAPLING": - case "ACACIA_SIGN": - case "ACACIA_WALL_SIGN": - case "ACTIVATOR_RAIL": - case "AIR": - case "ATTACHED_MELON_STEM": - case "ATTACHED_PUMPKIN_STEM": - case "AZURE_BLUET": - case "BEETROOTS": - case "BIRCH_BUTTON": - case "BIRCH_PRESSURE_PLATE": - case "BIRCH_SAPLING": - case "BIRCH_SIGN": - case "BIRCH_WALL_SIGN": - case "BLACK_WALL_BANNER": - case "BLUE_BANNER": - case "BLUE_ORCHID": - case "BLUE_WALL_BANNER": - case "BRAIN_CORAL_FAN": - case "BRAIN_CORAL_WALL_FAN": - case "BROWN_BANNER": - case "BROWN_MUSHROOM": - case "BROWN_WALL_BANNER": - case "BUBBLE_CORAL_FAN": - case "BUBBLE_CORAL_WALL_FAN": - case "CARROTS": - case "CAVE_AIR": - case "COBWEB": - case "CORNFLOWER": - case "CYAN_BANNER": - case "CYAN_WALL_BANNER": - case "DANDELION": - case "DARK_OAK_BUTTON": - case "DARK_OAK_PRESSURE_PLATE": - case "DARK_OAK_SAPLING": - case "DARK_OAK_SIGN": - case "DARK_OAK_WALL_SIGN": - case "DEAD_BRAIN_CORAL_FAN": - case "DEAD_BRAIN_CORAL_WALL_FAN": - case "DEAD_BUBBLE_CORAL_FAN": - case "DEAD_BUBBLE_CORAL_WALL_FAN": - case "DEAD_BUSH": - case "DEAD_FIRE_CORAL_FAN": - case "DEAD_FIRE_CORAL_WALL_FAN": - case "DEAD_HORN_CORAL_FAN": - case "DEAD_HORN_CORAL_WALL_FAN": - case "DEAD_TUBE_CORAL_FAN": - case "DEAD_TUBE_CORAL_WALL_FAN": - case "DETECTOR_RAIL": - case "END_PORTAL": - case "FERN": - case "FIRE": - case "FIRE_CORAL_FAN": - case "FIRE_CORAL_WALL_FAN": - case "GRASS": - case "GRAY_BANNER": - case "GRAY_WALL_BANNER": - case "GREEN_BANNER": - case "GREEN_WALL_BANNER": - case "HEAVY_WEIGHTED_PRESSURE_PLATE": - case "HORN_CORAL_FAN": - case "HORN_CORAL_WALL_FAN": - case "JUNGLE_BUTTON": - case "JUNGLE_PRESSURE_PLATE": - case "JUNGLE_SAPLING": - case "JUNGLE_SIGN": - case "JUNGLE_WALL_SIGN": - case "KELP": - case "LADDER": - case "LARGE_FERN": - case "LAVA": - case "LEVER": - case "LIGHT_BLUE_BANNER": - case "LIGHT_BLUE_WALL_BANNER": - case "LIGHT_GRAY_BANNER": - case "LIGHT_GRAY_WALL_BANNER": - case "LIGHT_WEIGHTED_PRESSURE_PLATE": - case "LILAC": - case "LILY_OF_THE_VALLEY": - case "LIME_BANNER": - case "MAGENTA_BANNER": - case "MAGENTA_WALL_BANNER": - case "MELON_STEM": - case "NETHER_PORTAL": - case "NETHER_WART": - case "OAK_BUTTON": - case "OAK_PRESSURE_PLATE": - case "OAK_SAPLING": - case "OAK_SIGN": - case "OAK_WALL_SIGN": - case "ORANGE_BANNER": - case "ORANGE_TULIP": - case "ORANGE_WALL_BANNER": - case "OXEYE_DAISY": - case "PEONY": - case "PINK_BANNER": - case "PINK_TULIP": - case "PINK_WALL_BANNER": - case "POTATOES": - case "POWERED_RAIL": - case "PUMPKIN_STEM": - case "PURPLE_BANNER": - case "PURPLE_WALL_BANNER": - case "RAIL": - case "REDSTONE_TORCH": - case "REDSTONE_WALL_TORCH": - case "REDSTONE_WIRE": - case "RED_BANNER": - case "RED_MUSHROOM": - case "RED_TULIP": - case "RED_WALL_BANNER": - case "ROSE_BUSH": - case "SCAFFOLDING": - case "SEAGRASS": - case "SPRUCE_BUTTON": - case "SPRUCE_PRESSURE_PLATE": - case "SPRUCE_SAPLING": - case "SPRUCE_SIGN": - case "SPRUCE_WALL_SIGN": - case "STONE_BUTTON": - case "STONE_PRESSURE_PLATE": - case "STRUCTURE_VOID": - case "SUGAR_CANE": - case "SUNFLOWER": - case "SWEET_BERRY_BUSH": - case "TALL_GRASS": - case "TALL_SEAGRASS": - case "TORCH": - case "TRIPWIRE": - case "TRIPWIRE_HOOK": - case "TUBE_CORAL_FAN": - case "TUBE_CORAL_WALL_FAN": - case "VINE": - case "VOID_AIR": - case "WALL_TORCH": - case "WATER": - case "WHEAT": - case "WHITE_BANNER": - case "WHITE_TULIP": - case "WHITE_WALL_BANNER": - case "WITHER_ROSE": - case "YELLOW_BANNER": - case "YELLOW_WALL_BANNER": - // Legacy values: - case "WEB": - case "LONG_GRASS": - case "YELLOW_FLOWER": - case "RED_ROSE": - case "CROPS": - case "SIGN_POST": - case "RAILS": - case "WALL_SIGN": - case "STONE_PLATE": - case "WOOD_PLATE": - case "REDSTONE_TORCH_OFF": - case "REDSTONE_TORCH_ON": - case "SUGAR_CANE_BLOCK": - case "PORTAL": - case "ENDER_PORTAL": - case "CARROT": - case "POTATO": - case "WOOD_BUTTON": - case "GOLD_PLATE": - case "IRON_PLATE": - case "DOUBLE_PLANT": - case "STANDING_BANNER": - case "WALL_BANNER": - case "BEETROOT_BLOCK": - return true; - default: - return false; - } - } - - /** - * Check to see if a player can walk into this material
- * This includes blocks like slabs and stairs - * - * @param m material to check - * - * @return true if this is a block that can be walked through or up - */ - public static boolean canWalkTo(Material m) { - switch (m.name()) { - case "ACACIA_BUTTON": - case "ACACIA_PRESSURE_PLATE": - case "ACACIA_SAPLING": - case "ACACIA_SIGN": - case "ACACIA_SLAB": - case "ACACIA_STAIRS": - case "ACACIA_TRAPDOOR": - case "ACACIA_WALL_SIGN": - case "ACTIVATOR_RAIL": - case "AIR": - case "ANDESITE_SLAB": - case "ANDESITE_STAIRS": - case "ATTACHED_MELON_STEM": - case "ATTACHED_PUMPKIN_STEM": - case "AZURE_BLUET": - case "BEETROOTS": - case "BIRCH_BUTTON": - case "BIRCH_DOOR": - case "BIRCH_FENCE_GATE": - case "BIRCH_PRESSURE_PLATE": - case "BIRCH_SAPLING": - case "BIRCH_SIGN": - case "BIRCH_SLAB": - case "BIRCH_STAIRS": - case "BIRCH_TRAPDOOR": - case "BIRCH_WALL_SIGN": - case "BLACK_CARPET": - case "BLACK_WALL_BANNER": - case "BLUE_BANNER": - case "BLUE_CARPET": - case "BLUE_ORCHID": - case "BLUE_WALL_BANNER": - case "BRAIN_CORAL_FAN": - case "BRAIN_CORAL_WALL_FAN": - case "BRICK_SLAB": - case "BRICK_STAIRS": - case "BROWN_BANNER": - case "BROWN_CARPET": - case "BROWN_MUSHROOM": - case "BROWN_WALL_BANNER": - case "BUBBLE_CORAL_FAN": - case "BUBBLE_CORAL_WALL_FAN": - case "CAKE": - case "CAMPFIRE": - case "CARROTS": - case "CAVE_AIR": - case "COBBLESTONE_SLAB": - case "COBBLESTONE_STAIRS": - case "COBWEB": - case "COMPARATOR": - case "CORNFLOWER": - case "CUT_RED_SANDSTONE_SLAB": - case "CUT_SANDSTONE_SLAB": - case "CYAN_BANNER": - case "CYAN_CARPET": - case "CYAN_WALL_BANNER": - case "DANDELION": - case "DARK_OAK_BUTTON": - case "DARK_OAK_DOOR": - case "DARK_OAK_FENCE_GATE": - case "DARK_OAK_PRESSURE_PLATE": - case "DARK_OAK_SAPLING": - case "DARK_OAK_SIGN": - case "DARK_OAK_SLAB": - case "DARK_OAK_STAIRS": - case "DARK_OAK_TRAPDOOR": - case "DARK_OAK_WALL_SIGN": - case "DARK_PRISMARINE_SLAB": - case "DARK_PRISMARINE_STAIRS": - case "DAYLIGHT_DETECTOR": - case "DEAD_BRAIN_CORAL_FAN": - case "DEAD_BRAIN_CORAL_WALL_FAN": - case "DEAD_BUBBLE_CORAL_FAN": - case "DEAD_BUBBLE_CORAL_WALL_FAN": - case "DEAD_BUSH": - case "DEAD_FIRE_CORAL_FAN": - case "DEAD_FIRE_CORAL_WALL_FAN": - case "DEAD_HORN_CORAL_FAN": - case "DEAD_HORN_CORAL_WALL_FAN": - case "DEAD_TUBE_CORAL_FAN": - case "DEAD_TUBE_CORAL_WALL_FAN": - case "DETECTOR_RAIL": - case "DIORITE_SLAB": - case "DIORITE_STAIRS": - case "END_PORTAL": - case "END_STONE_BRICK_SLAB": - case "END_STONE_BRICK_STAIRS": - case "FERN": - case "FIRE": - case "FIRE_CORAL_FAN": - case "FIRE_CORAL_WALL_FAN": - case "FLOWER_POT": - case "GRANITE_SLAB": - case "GRANITE_STAIRS": - case "GRASS": - case "GRAY_BANNER": - case "GRAY_CARPET": - case "GRAY_WALL_BANNER": - case "GREEN_BANNER": - case "GREEN_WALL_BANNER": - case "HEAVY_WEIGHTED_PRESSURE_PLATE": - case "HORN_CORAL_FAN": - case "HORN_CORAL_WALL_FAN": - case "IRON_DOOR": - case "JUNGLE_BUTTON": - case "JUNGLE_DOOR": - case "JUNGLE_FENCE_GATE": - case "JUNGLE_PRESSURE_PLATE": - case "JUNGLE_SAPLING": - case "JUNGLE_SIGN": - case "JUNGLE_SLAB": - case "JUNGLE_STAIRS": - case "JUNGLE_TRAPDOOR": - case "JUNGLE_WALL_SIGN": - case "KELP": - case "LADDER": - case "LARGE_FERN": - case "LAVA": - case "LEVER": - case "LIGHT_BLUE_BANNER": - case "LIGHT_BLUE_CARPET": - case "LIGHT_BLUE_WALL_BANNER": - case "LIGHT_GRAY_BANNER": - case "LIGHT_GRAY_CARPET": - case "LIGHT_GRAY_WALL_BANNER": - case "LIGHT_WEIGHTED_PRESSURE_PLATE": - case "LILAC": - case "LILY_OF_THE_VALLEY": - case "LILY_PAD": - case "LIME_BANNER": - case "LIME_CARPET": - case "MAGENTA_BANNER": - case "MAGENTA_CARPET": - case "MAGENTA_WALL_BANNER": - case "MELON_STEM": - case "MOSSY_COBBLESTONE_SLAB": - case "MOSSY_COBBLESTONE_STAIRS": - case "MOSSY_STONE_BRICK_SLAB": - case "MOSSY_STONE_BRICK_STAIRS": - case "NETHER_BRICK_SLAB": - case "NETHER_BRICK_STAIRS": - case "NETHER_PORTAL": - case "NETHER_WART": - case "OAK_BUTTON": - case "OAK_DOOR": - case "OAK_FENCE_GATE": - case "OAK_PRESSURE_PLATE": - case "OAK_SAPLING": - case "OAK_SIGN": - case "OAK_SLAB": - case "OAK_STAIRS": - case "OAK_TRAPDOOR": - case "OAK_WALL_SIGN": - case "ORANGE_BANNER": - case "ORANGE_CARPET": - case "ORANGE_TULIP": - case "ORANGE_WALL_BANNER": - case "OXEYE_DAISY": - case "PEONY": - case "PETRIFIED_OAK_SLAB": - case "PINK_BANNER": - case "PINK_CARPET": - case "PINK_TULIP": - case "PINK_WALL_BANNER": - case "POLISHED_ANDESITE_SLAB": - case "POLISHED_ANDESITE_STAIRS": - case "POLISHED_DIORITE_SLAB": - case "POLISHED_DIORITE_STAIRS": - case "POLISHED_GRANITE_SLAB": - case "POLISHED_GRANITE_STAIRS": - case "POTATOES": - case "POTTED_ACACIA_SAPLING": - case "POTTED_ALLIUM": - case "POTTED_AZURE_BLUET": - case "POTTED_BAMBOO": - case "POTTED_BIRCH_SAPLING": - case "POTTED_BLUE_ORCHID": - case "POTTED_BROWN_MUSHROOM": - case "POTTED_CACTUS": - case "POTTED_CORNFLOWER": - case "POTTED_DANDELION": - case "POTTED_DARK_OAK_SAPLING": - case "POTTED_DEAD_BUSH": - case "POTTED_FERN": - case "POTTED_JUNGLE_SAPLING": - case "POTTED_LILY_OF_THE_VALLEY": - case "POTTED_OAK_SAPLING": - case "POTTED_ORANGE_TULIP": - case "POTTED_OXEYE_DAISY": - case "POTTED_PINK_TULIP": - case "POTTED_POPPY": - case "POTTED_RED_MUSHROOM": - case "POTTED_RED_TULIP": - case "POTTED_SPRUCE_SAPLING": - case "POTTED_WHITE_TULIP": - case "POTTED_WITHER_ROSE": - case "POWERED_RAIL": - case "PRISMARINE_BRICK_SLAB": - case "PRISMARINE_BRICK_STAIRS": - case "PRISMARINE_SLAB": - case "PRISMARINE_STAIRS": - case "PUMPKIN_STEM": - case "PURPLE_BANNER": - case "PURPLE_CARPET": - case "PURPLE_WALL_BANNER": - case "PURPUR_SLAB": - case "PURPUR_STAIRS": - case "RAIL": - case "REDSTONE_TORCH": - case "REDSTONE_WALL_TORCH": - case "REDSTONE_WIRE": - case "RED_BANNER": - case "RED_CARPET": - case "RED_MUSHROOM": - case "RED_SANDSTONE_SLAB": - case "RED_SANDSTONE_STAIRS": - case "RED_TULIP": - case "RED_WALL_BANNER": - case "REPEATER": - case "ROSE_BUSH": - case "SANDSTONE_SLAB": - case "SANDSTONE_STAIRS": - case "SCAFFOLDING": - case "SEAGRASS": - case "SMOOTH_QUARTZ_SLAB": - case "SMOOTH_QUARTZ_STAIRS": - case "SMOOTH_RED_SANDSTONE_SLAB": - case "SMOOTH_RED_SANDSTONE_STAIRS": - case "SMOOTH_SANDSTONE_SLAB": - case "SMOOTH_SANDSTONE_STAIRS": - case "SMOOTH_STONE_SLAB": - case "SPRUCE_BUTTON": - case "SPRUCE_DOOR": - case "SPRUCE_FENCE_GATE": - case "SPRUCE_PRESSURE_PLATE": - case "SPRUCE_SAPLING": - case "SPRUCE_SIGN": - case "SPRUCE_SLAB": - case "SPRUCE_STAIRS": - case "SPRUCE_TRAPDOOR": - case "SPRUCE_WALL_SIGN": - case "STONECUTTER": - case "STONE_BRICK_SLAB": - case "STONE_BRICK_STAIRS": - case "STONE_BUTTON": - case "STONE_PRESSURE_PLATE": - case "STONE_SLAB": - case "STONE_STAIRS": - case "STRUCTURE_VOID": - case "SUGAR_CANE": - case "SUNFLOWER": - case "SWEET_BERRY_BUSH": - case "TALL_GRASS": - case "TALL_SEAGRASS": - case "TORCH": - case "TRIPWIRE": - case "TRIPWIRE_HOOK": - case "TUBE_CORAL_FAN": - case "TUBE_CORAL_WALL_FAN": - case "VINE": - case "VOID_AIR": - case "WALL_TORCH": - case "WATER": - case "WHEAT": - case "WHITE_BANNER": - case "WHITE_CARPET": - case "WHITE_TULIP": - case "WHITE_WALL_BANNER": - case "WITHER_ROSE": - case "YELLOW_BANNER": - case "YELLOW_CARPET": - case "YELLOW_WALL_BANNER": - // Legacy values: - case "WEB": - case "LONG_GRASS": - case "YELLOW_FLOWER": - case "RED_ROSE": - case "STEP": - case "WOOD_STAIRS": - case "CROPS": - case "SIGN_POST": - case "RAILS": - case "WOODEN_DOOR": - case "WALL_SIGN": - case "STONE_PLATE": - case "IRON_DOOR_BLOCK": - case "WOOD_PLATE": - case "REDSTONE_TORCH_OFF": - case "REDSTONE_TORCH_ON": - case "SNOW": - case "SUGAR_CANE_BLOCK": - case "PORTAL": - case "CAKE_BLOCK": - case "DIODE_BLOCK_OFF": - case "DIODE_BLOCK_ON": - case "TRAP_DOOR": - case "FENCE_GATE": - case "SMOOTH_STAIRS": - case "ENDER_PORTAL": - case "WOOD_STEP": - case "SPRUCE_WOOD_STAIRS": - case "BIRCH_WOOD_STAIRS": - case "JUNGLE_WOOD_STAIRS": - case "CARROT": - case "POTATO": - case "WOOD_BUTTON": - case "GOLD_PLATE": - case "IRON_PLATE": - case "REDSTONE_COMPARATOR_OFF": - case "REDSTONE_COMPARATOR_ON": - case "QUARTZ_STAIRS": - case "DOUBLE_PLANT": - case "STANDING_BANNER": - case "WALL_BANNER": - case "DAYLIGHT_DETECTOR_INVERTED": - case "DOUBLE_STONE_SLAB2": - case "STONE_SLAB2": - case "BEETROOT_BLOCK": - return true; - default: - return false; - } - } -} diff --git a/Core/src/main/java/com/craftaro/core/utils/BlockUtilsModern.java b/Core/src/main/java/com/craftaro/core/utils/BlockUtilsModern.java deleted file mode 100644 index b0ac4c24..00000000 --- a/Core/src/main/java/com/craftaro/core/utils/BlockUtilsModern.java +++ /dev/null @@ -1,371 +0,0 @@ -package com.craftaro.core.utils; - -import com.craftaro.core.SongodaCore; -import com.craftaro.core.compatibility.ClassMapping; -import com.craftaro.core.compatibility.MethodMapping; -import com.craftaro.core.compatibility.ServerVersion; -import org.bukkit.Effect; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.BlockFace; -import org.bukkit.block.data.Ageable; -import org.bukkit.block.data.AnaloguePowerable; -import org.bukkit.block.data.Bisected; -import org.bukkit.block.data.BlockData; -import org.bukkit.block.data.Powerable; -import org.bukkit.block.data.type.Door; -import org.bukkit.block.data.type.Gate; -import org.bukkit.block.data.type.Switch; -import org.bukkit.block.data.type.TrapDoor; - -import java.lang.reflect.Method; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * @deprecated This class will be removed in the future and replaced with a more maintainable system. - */ -@Deprecated -public class BlockUtilsModern { - protected static void _updatePressurePlateModern(Block plate, int power) { - BlockData blockData = plate.getBlockData(); - boolean update = false; - - if (blockData instanceof AnaloguePowerable) { - AnaloguePowerable a = (AnaloguePowerable) blockData; - int toPower = Math.min(a.getMaximumPower(), power); - - if ((update = toPower != a.getPower())) { - a.setPower(toPower); - plate.setBlockData(a); - } - } else if (blockData instanceof Powerable) { - Powerable p = (Powerable) blockData; - - if ((update = p.isPowered() != (power != 0))) { - p.setPowered(power != 0); - plate.setBlockData(p); - } - } - - if (update) { - _updateRedstoneNeighbours(plate); - } - } - - protected static void _toggleLeverModern(Block lever) { - BlockData blockData = lever.getBlockData(); - - if (blockData instanceof Switch) { - Switch s = (Switch) blockData; - s.setPowered(!s.isPowered()); - lever.setBlockData(s); - _updateRedstoneNeighbours(lever); - } - } - - protected static void _pressButtonModern(Block button) { - BlockData blockData = button.getBlockData(); - - if (blockData instanceof Switch) { - Switch s = (Switch) blockData; - s.setPowered(true); - button.setBlockData(s); - _updateRedstoneNeighbours(button); - } - } - - static void _releaseButtonModern(Block button) { - BlockData blockData = button.getBlockData(); - - if (blockData instanceof Switch) { - Switch s = (Switch) blockData; - s.setPowered(false); - button.setBlockData(s); - _updateRedstoneNeighbours(button); - } - } - - private static Class clazzCraftWorld; - private static Class clazzCraftBlock; - private static Class clazzLeverBlock; - private static Class clazzButtonBlock; - private static Class clazzPressurePlateBlock; - private static Method craftWorld_getHandle, craftBlock_getNMS, craftBlock_getPostition, craftBlockData_getState, - nmsLever_updateNeighbours, nmsButton_updateNeighbours, nmsPlate_updateNeighbours, nmsBlockData_getBlock; - - static { - try { - // Cache reflection. - clazzCraftWorld = ClassMapping.CRAFT_WORLD.getClazz(); - clazzCraftBlock = ClassMapping.CRAFT_BLOCK.getClazz(); - - craftWorld_getHandle = MethodMapping.CB_GENERIC__GET_HANDLE.getMethod(clazzCraftWorld); - craftBlock_getPostition = MethodMapping.CB_BLOCK__GET_POSITION.getMethod(clazzCraftBlock); - - craftBlock_getNMS = MethodMapping.CB_BLOCK__GET_NMS.getMethod(clazzCraftBlock); - Class clazzBlockData = ClassMapping.BLOCK_BASE.getClazz("BlockData"); - nmsBlockData_getBlock = MethodMapping.I_BLOCK_DATA__GET_BLOCK.getMethod(clazzBlockData); - - Class clazzCraftBlockData = ClassMapping.CRAFT_BLOCK_DATA.getClazz(); - craftBlockData_getState = MethodMapping.CB_BLOCK_DATA__GET_STATE.getMethod(clazzCraftBlockData); - - Class clazzWorld = ClassMapping.WORLD.getClazz(); - Class clazzBlockState = ClassMapping.I_BLOCK_DATA.getClazz(); - Class clazzBlockPos = ClassMapping.BLOCK_POSITION.getClazz(); - clazzLeverBlock = ClassMapping.BLOCK_LEVER.getClazz(); - clazzButtonBlock = ClassMapping.BLOCK_BUTTON_ABSTRACT.getClazz(); - clazzPressurePlateBlock = ClassMapping.BLOCK_PRESSURE_PLATE_ABSTRACT.getClazz(); - - nmsLever_updateNeighbours = clazzLeverBlock.getDeclaredMethod(ServerVersion.isServerVersionAbove(ServerVersion.V1_13) - ? "e" : "b", clazzBlockState, clazzWorld, clazzBlockPos); - nmsLever_updateNeighbours.setAccessible(true); - - nmsButton_updateNeighbours = clazzButtonBlock.getDeclaredMethod(ServerVersion.isServerVersionAbove(ServerVersion.V1_13) - ? "f" : "c", clazzBlockState, clazzWorld, clazzBlockPos); - nmsButton_updateNeighbours.setAccessible(true); - - nmsPlate_updateNeighbours = clazzPressurePlateBlock.getDeclaredMethod("a", clazzWorld, clazzBlockPos); - nmsPlate_updateNeighbours.setAccessible(true); - } catch (Throwable ex) { - Logger.getLogger(BlockUtilsModern.class.getName()).log(Level.SEVERE, null, ex); - } - } - - static void _updateRedstoneNeighbours(Block block) { - try { - // spigot made some changes to how data updates work in 1.13+ - // updating the data value of a redstone power source - // does NOT update attatched block power, - // even if you update the block state. (Still broken last I checked in 1.15.2) - // so now we're going to manually call the updateNeighbours block method - - // invoke and cast objects. - Object cworld = clazzCraftWorld.cast(block.getWorld()); - Object mworld = craftWorld_getHandle.invoke(cworld); - Object cblock = clazzCraftBlock.cast(block); - Object mblock = nmsBlockData_getBlock.invoke(craftBlock_getNMS.invoke(cblock)); - Object mpos = craftBlock_getPostition.invoke(cblock); - - // now for testing stuff - if (clazzLeverBlock.isAssignableFrom(mblock.getClass())) { - final Object mstate = craftBlockData_getState.invoke(block.getBlockData()); - nmsLever_updateNeighbours.invoke(mblock, mstate, mworld, mpos); - } else if (clazzButtonBlock.isAssignableFrom(mblock.getClass())) { - final Object mstate = craftBlockData_getState.invoke(block.getBlockData()); - nmsButton_updateNeighbours.invoke(mblock, mstate, mworld, mpos); - } else if (clazzPressurePlateBlock.isAssignableFrom(mblock.getClass())) { - nmsPlate_updateNeighbours.invoke(mblock, mworld, mpos); - } else { - SongodaCore.getLogger().warning("Unknown redstone: " + mblock.getClass().getName()); - } -// -// if(mblock instanceof net.minecraft.server.v1_15_R1.BlockLever) { -// Method updateNeighbours = net.minecraft.server.v1_15_R1.BlockLever.class.getDeclaredMethod("e", net.minecraft.server.v1_15_R1.IBlockData.class, net.minecraft.server.v1_15_R1.World.class, net.minecraft.server.v1_15_R1.BlockPosition.class); -// updateNeighbours.setAccessible(true); -// // IBlockData = block state after being powered -// -// updateNeighbours.invoke(mblock, -// ((org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData) block.getBlockData()).getState(), -// mworld, -// mpos); -// } else if(mblock instanceof net.minecraft.server.v1_15_R1.BlockButtonAbstract) { -// Method updateNeighbours = net.minecraft.server.v1_15_R1.BlockButtonAbstract.class.getDeclaredMethod("f", net.minecraft.server.v1_15_R1.IBlockData.class, net.minecraft.server.v1_15_R1.World.class, net.minecraft.server.v1_15_R1.BlockPosition.class); -// updateNeighbours.setAccessible(true); -// // IBlockData = block state after being powered -// -// updateNeighbours.invoke(mblock, -// ((org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData) block.getBlockData()).getState(), -// mworld, -// mpos); -// } else if(mblock instanceof net.minecraft.server.v1_15_R1.BlockPressurePlateAbstract) { -// Method updateNeighbours = net.minecraft.server.v1_15_R1.BlockPressurePlateAbstract.class.getDeclaredMethod("a", net.minecraft.server.v1_15_R1.World.class, net.minecraft.server.v1_15_R1.BlockPosition.class); -// updateNeighbours.setAccessible(true); -// // IBlockData = block state after being powered -// -// updateNeighbours.invoke(mblock, -// mworld, -// mpos); -// } - } catch (Throwable ex) { - Logger.getLogger(BlockUtilsModern.class.getName()).log(Level.SEVERE, null, ex); - } - } - - protected static void _toggleDoorStatesModern(boolean allowDoorToOpen, Block... doors) { - for (Block door : doors) { - BlockData blockData; - if (door == null || !((blockData = door.getBlockData()) instanceof Door)) { - continue; - } - - Door data = (Door) blockData; - if (!allowDoorToOpen && !data.isOpen()) { - continue; - } - - // The lower half of the door contains the open/close state - if (data.getHalf() == Bisected.Half.TOP) { - Block lowerHalf = door.getRelative(BlockFace.DOWN); - - if (lowerHalf.getBlockData() instanceof Door) { - Door lowerData = (Door) lowerHalf.getBlockData(); - lowerData.setOpen(!data.isOpen()); - lowerHalf.setBlockData(lowerData); - } - } else { - data.setOpen(!data.isOpen()); - door.setBlockData(data); - } - - // Play the door open/close sound - door.getWorld().playEffect(door.getLocation(), Effect.DOOR_TOGGLE, 0); - } - } - - protected static Block _getDoubleDoorModern(Block block) { - BlockData bd = block.getBlockData(); - Block door = null; - - if (bd instanceof Door) { - final Door d = (Door) bd; - final BlockFace face = d.getFacing(); - - if (face.getModX() == 0) { - if (d.getHinge() == Door.Hinge.RIGHT) { - door = block.getRelative(face.getModZ(), 0, 0); - } else { - door = block.getRelative(-face.getModZ(), 0, 0); - } - } else { - if (d.getHinge() == Door.Hinge.RIGHT) { - door = block.getRelative(0, 0, -face.getModX()); - } else { - door = block.getRelative(0, 0, face.getModX()); - } - } - } - - return door != null && door.getBlockData() instanceof Door - && ((Door) door.getBlockData()).getHinge() != ((Door) bd).getHinge() ? door : null; - } - - protected static BlockFace _getDoorClosedDirectionModern(Block door) { - if (BlockUtils.DOORS.contains(door.getType())) { - BlockData bd = door.getBlockData(); - - if (bd instanceof Door) { - Door d = (Door) bd; - - // The lower half of the door contains the open/close state - if (d.getHalf() == Bisected.Half.TOP) { - door = door.getRelative(BlockFace.DOWN); - - if (door.getBlockData() instanceof Door) { - d = (Door) door.getBlockData(); - } else { - return null; - } - } - - final BlockFace face = d.getFacing(); - - // now we /could/ also correct for the hinge (top block), it's not needed information - if (face.getModX() == 0) { - return d.isOpen() ? BlockFace.EAST : BlockFace.SOUTH; - } else { - return d.isOpen() ? BlockFace.SOUTH : BlockFace.EAST; - } - } - } else if (BlockUtils.FENCE_GATES.contains(door.getType())) { - BlockData bd = door.getBlockData(); - - if (bd instanceof Gate) { - Gate g = (Gate) bd; - final BlockFace face = g.getFacing(); - - if (face.getModX() == 0) { - return g.isOpen() ? BlockFace.EAST : BlockFace.SOUTH; - } else { - return g.isOpen() ? BlockFace.SOUTH : BlockFace.EAST; - } - } - } else if (BlockUtils.TRAP_DOORS.contains(door.getType())) { - BlockData bd = door.getBlockData(); - - if (bd instanceof TrapDoor) { - TrapDoor t = (TrapDoor) bd; - - if (!t.isOpen()) { - return BlockFace.UP; - } else { - return t.getFacing(); - } - } - } - - return null; - } - - protected static boolean _isCropFullyGrown(Block block) { - BlockData data = block.getBlockData(); - - if (data instanceof Ageable) { - return ((Ageable) data).getAge() == ((Ageable) data).getMaximumAge(); - } - - return false; - } - - protected static int _getMaxGrowthStage(Block block) { - BlockData data = block.getBlockData(); - - if (data instanceof Ageable) { - return ((Ageable) data).getMaximumAge(); - } - - return -1; - } - - protected static int _getMaxGrowthStage(Material material) { - BlockData data = material.createBlockData(); - - if (data instanceof Ageable) { - return ((Ageable) data).getMaximumAge(); - } - - return -1; - } - - public static void _setGrowthStage(Block block, int stage) { - BlockData data = block.getBlockData(); - - if (data instanceof Ageable) { - ((Ageable) data).setAge(Math.max(0, Math.min(stage, ((Ageable) data).getMaximumAge()))); - block.setBlockData(data); - } - } - - public static void _incrementGrowthStage(Block block) { - BlockData data = block.getBlockData(); - - if (data instanceof Ageable) { - final int max = ((Ageable) data).getMaximumAge(); - final int age = ((Ageable) data).getAge(); - - if (age < max) { - ((Ageable) data).setAge(age + 1); - block.setBlockData(data); - } - } - } - - public static void _resetGrowthStage(Block block) { - BlockData data = block.getBlockData(); - - if (data instanceof Ageable) { - ((Ageable) data).setAge(0); - block.setBlockData(data); - } - } -} From e9f84d339313293a95cf84b8d0b5db961e003963 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 20:55:51 +0200 Subject: [PATCH 7/7] Release v3.6.0-SNAPSHOT --- Compatibility/pom.xml | 2 +- Core/pom.xml | 2 +- NMS/NMS-API/pom.xml | 2 +- NMS/NMS-v1_10_R1/pom.xml | 2 +- NMS/NMS-v1_11_R1/pom.xml | 2 +- NMS/NMS-v1_12_R1/pom.xml | 2 +- NMS/NMS-v1_13_R1/pom.xml | 2 +- NMS/NMS-v1_13_R2/pom.xml | 2 +- NMS/NMS-v1_14_R1/pom.xml | 2 +- NMS/NMS-v1_15_R1/pom.xml | 2 +- NMS/NMS-v1_16_R1/pom.xml | 2 +- NMS/NMS-v1_16_R2/pom.xml | 2 +- NMS/NMS-v1_16_R3/pom.xml | 2 +- NMS/NMS-v1_17_R1/pom.xml | 2 +- NMS/NMS-v1_18_R1/pom.xml | 2 +- NMS/NMS-v1_18_R2/pom.xml | 2 +- NMS/NMS-v1_19_0/pom.xml | 2 +- NMS/NMS-v1_19_R1/pom.xml | 2 +- NMS/NMS-v1_19_R2/pom.xml | 2 +- NMS/NMS-v1_19_R3/pom.xml | 2 +- NMS/NMS-v1_20_R1/pom.xml | 2 +- NMS/NMS-v1_20_R2/pom.xml | 2 +- NMS/NMS-v1_20_R3/pom.xml | 2 +- NMS/NMS-v1_20_R4/pom.xml | 2 +- NMS/NMS-v1_21_R1/pom.xml | 2 +- NMS/NMS-v1_8_R1/pom.xml | 2 +- NMS/NMS-v1_8_R2/pom.xml | 2 +- NMS/NMS-v1_8_R3/pom.xml | 2 +- NMS/NMS-v1_9_R1/pom.xml | 2 +- NMS/NMS-v1_9_R2/pom.xml | 2 +- NMS/NMS/pom.xml | 2 +- pom.xml | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Compatibility/pom.xml b/Compatibility/pom.xml index 60d64992..37155455 100644 --- a/Compatibility/pom.xml +++ b/Compatibility/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../pom.xml CraftaroCore-Compatibility diff --git a/Core/pom.xml b/Core/pom.xml index c8c27415..e437afd4 100644 --- a/Core/pom.xml +++ b/Core/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../pom.xml CraftaroCore diff --git a/NMS/NMS-API/pom.xml b/NMS/NMS-API/pom.xml index bd665f8c..42275b6c 100644 --- a/NMS/NMS-API/pom.xml +++ b/NMS/NMS-API/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-API diff --git a/NMS/NMS-v1_10_R1/pom.xml b/NMS/NMS-v1_10_R1/pom.xml index 51c8d35c..3ff002ba 100644 --- a/NMS/NMS-v1_10_R1/pom.xml +++ b/NMS/NMS-v1_10_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_10_R1 diff --git a/NMS/NMS-v1_11_R1/pom.xml b/NMS/NMS-v1_11_R1/pom.xml index e43a1bb7..c4558ffb 100644 --- a/NMS/NMS-v1_11_R1/pom.xml +++ b/NMS/NMS-v1_11_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_11_R1 diff --git a/NMS/NMS-v1_12_R1/pom.xml b/NMS/NMS-v1_12_R1/pom.xml index 252067bc..d8279acf 100644 --- a/NMS/NMS-v1_12_R1/pom.xml +++ b/NMS/NMS-v1_12_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_12_R1 diff --git a/NMS/NMS-v1_13_R1/pom.xml b/NMS/NMS-v1_13_R1/pom.xml index 064cbd30..58735792 100644 --- a/NMS/NMS-v1_13_R1/pom.xml +++ b/NMS/NMS-v1_13_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_13_R1 diff --git a/NMS/NMS-v1_13_R2/pom.xml b/NMS/NMS-v1_13_R2/pom.xml index 4109262a..acc4a284 100644 --- a/NMS/NMS-v1_13_R2/pom.xml +++ b/NMS/NMS-v1_13_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_13_R2 diff --git a/NMS/NMS-v1_14_R1/pom.xml b/NMS/NMS-v1_14_R1/pom.xml index 0960ae28..f38bf1cc 100644 --- a/NMS/NMS-v1_14_R1/pom.xml +++ b/NMS/NMS-v1_14_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_14_R1 diff --git a/NMS/NMS-v1_15_R1/pom.xml b/NMS/NMS-v1_15_R1/pom.xml index 4b203c53..cab315d6 100644 --- a/NMS/NMS-v1_15_R1/pom.xml +++ b/NMS/NMS-v1_15_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_15_R1 diff --git a/NMS/NMS-v1_16_R1/pom.xml b/NMS/NMS-v1_16_R1/pom.xml index 0b285685..a81b4610 100644 --- a/NMS/NMS-v1_16_R1/pom.xml +++ b/NMS/NMS-v1_16_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_16_R1 diff --git a/NMS/NMS-v1_16_R2/pom.xml b/NMS/NMS-v1_16_R2/pom.xml index c6c15481..061dc729 100644 --- a/NMS/NMS-v1_16_R2/pom.xml +++ b/NMS/NMS-v1_16_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_16_R2 diff --git a/NMS/NMS-v1_16_R3/pom.xml b/NMS/NMS-v1_16_R3/pom.xml index 2f7d71b6..fe006acb 100644 --- a/NMS/NMS-v1_16_R3/pom.xml +++ b/NMS/NMS-v1_16_R3/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_16_R3 diff --git a/NMS/NMS-v1_17_R1/pom.xml b/NMS/NMS-v1_17_R1/pom.xml index 301064af..7e89be55 100644 --- a/NMS/NMS-v1_17_R1/pom.xml +++ b/NMS/NMS-v1_17_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_17_R1 diff --git a/NMS/NMS-v1_18_R1/pom.xml b/NMS/NMS-v1_18_R1/pom.xml index a2b28a91..8d742292 100644 --- a/NMS/NMS-v1_18_R1/pom.xml +++ b/NMS/NMS-v1_18_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_18_R1 diff --git a/NMS/NMS-v1_18_R2/pom.xml b/NMS/NMS-v1_18_R2/pom.xml index e5f3c7bd..496d1bd9 100644 --- a/NMS/NMS-v1_18_R2/pom.xml +++ b/NMS/NMS-v1_18_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_18_R2 diff --git a/NMS/NMS-v1_19_0/pom.xml b/NMS/NMS-v1_19_0/pom.xml index e0e1f9bd..ddf652a3 100644 --- a/NMS/NMS-v1_19_0/pom.xml +++ b/NMS/NMS-v1_19_0/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_19_0 diff --git a/NMS/NMS-v1_19_R1/pom.xml b/NMS/NMS-v1_19_R1/pom.xml index f2615aa3..29dd955f 100644 --- a/NMS/NMS-v1_19_R1/pom.xml +++ b/NMS/NMS-v1_19_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_19_R1 diff --git a/NMS/NMS-v1_19_R2/pom.xml b/NMS/NMS-v1_19_R2/pom.xml index baa0d25f..c6e59ff9 100644 --- a/NMS/NMS-v1_19_R2/pom.xml +++ b/NMS/NMS-v1_19_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_19_R2 diff --git a/NMS/NMS-v1_19_R3/pom.xml b/NMS/NMS-v1_19_R3/pom.xml index d51de039..890f7382 100644 --- a/NMS/NMS-v1_19_R3/pom.xml +++ b/NMS/NMS-v1_19_R3/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_19_R3 diff --git a/NMS/NMS-v1_20_R1/pom.xml b/NMS/NMS-v1_20_R1/pom.xml index c826d635..658b113a 100644 --- a/NMS/NMS-v1_20_R1/pom.xml +++ b/NMS/NMS-v1_20_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_20_R1 diff --git a/NMS/NMS-v1_20_R2/pom.xml b/NMS/NMS-v1_20_R2/pom.xml index b407ed84..b6398388 100644 --- a/NMS/NMS-v1_20_R2/pom.xml +++ b/NMS/NMS-v1_20_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_20_R2 diff --git a/NMS/NMS-v1_20_R3/pom.xml b/NMS/NMS-v1_20_R3/pom.xml index 30e585f7..f4567c7f 100644 --- a/NMS/NMS-v1_20_R3/pom.xml +++ b/NMS/NMS-v1_20_R3/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_20_R3 diff --git a/NMS/NMS-v1_20_R4/pom.xml b/NMS/NMS-v1_20_R4/pom.xml index 37b18887..f6bfd76e 100644 --- a/NMS/NMS-v1_20_R4/pom.xml +++ b/NMS/NMS-v1_20_R4/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_20_R4 diff --git a/NMS/NMS-v1_21_R1/pom.xml b/NMS/NMS-v1_21_R1/pom.xml index c1e439df..59e634a7 100644 --- a/NMS/NMS-v1_21_R1/pom.xml +++ b/NMS/NMS-v1_21_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_21_R1 diff --git a/NMS/NMS-v1_8_R1/pom.xml b/NMS/NMS-v1_8_R1/pom.xml index 30d07696..eb035177 100644 --- a/NMS/NMS-v1_8_R1/pom.xml +++ b/NMS/NMS-v1_8_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_8_R1 diff --git a/NMS/NMS-v1_8_R2/pom.xml b/NMS/NMS-v1_8_R2/pom.xml index 686b5b7e..cf494c15 100644 --- a/NMS/NMS-v1_8_R2/pom.xml +++ b/NMS/NMS-v1_8_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_8_R2 diff --git a/NMS/NMS-v1_8_R3/pom.xml b/NMS/NMS-v1_8_R3/pom.xml index 55da7f2c..29f89b20 100644 --- a/NMS/NMS-v1_8_R3/pom.xml +++ b/NMS/NMS-v1_8_R3/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_8_R3 diff --git a/NMS/NMS-v1_9_R1/pom.xml b/NMS/NMS-v1_9_R1/pom.xml index fb402a86..1d5d09f3 100644 --- a/NMS/NMS-v1_9_R1/pom.xml +++ b/NMS/NMS-v1_9_R1/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_9_R1 diff --git a/NMS/NMS-v1_9_R2/pom.xml b/NMS/NMS-v1_9_R2/pom.xml index 38693c45..0ed7b093 100644 --- a/NMS/NMS-v1_9_R2/pom.xml +++ b/NMS/NMS-v1_9_R2/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS-v1_9_R2 diff --git a/NMS/NMS/pom.xml b/NMS/NMS/pom.xml index ea911064..82d4a78f 100644 --- a/NMS/NMS/pom.xml +++ b/NMS/NMS/pom.xml @@ -7,7 +7,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT ../../pom.xml CraftaroCore-NMS diff --git a/pom.xml b/pom.xml index ce3d11a1..1771d940 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.craftaro CraftaroCore-Modules - 3.5.0-SNAPSHOT + 3.6.0-SNAPSHOT pom