Reimplement BlockUtils#updateAdjacentComparators in WorldCore

The implementation broke in 1.19.4 mid-version.
Fixes `java.lang.NoSuchMethodException: org.bukkit.craftbukkit.v1_19_R3.CraftChunk.getHandle()`


Related commit: a3e73be1aa
This commit is contained in:
Christian Koop 2023-04-19 21:50:30 +02:00
parent 57f9f1f911
commit e21db58a67
No known key found for this signature in database
GPG Key ID: 89A8181384E010A3
24 changed files with 257 additions and 2 deletions

View File

@ -4,6 +4,7 @@ import com.songoda.core.compatibility.ClassMapping;
import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.core.compatibility.MethodMapping;
import com.songoda.core.compatibility.ServerVersion;
import com.songoda.core.nms.NmsManager;
import org.bukkit.Effect;
import org.bukkit.Location;
import org.bukkit.Material;
@ -337,7 +338,10 @@ public class BlockUtils {
* Manually trigger the updateAdjacentComparators method for containers
*
* @param loc The Location of the container
*
* @deprecated Broken in/since Spigot 1.19.4! Use {@link com.songoda.core.nms.world.WorldCore#updateAdjacentComparators(Block)} on {@link NmsManager#getWorld()} instead
*/
@Deprecated
public static void updateAdjacentComparators(Location loc) {
if (loc == null || loc.getWorld() == null) {
return;

View File

@ -3,12 +3,11 @@ package com.songoda.core.nms.world;
import org.bukkit.Chunk;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.inventory.ItemStack;
import java.lang.reflect.InvocationTargetException;
public interface WorldCore {
SSpawner getSpawner(CreatureSpawner spawner);
@ -30,6 +29,8 @@ public interface WorldCore {
*/
void randomTickChunk(Chunk bukkitChunk, int tickAmount) throws ReflectiveOperationException;
void updateAdjacentComparators(Block bukkitBlock);
/**
* 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,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_10_R1.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -85,4 +87,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_10_R1.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_11_R1.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -85,4 +87,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_11_R1.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_12_R1.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -85,4 +87,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_12_R1.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -16,8 +16,10 @@ import net.minecraft.server.v1_13_R1.MobSpawnerAbstract;
import net.minecraft.server.v1_13_R1.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_13_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_13_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -89,4 +91,13 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_13_R1.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -16,8 +16,10 @@ import net.minecraft.server.v1_13_R2.MobSpawnerAbstract;
import net.minecraft.server.v1_13_R2.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_13_R2.CraftChunk;
import org.bukkit.craftbukkit.v1_13_R2.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -96,4 +98,13 @@ public class WorldCoreImpl implements WorldCore {
chunk.world.methodProfiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_13_R2.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.server.v1_14_R1.MobSpawnerAbstract;
import net.minecraft.server.v1_14_R1.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_14_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_14_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -93,4 +95,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_14_R1.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.server.v1_15_R1.MobSpawnerAbstract;
import net.minecraft.server.v1_15_R1.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_15_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_15_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -96,4 +98,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_15_R1.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.server.v1_16_R1.MobSpawnerAbstract;
import net.minecraft.server.v1_16_R1.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_16_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_16_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -97,4 +99,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_16_R1.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.server.v1_16_R2.MobSpawnerAbstract;
import net.minecraft.server.v1_16_R2.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_16_R2.CraftChunk;
import org.bukkit.craftbukkit.v1_16_R2.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -97,4 +99,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_16_R2.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.server.v1_16_R3.MobSpawnerAbstract;
import net.minecraft.server.v1_16_R3.WorldServer;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_16_R3.CraftChunk;
import org.bukkit.craftbukkit.v1_16_R3.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -98,4 +100,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_16_R3.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.ChunkSection;
import net.minecraft.world.level.material.Fluid;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_17_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_17_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -96,4 +98,13 @@ public class WorldCoreImpl implements WorldCore {
profiler.exit();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.world.level.World nmsWorld = craftChunk.getHandle().getWorld();
nmsWorld.updateAdjacentComparators(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.ChunkSection;
import net.minecraft.world.level.material.Fluid;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_18_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_18_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -93,4 +95,13 @@ public class WorldCoreImpl implements WorldCore {
gameprofilerfiller.c();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
WorldServer nmsWorld = craftChunk.getHandle().q;
nmsWorld.c(craftBlock.getPosition(), craftBlock.getNMS().b());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.material.FluidState;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_18_R2.CraftChunk;
import org.bukkit.craftbukkit.v1_18_R2.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -92,4 +94,13 @@ public class WorldCoreImpl implements WorldCore {
gameProfilerFiller.pop();
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
ServerLevel nmsWorld = craftChunk.getHandle().q;
nmsWorld.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.material.FluidState;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_19_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -90,4 +92,13 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
ServerLevel nmsWorld = craftChunk.getHandle().q;
nmsWorld.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.material.FluidState;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_19_R1.CraftChunk;
import org.bukkit.craftbukkit.v1_19_R1.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -90,4 +92,13 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
ServerLevel nmsWorld = craftChunk.getHandle().q;
nmsWorld.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,8 +18,10 @@ import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.material.FluidState;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_19_R2.CraftChunk;
import org.bukkit.craftbukkit.v1_19_R2.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -90,4 +92,13 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
ServerLevel nmsWorld = craftChunk.getHandle().q;
nmsWorld.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -19,8 +19,10 @@ import net.minecraft.world.level.chunk.LevelChunkSection;
import net.minecraft.world.level.material.FluidState;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.block.CreatureSpawner;
import org.bukkit.craftbukkit.v1_19_R3.CraftChunk;
import org.bukkit.craftbukkit.v1_19_R3.block.CraftBlock;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -91,4 +93,13 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
LevelChunk nmsChunk = (LevelChunk) craftChunk.getHandle(ChunkStatus.FULL);
nmsChunk.q.updateNeighbourForOutputSignal(craftBlock.getPosition(), craftBlock.getNMS().getBlock());
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_8_R1.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -87,4 +89,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_8_R1.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_8_R2.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -87,4 +89,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_8_R2.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_8_R3.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -86,4 +88,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_8_R3.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_9_R1.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -86,4 +88,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_9_R1.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}

View File

@ -18,6 +18,8 @@ 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.block.CraftBlock;
import org.bukkit.craftbukkit.v1_9_R2.util.CraftMagicNumbers;
import org.bukkit.inventory.ItemStack;
public class WorldCoreImpl implements WorldCore {
@ -85,4 +87,14 @@ public class WorldCoreImpl implements WorldCore {
}
}
}
@Override
public void updateAdjacentComparators(org.bukkit.block.Block bukkitBlock) {
CraftBlock craftBlock = (CraftBlock) bukkitBlock;
CraftChunk craftChunk = (CraftChunk) bukkitBlock.getChunk();
net.minecraft.server.v1_9_R2.World nmsWorld = craftChunk.getHandle().getWorld();
BlockPosition blockPosition = new BlockPosition(craftBlock.getX(), craftBlock.getY(), craftBlock.getZ());
nmsWorld.updateAdjacentComparators(blockPosition, CraftMagicNumbers.getBlock(craftBlock));
}
}