From 8fbd6c231660c085e721efa03500e9521a8db519 Mon Sep 17 00:00:00 2001 From: Reider745 <70357814+Reider745@users.noreply.github.com> Date: Fri, 15 Dec 2023 20:13:50 +0300 Subject: [PATCH] fix: getIdByNameId, sendBlock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - исправлен getIdByNameId - добавлена отправка блоков, которые устанавливаются с помощью BlockSource --- .../com/reider745/world/BlockSourceMethods.java | 15 +++++++++++++++ .../innercore/api/unlimited/IDRegistry.java | 5 ++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/reider745/world/BlockSourceMethods.java b/src/main/java/com/reider745/world/BlockSourceMethods.java index 90812bdd..c773f98b 100644 --- a/src/main/java/com/reider745/world/BlockSourceMethods.java +++ b/src/main/java/com/reider745/world/BlockSourceMethods.java @@ -22,6 +22,7 @@ import com.reider745.hooks.GlobalBlockPalette; import com.reider745.hooks.ItemUtils; import java.util.ArrayList; +import java.util.Collection; import java.util.Map; public class BlockSourceMethods { @@ -34,6 +35,17 @@ public class BlockSourceMethods { } } + private static void sendBlock(Level level, int x, int y, int z){ + final int X = x/16, Z = z/16; + final ArrayList players = new ArrayList<>(); + + for(int xo = -1;xo <= 1;xo++) + for(int zo = -1;zo <= 1;zo++) + players.addAll(level.getChunkPlayers(X+xo, Z+zo).values()); + + level.sendBlocks(players.toArray(new Player[0]), new Vector3[]{new Vector3(x, y, z)}); + } + public static Level getLevelForDimension(int dimension) { if (dimension >= 0 && dimension <= 2) { return InnerCoreServer.server.getLevelByName(switch (dimension) { @@ -62,6 +74,7 @@ public class BlockSourceMethods { } defDestroy(pointer, block); pointer.setBlock(x, y, z, Block.get(0), false, update); + sendBlock(pointer, x, y, z); } public static int getBlockId(Level pointer, int x, int y, int z) { @@ -129,6 +142,7 @@ public class BlockSourceMethods { Block block = pointer.getBlock(x, y, z); defDestroy(pointer, block); pointer.setBlock(x, y, z, Block.get(id, data).clone(), false, allowUpdate); + sendBlock(pointer, x, y, z); } public static void setBlockByRuntimeId(Level pointer, int x, int y, int z, int runtimeId, boolean allowUpdate, @@ -141,6 +155,7 @@ public class BlockSourceMethods { public static void setExtraBlock(Level pointer, int x, int y, int z, int id, int data, boolean allowUpdate, int updateType) { pointer.setBlockExtraDataAt(x, y, z, id, data); + sendBlock(pointer, x, y, z); } public static void setExtraBlockByRuntimeId(Level pointer, int x, int y, int z, int runtimeId, boolean allowUpdate, diff --git a/src/main/java/com/zhekasmirnov/innercore/api/unlimited/IDRegistry.java b/src/main/java/com/zhekasmirnov/innercore/api/unlimited/IDRegistry.java index 4c1ef6ac..617807c1 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/unlimited/IDRegistry.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/unlimited/IDRegistry.java @@ -114,11 +114,10 @@ public class IDRegistry { } public static int getIdByNameId(String id) { - System.out.println(id); if (id.startsWith("item_")) { - return CustomItem.getIdForText(id.replace("item_", "")); + return CustomItem.getIdForText(id); } - return CustomBlock.getIdForText(id.replace("block_", "")); + return CustomBlock.getIdForText(id); } static boolean isOccupied(int id) {