From 3d20f439e1855fa60e066831970899c1398a1a48 Mon Sep 17 00:00:00 2001 From: Christian Koop Date: Sat, 27 Aug 2022 22:35:37 +0200 Subject: [PATCH] Replace #updateAdjacentComparators implementation(+ move to NMS modules) --- .../com/songoda/core/utils/BlockUtils.java | 59 ------------------- .../com/songoda/core/nms/world/WorldCore.java | 8 +++ .../nms/v1_10_R1/world/WorldCoreImpl.java | 16 +++++ .../nms/v1_11_R1/world/WorldCoreImpl.java | 16 +++++ .../nms/v1_12_R1/world/WorldCoreImpl.java | 16 +++++ .../nms/v1_13_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_13_R2/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_14_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_15_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_16_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_16_R2/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_16_R3/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_17_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_18_R1/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_18_R2/world/WorldCoreImpl.java | 17 ++++++ .../nms/v1_19_R1/world/WorldCoreImpl.java | 17 ++++++ .../core/nms/v1_8_R1/world/WorldCoreImpl.java | 16 +++++ .../core/nms/v1_8_R2/world/WorldCoreImpl.java | 16 +++++ .../core/nms/v1_8_R3/world/WorldCoreImpl.java | 16 +++++ .../core/nms/v1_9_R1/world/WorldCoreImpl.java | 16 +++++ .../core/nms/v1_9_R2/world/WorldCoreImpl.java | 16 +++++ 21 files changed, 323 insertions(+), 59 deletions(-) diff --git a/Core/src/main/java/com/songoda/core/utils/BlockUtils.java b/Core/src/main/java/com/songoda/core/utils/BlockUtils.java index 3329cff4..51138daf 100644 --- a/Core/src/main/java/com/songoda/core/utils/BlockUtils.java +++ b/Core/src/main/java/com/songoda/core/utils/BlockUtils.java @@ -328,65 +328,6 @@ public class BlockUtils { 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 - */ - 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 */ diff --git a/NMS/NMS-API/src/main/java/com/songoda/core/nms/world/WorldCore.java b/NMS/NMS-API/src/main/java/com/songoda/core/nms/world/WorldCore.java index 75da36f8..04df5aaa 100644 --- a/NMS/NMS-API/src/main/java/com/songoda/core/nms/world/WorldCore.java +++ b/NMS/NMS-API/src/main/java/com/songoda/core/nms/world/WorldCore.java @@ -6,6 +6,7 @@ import org.bukkit.World; import org.bukkit.block.BlockState; import org.bukkit.block.CreatureSpawner; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; import java.lang.reflect.InvocationTargetException; @@ -30,6 +31,13 @@ public interface WorldCore { */ void randomTickChunk(Chunk bukkitChunk, int tickAmount) throws NoSuchFieldException, IllegalAccessException; + /** + * Manually trigger the updateAdjacentComparators method for containers + * + * @param loc The Location of the container + */ + void updateAdjacentComparators(@NotNull Location loc); + /** * 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/songoda/core/nms/v1_10_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_10_R1/src/main/java/com/songoda/core/nms/v1_10_R1/world/WorldCoreImpl.java index 25d93b42..a579c1a1 100644 --- a/NMS/NMS-v1_10_R1/src/main/java/com/songoda/core/nms/v1_10_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_10_R1/src/main/java/com/songoda/core/nms/v1_10_R1/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_10_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_10_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_10_R1.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -85,4 +90,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_11_R1/src/main/java/com/songoda/core/nms/v1_11_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_11_R1/src/main/java/com/songoda/core/nms/v1_11_R1/world/WorldCoreImpl.java index 966be49c..e61cf992 100644 --- a/NMS/NMS-v1_11_R1/src/main/java/com/songoda/core/nms/v1_11_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_11_R1/src/main/java/com/songoda/core/nms/v1_11_R1/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_11_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_11_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_11_R1.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -85,4 +90,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_12_R1/src/main/java/com/songoda/core/nms/v1_12_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_12_R1/src/main/java/com/songoda/core/nms/v1_12_R1/world/WorldCoreImpl.java index 447c2624..3d7bb3af 100644 --- a/NMS/NMS-v1_12_R1/src/main/java/com/songoda/core/nms/v1_12_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_12_R1/src/main/java/com/songoda/core/nms/v1_12_R1/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_12_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_12_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_12_R1.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -85,4 +90,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_13_R1/src/main/java/com/songoda/core/nms/v1_13_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R1/src/main/java/com/songoda/core/nms/v1_13_R1/world/WorldCoreImpl.java index 3e34e414..6b702dbb 100644 --- a/NMS/NMS-v1_13_R1/src/main/java/com/songoda/core/nms/v1_13_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R1/src/main/java/com/songoda/core/nms/v1_13_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_13_R1.Block; import net.minecraft.server.v1_13_R1.BlockPosition; import net.minecraft.server.v1_13_R1.Chunk; import net.minecraft.server.v1_13_R1.ChunkSection; @@ -18,7 +19,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_13_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_13_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -89,4 +95,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_13_R2/src/main/java/com/songoda/core/nms/v1_13_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_13_R2/src/main/java/com/songoda/core/nms/v1_13_R2/world/WorldCoreImpl.java index 28b29315..f8178c66 100644 --- a/NMS/NMS-v1_13_R2/src/main/java/com/songoda/core/nms/v1_13_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_13_R2/src/main/java/com/songoda/core/nms/v1_13_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_13_R2.Block; import net.minecraft.server.v1_13_R2.BlockPosition; import net.minecraft.server.v1_13_R2.Chunk; import net.minecraft.server.v1_13_R2.ChunkSection; @@ -18,7 +19,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_13_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -96,4 +102,15 @@ public class WorldCoreImpl implements WorldCore { chunk.world.methodProfiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_14_R1/src/main/java/com/songoda/core/nms/v1_14_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_14_R1/src/main/java/com/songoda/core/nms/v1_14_R1/world/WorldCoreImpl.java index 3dbffc9f..01eb81f1 100644 --- a/NMS/NMS-v1_14_R1/src/main/java/com/songoda/core/nms/v1_14_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_14_R1/src/main/java/com/songoda/core/nms/v1_14_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_14_R1.Block; import net.minecraft.server.v1_14_R1.BlockPosition; import net.minecraft.server.v1_14_R1.Chunk; import net.minecraft.server.v1_14_R1.ChunkCoordIntPair; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_14_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_14_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -93,4 +99,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_15_R1/src/main/java/com/songoda/core/nms/v1_15_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_15_R1/src/main/java/com/songoda/core/nms/v1_15_R1/world/WorldCoreImpl.java index b32e1e7a..07e3ab2c 100644 --- a/NMS/NMS-v1_15_R1/src/main/java/com/songoda/core/nms/v1_15_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_15_R1/src/main/java/com/songoda/core/nms/v1_15_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_15_R1.Block; import net.minecraft.server.v1_15_R1.BlockPosition; import net.minecraft.server.v1_15_R1.Chunk; import net.minecraft.server.v1_15_R1.ChunkCoordIntPair; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_15_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -96,4 +102,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_16_R1/src/main/java/com/songoda/core/nms/v1_16_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R1/src/main/java/com/songoda/core/nms/v1_16_R1/world/WorldCoreImpl.java index b86c9568..94163f10 100644 --- a/NMS/NMS-v1_16_R1/src/main/java/com/songoda/core/nms/v1_16_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R1/src/main/java/com/songoda/core/nms/v1_16_R1/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_16_R1.Block; import net.minecraft.server.v1_16_R1.BlockPosition; import net.minecraft.server.v1_16_R1.Chunk; import net.minecraft.server.v1_16_R1.ChunkCoordIntPair; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -97,4 +103,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_16_R2/src/main/java/com/songoda/core/nms/v1_16_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R2/src/main/java/com/songoda/core/nms/v1_16_R2/world/WorldCoreImpl.java index bdf815df..72124e2b 100644 --- a/NMS/NMS-v1_16_R2/src/main/java/com/songoda/core/nms/v1_16_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R2/src/main/java/com/songoda/core/nms/v1_16_R2/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_16_R2.Block; import net.minecraft.server.v1_16_R2.BlockPosition; import net.minecraft.server.v1_16_R2.Chunk; import net.minecraft.server.v1_16_R2.ChunkCoordIntPair; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_16_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -97,4 +103,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_16_R3/src/main/java/com/songoda/core/nms/v1_16_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_16_R3/src/main/java/com/songoda/core/nms/v1_16_R3/world/WorldCoreImpl.java index c4b0f5c3..c839b054 100644 --- a/NMS/NMS-v1_16_R3/src/main/java/com/songoda/core/nms/v1_16_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_16_R3/src/main/java/com/songoda/core/nms/v1_16_R3/world/WorldCoreImpl.java @@ -7,6 +7,7 @@ import com.songoda.core.nms.world.SItemStack; import com.songoda.core.nms.world.SSpawner; import com.songoda.core.nms.world.SWorld; import com.songoda.core.nms.world.WorldCore; +import net.minecraft.server.v1_16_R3.Block; import net.minecraft.server.v1_16_R3.BlockPosition; import net.minecraft.server.v1_16_R3.Chunk; import net.minecraft.server.v1_16_R3.ChunkCoordIntPair; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_16_R3.CraftChunk; +import org.bukkit.craftbukkit.v1_16_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -98,4 +104,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_17_R1/src/main/java/com/songoda/core/nms/v1_17_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_17_R1/src/main/java/com/songoda/core/nms/v1_17_R1/world/WorldCoreImpl.java index 7f800f18..19e002cb 100644 --- a/NMS/NMS-v1_17_R1/src/main/java/com/songoda/core/nms/v1_17_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_17_R1/src/main/java/com/songoda/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.Block; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.chunk.Chunk; import net.minecraft.world.level.chunk.ChunkSection; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_17_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_17_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -96,4 +102,15 @@ public class WorldCoreImpl implements WorldCore { profiler.exit(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_18_R1/src/main/java/com/songoda/core/nms/v1_18_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R1/src/main/java/com/songoda/core/nms/v1_18_R1/world/WorldCoreImpl.java index 88bec313..f952cec1 100644 --- a/NMS/NMS-v1_18_R1/src/main/java/com/songoda/core/nms/v1_18_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R1/src/main/java/com/songoda/core/nms/v1_18_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.Block; import net.minecraft.world.level.block.state.IBlockData; import net.minecraft.world.level.chunk.Chunk; import net.minecraft.world.level.chunk.ChunkSection; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_18_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_18_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_18_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -93,4 +99,15 @@ public class WorldCoreImpl implements WorldCore { gameprofilerfiller.c(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().b(); + + serverLevel.c(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_18_R2/src/main/java/com/songoda/core/nms/v1_18_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_18_R2/src/main/java/com/songoda/core/nms/v1_18_R2/world/WorldCoreImpl.java index fc0198eb..0d64279f 100644 --- a/NMS/NMS-v1_18_R2/src/main/java/com/songoda/core/nms/v1_18_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_18_R2/src/main/java/com/songoda/core/nms/v1_18_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.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_18_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_18_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_18_R2.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -92,4 +98,15 @@ public class WorldCoreImpl implements WorldCore { gameProfilerFiller.pop(); } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + ServerLevel serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPos blockPos = new BlockPos(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateNeighbourForOutputSignal(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_19_R1/src/main/java/com/songoda/core/nms/v1_19_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_19_R1/src/main/java/com/songoda/core/nms/v1_19_R1/world/WorldCoreImpl.java index 02b63a43..9e75966e 100644 --- a/NMS/NMS-v1_19_R1/src/main/java/com/songoda/core/nms/v1_19_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_19_R1/src/main/java/com/songoda/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.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.LevelChunk; import net.minecraft.world.level.chunk.LevelChunkSection; @@ -20,7 +21,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_19_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_19_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -90,4 +96,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + ServerLevel serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPos blockPos = new BlockPos(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = ((CraftBlock) loc.getBlock()).getNMS().getBlock(); + + serverLevel.updateNeighbourForOutputSignal(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_8_R1/src/main/java/com/songoda/core/nms/v1_8_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R1/src/main/java/com/songoda/core/nms/v1_8_R1/world/WorldCoreImpl.java index 2c024638..55c35dc1 100644 --- a/NMS/NMS-v1_8_R1/src/main/java/com/songoda/core/nms/v1_8_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R1/src/main/java/com/songoda/core/nms/v1_8_R1/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_8_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_8_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R1.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -87,4 +92,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_8_R2/src/main/java/com/songoda/core/nms/v1_8_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R2/src/main/java/com/songoda/core/nms/v1_8_R2/world/WorldCoreImpl.java index bd0d76bc..770896ea 100644 --- a/NMS/NMS-v1_8_R2/src/main/java/com/songoda/core/nms/v1_8_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R2/src/main/java/com/songoda/core/nms/v1_8_R2/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_8_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_8_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R2.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -87,4 +92,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_8_R3/src/main/java/com/songoda/core/nms/v1_8_R3/world/WorldCoreImpl.java b/NMS/NMS-v1_8_R3/src/main/java/com/songoda/core/nms/v1_8_R3/world/WorldCoreImpl.java index 45fcb655..144be4dc 100644 --- a/NMS/NMS-v1_8_R3/src/main/java/com/songoda/core/nms/v1_8_R3/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_8_R3/src/main/java/com/songoda/core/nms/v1_8_R3/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_8_R3.CraftChunk; +import org.bukkit.craftbukkit.v1_8_R3.CraftWorld; +import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -86,4 +91,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_9_R1/src/main/java/com/songoda/core/nms/v1_9_R1/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R1/src/main/java/com/songoda/core/nms/v1_9_R1/world/WorldCoreImpl.java index 66c3e421..99b48185 100644 --- a/NMS/NMS-v1_9_R1/src/main/java/com/songoda/core/nms/v1_9_R1/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R1/src/main/java/com/songoda/core/nms/v1_9_R1/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_9_R1.CraftChunk; +import org.bukkit.craftbukkit.v1_9_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_9_R1.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -86,4 +91,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } } diff --git a/NMS/NMS-v1_9_R2/src/main/java/com/songoda/core/nms/v1_9_R2/world/WorldCoreImpl.java b/NMS/NMS-v1_9_R2/src/main/java/com/songoda/core/nms/v1_9_R2/world/WorldCoreImpl.java index 5dfeba18..ad35fe04 100644 --- a/NMS/NMS-v1_9_R2/src/main/java/com/songoda/core/nms/v1_9_R2/world/WorldCoreImpl.java +++ b/NMS/NMS-v1_9_R2/src/main/java/com/songoda/core/nms/v1_9_R2/world/WorldCoreImpl.java @@ -18,7 +18,12 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.CreatureSpawner; import org.bukkit.craftbukkit.v1_9_R2.CraftChunk; +import org.bukkit.craftbukkit.v1_9_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_9_R2.util.CraftMagicNumbers; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; public class WorldCoreImpl implements WorldCore { @Override @@ -85,4 +90,15 @@ public class WorldCoreImpl implements WorldCore { } } } + + @Override + public void updateAdjacentComparators(@NotNull Location loc) { + Objects.requireNonNull(loc.getWorld()); + + WorldServer serverLevel = ((CraftWorld) loc.getWorld()).getHandle(); + BlockPosition blockPos = new BlockPosition(loc.getX(), loc.getY(), loc.getZ()); + Block nmsBlock = CraftMagicNumbers.getBlock(loc.getBlock().getType()); + + serverLevel.updateAdjacentComparators(blockPos, nmsBlock); + } }