diff --git a/src/main/java/net/minestom/server/instance/block/BlockHandler.java b/src/main/java/net/minestom/server/instance/block/BlockHandler.java index acd794dc1..50d1510a5 100644 --- a/src/main/java/net/minestom/server/instance/block/BlockHandler.java +++ b/src/main/java/net/minestom/server/instance/block/BlockHandler.java @@ -295,23 +295,16 @@ public interface BlockHandler { * Handler used for loaded blocks with unknown namespace * in order to do not lose the information while saving, and for runtime debugging purpose. */ - class Dummy implements BlockHandler { + @ApiStatus.Internal + final class Dummy extends BlockHandlerBase { private static final Map DUMMY_CACHE = new ConcurrentHashMap<>(); - @ApiStatus.Internal public static @NotNull BlockHandler get(@NotNull String namespace) { - return DUMMY_CACHE.computeIfAbsent(namespace, s -> new Dummy(NamespaceID.from(namespace))); + return DUMMY_CACHE.computeIfAbsent(namespace, Dummy::new); } - private final NamespaceID namespaceID; - - private Dummy(NamespaceID namespaceID) { - this.namespaceID = namespaceID; - } - - @Override - public @NotNull NamespaceID getNamespaceId() { - return namespaceID; + private Dummy(String name) { + super(name); } } } diff --git a/src/main/java/net/minestom/server/instance/block/BlockHandlerBase.java b/src/main/java/net/minestom/server/instance/block/BlockHandlerBase.java new file mode 100644 index 000000000..3d7f2aaf2 --- /dev/null +++ b/src/main/java/net/minestom/server/instance/block/BlockHandlerBase.java @@ -0,0 +1,18 @@ +package net.minestom.server.instance.block; + +import net.minestom.server.utils.NamespaceID; +import org.jetbrains.annotations.NotNull; + +public class BlockHandlerBase implements BlockHandler { + + private final NamespaceID namespace; + + public BlockHandlerBase(String name) { + namespace = NamespaceID.from(name); + } + + @Override + public @NotNull NamespaceID getNamespaceId() { + return namespace; + } +}