Replace #updateAdjacentComparators implementation(+ move to NMS modules)

This commit is contained in:
Christian Koop 2022-08-27 22:35:37 +02:00
parent b779194e3e
commit 3d20f439e1
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3
21 changed files with 323 additions and 59 deletions

View File

@ -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 */

View File

@ -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.<br>
* A spawner is deemed inactive if no player is within its activation range.

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}