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 {