From 089964d8772db5db7312084fe5b5302c4404a661 Mon Sep 17 00:00:00 2001 From: Reider745 <70357814+Reider745@users.noreply.github.com> Date: Thu, 9 May 2024 08:11:46 +0300 Subject: [PATCH] =?UTF-8?q?Fixed:=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D1=8D=D0=B2=D0=B5=D0=BD=D1=82=20=D0=B2?= =?UTF-8?q?=D0=B7=D1=80=D1=8B=D0=B2=D0=B0=20=D0=BE=D1=82=20=D0=B2=D0=B7?= =?UTF-8?q?=D1=80=D1=8B=D0=B2=D0=BE=D0=B2=20=D0=B8=D0=BD=D0=BD=D0=B5=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- .../com/reider745/world/BlockSourceMethods.java | 8 ++------ .../innercore/api/runtime/Updatable.java | 13 ++++++++----- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a8ae8d02..717fc6d5 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ __Zote Core__ — серверное ядро, основанное на Inner C Запустите собранное ядро, открыв консоль в папке с ним: ```sh -java -jar ZoteCore-SNAPSHOT.jar +java -jar ZoteCore-SNAPSHOT.jar -XX:MaxRAMPercentage=95.0 --add-opens java.base/jdk.internal.loader=ALL-UNNAMED ``` ## Конфигурация diff --git a/src/main/java/com/reider745/world/BlockSourceMethods.java b/src/main/java/com/reider745/world/BlockSourceMethods.java index 5bea7839..cd5ac0c5 100644 --- a/src/main/java/com/reider745/world/BlockSourceMethods.java +++ b/src/main/java/com/reider745/world/BlockSourceMethods.java @@ -187,14 +187,10 @@ public class BlockSourceMethods { public static void explode(Level level, float x, float y, float z, float power, boolean fire) { final Block block = level.getBlock((int) x, (int) y, (int) z); - final BlockExplosionPrimeEvent event = new BlockExplosionPrimeEvent(block, power, 0d); + final BlockExplosionPrimeEvent event = new BlockExplosionPrimeEvent(block, power, fire ? .4 : 0d); event.setIncendiary(fire); - synchronized (EventListener.DEALING_LOCK) { - EventListener.dealingEvent = event; - Server.getInstance().getPluginManager().callEvent(event); - EventListener.dealingEvent = null; - } + Server.getInstance().getPluginManager().callEvent(event); if (event.isCancelled()) { return; diff --git a/src/main/java/com/zhekasmirnov/innercore/api/runtime/Updatable.java b/src/main/java/com/zhekasmirnov/innercore/api/runtime/Updatable.java index 74f34a49..78e8bc42 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/runtime/Updatable.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/runtime/Updatable.java @@ -104,6 +104,11 @@ public class Updatable { private Context currentContext = null; private void executeUpdateWithContext(Context ctx, ScriptableObject obj) { + if(shouldBeRemoved(obj)){ + postedRemovedUpdatables.add(obj); + return; + } + Object _update = obj.get("update", obj); try { Function update = (Function) _update; @@ -125,10 +130,6 @@ public class Updatable { } return; } - - if (shouldBeRemoved(obj)) { - postedRemovedUpdatables.add(obj); - } } private boolean executeUpdate(ScriptableObject obj) { @@ -141,7 +142,9 @@ public class Updatable { TickExecutor.getInstance().execute(new Runnable() { @Override public void run() { - executeUpdateWithContext(Compiler.assureContextForCurrentThread(), obj); + synchronized (obj) { + executeUpdateWithContext(Compiler.assureContextForCurrentThread(), obj); + } } }); } else {