diff --git a/src/main/java/com/reider745/InnerCoreServer.java b/src/main/java/com/reider745/InnerCoreServer.java index 42651e90..d3f4df9e 100644 --- a/src/main/java/com/reider745/InnerCoreServer.java +++ b/src/main/java/com/reider745/InnerCoreServer.java @@ -212,6 +212,7 @@ public class InnerCoreServer { CallbackHelper.init(); NukkitIdConvertor.init(); DimensionsMethods.init(); + FakeDimensions.init(); HashMap description = new HashMap<>(); description.put("name", "ZoteCore"); @@ -302,7 +303,6 @@ public class InnerCoreServer { pluginManager.registerEvents(new SnowfallEverywhere(), plugin); } - FakeDimensions.init(); DimensionsFix.init(); GlobalBlockPalette.init(); RuntimeItemsHooks.register(); diff --git a/src/main/java/com/reider745/world/BlockSourceMethods.java b/src/main/java/com/reider745/world/BlockSourceMethods.java index 7acf1be1..98854610 100644 --- a/src/main/java/com/reider745/world/BlockSourceMethods.java +++ b/src/main/java/com/reider745/world/BlockSourceMethods.java @@ -40,8 +40,6 @@ public class BlockSourceMethods { } public static Level getLevelForDimension(int dimension) { - /*return */ - //FakeDimensions.getFakeIdForLevel() return FakeDimensions.getLevelForFakeId(dimension); } diff --git a/src/main/java/com/reider745/world/FakeDimensions.java b/src/main/java/com/reider745/world/FakeDimensions.java index 42021470..38b87609 100644 --- a/src/main/java/com/reider745/world/FakeDimensions.java +++ b/src/main/java/com/reider745/world/FakeDimensions.java @@ -2,6 +2,7 @@ package com.reider745.world; import cn.nukkit.Server; import cn.nukkit.level.Level; +import com.zhekasmirnov.horizon.runtime.logger.Logger; import com.zhekasmirnov.innercore.api.dimensions.CustomDimension; import java.util.ArrayList; @@ -9,8 +10,9 @@ import java.util.HashMap; public class FakeDimensions { private static int CURRENT_FAKE_ID = Integer.MIN_VALUE; - private static HashMap fakeIdForLevelId = new HashMap<>(); - private static HashMap levelForFakeId = new HashMap<>(); + private static final HashMap fakeIdForLevelId = new HashMap<>(); + private static final HashMap levelForFakeId = new HashMap<>(); + private static final ArrayList ignore = new ArrayList<>(); public static int getFakeIdForLevel(final Level level){ /*final int dimensionId = level.getDimension(); @@ -19,6 +21,9 @@ public class FakeDimensions { return dimensionId; }*/ + if(ignore.contains(level.getDimension())) + return level.getDimension(); + //Проверка для псевдо-измерений накита Integer fakeId = fakeIdForLevelId.get(level.getId()); if(fakeId == null){ @@ -33,8 +38,6 @@ public class FakeDimensions { return fakeId; } - private static ArrayList ignore = new ArrayList<>(); - public static void registerIgnore(int id){ ignore.add(id); levelForFakeId.put(id, null);