Revert "Using an array instead of an EnumMap isn't necessary here"

This reverts commit 240a817e
This commit is contained in:
MattBDev 2020-01-29 16:03:02 -05:00
parent df60e50c96
commit d381617f11

View File

@ -27,7 +27,6 @@ import com.sk89q.worldedit.world.block.BlockTypes;
import com.sk89q.worldedit.world.registry.BlockMaterial;
import com.sk89q.worldedit.world.registry.BundledBlockRegistry;
import com.sk89q.worldedit.world.registry.PassthroughBlockMaterial;
import java.util.EnumMap;
import org.bukkit.Material;
import org.bukkit.block.data.BlockData;
@ -39,7 +38,7 @@ import java.util.OptionalInt;
public class BukkitBlockRegistry extends BundledBlockRegistry {
private Map<Material, BukkitBlockMaterial> materialMap = new EnumMap<>(Material.class);
private BukkitBlockMaterial[] materialMap;
@Nullable
@Override
@ -53,17 +52,15 @@ public class BukkitBlockRegistry extends BundledBlockRegistry {
if (mat == null) {
return new PassthroughBlockMaterial(null);
}
return materialMap.computeIfAbsent(mat, material -> new BukkitBlockMaterial(BukkitBlockRegistry.super.getMaterial(blockType), material));
}
@Nullable
@Override
public Map<String, ? extends Property<?>> getProperties(BlockType blockType) {
BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter();
if (adapter != null) {
return adapter.getProperties(blockType);
if (materialMap == null) {
materialMap = new BukkitBlockMaterial[Material.values().length];
}
return super.getProperties(blockType);
BukkitBlockMaterial result = materialMap[mat.ordinal()];
if (result == null) {
result = new BukkitBlockMaterial(BukkitBlockRegistry.super.getMaterial(blockType), mat);
materialMap[mat.ordinal()] = result;
}
return result;
}
@Nullable
@ -76,6 +73,7 @@ public class BukkitBlockRegistry extends BundledBlockRegistry {
}
return super.getMaterial(state);
}
@Override
public OptionalInt getInternalBlockStateId(BlockState state) {
if (WorldEditPlugin.getInstance().getBukkitImplAdapter() != null) {
@ -83,6 +81,15 @@ public class BukkitBlockRegistry extends BundledBlockRegistry {
}
return OptionalInt.empty();
}
@Nullable
@Override
public Map<String, ? extends Property<?>> getProperties(BlockType blockType) {
BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter();
if (adapter != null) {
return adapter.getProperties(blockType);
}
return super.getProperties(blockType);
}
public static class BukkitBlockMaterial extends PassthroughBlockMaterial {