2d09115b3a
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
57 Zeilen
2.4 KiB
Diff
57 Zeilen
2.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: dfsek <dfsek@protonmail.com>
|
|
Date: Sat, 19 Jun 2021 20:15:59 -0700
|
|
Subject: [PATCH] Add more LimitedRegion API
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
index 10fb28aabf8c9f764cdd614edbeec4523f8ab431..0ea1586bab74983fca19dcc5415fbc7a044fe186 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CraftLimitedRegion.java
|
|
@@ -251,4 +251,45 @@ public class CraftLimitedRegion extends CraftRegionAccessor implements LimitedRe
|
|
public void addEntityToWorld(net.minecraft.world.entity.Entity entity, CreatureSpawnEvent.SpawnReason reason) {
|
|
this.entities.add(entity);
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public void setBlockState(int x, int y, int z, BlockState state) {
|
|
+ BlockPos pos = new BlockPos(x, y, z);
|
|
+ if (!state.getBlockData().matches(getHandle().getBlockState(pos).createCraftBlockData())) {
|
|
+ throw new IllegalArgumentException("BlockData does not match! Expected " + state.getBlockData().getAsString(false) + ", got " + getHandle().getBlockState(pos).createCraftBlockData().getAsString(false));
|
|
+ }
|
|
+ getHandle().getBlockEntity(pos).load(((org.bukkit.craftbukkit.block.CraftBlockEntityState<?>) state).getSnapshotNBT());
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void scheduleBlockUpdate(int x, int y, int z) {
|
|
+ BlockPos position = new BlockPos(x, y, z);
|
|
+ getHandle().scheduleTick(position, getHandle().getBlockState(position).getBlock(), 0);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void scheduleFluidUpdate(int x, int y, int z) {
|
|
+ BlockPos position = new BlockPos(x, y, z);
|
|
+ getHandle().scheduleTick(position, getHandle().getFluidState(position).getType(), 0);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public World getWorld() {
|
|
+ // reading/writing the returned Minecraft world causes a deadlock.
|
|
+ // By implementing this, and covering it in warnings, we're assuming people won't be stupid, and
|
|
+ // if they are stupid, they'll figure it out pretty fast.
|
|
+ return getHandle().getMinecraftWorld().getWorld();
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getCenterChunkX() {
|
|
+ return centerChunkX;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public int getCenterChunkZ() {
|
|
+ return centerChunkZ;
|
|
+ }
|
|
+ // Paper end
|
|
}
|