From 77ef0ae41778b43a6841d715acc39dda51541213 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Fri, 15 Nov 2019 12:02:46 +1000 Subject: [PATCH] Bypass Bukkit in more situations (#532) * Bypass Bukkit in more situations * Use orElseGet * Apply the same optimisation in the reverse BlockData adapter, and use lambdas instead of AIC * Remove bukkit type checks * Improve reliability of fallbacks --- .../sk89q/worldedit/bukkit/BukkitAdapter.java | 58 ++++++++++-------- .../bukkit/adapter/BukkitImplAdapter.java | 4 ++ .../src/main/resources/worldedit-adapters.jar | Bin 433302 -> 477811 bytes 3 files changed, 38 insertions(+), 24 deletions(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java index 79526882f..ab5fabd18 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitAdapter.java @@ -21,7 +21,6 @@ package com.sk89q.worldedit.bukkit; import static com.google.common.base.Preconditions.checkNotNull; -import com.google.common.base.Function; import com.sk89q.worldedit.NotABlockException; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; @@ -29,6 +28,7 @@ import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; +import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.Location; @@ -45,6 +45,8 @@ import com.sk89q.worldedit.world.gamemode.GameMode; import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; +import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.Biome; @@ -52,6 +54,7 @@ import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import java.util.EnumMap; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -349,18 +352,19 @@ public class BukkitAdapter { return org.bukkit.entity.EntityType.fromName(entityType.getId().substring(10)); } + private static EnumMap materialBlockTypeCache = new EnumMap<>(Material.class); + private static EnumMap materialItemTypeCache = new EnumMap<>(Material.class); + /** * Converts a Material to a BlockType * * @param material The material * @return The blocktype */ + @Nullable public static BlockType asBlockType(Material material) { checkNotNull(material); - if (!material.isBlock()) { - throw new IllegalArgumentException(material.getKey().toString() + " is not a block!"); - } - return BlockTypes.get(material.getKey().toString()); + return materialBlockTypeCache.computeIfAbsent(material, input -> BlockTypes.get(material.getKey().toString())); } /** @@ -369,15 +373,14 @@ public class BukkitAdapter { * @param material The material * @return The itemtype */ + @Nullable public static ItemType asItemType(Material material) { checkNotNull(material); - if (!material.isItem()) { - throw new IllegalArgumentException(material.getKey().toString() + " is not an item!"); - } - return ItemTypes.get(material.getKey().toString()); + return materialItemTypeCache.computeIfAbsent(material, input -> ItemTypes.get(material.getKey().toString())); } - private static Map blockStateCache = new HashMap<>(); + private static Int2ObjectMap blockStateCache = new Int2ObjectOpenHashMap<>(); + private static Map blockStateStringCache = new HashMap<>(); /** * Create a WorldEdit BlockState from a Bukkit BlockData @@ -387,21 +390,32 @@ public class BukkitAdapter { */ public static BlockState adapt(BlockData blockData) { checkNotNull(blockData); - return blockStateCache.computeIfAbsent(blockData.getAsString(), new Function() { - @Nullable - @Override - public BlockState apply(@Nullable String input) { + + if (WorldEditPlugin.getInstance().getBukkitImplAdapter() == null) { + return blockStateStringCache.computeIfAbsent(blockData.getAsString(), input -> { try { return WorldEdit.getInstance().getBlockFactory().parseFromInput(input, TO_BLOCK_CONTEXT).toImmutableState(); } catch (InputParseException e) { e.printStackTrace(); return null; } - } - }); + }); + } else { + return blockStateCache.computeIfAbsent( + WorldEditPlugin.getInstance().getBukkitImplAdapter().getInternalBlockStateId(blockData).orElseGet( + () -> blockData.getAsString().hashCode() + ), input -> { + try { + return WorldEdit.getInstance().getBlockFactory().parseFromInput(blockData.getAsString(), TO_BLOCK_CONTEXT).toImmutableState(); + } catch (InputParseException e) { + e.printStackTrace(); + return null; + } + }); + } } - private static Map blockDataCache = new HashMap<>(); + private static Int2ObjectMap blockDataCache = new Int2ObjectOpenHashMap<>(); /** * Create a Bukkit BlockData from a WorldEdit BlockStateHolder @@ -411,13 +425,9 @@ public class BukkitAdapter { */ public static > BlockData adapt(B block) { checkNotNull(block); - return blockDataCache.computeIfAbsent(block.getAsString(), new Function() { - @Nullable - @Override - public BlockData apply(@Nullable String input) { - return Bukkit.createBlockData(block.getAsString()); - } - }).clone(); + // Should never not have an ID for this BlockState. + int cacheKey = BlockStateIdAccess.getBlockStateId(block.toImmutableState()).orElseGet(block::hashCode); + return blockDataCache.computeIfAbsent(cacheKey, input -> Bukkit.createBlockData(block.getAsString())).clone(); } /** diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java index 4bb915c56..be5197e8c 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplAdapter.java @@ -33,6 +33,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockType; import org.bukkit.Location; import org.bukkit.World; +import org.bukkit.block.data.BlockData; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -175,6 +176,9 @@ public interface BukkitImplAdapter { */ BaseItemStack adapt(ItemStack itemStack); + default OptionalInt getInternalBlockStateId(BlockData data) { + return OptionalInt.empty(); + } /** * Retrieve the internal ID for a given state, if possible. diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 92171a9cc11fdbcb3d850afdd712ae88eca7ab13..43a6d50099453f4e3d8b5f2a8c082c9a503d0010 100644 GIT binary patch delta 85439 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