From 9c3d6e5339bfae7f9df5ce676e591ba87b9dd585 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 18:54:40 +0200 Subject: [PATCH] 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); + } }