From 570db7b455f2239cc0e5394096ec62a7c0d04505 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Wed, 2 Oct 2024 19:17:33 +0200 Subject: [PATCH] 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); + } }