From 2dc66964c7ff37b31093d5e4b9e4179b2a244958 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 2 Nov 2020 15:34:54 -0800 Subject: [PATCH 001/813] Back to snapshot for bugfixes --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b43bb992fa..59e8bf730d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.0 +version=7.2.1-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From b4e5bc7dbf0d0d5061fbea6efdf5d76307a01100 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 2 Nov 2020 18:16:23 -0800 Subject: [PATCH 002/813] Properly deploy version into core/bukkit --- buildSrc/src/main/kotlin/PlatformConfig.kt | 4 +++- worldedit-bukkit/build.gradle.kts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 0203f277d4..d23a27f046 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -138,8 +138,10 @@ private val CLASSPATH = listOf("truezip", "truevfs", "js") fun Project.addJarManifest(includeClasspath: Boolean = false) { tasks.named("jar") { + val version = project(":worldedit-core").version + inputs.property("version", version) val attributes = mutableMapOf( - "WorldEdit-Version" to project(":worldedit-core").version + "WorldEdit-Version" to version ) if (includeClasspath) { attributes["Class-Path"] = CLASSPATH diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 1755ea79c6..5571cb1f4c 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -36,8 +36,10 @@ dependencies { } tasks.named("processResources") { + val internalVersion = project.ext["internalVersion"] + inputs.property("internalVersion", internalVersion) filesMatching("plugin.yml") { - expand("internalVersion" to project.ext["internalVersion"]) + expand("internalVersion" to internalVersion) } // exclude adapters entirely from this JAR, they should only be in the shadow JAR exclude("**/worldedit-adapters.jar") From 4999018f36822115c566354c22a01b05f6537af5 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 9 Nov 2020 18:57:54 -0800 Subject: [PATCH 003/813] Lower-case wand items on retrival from the config --- .../com/sk89q/worldedit/util/PropertiesConfiguration.java | 5 +++-- .../java/com/sk89q/worldedit/util/YAMLConfiguration.java | 5 +++-- .../worldedit/sponge/config/ConfigurateConfiguration.java | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java index b404315c5d..cbf6b31904 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java @@ -39,6 +39,7 @@ import java.nio.file.Path; import java.util.Arrays; import java.util.HashSet; +import java.util.Locale; import java.util.Properties; import java.util.Set; @@ -104,7 +105,7 @@ public void load() { logFile = getString("log-file", logFile); logFormat = getString("log-format", logFormat); registerHelp = getBool("register-help", registerHelp); - wandItem = getString("wand-item", wandItem); + wandItem = getString("wand-item", wandItem).toLowerCase(Locale.ROOT); try { wandItem = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(wandItem)).getId(); } catch (Throwable ignored) { @@ -114,7 +115,7 @@ public void load() { useInventory = getBool("use-inventory", useInventory); useInventoryOverride = getBool("use-inventory-override", useInventoryOverride); useInventoryCreativeOverride = getBool("use-inventory-creative-override", useInventoryCreativeOverride); - navigationWand = getString("nav-wand-item", navigationWand); + navigationWand = getString("nav-wand-item", navigationWand).toLowerCase(Locale.ROOT); try { navigationWand = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(navigationWand)).getId(); } catch (Throwable ignored) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java index 74888797ee..504de1e48b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java @@ -29,6 +29,7 @@ import java.io.IOException; import java.util.HashSet; +import java.util.Locale; /** * A less simple implementation of {@link LocalConfiguration} @@ -54,7 +55,7 @@ public void load() { profile = config.getBoolean("debug", profile); traceUnflushedSessions = config.getBoolean("debugging.trace-unflushed-sessions", traceUnflushedSessions); - wandItem = convertLegacyItem(config.getString("wand-item", wandItem)); + wandItem = convertLegacyItem(config.getString("wand-item", wandItem)).toLowerCase(Locale.ROOT); defaultChangeLimit = Math.max(-1, config.getInt( "limits.max-blocks-changed.default", defaultChangeLimit)); @@ -99,7 +100,7 @@ public void load() { useInventoryCreativeOverride = config.getBoolean("use-inventory.creative-mode-overrides", useInventoryCreativeOverride); - navigationWand = convertLegacyItem(config.getString("navigation-wand.item", navigationWand)); + navigationWand = convertLegacyItem(config.getString("navigation-wand.item", navigationWand)).toLowerCase(Locale.ROOT); navigationWandMaxDistance = config.getInt("navigation-wand.max-distance", navigationWandMaxDistance); navigationUseGlass = config.getBoolean("navigation.use-glass", navigationUseGlass); diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java index bc66da5a2e..b5cdd330fa 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java @@ -33,6 +33,7 @@ import java.io.IOException; import java.util.HashSet; +import java.util.Locale; public class ConfigurateConfiguration extends LocalConfiguration { @@ -59,7 +60,7 @@ public void load() { profile = node.getNode("debug").getBoolean(profile); traceUnflushedSessions = node.getNode("debugging", "trace-unflushed-sessions").getBoolean(traceUnflushedSessions); - wandItem = node.getNode("wand-item").getString(wandItem); + wandItem = node.getNode("wand-item").getString(wandItem).toLowerCase(Locale.ROOT); try { wandItem = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(wandItem)).getId(); } catch (Throwable ignored) { @@ -103,7 +104,7 @@ public void load() { useInventoryOverride = node.getNode("use-inventory", "allow-override").getBoolean(useInventoryOverride); useInventoryCreativeOverride = node.getNode("use-inventory", "creative-mode-overrides").getBoolean(useInventoryCreativeOverride); - navigationWand = node.getNode("navigation-wand", "item").getString(navigationWand); + navigationWand = node.getNode("navigation-wand", "item").getString(navigationWand).toLowerCase(Locale.ROOT); try { navigationWand = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(navigationWand)).getId(); } catch (Throwable ignored) { From cc1f530aa4f9c0e8ab1746c376b984c35b925ef2 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 18 Nov 2020 15:44:43 -0800 Subject: [PATCH 004/813] Add the missing y variable to generate biome --- .../java/com/sk89q/worldedit/EditSession.java | 19 +++++++++---------- .../util/translation/TranslationManager.java | 2 +- .../src/main/resources/lang/strings.json | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index 03aa8a709a..1547bc2e96 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -135,6 +135,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import javax.annotation.Nullable; @@ -2640,23 +2641,21 @@ private void recurseHollow(Region region, BlockVector3 origin, Set } public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, - final String expressionString, final boolean hollow) - throws ExpressionException, MaxChangedBlocksException { + final String expressionString, final boolean hollow) throws ExpressionException { return makeBiomeShape(region, zero, unit, biomeType, expressionString, hollow, WorldEdit.getInstance().getConfiguration().calculationTimeout); } public int makeBiomeShape(final Region region, final Vector3 zero, final Vector3 unit, final BiomeType biomeType, - final String expressionString, final boolean hollow, final int timeout) - throws ExpressionException, MaxChangedBlocksException { + final String expressionString, final boolean hollow, final int timeout) throws ExpressionException { - final Expression expression = Expression.compile(expressionString, "x", "z"); + final Expression expression = Expression.compile(expressionString, "x", "y", "z"); expression.optimize(); final EditSession editSession = this; final WorldEditExpressionEnvironment environment = new WorldEditExpressionEnvironment(editSession, unit, zero); expression.setEnvironment(environment); - final int[] timedOut = {0}; + AtomicInteger timedOut = new AtomicInteger(); final ArbitraryBiomeShape shape = new ArbitraryBiomeShape(region) { @Override protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) { @@ -2672,7 +2671,7 @@ protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) { // TODO: Allow biome setting via a script variable (needs BiomeType<->int mapping) return defaultBiomeType; } catch (ExpressionTimeoutException e) { - timedOut[0] = timedOut[0] + 1; + timedOut.getAndIncrement(); return null; } catch (Exception e) { log.warn("Failed to create shape", e); @@ -2681,10 +2680,10 @@ protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) { } }; int changed = shape.generate(this, biomeType, hollow); - if (timedOut[0] > 0) { + if (timedOut.get() > 0) { throw new ExpressionTimeoutException( - String.format("%d blocks changed. %d blocks took too long to evaluate (increase time with //timeout)", - changed, timedOut[0])); + String.format("%d biomes changed. %d biomes took too long to evaluate (increase time with //timeout)", + changed, timedOut.get())); } return changed; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java index 7ea8c00ba7..1db456d4b8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java @@ -206,7 +206,7 @@ private void loadTranslations(Locale locale) throws IOException { // In dev, reading lang/strings.json from either i18n.zip or the config folder // WILL NOT OCCUR! URL devStrings; - if (locale == defaultLocale + if (defaultLocale.equals(locale) && (devStrings = resourceLoader.getRootResource("lang/strings.json")) != null) { try (InputStream in = devStrings.openStream()) { putTranslationData(entries, in); diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index fed15a8325..e3917293e2 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -231,7 +231,7 @@ "worldedit.pumpkins.created": "{0} pumpkin patches created.", "worldedit.pyramid.created": "{0} blocks have been created.", "worldedit.generate.created": "{0} blocks have been created.", - "worldedit.generate.changed": "{0} columns affected.", + "worldedit.generatebiome.changed": "{0} biomes affected.", "worldedit.reload.config": "Configuration reloaded!", "worldedit.report.written": "WorldEdit report written to {0}", From d6b42a4816a10ce863a249f4356d54b0038cdd0e Mon Sep 17 00:00:00 2001 From: wizjany Date: Sat, 28 Nov 2020 09:13:03 -0500 Subject: [PATCH 005/813] Add instructions for unbinding tools/brushes on equip. (#1595) * Add unbind instructions to tool/brush commands. * Switch to suggest. * Make component final. * Start suggesting the unbind alias instead. --- .../sk89q/worldedit/command/BrushCommands.java | 16 ++++++++++++++++ .../sk89q/worldedit/command/ToolCommands.java | 11 +++++++++++ .../src/main/resources/lang/strings.json | 2 ++ 3 files changed, 29 insertions(+) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java index 1202640fd5..83133e1e2a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java @@ -66,8 +66,11 @@ import com.sk89q.worldedit.util.asset.AssetLoadTask; import com.sk89q.worldedit.util.asset.AssetLoader; import com.sk89q.worldedit.util.asset.holder.ImageHeightmap; +import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; +import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; +import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockTypes; import org.enginehub.piston.annotation.Command; @@ -88,6 +91,10 @@ public class BrushCommands { private final WorldEdit worldEdit; + private static final Component UNBIND_COMMAND_COMPONENT = TextComponent.builder("/brush unbind", TextColor.AQUA) + .clickEvent(ClickEvent.suggestCommand("/brush unbind")) + .build(); + /** * Create a new instance. * @@ -133,6 +140,7 @@ public void sphereBrush(Player player, LocalSession session, } player.printInfo(TranslatableComponent.of("worldedit.brush.sphere.equip", TextComponent.of(String.format("%.0f", radius)))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -164,6 +172,7 @@ public void cylinderBrush(Player player, LocalSession session, } player.printInfo(TranslatableComponent.of("worldedit.brush.cylinder.equip", TextComponent.of((int) radius), TextComponent.of(height))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -200,6 +209,7 @@ public void clipboardBrush(Player player, LocalSession session, tool.setBrush(new ClipboardBrush(newHolder, ignoreAir, usingOrigin, pasteEntities, pasteBiomes, sourceMask), "worldedit.brush.clipboard"); player.printInfo(TranslatableComponent.of("worldedit.brush.clipboard.equip")); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -227,6 +237,7 @@ public void smoothBrush(Player player, LocalSession session, TextComponent.of(iterations), TextComponent.of(mask == null ? "any block" : "filter") )); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -247,6 +258,7 @@ public void extinguishBrush(Player player, LocalSession session, tool.setBrush(new SphereBrush(), "worldedit.brush.ex"); player.printInfo(TranslatableComponent.of("worldedit.brush.extinguish.equip", TextComponent.of((int) radius))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -274,6 +286,7 @@ public void gravityBrush(Player player, LocalSession session, tool.setBrush(new GravityBrush(height), "worldedit.brush.gravity"); player.printInfo(TranslatableComponent.of("worldedit.brush.gravity.equip", TextComponent.of((int) radius))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -333,6 +346,7 @@ public void butcherBrush(Player player, LocalSession session, tool.setBrush(new ButcherBrush(flags), "worldedit.brush.butcher"); player.printInfo(TranslatableComponent.of("worldedit.brush.butcher.equip", TextComponent.of((int) radius))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } @Command( @@ -367,6 +381,7 @@ void heightmapBrush(Player player, LocalSession session, .onSuccess(TranslatableComponent.of("worldedit.brush.heightmap.equip", TextComponent.of((int) radius)), heightmap -> { tool.setSize(radius); tool.setBrush(new ImageHeightmapBrush(heightmap, intensity, erase, flatten, randomize), "worldedit.brush.heightmap"); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); }) .onFailure(TranslatableComponent.of("worldedit.asset.load.failed"), worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter()) .buildAndExec(worldEdit.getExecutorService()); @@ -514,5 +529,6 @@ static void setOperationBasedBrush(Player player, LocalSession session, double r tool.setBrush(new OperationFactoryBrush(factory, shape, session), permission); player.printInfo(TranslatableComponent.of("worldedit.brush.operation.equip", TextComponent.of(factory.toString()))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java index 6695dcd831..0e9723817c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/ToolCommands.java @@ -51,6 +51,8 @@ import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; +import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; +import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.item.ItemType; import org.enginehub.piston.CommandManager; @@ -69,6 +71,10 @@ @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class ToolCommands { + private static final Component UNBIND_COMMAND_COMPONENT = TextComponent.builder("/tool unbind", TextColor.AQUA) + .clickEvent(ClickEvent.suggestCommand("/tool unbind")) + .build(); + public static void register(CommandRegistrationHandler registration, CommandManager commandManager, CommandManagerService commandManagerService, @@ -148,11 +154,16 @@ static void setToolNone(Player player, LocalSession session, boolean isBrush) } } + static void sendUnbindInstruction(Player sender, Component commandComponent) { + sender.printDebug(TranslatableComponent.of("worldedit.tool.unbind-instruction", commandComponent)); + } + private static void setTool(Player player, LocalSession session, Tool tool, String translationKey) throws InvalidToolBindException { BaseItemStack itemStack = player.getItemInHand(HandSide.MAIN_HAND); session.setTool(itemStack.getType(), tool); player.printInfo(TranslatableComponent.of(translationKey, itemStack.getRichName())); + sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } private final WorldEdit we; diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index e3917293e2..2485f29352 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -291,6 +291,8 @@ "worldedit.tool.lrbuild.set": "Left-click set to {0}; right-click set to {1}.", "worldedit.tool.stack.equip": "Stack tool bound to {0}.", + "worldedit.tool.unbind-instruction": "Run {0} while holding the item to unbind it.", + "worldedit.tool.superpickaxe.mode.single": "Mode is now single. Left click with a pickaxe. // to disable.", "worldedit.tool.superpickaxe.mode.area": "Mode is now area. Left click with a pickaxe. // to disable.", "worldedit.tool.superpickaxe.mode.recursive": "Mode is now recursive. Left click with a pickaxe. // to disable.", From 9667acf3c60ab63c192d81f37f4986dd6a317d1d Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 28 Nov 2020 14:51:29 -0800 Subject: [PATCH 006/813] Update c-dist to upload strings --- crowdin-distributor.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crowdin-distributor.sh b/crowdin-distributor.sh index 2e79c482ff..0171f85e53 100755 --- a/crowdin-distributor.sh +++ b/crowdin-distributor.sh @@ -2,7 +2,7 @@ set -e # For snapshots, please specify the full version (with date and time) -cdist_version="0.1.0-20201020.212757-5" +cdist_version="0.1.0-20201128.225038-7" cdist_path_version="$cdist_version" if [ -n "${cdist_version#*-}" ]; then @@ -17,6 +17,8 @@ curl "$url" >./build/cdist.zip export CROWDIN_DISTRIBUTOR_ON_CHANGE="true" export CROWDIN_DISTRIBUTOR_PROJECT_ID="360697" export CROWDIN_DISTRIBUTOR_MODULE="worldedit-lang" +## Full path to the source file, will be uploaded to crowdin, must already have uploaded at least once (will not create a new file) +export CROWDIN_DISTRIBUTOR_SOURCE_FILE="./worldedit-core/src/main/resources/lang/strings.json" # Artifactory & Build Number is set by CI export CROWDIN_DISTRIBUTOR_OPTS="--enable-preview" "./build/crowdin-distributor-$cdist_path_version/bin/crowdin-distributor" From be4d8a083999ae9c558d9ee927bae32e2c273120 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 28 Nov 2020 15:08:43 -0800 Subject: [PATCH 007/813] Update language bundle --- worldedit-core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 2b572f10f1..e0ae9e60bb 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -54,7 +54,7 @@ dependencies { "compileOnly"("com.google.auto.value:auto-value-annotations:${Versions.AUTO_VALUE}") "annotationProcessor"("com.google.auto.value:auto-value:${Versions.AUTO_VALUE}") - "languageFiles"("${project.group}:worldedit-lang:7.2.0:26@zip") + "languageFiles"("${project.group}:worldedit-lang:7.2.1:68@zip") "testImplementation"("ch.qos.logback:logback-core:${Versions.LOGBACK}") "testImplementation"("ch.qos.logback:logback-classic:${Versions.LOGBACK}") From d0e6f9f33be98646b6aab0c0c24845bc7f1d92a4 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 28 Nov 2020 15:17:20 -0800 Subject: [PATCH 008/813] Always load internal strings.json for default locale --- buildSrc/src/main/kotlin/PlatformConfig.kt | 2 -- .../util/translation/TranslationManager.java | 27 ++++++++++--------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index d23a27f046..72555ff2d7 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -125,8 +125,6 @@ fun Project.applyShadowConfiguration() { exclude(".cache") exclude("LICENSE*") exclude("META-INF/maven/**") - // it's in the i18n zip, we only use it in dev - exclude("**/lang/strings.json") minimize() } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java index 1db456d4b8..f2541b09b5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java @@ -202,24 +202,25 @@ private void loadLocale(Locale locale) { private void loadTranslations(Locale locale) throws IOException { Map entries = new HashMap<>(); - // If needed, load the dev strings as an OVERRIDE! - // In dev, reading lang/strings.json from either i18n.zip or the config folder - // WILL NOT OCCUR! - URL devStrings; - if (defaultLocale.equals(locale) - && (devStrings = resourceLoader.getRootResource("lang/strings.json")) != null) { - try (InputStream in = devStrings.openStream()) { + String localePath = getLocalePath(locale); + // From lowest priority to highest + if (defaultLocale.equals(locale)) { + // load internal strings, not i18n.zip + // we need this for development and to ensure translations are at least minimally + // working in the case of no i18n.zip update + URL internalStrings = resourceLoader.getRootResource("lang/strings.json"); + checkNotNull(internalStrings, "Failed to load internal strings.json"); + try (InputStream in = internalStrings.openStream()) { putTranslationData(entries, in); } } else { - String localePath = getLocalePath(locale); - // From lowest priority to highest + // load from the internal zip for all other locales putTranslationData(entries, this.internalZipRoot.resolve(localePath)); - if (this.userProvidedZipRoot != null) { - putTranslationData(entries, this.userProvidedZipRoot.resolve(localePath)); - } - putTranslationData(entries, this.userProvidedFlatRoot.resolve(localePath)); } + if (this.userProvidedZipRoot != null) { + putTranslationData(entries, this.userProvidedZipRoot.resolve(localePath)); + } + putTranslationData(entries, this.userProvidedFlatRoot.resolve(localePath)); // Load message formats for (Map.Entry entry : entries.entrySet()) { From 3637d94aefd65f706d18f0a2cccab54fa82654a1 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 29 Nov 2020 17:56:09 -0800 Subject: [PATCH 009/813] Implement UPDATE for Fabric (#1598) * Implement UPDATE for Fabric * Fix a minor threading problem --- .../worldedit/fabric/FabricPlatform.java | 3 +- .../fabric/internal/ExtendedChunk.java | 43 +++++++++++ .../internal/FabricWorldNativeAccess.java | 13 ++++ .../fabric/mixin/MixinWorldChunk.java | 74 +++++++++++++++++++ .../src/main/resources/worldedit.mixins.json | 1 + 5 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/ExtendedChunk.java create mode 100644 worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java index 725932b4d1..746a5fc72a 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java @@ -216,7 +216,8 @@ public Map getCapabilities() { SideEffect.VALIDATION, SideEffect.ENTITY_AI, SideEffect.LIGHTING, - SideEffect.NEIGHBORS + SideEffect.NEIGHBORS, + SideEffect.UPDATE ); @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/ExtendedChunk.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/ExtendedChunk.java new file mode 100644 index 0000000000..3092f24c06 --- /dev/null +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/ExtendedChunk.java @@ -0,0 +1,43 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.fabric.internal; + +import com.sk89q.worldedit.util.SideEffect; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.chunk.Chunk; + +import javax.annotation.Nullable; + +public interface ExtendedChunk { + /** + * {@link Chunk#setBlockState(BlockPos, BlockState, boolean)} with the extra + * {@link SideEffect#UPDATE} flag. + * + * @param pos the position to set + * @param state the state to set + * @param moved I honestly have no idea and can't be bothered to investigate, we pass {@code + * false} + * @param update the update flag, see side-effect for details + * @return the old block state, or {@code null} if unchanged + */ + @Nullable + BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, boolean update); +} diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java index 5e839b3ea5..62b3f92df9 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java @@ -22,6 +22,8 @@ import com.sk89q.worldedit.fabric.FabricAdapter; import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; +import com.sk89q.worldedit.util.SideEffect; +import com.sk89q.worldedit.util.SideEffectSet; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; @@ -41,6 +43,7 @@ public class FabricWorldNativeAccess implements WorldNativeAccess world; + private SideEffectSet sideEffectSet; public FabricWorldNativeAccess(WeakReference world) { this.world = world; @@ -50,6 +53,11 @@ private World getWorld() { return Objects.requireNonNull(world.get(), "The reference to the world was lost"); } + @Override + public void setCurrentSideEffectSet(SideEffectSet sideEffectSet) { + this.sideEffectSet = sideEffectSet; + } + @Override public WorldChunk getChunk(int x, int z) { return getWorld().getChunk(x, z); @@ -71,6 +79,11 @@ public BlockState getBlockState(WorldChunk chunk, BlockPos position) { @Nullable @Override public BlockState setBlockState(WorldChunk chunk, BlockPos position, BlockState state) { + if (chunk instanceof ExtendedChunk) { + return ((ExtendedChunk) chunk).setBlockState( + position, state, false, sideEffectSet.shouldApply(SideEffect.UPDATE) + ); + } return chunk.setBlockState(position, state, false); } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java new file mode 100644 index 0000000000..4bfea3b8da --- /dev/null +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java @@ -0,0 +1,74 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.fabric.mixin; + +import com.sk89q.worldedit.fabric.internal.ExtendedChunk; +import net.minecraft.block.BlockState; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.WorldChunk; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; +import org.spongepowered.asm.mixin.injection.Slice; + +import javax.annotation.Nullable; + +@Mixin(WorldChunk.class) +public abstract class MixinWorldChunk implements Chunk, ExtendedChunk { + private boolean shouldUpdate = true; + + @Nullable + @Override + public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, boolean update) { + // save the state for the hook + shouldUpdate = update; + try { + return setBlockState(pos, state, moved); + } finally { + // restore natural mode + shouldUpdate = true; + } + } + + @Redirect( + method = "setBlockState", + slice = @Slice( + from = @At(value = "INVOKE", target = "Lnet/minecraft/block/entity/BlockEntity;resetBlock()V") + ), + at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;onBlockAdded(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Z)V", ordinal = 0) + ) + public void setBlockStateHook(BlockState target, World world, BlockPos pos, BlockState old, boolean move) { + boolean localShouldUpdate; + MinecraftServer server = world.getServer(); + if (server == null || Thread.currentThread() != server.getThread()) { + // We're not on the server thread for some reason, WorldEdit will never be here + // so we'll just ignore our flag + localShouldUpdate = true; + } else { + localShouldUpdate = shouldUpdate; + } + if (localShouldUpdate) { + target.onBlockAdded(world, pos, old, move); + } + } +} diff --git a/worldedit-fabric/src/main/resources/worldedit.mixins.json b/worldedit-fabric/src/main/resources/worldedit.mixins.json index 8fc6e845f0..31d013a873 100644 --- a/worldedit-fabric/src/main/resources/worldedit.mixins.json +++ b/worldedit-fabric/src/main/resources/worldedit.mixins.json @@ -6,6 +6,7 @@ "MixinBiomeArray", "MixinServerPlayerEntity", "MixinMinecraftServer", + "MixinWorldChunk", "AccessorClientSettingsC2SPacket", "AccessorLevelProperties", "AccessorServerChunkManager" From 15cba009f44a41efc86887473d1bfddb3a46b8ed Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Wed, 9 Dec 2020 15:03:42 +1000 Subject: [PATCH 010/813] Persist default state of selwand and navwand in session (#1600) * Persist default state of selwand and navwand in session * Fixed some issues with the way it retained info * Fixed it setting the wrong item * A little cleaner * I somewhat misunderstood the way this system worked - This is cleaner and works a lot better * Replace with octy-approved UX * Improve logic for default wand loading Co-authored-by: Octavia Togami --- .../com/sk89q/worldedit/LocalSession.java | 39 ++++++++++++++++++- .../worldedit/session/SessionManager.java | 6 ++- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index 2af6962999..a758d0096c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -65,6 +65,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.TimeZone; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; @@ -116,7 +117,9 @@ public class LocalSession { private RegionSelectorType defaultSelector; private boolean useServerCUI = false; // Save this to not annoy players. private String wandItem; + private Boolean wandItemDefault; private String navWandItem; + private Boolean navWandItemDefault; /** * Construct the object. @@ -677,9 +680,15 @@ public void setTool(ItemType item, @Nullable Tool tool) throws InvalidToolBindEx throw new InvalidToolBindException(item, TranslatableComponent.of("worldedit.tool.error.item-only")); } if (tool instanceof SelectionWand) { - setSingleItemTool(id -> this.wandItem = id, this.wandItem, item); + setSingleItemTool(id -> { + this.wandItem = id; + this.wandItemDefault = id.equals(config.wandItem); + }, this.wandItem, item); } else if (tool instanceof NavigationWand) { - setSingleItemTool(id -> this.navWandItem = id, this.navWandItem, item); + setSingleItemTool(id -> { + this.navWandItem = id; + this.navWandItemDefault = id.equals(config.navigationWand); + }, this.navWandItem, item); } else if (tool == null) { // Check if un-setting sel/nav String id = item.getId(); @@ -1106,6 +1115,19 @@ public String getWandItem() { return wandItem; } + /** + * Get if the selection wand item should use the default, or null if unknown. + * + * @return if it should use the default + */ + public boolean isWandItemDefault() { + if (wandItemDefault == null) { + wandItemDefault = Objects.equals(wandItem, config.wandItem); + setDirty(); + } + return wandItemDefault; + } + /** * Get the preferred navigation wand item for this user, or {@code null} to use the default. * @return item id of nav wand item, or {@code null} @@ -1114,6 +1136,19 @@ public String getNavWandItem() { return navWandItem; } + /** + * Get if the navigation wand item should use the default, or null if unknown. + * + * @return if it should use the default + */ + public boolean isNavWandItemDefault() { + if (navWandItemDefault == null) { + navWandItemDefault = Objects.equals(navWandItem, config.navigationWand); + setDirty(); + } + return navWandItemDefault; + } + /** * Get the last block distribution stored in this session. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java index f4c336da4b..73bdf94c43 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java @@ -171,14 +171,16 @@ public synchronized LocalSession get(SessionOwner owner) { session.setBlockChangeLimit(config.defaultChangeLimit); session.setTimeout(config.calculationTimeout); try { - setDefaultWand(session.getWandItem(), config.wandItem, session, new SelectionWand()); + String sessionItem = session.isWandItemDefault() ? null : session.getWandItem(); + setDefaultWand(sessionItem, config.wandItem, session, new SelectionWand()); } catch (InvalidToolBindException e) { if (warnedInvalidTool.add("selwand")) { log.warn("Invalid selection wand tool set in config. Tool will not be assigned: " + e.getItemType()); } } try { - setDefaultWand(session.getNavWandItem(), config.navigationWand, session, new NavigationWand()); + String sessionItem = session.isNavWandItemDefault() ? null : session.getNavWandItem(); + setDefaultWand(sessionItem, config.navigationWand, session, new NavigationWand()); } catch (InvalidToolBindException e) { if (warnedInvalidTool.add("navwand")) { log.warn("Invalid navigation wand tool set in config. Tool will not be assigned: " + e.getItemType()); From bb464a6f0c51d6a1d75a5d8eb41d283d0f139a76 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 9 Dec 2020 22:38:57 -0500 Subject: [PATCH 011/813] Update adapters to fix #1586. --- .../src/main/resources/worldedit-adapters.jar | Bin 669784 -> 669750 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index fbfad67089efc951df653f81253dc125c40d0af5..38abccb509a37dc0ae6b2aa859e3b38a4a2be3d8 100644 GIT binary patch delta 34721 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

1q) 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 From f1560ef90e6b4bceb3a2f5667808562e2fed7b02 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 9 Dec 2020 21:19:48 -0500 Subject: [PATCH 012/813] Changelog for 7.2.1. --- CHANGELOG.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d1998a4f5f..fb6008e98c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,12 @@ +7.2.1 +- Fix some usability issues with the default wand tools and session-persisted +tools conflicting. Wands will now only be saved per-session if they differ +from the default. +- Implement the UPDATE side-effect on Fabric. +- Allow //genbiome to use the y variable for 3D biomes. +- Add a tip to brush/tool commands on how to unbind them. +- Update language bundle and minor language loading fixes/improvements. + 7.2.0 - Greatly improve WorldEdit performance on servers with many plugins (See more: https://matthewmiller.dev/talk/optimizing-your-application/) - Improve general WorldEdit performance From 299386a33c6db3d9ac3c9a7193fee827f2095658 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 9 Dec 2020 22:10:44 -0500 Subject: [PATCH 013/813] Release 7.2.1. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 59e8bf730d..dffa4e0f97 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.1-SNAPSHOT +version=7.2.1 org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From df2eb157b0cbbdd0aa25a10410050546a19e5817 Mon Sep 17 00:00:00 2001 From: wizjany Date: Wed, 9 Dec 2020 22:11:05 -0500 Subject: [PATCH 014/813] Back to snapshot for development. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index dffa4e0f97..9be8b1acdd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.1 +version=7.2.2-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 544793d541e5ebaf1e7b22ebe2852e0140860368 Mon Sep 17 00:00:00 2001 From: Hannes Greule Date: Fri, 11 Dec 2020 16:06:32 +0100 Subject: [PATCH 015/813] Properly repeat extents for negative coordinates An extent's content was returned flipped when applied for negative positions, as e.g. `Math.abs(-2) % 3` returns 2 instead of 1 (as 1 + -1 * 3 = -2) (cherry picked from commit b0cf5dd2bf1b9bcbf1c7efff0fe25de7ee9a2090) --- .../worldedit/function/pattern/RepeatingExtentPattern.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java index a5f83b37e7..6dd62b7854 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/pattern/RepeatingExtentPattern.java @@ -88,9 +88,9 @@ public void setOrigin(BlockVector3 origin) { @Override public BaseBlock applyBlock(BlockVector3 position) { BlockVector3 base = position.add(offset); - int x = Math.abs(base.getBlockX()) % size.getBlockX(); - int y = Math.abs(base.getBlockY()) % size.getBlockY(); - int z = Math.abs(base.getBlockZ()) % size.getBlockZ(); + int x = Math.floorMod(base.getBlockX(), size.getBlockX()); + int y = Math.floorMod(base.getBlockY(), size.getBlockY()); + int z = Math.floorMod(base.getBlockZ(), size.getBlockZ()); return getExtent().getFullBlock(BlockVector3.at(x, y, z).add(origin)); } From d0a52a9885d0db9d13ea207dc45b52d364ecd66b Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Dec 2020 12:53:54 -0800 Subject: [PATCH 016/813] Indicate our branch policy for contrib --- CONTRIBUTING.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0e5edec551..5a423844d1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -31,6 +31,13 @@ ask that you make note of the following guidelines. complicated algorithms. +Additional Notes +---------------- +If you're submitting a feature, base your code on `master` and PR against the +`master` branch. If you're submitting a bugfix, base your code on the newest +`version/*` branch, and PR against that same branch. + + Checklist --------- From fce5ba2533d1999f84634c89d5757d355a904b46 Mon Sep 17 00:00:00 2001 From: i509VCB Date: Mon, 21 Dec 2020 21:53:25 -0600 Subject: [PATCH 017/813] [Fabric] Update Minecraft and Fabric API This also moves WorldEdit to use networking-v1 api --- worldedit-fabric/build.gradle.kts | 9 +++++---- .../sk89q/worldedit/fabric/FabricEntityProperties.java | 4 ++-- .../java/com/sk89q/worldedit/fabric/FabricPlayer.java | 6 +++--- .../worldedit/fabric/net/handler/WECUIPacketHandler.java | 8 +++----- worldedit-fabric/src/main/resources/fabric.mod.json | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 1bbd0b436c..78e80d4494 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -25,9 +25,10 @@ configure { accessWidener("src/main/resources/worldedit.accesswidener") } -val minecraftVersion = "1.16.3" -val yarnMappings = "1.16.3+build.1:v2" -val loaderVersion = "0.9.3+build.207" +val minecraftVersion = "1.16.4" +val yarnMappings = "1.16.4+build.7:v2" +val loaderVersion = "0.10.8" +val fabricApiVersion = "0.28.3+1.16" configurations.all { resolutionStrategy { @@ -53,7 +54,7 @@ dependencies { "modImplementation"("net.fabricmc:fabric-loader:$loaderVersion") // [1] declare fabric-api dependency... - "fabricApi"("net.fabricmc.fabric-api:fabric-api:0.20.2+build.402-1.16") + "fabricApi"("net.fabricmc.fabric-api:fabric-api:$fabricApiVersion") // [2] Load the API dependencies from the fabric mod json... @Suppress("UNCHECKED_CAST") diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java index 9c9bd2d392..19c91e383a 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java @@ -41,7 +41,7 @@ import net.minecraft.entity.vehicle.AbstractMinecartEntity; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.village.Trader; +import net.minecraft.village.Merchant; import static com.google.common.base.Preconditions.checkNotNull; @@ -121,7 +121,7 @@ public boolean isAmbient() { @Override public boolean isNPC() { - return entity instanceof Npc || entity instanceof Trader; + return entity instanceof Npc || entity instanceof Merchant; } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java index f200565b0e..7dbedba673 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java @@ -43,12 +43,12 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; import io.netty.buffer.Unpooled; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.text.MutableText; @@ -128,9 +128,9 @@ public void dispatchCUIEvent(CUIEvent event) { if (params.length > 0) { send = send + "|" + StringUtil.joinString(params, "|"); } + PacketByteBuf buffer = new PacketByteBuf(Unpooled.copiedBuffer(send.getBytes(WECUIPacketHandler.UTF_8_CHARSET))); - CustomPayloadS2CPacket packet = new CustomPayloadS2CPacket(new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL), buffer); - this.player.networkHandler.sendPacket(packet); + ServerPlayNetworking.send(this.player, new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL), buffer); } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java index adafd65537..460f7f6c01 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java @@ -23,8 +23,7 @@ import com.sk89q.worldedit.fabric.FabricAdapter; import com.sk89q.worldedit.fabric.FabricPlayer; import com.sk89q.worldedit.fabric.FabricWorldEdit; -import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; -import net.minecraft.server.network.ServerPlayerEntity; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.util.Identifier; import java.nio.charset.Charset; @@ -38,15 +37,14 @@ private WECUIPacketHandler() { private static final Identifier CUI_IDENTIFIER = new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL); public static void init() { - ServerSidePacketRegistry.INSTANCE.register(CUI_IDENTIFIER, (packetContext, packetByteBuf) -> { - ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer(); + ServerPlayNetworking.registerGlobalReceiver(CUI_IDENTIFIER, (server, player, handler, buf, responseSender) -> { LocalSession session = FabricWorldEdit.inst.getSession(player); if (session.hasCUISupport()) { return; } - String text = packetByteBuf.toString(UTF_8_CHARSET); + String text = buf.toString(UTF_8_CHARSET); final FabricPlayer actor = FabricAdapter.adaptPlayer(player); session.handleCUIInitializationMessage(text, actor); session.describeCUI(actor); diff --git a/worldedit-fabric/src/main/resources/fabric.mod.json b/worldedit-fabric/src/main/resources/fabric.mod.json index 3a695611d5..eaf62ecd56 100644 --- a/worldedit-fabric/src/main/resources/fabric.mod.json +++ b/worldedit-fabric/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ "fabric-command-api-v1": "*", "fabric-lifecycle-events-v1": "*", "fabric-events-interaction-v0": "*", - "fabric-networking-v0": "*" + "fabric-networking-api-v1": "*" }, "mixins": [ "worldedit.mixins.json" From 98c4580db934b8639486a1b7e453f9f4cc9004ce Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 22 Dec 2020 14:48:22 +1000 Subject: [PATCH 018/813] Fix SideEffectSet.none() being the default set (#1620) * Fix SideEffectSet.none() being the default set * Remove the unnecessary private empty constructor for SideEffectSet * Back to ImmutableMap.of --- .../java/com/sk89q/worldedit/util/SideEffectSet.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java index 6626bc2fd5..ebf5f73329 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java @@ -30,19 +30,15 @@ import java.util.stream.Collectors; public class SideEffectSet { - private static final SideEffectSet DEFAULT = new SideEffectSet( - Arrays.stream(SideEffect.values()).collect(Collectors.toMap(Function.identity(), SideEffect::getDefaultValue)) + private static final SideEffectSet DEFAULT = new SideEffectSet(ImmutableMap.of()); + private static final SideEffectSet NONE = new SideEffectSet( + Arrays.stream(SideEffect.values()).collect(Collectors.toMap(Function.identity(), state -> SideEffect.State.OFF)) ); - private static final SideEffectSet NONE = new SideEffectSet(); private final Map sideEffects; private final Set appliedSideEffects; private final boolean appliesAny; - private SideEffectSet() { - this(ImmutableMap.of()); - } - public SideEffectSet(Map sideEffects) { this.sideEffects = Maps.immutableEnumMap(sideEffects); From 7a268b0b5d141dcede9b883d60e73a2eca0ef4de Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 2 Jan 2021 21:01:40 +1000 Subject: [PATCH 019/813] Add WorldEdit version and platform to schematics (#1635) * Add WorldEdit version and platform to schematics * Use an actual platform ID rather than name, for more accurate info. * Put the platform data within another nested tag * Use a best-effort legacy platform ID * Review changes * Move the getId impl to Platform * Review notes * Review notes * :sweat: --- .../bukkit/BukkitServerInterface.java | 5 +++++ .../com/sk89q/worldedit/cli/CLIPlatform.java | 5 +++++ .../internal/util/DocumentationPlatform.kt | 2 ++ .../worldedit/command/WorldEditCommands.java | 6 ++++-- .../worldedit/extension/platform/Platform.java | 17 ++++++++++++++++- .../clipboard/io/SpongeSchematicWriter.java | 18 ++++++++++++++++++ .../sk89q/worldedit/fabric/FabricPlatform.java | 5 +++++ .../sk89q/worldedit/forge/ForgePlatform.java | 5 +++++ .../sk89q/worldedit/sponge/SpongePlatform.java | 5 +++++ 9 files changed, 65 insertions(+), 3 deletions(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 94c0602583..bba1889aa4 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -214,6 +214,11 @@ public String getPlatformVersion() { return plugin.getDescription().getVersion(); } + @Override + public String getId() { + return "enginehub:bukkit"; + } + @Override public Map getCapabilities() { Map capabilities = new EnumMap<>(Capability.class); diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java index 15e98ec316..6fdba234fe 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java @@ -145,6 +145,11 @@ public String getPlatformVersion() { return app.getInternalVersion(); } + @Override + public String getId() { + return "enginehub:cli"; + } + @Override public Map getCapabilities() { Map capabilities = new EnumMap<>(Capability.class); diff --git a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt index 44de0cbf66..1496b90045 100644 --- a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt +++ b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt @@ -39,6 +39,8 @@ class DocumentationPlatform : AbstractPlatform() { return props.getProperty("version") ?: "No version property in `gradle.properties`" } + override fun getId() = "enginehub:documentation" + override fun getConfiguration() = DocumentationConfiguration override fun getPlatformVersion() = version diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java index 36f94d223a..01fa50901a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java @@ -37,6 +37,7 @@ import com.sk89q.worldedit.util.formatting.component.TextComponentProducer; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; +import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.paste.ActorCallbackPaste; import com.sk89q.worldedit.util.report.ConfigReport; @@ -83,7 +84,8 @@ public void version(Actor actor) { for (Platform platform : pm.getPlatforms()) { producer.append( TextComponent.of("* ", TextColor.GRAY) - .append(TextComponent.of(platform.getPlatformName())) + .append(TextComponent.of(platform.getPlatformName()) + .hoverEvent(HoverEvent.showText(TextComponent.of(platform.getId())))) .append(TextComponent.of("(" + platform.getPlatformVersion() + ")")) ).newline(); } @@ -95,7 +97,7 @@ public void version(Actor actor) { producer.append( TextComponent.of(capability.name(), TextColor.GRAY) .append(TextComponent.of(": ") - .append(TextComponent.of(platform != null ? platform.getPlatformName() : "NONE"))) + .append(TextComponent.of(platform != null ? platform.getPlatformName() : "none"))) ).newline(); } actor.print(new MessageBox("Capabilities", producer, TextColor.GRAY).create()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index 4ed322a637..f57a486941 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -21,6 +21,8 @@ import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; +import com.sk89q.worldedit.registry.Keyed; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.io.ResourceLoader; import com.sk89q.worldedit.util.translation.TranslationManager; @@ -30,6 +32,7 @@ import org.enginehub.piston.CommandManager; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import javax.annotation.Nullable; @@ -40,7 +43,7 @@ *

It is strongly recommended that implementations extend from * {@link AbstractPlatform}.

*/ -public interface Platform { +public interface Platform extends Keyed { /** * Return the resource loader. @@ -178,6 +181,18 @@ public interface Platform { */ String getPlatformVersion(); + /** + * {@inheritDoc} + * @return an id + * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} + * for details + */ + @NonAbstractForCompatibility(delegateName = "getPlatformName", delegateParams = {}) + @Override + default String getId() { + return "legacy:" + getPlatformName().toLowerCase(Locale.ROOT).replaceAll("[^a-z_.-]", "_"); + } + /** * Get a map of advertised capabilities of this platform, where each key * in the given map is a supported capability and the respective value diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java index 8a86c10392..3aa16a871d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicWriter.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.extent.clipboard.io; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; @@ -34,6 +35,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; @@ -114,6 +116,22 @@ private Map write2(Clipboard clipboard) { metadata.put("WEOffsetY", new IntTag(offset.getBlockY())); metadata.put("WEOffsetZ", new IntTag(offset.getBlockZ())); + Map worldEditSection = new HashMap<>(); + worldEditSection.put("Version", new StringTag(WorldEdit.getVersion())); + worldEditSection.put("EditingPlatform", new StringTag(WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getId())); + worldEditSection.put("Offset", new IntArrayTag(new int[]{offset.getBlockX(), offset.getBlockY(), offset.getBlockZ()})); + + Map platformsSection = new HashMap<>(); + for (Platform platform : WorldEdit.getInstance().getPlatformManager().getPlatforms()) { + platformsSection.put(platform.getId(), new CompoundTag(ImmutableMap.of( + "Name", new StringTag(platform.getPlatformName()), + "Version", new StringTag(platform.getPlatformVersion()) + ))); + } + worldEditSection.put("Platforms", new CompoundTag(platformsSection)); + + metadata.put("WorldEdit", new CompoundTag(worldEditSection)); + schematic.put("Metadata", new CompoundTag(metadata)); schematic.put("Width", new ShortTag((short) width)); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java index 725932b4d1..8c8b3327de 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java @@ -200,6 +200,11 @@ public String getPlatformVersion() { return mod.getInternalVersion(); } + @Override + public String getId() { + return "enginehub:fabric"; + } + @Override public Map getCapabilities() { Map capabilities = new EnumMap<>(Capability.class); diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java index c96dcc2f6d..083f177512 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java @@ -201,6 +201,11 @@ public String getPlatformVersion() { return mod.getInternalVersion(); } + @Override + public String getId() { + return "enginehub:forge"; + } + @Override public Map getCapabilities() { Map capabilities = new EnumMap<>(Capability.class); diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java index 95d0c69f4d..c033e31aca 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java @@ -184,6 +184,11 @@ public String getPlatformVersion() { return mod.getInternalVersion(); } + @Override + public String getId() { + return "enginehub:sponge"; + } + @Override public Map getCapabilities() { Map capabilities = new EnumMap<>(Capability.class); From 2c172197ac203dcb0945bbb797be2aa0420db6b9 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 3 Jan 2021 21:07:00 -0800 Subject: [PATCH 020/813] Enable stale bot for pending bugs --- .github/stale.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/stale.yml diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..f4c0060997 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Only close pending bugs +onlyLabels: + - status:pending + - type:bug +# Label to use when marking an issue as stale +staleLabel: status:stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not been fully confirmed. + It will be closed if no further activity occurs. Thank you for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false From 520153860804739692fc637c478da5abcdb556ab Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 4 Jan 2021 14:15:52 -0800 Subject: [PATCH 021/813] Remove superclasses of mixins where not needed --- .../fabric/mixin/AccessorLevelProperties.java | 3 +-- .../worldedit/fabric/mixin/MixinMinecraftServer.java | 8 +------- .../fabric/mixin/MixinServerPlayerEntity.java | 10 +--------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java index 98fb1c96fb..6b1e3e064c 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.fabric.mixin; -import net.minecraft.world.SaveProperties; import net.minecraft.world.gen.GeneratorOptions; import net.minecraft.world.level.LevelProperties; import org.spongepowered.asm.mixin.Mixin; @@ -27,7 +26,7 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(LevelProperties.class) -public interface AccessorLevelProperties extends SaveProperties { +public interface AccessorLevelProperties { @Accessor @Mutable diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java index 55cb7ae3c9..7c6bdaacbf 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java @@ -23,9 +23,7 @@ import com.sk89q.worldedit.fabric.internal.ExtendedMinecraftServer; import net.minecraft.resource.ServerResourceManager; import net.minecraft.server.MinecraftServer; -import net.minecraft.server.ServerTask; import net.minecraft.util.Util; -import net.minecraft.util.thread.ReentrantThreadExecutor; import net.minecraft.world.World; import net.minecraft.world.level.storage.LevelStorage; import org.spongepowered.asm.mixin.Mixin; @@ -35,11 +33,7 @@ import java.nio.file.Path; @Mixin(MinecraftServer.class) -public abstract class MixinMinecraftServer extends ReentrantThreadExecutor implements Watchdog, ExtendedMinecraftServer { - - public MixinMinecraftServer(String name) { - super(name); - } +public abstract class MixinMinecraftServer implements Watchdog, ExtendedMinecraftServer { @Shadow private long timeReference; diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinServerPlayerEntity.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinServerPlayerEntity.java index d626df3963..3cbf1ad7b9 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinServerPlayerEntity.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinServerPlayerEntity.java @@ -19,27 +19,19 @@ package com.sk89q.worldedit.fabric.mixin; -import com.mojang.authlib.GameProfile; import com.sk89q.worldedit.fabric.internal.ExtendedPlayerEntity; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.network.packet.c2s.play.ClientSettingsC2SPacket; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(ServerPlayerEntity.class) -public abstract class MixinServerPlayerEntity extends PlayerEntity implements ExtendedPlayerEntity { +public abstract class MixinServerPlayerEntity implements ExtendedPlayerEntity { private String language = "en_us"; - public MixinServerPlayerEntity(World world, BlockPos blockPos, float yaw, GameProfile gameProfile) { - super(world, blockPos, yaw, gameProfile); - } - @Inject(method = "setClientSettings", at = @At(value = "HEAD")) public void setClientSettings(ClientSettingsC2SPacket clientSettingsC2SPacket, CallbackInfo callbackInfo) { From e0dd2f3cb663a3312caa6c9b341720636f248501 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 4 Jan 2021 20:46:36 -0800 Subject: [PATCH 022/813] Fix failure caused by previous commit --- .../sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java index 6b1e3e064c..98fb1c96fb 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/AccessorLevelProperties.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.fabric.mixin; +import net.minecraft.world.SaveProperties; import net.minecraft.world.gen.GeneratorOptions; import net.minecraft.world.level.LevelProperties; import org.spongepowered.asm.mixin.Mixin; @@ -26,7 +27,7 @@ import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(LevelProperties.class) -public interface AccessorLevelProperties { +public interface AccessorLevelProperties extends SaveProperties { @Accessor @Mutable From df71f3ae7dacaa26d2187243bb029a5a9b72859c Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 5 Jan 2021 16:19:45 +1000 Subject: [PATCH 023/813] Add a command to apply side effects (#1623) * [WIP] Add a command to apply side effects * Fix checkstyle * Switch to the //update command, and add messages * The update command won't change in the future, remove that warning * Create a Function that applies side effects for easier API usage, and make gmasks apply to `//update` * Fixed `//update` not using the current side effect set * Fixed PR review notes * Fixed regression in last commit * smh why is it null * Update GeneralCommands.java * PR review * PR review * :( * :( --- .../worldedit/command/GeneralCommands.java | 30 ++++++- .../CommaSeparatedValuesConverter.java | 29 ++++++- .../argument/SideEffectSetConverter.java | 81 +++++++++++++++++++ .../platform/PlatformCommandManager.java | 2 + .../function/block/ApplySideEffect.java | 50 ++++++++++++ .../com/sk89q/worldedit/util/SideEffect.java | 2 + .../src/main/resources/lang/strings.json | 1 + 7 files changed, 191 insertions(+), 4 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectSetConverter.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ApplySideEffect.java diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java index 2b558ee7d9..ee340b42f6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java @@ -32,7 +32,12 @@ import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.function.RegionFunction; +import com.sk89q.worldedit.function.RegionMaskingFilter; +import com.sk89q.worldedit.function.block.ApplySideEffect; import com.sk89q.worldedit.function.mask.Mask; +import com.sk89q.worldedit.function.operation.Operations; +import com.sk89q.worldedit.function.visitor.RegionVisitor; import com.sk89q.worldedit.internal.command.CommandRegistrationHandler; import com.sk89q.worldedit.internal.command.CommandUtil; import com.sk89q.worldedit.util.SideEffect; @@ -76,7 +81,7 @@ public static void register(CommandRegistrationHandler registration, CommandManager commandManager, CommandManagerService commandManagerService, WorldEdit worldEdit) { - // Collect the tool commands + // Collect the commands CommandManager collect = commandManagerService.newCommandManager(); registration.register( @@ -282,6 +287,29 @@ void perf(Actor actor, LocalSession session, } } + @Command( + name = "/update", + desc = "Apply side effects to your selection" + ) + @CommandPermissions("worldedit.update") + void update(Actor actor, LocalSession session, World injectedWorld, + @Arg(desc = "The side effects", def = "") + SideEffectSet sideEffectSet) throws WorldEditException { + if (sideEffectSet == null) { + // Use defaults if none supplied. + sideEffectSet = SideEffectSet.defaults(); + } + RegionFunction apply = new ApplySideEffect(injectedWorld, sideEffectSet); + if (session.getMask() != null) { + apply = new RegionMaskingFilter(session.getMask(), apply); + } + + RegionVisitor visitor = new RegionVisitor(session.getSelection(injectedWorld), apply); + Operations.complete(visitor); + + actor.printInfo(TranslatableComponent.of("worldedit.update")); + } + @Command( name = "/reorder", desc = "Sets the reorder mode of WorldEdit" diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java index ef819f3766..d4f3c92d82 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/CommaSeparatedValuesConverter.java @@ -21,6 +21,7 @@ import com.google.common.base.Splitter; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; @@ -30,6 +31,8 @@ import org.enginehub.piston.inject.InjectedValueAccess; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkArgument; import static com.sk89q.worldedit.util.formatting.text.TextComponent.space; @@ -40,20 +43,30 @@ public static CommaSeparatedValuesConverter wrap(ArgumentConverter del return wrapAndLimit(delegate, -1); } + public static CommaSeparatedValuesConverter wrapNoRepeats(ArgumentConverter delegate) { + return wrapAndLimitNoRepeats(delegate, -1); + } + public static CommaSeparatedValuesConverter wrapAndLimit(ArgumentConverter delegate, int maximum) { - return new CommaSeparatedValuesConverter<>(delegate, maximum); + return new CommaSeparatedValuesConverter<>(delegate, maximum, true); + } + + public static CommaSeparatedValuesConverter wrapAndLimitNoRepeats(ArgumentConverter delegate, int maximum) { + return new CommaSeparatedValuesConverter<>(delegate, maximum, false); } private static final Splitter COMMA = Splitter.on(','); private final ArgumentConverter delegate; private final int maximum; + private final boolean repeats; - private CommaSeparatedValuesConverter(ArgumentConverter delegate, int maximum) { + private CommaSeparatedValuesConverter(ArgumentConverter delegate, int maximum, boolean repeats) { checkArgument(maximum == -1 || maximum > 1, "Maximum must be bigger than 1, or exactly -1"); this.delegate = delegate; this.maximum = maximum; + this.repeats = repeats; } @Override @@ -73,7 +86,17 @@ public Component describeAcceptableArguments() { public List getSuggestions(String input, InjectedValueAccess context) { String lastInput = Iterables.getLast(COMMA.split(input), ""); assert lastInput != null; - return delegate.getSuggestions(lastInput, context); + List suggestions = delegate.getSuggestions(lastInput, context); + if (input.contains(",")) { + String prefix = input.substring(0, input.length() - lastInput.length()); + Set entries = ImmutableSet.copyOf(COMMA.split(input)); + suggestions = suggestions + .stream() + .filter(suggestion -> repeats || !entries.contains(suggestion)) + .map(suggestion -> prefix + suggestion) + .collect(Collectors.toList()); + } + return suggestions; } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectSetConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectSetConverter.java new file mode 100644 index 0000000000..509b993812 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectSetConverter.java @@ -0,0 +1,81 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.command.argument; + +import com.sk89q.worldedit.util.SideEffect; +import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.util.formatting.text.TextComponent; +import org.enginehub.piston.CommandManager; +import org.enginehub.piston.converter.ArgumentConverter; +import org.enginehub.piston.converter.ConversionResult; +import org.enginehub.piston.converter.FailedConversion; +import org.enginehub.piston.converter.SuccessfulConversion; +import org.enginehub.piston.inject.InjectedValueAccess; +import org.enginehub.piston.inject.Key; + +import java.util.List; + +public class SideEffectSetConverter implements ArgumentConverter { + + public static void register(CommandManager commandManager) { + ArgumentConverter sideEffectConverter = commandManager.getConverter(Key.of(SideEffect.class)) + .orElseThrow(() -> new IllegalStateException("SideEffectSetConverter must be registered after SideEffectConverter")); + commandManager.registerConverter( + Key.of(SideEffectSet.class), + new SideEffectSetConverter(CommaSeparatedValuesConverter.wrapNoRepeats(sideEffectConverter)) + ); + } + + private final TextComponent choices = TextComponent.of("any side effects"); + private final CommaSeparatedValuesConverter sideEffectConverter; + + private SideEffectSetConverter(CommaSeparatedValuesConverter sideEffectConverter) { + this.sideEffectConverter = sideEffectConverter; + } + + @Override + public Component describeAcceptableArguments() { + return choices; + } + + @Override + public List getSuggestions(String input, InjectedValueAccess context) { + return sideEffectConverter.getSuggestions(input, context); + } + + @Override + public ConversionResult convert(String argument, InjectedValueAccess context) { + try { + ConversionResult result = sideEffectConverter.convert(argument, context); + if (result.isSuccessful()) { + SideEffectSet set = SideEffectSet.none(); + for (SideEffect sideEffect : result.get()) { + set = set.with(sideEffect, SideEffect.State.ON); + } + return SuccessfulConversion.fromSingle(set); + } else { + return result.failureAsAny(); + } + } catch (Exception e) { + return FailedConversion.from(e); + } + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java index b2dc9d4298..f8478d21c4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java @@ -81,6 +81,7 @@ import com.sk89q.worldedit.command.argument.RegionFactoryConverter; import com.sk89q.worldedit.command.argument.RegistryConverter; import com.sk89q.worldedit.command.argument.SideEffectConverter; +import com.sk89q.worldedit.command.argument.SideEffectSetConverter; import com.sk89q.worldedit.command.argument.VectorConverter; import com.sk89q.worldedit.command.argument.WorldConverter; import com.sk89q.worldedit.command.argument.ZonedDateTimeConverter; @@ -221,6 +222,7 @@ private void registerArgumentConverters() { RegionFactoryConverter.register(commandManager); WorldConverter.register(commandManager); SideEffectConverter.register(commandManager); + SideEffectSetConverter.register(commandManager); HeightConverter.register(commandManager); OffsetConverter.register(worldEdit, commandManager); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ApplySideEffect.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ApplySideEffect.java new file mode 100644 index 0000000000..f0b59a99f1 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ApplySideEffect.java @@ -0,0 +1,50 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.function.block; + +import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.function.RegionFunction; +import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.world.World; + +import static com.google.common.base.Preconditions.checkNotNull; + +/** + * Applies the given side effect within a region. + */ +public class ApplySideEffect implements RegionFunction { + + private final World world; + private final SideEffectSet sideEffectSet; + + public ApplySideEffect(World world, SideEffectSet sideEffectSet) { + checkNotNull(world); + checkNotNull(sideEffectSet); + this.world = world; + this.sideEffectSet = sideEffectSet; + } + + @Override + public boolean apply(BlockVector3 position) throws WorldEditException { + world.applySideEffects(position, world.getBlock(position), sideEffectSet); + return true; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java index e2793cd9fd..3ec36e348f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java @@ -29,6 +29,7 @@ public enum SideEffect { ENTITY_AI(State.OFF), EVENTS(State.OFF); + // TODO Make these components in WE8 private final String displayName; private final String description; private final State defaultValue; @@ -56,6 +57,7 @@ public enum State { ON, DELAYED; + // TODO Make this a component in WE8 private final String displayName; State() { diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index 2485f29352..2ed98270c1 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -52,6 +52,7 @@ "worldedit.perf.sideeffect.get": "Side effect \"{0}\" is set to {1}", "worldedit.perf.sideeffect.already-set": "Side effect \"{0}\" is already {1}", "worldedit.perf.sideeffect.set-all": "All side effects set to {0}", + "worldedit.update": "Applied side effects to the selection.", "worldedit.reorder.current": "The reorder mode is {0}", "worldedit.reorder.set": "The reorder mode is now {0}", "worldedit.gmask.disabled": "Global mask disabled.", From 303f5a76b2df70d63480f2126c9ef4b228eb3c59 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 5 Jan 2021 16:48:33 +1000 Subject: [PATCH 024/813] Schematic Share system (#1591) * Very WIP in-game schematic sharing system * Add support for paste meta, and send that data when possible * Add ability to specify the name of the shared schematic --- .../worldedit/command/SchematicCommands.java | 102 +++++++++++++++--- .../worldedit/command/WorldEditCommands.java | 6 +- .../util/paste/ActorCallbackPaste.java | 22 ++++ .../worldedit/util/paste/EngineHubPaste.java | 23 +++- .../worldedit/util/paste/PasteMetadata.java | 26 +++++ .../sk89q/worldedit/util/paste/Paster.java | 6 +- 6 files changed, 167 insertions(+), 18 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/PasteMetadata.java diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index aa1188d425..70dcac0696 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -54,6 +54,8 @@ import com.sk89q.worldedit.util.io.Closer; import com.sk89q.worldedit.util.io.file.FilenameException; import com.sk89q.worldedit.util.io.file.MorePaths; +import com.sk89q.worldedit.util.paste.EngineHubPaste; +import com.sk89q.worldedit.util.paste.PasteMetadata; import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; @@ -66,14 +68,19 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; +import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.Base64; import java.util.Comparator; import java.util.List; import java.util.concurrent.Callable; @@ -146,7 +153,7 @@ public void load(Actor actor, LocalSession session, @Command( name = "save", - desc = "Save a schematic into your clipboard" + desc = "Save your clipboard into a schematic file" ) @CommandPermissions({ "worldedit.clipboard.save", "worldedit.schematic.save" }) public void save(Actor actor, LocalSession session, @@ -205,6 +212,39 @@ public void save(Actor actor, LocalSession session, .buildAndExec(worldEdit.getExecutorService()); } + @Command( + name = "share", + desc = "Share your clipboard as a schematic online" + ) + @CommandPermissions({ "worldedit.clipboard.share", "worldedit.schematic.share" }) + public void share(Actor actor, LocalSession session, + @Arg(desc = "Schematic name. Defaults to name-millis", def = "") + String schematicName, + @Arg(desc = "Format name.", def = "sponge") + String formatName) throws WorldEditException { + if (worldEdit.getPlatformManager().queryCapability(Capability.GAME_HOOKS).getDataVersion() == -1) { + actor.printError(TranslatableComponent.of("worldedit.schematic.unsupported-minecraft-version")); + return; + } + + ClipboardFormat format = ClipboardFormats.findByAlias(formatName); + if (format == null) { + actor.printError(TranslatableComponent.of("worldedit.schematic.unknown-format", TextComponent.of(formatName))); + return; + } + + ClipboardHolder holder = session.getClipboard(); + + SchematicShareTask task = new SchematicShareTask(actor, format, holder, schematicName); + AsyncCommandBuilder.wrap(task, actor) + .registerWithSupervisor(worldEdit.getSupervisor(), "Sharing schematic") + .setDelayMessage(TranslatableComponent.of("worldedit.schematic.save.saving")) + .setWorkingMessage(TranslatableComponent.of("worldedit.schematic.save.still-saving")) + .onSuccess("Shared", (url -> actor.printInfo(TextComponent.of(url.toExternalForm() + ".schem").clickEvent(ClickEvent.openUrl(url.toExternalForm() + ".schem"))))) + .onFailure("Failed to share schematic", worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter()) + .buildAndExec(worldEdit.getExecutorService()); + } + @Command( name = "delete", aliases = {"d"}, @@ -326,23 +366,18 @@ public ClipboardHolder call() throws Exception { } } - private static class SchematicSaveTask implements Callable { - private final Actor actor; - private final File file; + private abstract static class SchematicOutputTask implements Callable { + protected final Actor actor; private final ClipboardFormat format; private final ClipboardHolder holder; - private final boolean overwrite; - SchematicSaveTask(Actor actor, File file, ClipboardFormat format, ClipboardHolder holder, boolean overwrite) { + SchematicOutputTask(Actor actor, ClipboardFormat format, ClipboardHolder holder) { this.actor = actor; - this.file = file; this.format = format; this.holder = holder; - this.overwrite = overwrite; } - @Override - public Void call() throws Exception { + protected void writeToOutputStream(OutputStream outputStream) throws Exception { Clipboard clipboard = holder.getClipboard(); Transform transform = holder.getTransform(); Clipboard target; @@ -358,11 +393,28 @@ public Void call() throws Exception { } try (Closer closer = Closer.create()) { - FileOutputStream fos = closer.register(new FileOutputStream(file)); - BufferedOutputStream bos = closer.register(new BufferedOutputStream(fos)); + OutputStream stream = closer.register(outputStream); + BufferedOutputStream bos = closer.register(new BufferedOutputStream(stream)); ClipboardWriter writer = closer.register(format.getWriter(bos)); writer.write(target); + } + } + } + + private static class SchematicSaveTask extends SchematicOutputTask { + private final File file; + private final boolean overwrite; + + SchematicSaveTask(Actor actor, File file, ClipboardFormat format, ClipboardHolder holder, boolean overwrite) { + super(actor, format, holder); + this.file = file; + this.overwrite = overwrite; + } + @Override + public Void call() throws Exception { + try { + writeToOutputStream(new FileOutputStream(file)); log.info(actor.getName() + " saved " + file.getCanonicalPath() + (overwrite ? " (overwriting previous file)" : "")); } catch (IOException e) { file.delete(); @@ -372,6 +424,32 @@ public Void call() throws Exception { } } + private static class SchematicShareTask extends SchematicOutputTask { + private final String name; + + SchematicShareTask(Actor actor, ClipboardFormat format, ClipboardHolder holder, String name) { + super(actor, format, holder); + this.name = name; + } + + @Override + public URL call() throws Exception { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try { + writeToOutputStream(baos); + } catch (Exception e) { + throw new CommandException(TextComponent.of(e.getMessage()), e, ImmutableList.of()); + } + + EngineHubPaste pasteService = new EngineHubPaste(); + PasteMetadata metadata = new PasteMetadata(); + metadata.author = this.actor.getName(); + metadata.extension = "schem"; + metadata.name = name == null ? actor.getName() + "-" + System.currentTimeMillis() : name; + return pasteService.paste(new String(Base64.getEncoder().encode(baos.toByteArray()), StandardCharsets.UTF_8), metadata).call(); + } + } + private static class SchematicListTask implements Callable { private final Comparator pathComparator; private final int page; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java index 01fa50901a..b80a339111 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/WorldEditCommands.java @@ -40,6 +40,7 @@ import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.paste.ActorCallbackPaste; +import com.sk89q.worldedit.util.paste.PasteMetadata; import com.sk89q.worldedit.util.report.ConfigReport; import com.sk89q.worldedit.util.report.ReportList; import com.sk89q.worldedit.util.report.SystemInfoReport; @@ -137,7 +138,10 @@ public void report(Actor actor, if (pastebin) { actor.checkPermission("worldedit.report.pastebin"); - ActorCallbackPaste.pastebin(we.getSupervisor(), actor, result, TranslatableComponent.builder("worldedit.report.callback")); + PasteMetadata metadata = new PasteMetadata(); + metadata.author = actor.getName(); + metadata.extension = "report"; + ActorCallbackPaste.pastebin(we.getSupervisor(), actor, result, metadata, TranslatableComponent.builder("worldedit.report.callback")); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java index 9bc55b48aa..f4f13378d4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/ActorCallbackPaste.java @@ -77,4 +77,26 @@ public static void pastebin(Supervisor supervisor, final Actor sender, String co .buildAndExec(Pasters.getExecutor()); } + + /** + * Submit data to a pastebin service and inform the sender of + * success or failure. + * + * @param supervisor The supervisor instance + * @param sender The sender + * @param content The content + * @param pasteMetadata The paste metadata + * @param successMessage The message builder, given the URL as an arg + */ + public static void pastebin(Supervisor supervisor, final Actor sender, String content, PasteMetadata pasteMetadata, final TranslatableComponent.Builder successMessage) { + Callable task = paster.paste(content, pasteMetadata); + + AsyncCommandBuilder.wrap(task, sender) + .registerWithSupervisor(supervisor, "Submitting content to a pastebin service.") + .setDelayMessage(TranslatableComponent.of("worldedit.pastebin.uploading")) + .onSuccess((String) null, url -> sender.printInfo(successMessage.args(TextComponent.of(url.toString())).build())) + .onFailure("Failed to submit paste", null) + .buildAndExec(Pasters.getExecutor()); + } + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java index 7416d8c3cd..a5bf59e4f7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/EngineHubPaste.java @@ -33,22 +33,37 @@ public class EngineHubPaste implements Paster { private static final Gson GSON = new Gson(); @Override - public Callable paste(String content) { - return new PasteTask(content); + public Callable paste(String content, PasteMetadata metadata) { + return new PasteTask(content, metadata); } private static final class PasteTask implements Callable { private final String content; + private final PasteMetadata metadata; - private PasteTask(String content) { + private PasteTask(String content, PasteMetadata metadata) { this.content = content; + this.metadata = metadata; } @Override public URL call() throws IOException, InterruptedException { URL initialUrl = HttpRequest.url("https://paste.enginehub.org/signed_paste"); - SignedPasteResponse response = GSON.fromJson(HttpRequest.get(initialUrl) + HttpRequest requestBuilder = HttpRequest.get(initialUrl); + + requestBuilder.header("x-paste-meta-from", "EngineHub"); + if (metadata.name != null) { + requestBuilder.header("x-paste-meta-name", metadata.name); + } + if (metadata.author != null) { + requestBuilder.header("x-paste-meta-author", metadata.author); + } + if (metadata.extension != null) { + requestBuilder.header("x-paste-meta-extension", metadata.extension); + } + + SignedPasteResponse response = GSON.fromJson(requestBuilder .execute() .expectResponseCode(200) .returnContent() diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/PasteMetadata.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/PasteMetadata.java new file mode 100644 index 0000000000..5654e6ae53 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/PasteMetadata.java @@ -0,0 +1,26 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.paste; + +public class PasteMetadata { + public String name; + public String extension; + public String author; +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Paster.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Paster.java index 0b7652b912..ccd5780b0f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Paster.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/paste/Paster.java @@ -24,6 +24,10 @@ public interface Paster { - Callable paste(String content); + default Callable paste(String content) { + return paste(content, new PasteMetadata()); + } + + Callable paste(String content, PasteMetadata metadata); } From 86bf3a34193c2e3e1bac613649d50eb6fe8737f1 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 5 Jan 2021 12:14:54 -0800 Subject: [PATCH 025/813] Support Lucko's Fabric Permissions API (#1638) * Add support for Lucko's Fabric Perms API Only if present, falls back to the existing checks if it returns `false`. * Only use vanilla fallback if no value set in Perms --- worldedit-fabric/build.gradle.kts | 3 +++ .../fabric/FabricPermissionsProvider.java | 18 ++++++++++++++++++ .../worldedit/fabric/FabricWorldEdit.java | 13 +++++++++++-- .../src/main/resources/fabric.mod.json | 3 +++ 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 1bbd0b436c..7a077e5058 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -99,6 +99,9 @@ dependencies { "modImplementation"(it) } + // No need for this at runtime + "modCompileOnly"("me.lucko:fabric-permissions-api:0.1-SNAPSHOT") + // Hook these up manually, because Fabric doesn't seem to quite do it properly. "compileOnly"("net.fabricmc:sponge-mixin:${project.versions.mixin}") "annotationProcessor"("net.fabricmc:sponge-mixin:${project.versions.mixin}") diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPermissionsProvider.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPermissionsProvider.java index e1dd7d296a..ccf4532bda 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPermissionsProvider.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPermissionsProvider.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.fabric; +import me.lucko.fabric.api.permissions.v0.Permissions; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.world.GameMode; @@ -48,4 +49,21 @@ public boolean hasPermission(ServerPlayerEntity player, String permission) { public void registerPermission(String permission) { } } + + class LuckoFabricPermissionsProvider extends VanillaPermissionsProvider { + + public LuckoFabricPermissionsProvider(FabricPlatform platform) { + super(platform); + } + + @Override + public boolean hasPermission(ServerPlayerEntity player, String permission) { + return Permissions.getPermissionValue(player, permission) + .orElseGet(() -> super.hasPermission(player, permission)); + } + + @Override + public void registerPermission(String permission) { + } + } } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java index 766794181c..f86506bba9 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java @@ -62,7 +62,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.io.File; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; @@ -145,7 +144,17 @@ private void setupPlatform(MinecraftServer server) { WorldEdit.getInstance().getPlatformManager().register(platform); - this.provider = new FabricPermissionsProvider.VanillaPermissionsProvider(platform); + this.provider = getInitialPermissionsProvider(); + } + + private FabricPermissionsProvider getInitialPermissionsProvider() { + try { + Class.forName("me.lucko.fabric.api.permissions.v0.Permissions", false, getClass().getClassLoader()); + return new FabricPermissionsProvider.LuckoFabricPermissionsProvider(platform); + } catch (ClassNotFoundException ignored) { + // fallback to vanilla + } + return new FabricPermissionsProvider.VanillaPermissionsProvider(platform); } private void setupRegistries(MinecraftServer server) { diff --git a/worldedit-fabric/src/main/resources/fabric.mod.json b/worldedit-fabric/src/main/resources/fabric.mod.json index 3a695611d5..9caabb11c4 100644 --- a/worldedit-fabric/src/main/resources/fabric.mod.json +++ b/worldedit-fabric/src/main/resources/fabric.mod.json @@ -35,6 +35,9 @@ "fabric-events-interaction-v0": "*", "fabric-networking-v0": "*" }, + "suggests": { + "fabric-permissions-api-v0": "*" + }, "mixins": [ "worldedit.mixins.json" ], From 3a3bf3de2c145958a372d0895c9e83abd98220c5 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 9 Jan 2021 14:38:07 -0800 Subject: [PATCH 026/813] Run the chunk deleter in Fabric (#1641) --- .../com/sk89q/worldedit/fabric/FabricWorldEdit.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java index f86506bba9..3c24ef7665 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java @@ -27,6 +27,7 @@ import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extension.platform.PlatformManager; import com.sk89q.worldedit.fabric.net.handler.WECUIPacketHandler; +import com.sk89q.worldedit.internal.anvil.ChunkDeleter; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockCategory; @@ -69,6 +70,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.fabric.FabricAdapter.adaptPlayer; +import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME; /** * The Fabric implementation of WorldEdit. @@ -113,6 +115,7 @@ public void onInitialize() { ServerTickEvents.END_SERVER_TICK.register(ThreadSafeCache.getInstance()); CommandRegistrationCallback.EVENT.register(this::registerCommands); + ServerLifecycleEvents.SERVER_STARTING.register(this::onStartingServer); ServerLifecycleEvents.SERVER_STARTED.register(this::onStartServer); ServerLifecycleEvents.SERVER_STOPPING.register(this::onStopServer); AttackBlockCallback.EVENT.register(this::onLeftClickBlock); @@ -196,6 +199,13 @@ private void setupRegistries(MinecraftServer server) { } } + private void onStartingServer(MinecraftServer minecraftServer) { + final Path delChunks = workingDir.resolve(DELCHUNKS_FILE_NAME); + if (Files.exists(delChunks)) { + ChunkDeleter.runFromFile(delChunks, true); + } + } + private void onStartServer(MinecraftServer minecraftServer) { FabricAdapter.setServer(minecraftServer); setupPlatform(minecraftServer); From f04ae2f1ec23b3d59e563e74c57a42d2d885bfe5 Mon Sep 17 00:00:00 2001 From: zml Date: Sat, 9 Jan 2021 20:01:36 -0800 Subject: [PATCH 027/813] Correct ellipsoidal selector initialization (#1632) When the previous selection was a non-ellipsoidal region, the started flag would not be appropriately set until a new selection had been started. --- .../worldedit/regions/selector/EllipsoidRegionSelector.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java index 93b0cf8b20..8d7a87a141 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java @@ -79,6 +79,7 @@ public EllipsoidRegionSelector(RegionSelector oldSelector) { final EllipsoidRegionSelector ellipsoidRegionSelector = (EllipsoidRegionSelector) oldSelector; region = new EllipsoidRegion(ellipsoidRegionSelector.getIncompleteRegion()); + started = ellipsoidRegionSelector.started; } else { Region oldRegion; try { @@ -93,6 +94,7 @@ public EllipsoidRegionSelector(RegionSelector oldSelector) { BlockVector3 center = pos1.add(pos2).divide(2).floor(); region.setCenter(center); region.setRadius(pos2.subtract(center).toVector3()); + started = true; } } From 5e1ee250e063b097c53cedb8042a4a536ca2952c Mon Sep 17 00:00:00 2001 From: wizjany Date: Fri, 15 Jan 2021 21:29:20 -0500 Subject: [PATCH 028/813] Update Bukkit adapter for 1.16.5. Just a data version bump. Barely dodged the mapping changes this time. --- .../src/main/resources/worldedit-adapters.jar | Bin 669784 -> 669759 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index fbfad67089efc951df653f81253dc125c40d0af5..31237d7c4686f7f1921bfd6b84402a310e708ab7 100644 GIT binary patch delta 51694 zcmY(qWmp_r6E%vvySoH;cemg!!6CSW;4--DAcGTvySu~S?(Ps=g9ZKao^$T~?(HAb z)qB^fwW@0GdAgsTS-JkybNvZTO$izX2?7EE0phKkO(O}77ACDRNP|O{5_!l_wo0@Nlt>q$AE_TzY+fDkqigP_YWjl0#Xd7|9>N)kkbE*G)zF! zL!$oAN%ubA0|F8PqB|M0`7=l@5D^g+fCi1w@C6zH@?Te5m{X{KEnRpY7_|R^WDV%) z*I^+b_K=hNY_&jY_|O=j${l#r1~rr=*nfQ)u}Gl*wG?sT;r>BkH`P}R{FTfJm#p?f z3)DjgP0%n-JP7sAB!4C3&FbGtDLBxLHIz7z2M08j4T;?VOTPOb`za+f^1l&pm|I}} zwJJH_p#Onen_D^ILqVzc>95j6#AGvgt%hC!QP_W~SEn#( z3j+-S@fi*RLO(g5OufNWjPO6f{*ovEQQFCH68}r|!&K`($|uW?|Ev~UB*cGexb>Up zRqSstD$unxl*Ip}i$Nj5fhM7lkQ=z&6#fevg2$9 zTo6D50j)tjAn-p4i-8OOSyds_u>a7_(Ljg(`kO0svg!|QP~spWMuTM3^}qQlgs_yk z{moYd<)6;{okRech9kl?{EYYi7i}QycenqS6BU$n1SjziWsMC2NkeYR)_+8SpnimZ zvzGmF`CmKvi^2cS)|X8|{Zl~%#oO24e;1C*UnRQ#RFJ(A?!O3v)ms0`DUF0Ke*R0Q z@lVSeuIq9BD*-~Y$$!hsz9k&_pR~kfKv*k(t4Nc~KCTUlXGTJ4Fd5kU&tGPE>pzQr zocZ5GE^Qd}l>Yi7fGFz_B$7>k;iMYF!+{cD;jtPfXEdSz32L+YY#sPl01XH;680Y_ z(1$t{N<;iYp%Rb8{GfKB<`C28+(3w{eP@CJotYq-GT!P>B98S9&L$a zhfIdT{NHx9$sRt1`v;CXDRP2Dl#Ok+KjKI<@=U05_i(A6Iq1QzN%!C(+$qskir847@|($ zpE_KSTc9gpT8Vea1~!mW89D~l417C>cbw1kIGH`P=(gkLbGbWyf&gkIOS4Jx525PS zteM@UrP*d?Ukjht0&sYV!0pp&-pN*T4)j#hv|T+H(t?M7uD#C!0ZVjIR+Y?GaS>8b zm@!GI;T7LguFKROYiAvWF9K{lvJ&1?oP<S%n}Tl<@kL<5kZCg8o)Bo=oW2hKj4u*1vUcA`d}U;Uj;WYdC7idhpXC%zSN zi7JM^6)KOhNw0A+2bsxaiB8kA+1@F+dzuzT5*mC|#%Z^2a2~6iBr08R5S6t{;?i4& z9?}nAcdPAD7V;luZXs4{7-yhiuwrqxyaaD#F9d$z79l&yBdA>A&|VEY`vJykf+y@@ zdt{Drf1Q8({rvq0yXPvF(`TFUgqi}>=rPUpg@Eiovfm|z2eNcJ>slx>-9?e@v}8h!FsRfPxtrb zg`3mG3f-&n@_?J+;ar%&3EXmW6ZEzItZvY_x+jN)S3xlm;898HE|Ynw8< ziKRJ|$wEFeDS;Cs>l>*;Tj)jI*;R#;SD-k$3p&g%5v*~XxJ2vN+u1j{XS-GAlYX@sCSLQA-GPyE zBR0rEJhHjhhsa!BP+8#RNXtd+|4r- zXkt+o(ifs7eXwP+EnF+h_9RL^_#TkmmjK}UDAYnVdlTteYPd%#;$!5IW>dvU)t7+;ZUcn1CgFvg zlQs7>MX8RhnE*2zzQO^r3)z5k?xw89EM+h0j=>qHL&X-Wpqb0h%O19#8EczsBH4iU z<(W&a{E)MaJlIT+5=7OT1b9@(7Q|`S+k7oY^t!HxT10qogfMgh!CC=bXJOb}qlaTn zzI!@??(}w~X(^f?(4y>IEY9)=aKt!0K?w)--PJ-thdZSNO?CWxmMQ{^7OX z;U0n8Y}ZeK(Xy&+pCsE`CMn<11!KTcz@(N>m?oP`m~LCYGyi>N*_)2<=EBy@*5~D| zxq#t>mW-tg6QIVUm4)r1;F)mJN!Yv{ek?#jcgP@`x&Tdl2K~^aR?Y*4u6P? z!b=`9FMs{vZ*Q}mkzVFM-DEo#utP3ZY!6SXRwpfmgdL#}cby0fO@LlGECv``k7jOTJ~CUG7?3>TgNn+wc> z1vr-zlTk9h?gFd*cF2j;o0^h-gMQJ;h^8j@_=OIr@BO)Oy=ET zD$TU9LE#13aHFw()_qr2uECCP0_eU7=ndKM!rAb8W@CzN!Na}?2{mIWa^tDO8zf}L zO$_!2jAR#HWSe$mUs)6EQ4`qn+MD5BQK;3&k85}i1-+RQta&W}*$fGwGjDb`1b}xi ztNLP2>8DDr&4_YYJ%cuHmRI)^J1Se6sMPbH z&HjYsr`fTDK!%X|$;2$ww!uV0%u3F@>3M^>12h<6$k14%k0>XTeIn1=0E>{GB+hcf z&bW6|U0KECp1RrjX!f74(vQ}jW`;BCS|i@ZCKhIGj7+iw=YR_2G+*dGB2VfbJYNxI zR0P%z1?+pZmDAOkgEDlyaw0p8$T|FIvSYE`wN&jSMt2B(a_S#@*tm2oCP^V;OzR_37Cepscp?m(i_hwwrJQJ?sxooE!8)bZ4?#R;V zFzk9=AH^Zd?8*LQr}bR1e#*zVmg-dX*a%~rzJRE)SqD>(H!A4vBel>`ss7Y@JmS zRwKcGYj0N0IzDuAX@L=`3fuaHM-;agcb`>KmB(xGHg94-|+~ z&SFDtL+y*b!(%@f1^dP2?ofHobggux3fP%n7Pfw=&@wBeatA7Zo)s5X|AqW)->ICd zVKPHphz3|XOnVXT>$m=C;$Pt_RXbx{-p?K$mWpg&svp(U76xyU{lf$Q*gThv<(RHJ zbFPQgW})vB%5UHmr|^V)JP}JlqD#8E+H(X8I#-VM;7MYdq59A6ewgUJ+EY^|1?XSS z30&s`Kxj#3%(8}2sf%0e#=nm_%#RLCbiSYoPAmWy(>j7t!`CLh9a=J@o!@^#oCe(y zsBtq5kvEej`p24!>3(USic}aY5EEw&R=ryn_dajrN+|`V0nMd>H1I5)%;$TUYPy{X z?386_3emDGvFzhjf3{hpOJVbU&W5rOeP2fXG8FvUYDZ0aqUejQ4UwaoQrr9yVg;)W zOAP=n7oqd{cJ-Du$b1s%8|Y6ot%w8lKT6t=`*8g!kBiE~jKmo3TB+>$Yvv*H*=z}s ziOmQKeo>EJxbZQhD13$&nSy$3;SE3R5GjQNHa(2!orW(r&zUl%yn66qvg;5UVVixH z!~l;$UUJmIFvmDq&LNzY+Cf`HTb&z^YW}@xNY3`;84;bCzCtH}DQGi(Q|Tld=uA2N z?NHV{obz*tJhF*aUbTJ|vtrA3hy>S!)R3p!Z1&Wa2D`%DF#q&NZTaH%o-L|VRx)1; zzhYr!snBe*Ac{Am_sanahQ}^$SS@=vG6A_2&fTCnTF?fhs#oKQha3FCb?#?ON~L7L zJmg7h>)Y)Fm)Y{l9-CM@kkMrhGZ-Xo*Dxp*jtM-Fs^`$)ZTCl2wqu~Dl&sLEbF+UN z;x)m-{?fllC25glfLgq)Z!^(IB`-T;8_t`tDem1)IsIeMrh;(Mf)>@Q;j4sy7rl6A z9k(@6za7mMN$AU`jXgK~hd`}LhoMVAA_n8T-1X7H;b9$Q1(RUN5+v7}*a#UXyn%Y;D6bh4n(rC8OW~+I~ zjdNG^DGfQ5N5C1LI2GR%HS;U+awMk>j!^qIbd*gF+)|IV)2E&|xt|l}q&S`dc#SPN zp5k>^wQ}>NWuvz7ziWc3qT<$_V3al}kah*4EsR`Uo5t<-^Z$rp`XGG0v$u2u0?Kj8faTfOdya1<_S#=PNOiO@ zV|=Br#O31{Qu;}!K9~AtKhS;wROt=!EU(*2{U*G1xOMpHj~r^T$FxBs$6m(vTBI74 z%AJR`GR7!IgLE0y-EL~OQeUiL$H8ISU*vqEk$iBzZefRza7QDRNVjJ`_|1!j;P*awjh|d@05aM0xT_Q_@8Ztm-Cy$#{;283yAqSlL^Fn}`^QEkahz?6 zKI>oUi~sKAh`(6iX#;&%6t!?BkDv zr_yh-T}d1{7+)qc5CDLR3oTZ}j{|@IK+2`29_f9e z6rr-==Ed_%?@?!+BDgmX1c=>I8p$!{pXQZ@x<233B2(oD=TMjcAlWpP zCE)P-vEk(^9w5@ICAyl2*znDet)9&786x)Ncs)60zp}<=G zn}p|~%p(P`!EH?Hn%mnUDtHT=KmRG+GFZ;+(sJ}iG;u`PSBvsRK8~92+Z4>dl(X~@ z+n$rCYouh~EGS#o9HsrJC> z4@Uo7o?oV^-}x%`B>+96JxYc1wWmE+p}syK@4!XDtL3p z5x{*=kcKkq5z2s6791$o_7cQ^Ns`K;LgyPZmLbWdafI%L(zXmFz2%VdFt~O71EV^Y z94YpImkH9>FTO6f#^#GgEgo8X3?{ZqPG(hvUvfnrmunPxB z1?&%RvvBC4a2(L5y=q~YsWu#l9f(EQj9v-o-m{0ey6(yEdB>tp^;`p|FE@jB3{hk_6HimpSM-%78fy5tEdX_ zA_BEf0+pWNX)rmFKF26)AsMl>x_xw^^h8uuKM&bsacVAVu1-SDmejy3t=M-Z)mc;} z)l^SnpUk2xpLQAVJA&Q>lmL_iIRKp)TokFLhrUmm=t|;OgJ+Cc+mqF2wa`A-l;$Gz z{hy<62s_uel!I<~u3e%Vb6++BkdZ84oACqmseU~{xtGKe=9 z>xvR)fmL(LsSCQKt3#5t4k}H|Zk^?|$`W|7& zn8lA`vQE46PqAS&`^1IP$w*?v&t9@_P;TR9X`<@WJa-Cs-JxuTKDnZ+SRH@wOmdx1 zVE0s%@+31cOa`_MeDXyX=SprY1jVe6xmey@0w(4X*zc%Wy7claPUKG9Sp3N*+eGtd z!n=F>J+Hsyh8Reh*qqQlQvsCNQbAUyG4Q9)z|a0=MWB;$6#up&&>8MQgggCfKX1(i ze!THHoka;H{qgkb&OOh;cNrPC5iEM3?kN*E_!jdkL4^P{P!n(;pI{i2W7*d&x zk7N6eW+_Os&0e5$qOh#)PW#y|H;@OR0SJM;Ywf8ClM)bXoW+n!1DGySq;d2)=B-6U^BctlNS|<&Jvy!VDGqiAMA+K_*I8pwdhyMON}n+w#c6VfhZk z!{be~sf=tuyuRWY!}*y`x}QuyG@*ntasT14u_;mUH@h2uJQPQ0L}OLAg!B1Pe?4_g zq5oZ6_+`@__PuhUF5ra>klGQDEZ1Z-i+3)_S9-^&?3SF*XV|X#n2f!NF3yWVXKxtT z*Qocb;8Rfqe@9UzH<$R#9q{=`E~}f+%p91nY5ZV_rCUP*Z1&kyPV3ettQK_L9JORQ zDLF0ynkw>JXk{&VWH zc6dNjkx4<`G^tUR+Ke=5G^O$9UWfyc87xX>rB`L;c(ejz4})j-=lk$?WThU7p4mC) zIp<&JhRkm|fVXC2I%?zErNkqH=Zk03w1ATC@wuzLh0PQyy+^(0E^|3HpF+8V^mCy% z(c6mTm?zHHmt+``fjROSa&8*eA*VM=rR|W8emDh(?_+c1OXPKTa-()h&h-|86hn5D z7lRoBB399y)jw$zHze**s)2*cu;T(`#E0!03L`sJ0Qm-vQsji9%U;=~gUpjjlVkXn3_gvx{OV}KUvboSW|<^B)NQSru={kfGBl?>VjG|D5a(gu|i&z*_E zbIfxM2HHt|{OQFfX%$_9p*fQ|lgm*#m2=ji6YJ3(M`WBm=$&5bV`c7R!oMxDa&Yn}4#k~YZKUEZ z3WU>O?}#xcpevaQX|-oLV!jCs3k%+{VW3@5Mmi=`RGgvk3J;{cHIw`_RSC&M@yin% zahNBHKB}EG9MV6`=|g|otXRv>=Ot0{WXub^`9S~(JklR4xaG(Cur8z)@ouY zm}}iIq5(egjs|RLzT~=f=AWG8)*WhiqW4x^(cP1GRNpHhZq&26^biXSX&+{HV4&!p zjWu-et1S)7zibBZKQupbiDua2(x|+wc@=9fcC~`kq|YxI`_n@W%ez*nL|Opqn3c!= z8dRQGSv!cS>Mc1}1Tp1n*s+L`+P5&3=aYNH!Xe(&@J6+w;|W0`B^8bpdX zth>HBzxOE`s)wb)Qf%K|+`OEvK423@0#RZ3SkXW|{&=(ZAf-9Mlzo2M_- zkDX@1rqUMqwF@APFq-ss^)(n==yTosFi>#{JW}X3zz=Se9;z@(rGo&540Y9h8@B&&Q2z1~XLIx#Xo?RpJYAFDI4v@?jk;OI z^>yyhzbG$Vd4ucjCyZ>H9DTWah|Ww5q#THG4aggI$2y^w$+T^YY6kh{7G>nxm^Aug zUq*U{A`J*hhRq5|A}|2%Rm=@0C@oS~m+VYbH^e#XYnL`Rw6Jo%ka#Sf58}q36P|{G zqfssA=a87M)I&0H9~$UI{rYa*%scH9Mfi$s!N|$E*;~zI`gTdf3%&CTA2Go|^g{}g z?d{^Xu9fkUI7bN*o$dy68JF9VLH&3(cUHzjx`PRMu1a&tTqA(H=;4?>eGomicE(E7 zOueqP33=erG->C&N^~`8r2!pD2o`T9C>zyzOX|k#WZ@? zYp#vZ(Y(7P%iw7cudjOCTVdVOh`m?99MnXyLH2K&`pV+Q;K-DNGN1MOZ=5Qi}6jOTh@8Hd0!VL3O9UrzX4!tHjxmexGY<=Oh-L$?rfhq z!EnxYE$~~R&B`h&Gor>3Ph&GQ)gt}&T9i%6+U8`oA%P*G`=o+I0{&9XrLUX%byk{a`n zp9!_daRR`|ME28}D+0$aCz&26N&2Sjg43_VLi;TS{wMn-z7TcQ8s~M$uwABp_jt~= zxdpGCYr_>zLvrne(@>Uv3;D2h)v?pcExgx=$Dt)U=1#wXE0sod_0|j~RHxgtrd>XR zj862+DLTtD72kt=SPbflf$Rp_Mb&daCv6o`04bm^3Lhm7Gi0|Gxr3N^Ge~h-M|AH< zvqn!$^yi62BsS=`ocymhn0sPhbx_fs-Ags=QeD_`%Nh9+&S3F-LBI@{lp!!NmH5c$ zu!YvFxqt~l^3;=HecQy#|Nocp3GSm4y!&8YQH z7aO28ofsJJ*gb^b?yMdbb77@92nA5wEI{^vwb69LXEA8>x+z?gMH+&0685_< z8y~(cW&5t((%SN**k;+OSbf(DjY22#OILBU{4^8Sa(#;R!xmz-)s>Gslm{fV%C`Fo z-g-h2;H92Wepaznu2{#n`6*DsgVSabt(JVJC{M;{!lQ72=((w>Ipw0iOuNhtoB`l2 z(!S$S?cdTkjnM+G&{WUyMqR*iB=?5a{SP=v?AMrd1QkO*v_HM11Z4m41IKm53VhcV z?;pGon-^^{GeoD;GIbJ4f}K^Br{d7*i8?hiw9`6@2KSYy>WSSXAgfN_7W* zz8j4?vO}>GQ-|SqjMgF*H}uL+k}&=GZLUrG=Jc3|5s#tZmda;`H6gTJ$LM3K2;KlR zo)VZhUP8HHV);Vrx;>fu5dWTTyCLW5AY0YHkF zICSY5`Ykv3b}H}RZu?88=%mQN50VJw4%rBgC}=&Ao({sudRO#|^){1>?5JpMp(!+X zirf5TB2~9>s&^kvYrR*GFAq&b!pgZnzJ}F&XS$lOE_Gg#zUVvxBLX7aJ8-5Xx=Kl} zqUun!QD~|Mf}#sEMGkPBe=%T7R8lGPqN2MtM!Q#pd)QO66 zVV)Y)A@Y@OV?R&nmjtXhW)|Tcv@83kUm$}v^ooxkJ*7IX$mwYC6MES538KjIqwC5> zYwYfwAIg!Dq9i%(e*!A-=}}%Qqryb>Fw0g&&#);s??SQXyHMS;XDge3Bl2Ep)7^B{ zN2fmzMj|#TCNLbsJ7Smp;)gFxeg;;)VO9rdQ~**=47q7(!xw@Q0)4q|{!lpwR(*fB zJ~CKmrl|MHTF85~*OI#Muf$Sm7)&*{+y~f7BjYZ1&RMSXwxMDYXXK>i;%!i-hc8RTB#76K+=^=bXMjL~uZ7L@vZV-D^d&Tar`;vz=68#Xq z&_djX@7XJwR|q&%F&HTUr6|PSXJ z;dfe6Z%QDZ0fq6W?em+_kXV7y$cQ)Fw6!XB-m=K5*SW zRa6SUu8?edp9}5A-}Wydk8-2I5VXOs#6E$y&#Q~sUjUBegV(v|W^imVXP85q4|?mr zDFl>Fv{E>@{B&y0gvO=Jg%I+vGv_~4J>|NM>f3!sas)zIN(6m``d(LZptHE5E#g@t z+Gx8ZXtO=)9@dyY}K$Ib_eDNQ^n4U*owA2qHEZ4(gux)Nhhpy{x_fli)}5 z*3@47D+~-qI&@4d(>Hr+zux6)8Ccn_0*jD!D=U9F^V9x@B+UeVv(qThX>9Y6@Lv51 z%VWjFh?s`WWFoFXRrH;|Bcxb|W|CPLOE)>!Q;t5L`Eu9lee z(~yCI!8XlHQJB;hS5zW$O_4)$j-}2-*fxs(2}^TfP~Mjjd3-TKZUn;B*+nSL&Btw- zjoJ!A{pZHj_QF!|wZ>g32}JXSc^(KUw#EK|<;0w5&6h*0Xy&s1syW#wEv+>xv%IVM z&IKR|=6N@sDoi6}AOveE#0mT=z_~f?_|Oe?M;%OYqj zA6OMxWl+ika4I|HdV!P#iJ(+qYJNSO24G2Ch>6QS(GRNLu1SQwRS-ssEX;v%qPRal zhrN>5-b<)elHFXHKDKfbI^uipC-XrMf-ZbCREep~N)BH$X59FSzau8y$g(=$`^}m{ z!2$A!ePEA~qKOnm=IN~0PX|`YzfOHA#3}+YadgTV#d-26JqJ_`@)*-s*NrY_~kYADEZbL5a6>*{2Kt|qy)I&w@zo~`i?W2Zq zWXnb;g>e&;@Q?i=s^ap9c|cz}nCwC>EF&U}d~uz9dIUkz>suPp#w`cZ%o9eIXX!8V zjl6x_^AA1JW=FXih8JglyOG#X23)=DV04g)O7|3p1SAT|KtEpZ?}o6$aKB5~PI(<^O#At&K#1X!{|CBOK&&4>EA4;J9<+zb67n@qbqwN z@DOx7`o?GE%jr7O7(rE~ocaQHd|e#OzEB;Ou#XMFcu#XlT}lV2=nvwV1_W6hD5Le= z@oWb9i+_5fL`u&W4^-sPgL~i>wP;}TI_6s@Qt+BY=$pVG>BhHCRTUL)@(hv?A?dT2 z{VDh)WZ7GyP8tjTdL!WTwHLyV44prvMcfZv3e_(k+-tHI!&`K%ixSqOw)4Fwur<;Q zC4B?2!9EI1^5bmz5EnSGzsB{3y`9)kmw2TiIcnCbJCK86twF~%#Ik) z@*&-hl)Dw!REWppA;OUQmPIv71Hj(?7Dy`N?xh#<*sC78w$a621N{rxfE2ksj)bdV z#g6?QZCl5}4}SXs(T*~R@dT==RH&4a<3~Wk)hzLi|7$O#J7ti$03c1sTP!8q)K%u) zSdY_l!96i&8&WB0>Dwx4Vl#dkrf%#S@_0upRfrDNkC-Qa809hfMb%u?aec(>XXy8& zXO%FLR}8VA-EbJ&uZUuF1fM4%DFOmr;ob?OzP$g$c&P|k>40Gj+iHlsJM_)}`;rMJ zHTBLyCTXJJyLOOL^8jEr6*lyWS;Vkss*jV$&~qjQX%Z6!)(v5jBlMRZRX;yJ&hP+C zHU=i&f)dQ3e(3Qw&Y0%))l-zDH&%e+h&?;O(5~2ZUg#4HipDRS<%*V)7#Da@2I!(e7o^m^Q60!r(v|NA;3BtLVg% zGp*|~1`Za>6S{yoQ-zb+o!?P~u!S5Yy)Mk5v;3$-``^>!xlCE7LN$a*#$548;^caX zvQh8(;d%GfU67{2F8I+|!GByx(@JeyL!WF>^`3Cw@#oBhP_&sw%-f}le_6j0^-yY{ z2a-Oq1juP7!-94mCzK1briRHs(VB5*$BEr8^m_5*q9Xx}5$F5p)ez=Z-SSmzxHHPs zkj_F2eQedxcFYA8={P|2b!2niSTfNP&rq`%W#RG`@kQRSPh{4F{WNVr zR%W?oZ6+2d_Dbx|Chr^cN(JmLmh#+8h)P zp^+%;e=Gp}Q%G$~Nl;3U;#>-l+bOCvg|*t)$AmB9jD+!Mp8wFtU0Q7J{{i6cMTKUZtXXO!QN zn+fWnxS|yK+NRiQ`AA8?H&U)bXJJMcDtYwch2{XRxl|lwu)eHE-;J_%L96^CFZn*R zA%UPmomSF0FK~ro{*+R(Gm*m%mMNap=bg^`VtF21X5=!ZGIAJvp_N!qKBazwk$tA< zS|kd01R3;_5e!rnkcH2#!JNs{Jr`U_+ookL=9=C$Fqk;ASs9*lNuVb)Mql)Ts+8gL zszn22){?RI#<{Tg?D`0+C++JIS@IB2WsM{uDYF}((1xWd!iY(rU=P@G;z`80L}5y= zxk^W(4^o2jrPD^Vwkc$zW}{2_KDknBMGwXmhfaJhca{?3hGLQOH$l36mExYA5b^I%EHZaF+}r5Ort3 zgaW3p+_&azYr)uU0d{V}{k~3#^dplSB8`D2+Y3hM!`o>v=Va37mpq7pqFND8XDtRK zA}vu6-=+?lD($26lAGmHBB64mPGAvjadT|$PRAhPb5RBSF0gd5f{Zaz2*k)B>c;7Nk`Ne5uOWA6@ z+?Vi4CZ&C;NYg~< zUGadMWkgjRQ8yPPW{2jD%GmoWNCcL>L=>li1aji19-^r$%uOYY$2z0+JTu@p`T>># zT@to1EbKUmMlKa2$1aje3J2Q|$`3gr0GVNX4lI}D{^?g_0abCjV{P#~w|3}GT9=Ex zr{+=dC&Wy$K7lW*s+RpRZRW-#rY&JR5B$AOSFi+zYP_|7&}zfbYEhs(hK*afU^@1C zJA{yoWnqlN^(gQdy=cvoCKCbXOm*IjO?rO_1au3Vuc~(_b@507>ke>Fb6n7?ntU5B zk^A1j%x)*R!SIsTrtePXvy8?`lq;K%=$OQ(%t9Hc>I&+E;lAmPdBG8$k}CAV8fS_p zfpVBnxaQRPU8E27(*A3hO>*BQM0UQF<$g$7uiK|Dy~{t zkluI_6uv{u%l9XfK0~9J2eA$Lqc=X&;ov8HkPQ)-uP#eN8$JWr=$)AHanU?Y#5+fL z-@aqLvW4v&%Iz%YTr09Nb_SUJK@$ep@}Z>D(%H z53nMeLvtS5NgM>c?PPI}wa8C)A{JaxOzU>QqR^={`|@%MKZ_4Mmtf zqQTPl{Cod9-1Haq*l%)tzwGg3Xa(8f1VH!2%fmUpb;xBg&;=W`q@N!&)BGu)B78ny1_FSw z+{bThMfD2P??N!xF>`{u4F;fhgjaanR8h|&5h#;TXy+9)lX^hvy*9%8I-*H(;$GVJ z_udwV+JGZP&BgWIm!EekPx)y9^Dn~&x;{cA-vJpgpmNGv!$jP~wRnT1Fd1m0G(Q|G z`qQRAr0Kzl8D&=1;WIx>%92cMFKqCvS~(@torve4zd(~pSumIA^%rQToYWg>`9g?s z%4b%sx?hvt9=Vv#_Nq)&x}!P_OUPuv2*ik^d_#>6Bsd5pFiO$h8T)3{UN6aC2;HC` z$O(u%GE24Z{mmX5gt`fFv>f69I_zqwev-)d#Avjx*WI|d)HGsqu%tD@fHxf=jHDu{e@qSO~P=rSpJ z-QEXTKE?j*vg`Ie(MHEeUn>jDw7?(QsIN`qxAmj%0N~LqLfsGGce=S=f2$f))AP{)_97Yb1}C zZ`aJOKW*qT(v_Z`Li4!6-|u4ZT(L3$i50a*jnNP+-I~|zm^hA>Twx=Qo1fRlDbA+A zFN1iB{(A?ghqOeqp74V@h6oyVS^WAkt7y@h;4(!{Qk;^gc?FWfUEMtt#yQ00X>i6K zGgf6hTH_1W*9hMq3u;S2UNn}Zp^ucB8Tm&9<{gw%JYerJthWrxDL(Kts%sE{l9d}Q z!}!}=%4lz;xJ?X5*r#(=l;WCrz8-s!4?&_leMftzr}zPH#*T8LYX7{?$B8kjZcpuG z579!&YG@fb4yrI7az){F>N*yKzqMMyHwBjKMv|(y6fhCQTeN4i9(dm)gbUFPrrxzG z8aXOi-{5ER$Fptl|AA0=*-QrH1-Iwa7Gn=DHShm@55w%{>SrbKC@&E}qfy%xsqIV} z^(9*^1$Z@=iu}tJr7NVyqd$D@)k8Q|d>@>XxER%DNw5RPP_Y{pp315G_FKU78v^p0 zE7B2O`9@i`Awj?G1%Hm)*V2uQY$58y0M&rwn0ka za?+!3m%^z+d2UBxE)qhl2NES0p~1pL@S}IYOqoaWNxKGdi1*;PfwrC|W?|{h7kpolAa$QX=g*8H%9PEJq4FDGjo2cyLiPOe9 zXbEP;i&0o%39MTS{OX2UUO* z4xgG~EWtu~Q7gxW#>N4R7G3X;6mm0e!-YL-AmVoaoihc``n#b-1tYzXuRI*bJIkI9 z{RDgN0Un2le#`?PTL)viDrbB>I9cDfubZmOl^`pissneZ!?JlRXt@3&O@aB6ou5pu z+_59R1Fc)cj*ZNukSnkC&d)kA(paMpw~kOlVG50cP*5@(Dk2Fche0I-HpQ4~Dip~z zjcQd9xXD$v!fQD~iPvYx zVY#&XP*~Fm`>~~3%Sf|YO`93{gORNxY6U{OJ?`B4NERhH@Fx(>l!S7@ZNIfI|85HM z{v{6-mrGzy?GNm^$kbqN4&#(0jw%M05ZPm&Cfyp(l zu=Tw`VH8RB^7Moqiq35C#pKc5_xBRZJ-ogav3v+=O_ZLLp|NA7MC(eCp0wJ*0u2!O z;Ku-%Oi>w%nhFi#adjm`7(l$PsM(5se)%hix{+riL+xajMYQjst&q7zGOu(j+mGN$ z8f&MZ>A|YMrvdK0M~OW&62?m!Lwo$F^p0As4Q1YC5j}>>L2R)9%BM?up(99PP2osT z^rlzSiqy}2Ge2?R;0_sIOH$kcO7jH%P(Ujmaat*RCdC=!7hz`k#(j$Pu!MO*EdCUS z@(yqTjUw3(lSgb?J%lbiOv##AA73!0WaVea){A&HF=)7wR|o-*o!En^mcW6A2z2t? zoJpvt<#}Um_Df<$f?WS>O2HKw-_PG=!z%Qo(0?F~`;wuwAr}r+m*W+U_T(9X@!)0SSOUTBgnjv6=Ig;8IBLS*vxeojUo;#ael{c%2gL28*H z^$4-nO@Qziq$BX)*%bn}Tn1Cw7BGmSUP_!1M#I1v5AJYk?y_$L zEziKj7CbiHZG}@0j-+tcDflXJPkP#}->>@2`sqd|nHLoXE7{k6ah!zCY-W?NU*IiY zC|a{xJ7je4@PL0?FN1Gf|3Lr$|9jBxV7?#)4FVz#H0c7V0Wk3O(_Hrdcy~}(2G-Ph z%MoBf(O?EpxFA3h%fDjmEUYZlqlR-&HTgLrj{~W{Kst4J*pJT9o^07FW$_wz4R@26QNUZ}ms zig4_Kx^FgMK*HGdAcXNi!s3n(gjjsu%yn}8QxOEZ7;a!V8~ioyYa@yncCYSD1LP}7 zfbjquj9P*T$_|DxXcu&_&Sw9V3bC}S3wyb2`E(Bv0Nqoz+j8({ohU#K51>161zQW- zL*7figZ}nJ{ptz<2o|dv40z3Ocyim_VS|}B89O@z-0s#`KG}P}5of$rO}wiNY>!t1 z5_ie1o=PCz2|uVR-|Qh+p7>VpuOMIHyLDndz<|*;0P+(t(YqXtpJsT?Z}G$+?sDMQ zCKNKlPR=LG8Oze7J~k=wa09~cai_2RvK5x4pnQq&Mb643vnts$ZUfb8)V$*pl4y)l zklHdJN70&@+BS|Ls#1S4jdE*NjD5k^QfsRmA(O*wLf<-bW)@#*GMtO+1zi|VG*6M9 zZX&7`muz}!;(A~eH-37Gwtu$mNo$NqsO77}beBblqlF_WObryJ!-TNO<;I zA%EF5U46-F58K-E+gz-^`aD%=8ZM3fV8-wM92A3X@)HrCN_$f;7YEZ?dQSNj_hOh$ zc}}5qY*nskFUHYNe(?LFt?ubA*52)h3@$QN7bKKk?V8w?_0OW#m106dPQ?+iH!wAT z$`hr*Sa4)g{CG#hab58~VSiG+fX3Q6U*(fP0~a0_S4Pp&W^KyIt5NO@yi@ATVW!D< zO)e_~ddJ5O`o;!k@&2J$TlcT?pC_VO@AH1ulYUa|^cBp?raVWve@LUMY3B59@9pvA zYE7+QRN-$D{=$QtK(A4k;R1?PAFo{jFeqZ2YWw=4j3*vXAfV(IVIgIc;OMcPHN}I> zxrXBetURY2I>Etgmvo(MT4~3$ybQ7Q8X2ufHDjT%tJbX*pRpGv1S}D%a9wE`zLuTm zwZYbd*nDIR?8+_OT-dW3_Zoi53uAxn@T5y-!23T;eFaoh-S@UkF(BP7f^;L&f}nJF zNej{l5)v}f(jhQNcXtgSAl(g;N+SkHDJ_1(%)I~Kx0bH8*FDeKb_PqpRrU%NeAm@_e@%x?DtD4zsZgVN_}YTQhP>v*?RL3yiQE)w)2+&w z$IZ|1DE)wAFT+O1)oQqY_Z1gazH*NQ|EfFO=VftDz{}94aeDgrFofFjk4bb#wIDax zGC)|&CG>+%{mW7(cdNnF9}7Ndn$FZZA!A(5n+|=P7CA}F+=5);Fn{gBhP!v&HE=qw zt8#gnt-b6T0&CJtIi$p@L#XwY8J|{Y{!ZUE3B_XdkxEW|k=M>@pXFUtzClgC^!RWA zFFi9V?np3@D%WyOae|%c%ZxuHEyMPw^ZBKkSN@@{I5Wp9aVh&Dk$+D*ez0d&M@A(% zsCyQY=D!wl_pDmi`U>ki=?0iF{QHM^Qk~lEn6;^6;xCw-H9Sw_P}UXIkc7Y}C6IwXr5YRsGlW2Z}8V29I@~8O;SK zh;cD#UoMB}T^N4EJHVe`JUro6sCd%9V8_;v=p;UY_g&QG5VpfiV|c=MyKqN}Z8V*r zUmo?R1=oh?d^HGv(r9k16&y9YsZ<4fC(qh@gt#RwSiG) zx6UxEJr{1U&sw8WlRf1&d@l|eiz0iX(CihH<>wKdR?Bp@NL&H?#P-m3%ReqP@olb?-_2%wGl0G|uz(*k1~#zKDN$jC{^( zuRASgAHTO$Xez&->81TneQY*Qhih+|L-j)oxa3hn1=&)*4(*rn8M9W6{MX`NG%m%4 zk|fVWn~&UzX0RM~QqF9JoWwoXz%B~InlE*Eet5(a*n1cjW5W)TOX@0iB#VtBGYhOp0YYxJyrY*c^MhN$WYf`9*ws@S7r&-n36j#+bO; zrdZ~NU`Dc~d{_ux{i|5VkPV?87Kd%0qJlD9m9c*ER(Exn&NNf?ZJu;igYpNT*q0rt zJ-wt-Y}_t&l~lDk4-Nz3=T?LwWk<#YvoI1v?aQB&f_ zLh6RiKBfm+_hI%$_*}_NrdJfgV^Vrx_rH(74@)f1oMdWQR<#W2n@@)@yjrGwmtn^` zQ@VK7{yA6E&8;GGL-5j=w`Zp4uBQ-Nly2_9b7h>54YKSubAa_eS*Z`nTTfXi>2R!9 zRLf_5KBtn-BwN8ao*;iqTa+3E6SP!46krQ-;oB5XrjCV0Ke-6cn=VSJ%@%9@&}L#R z>uf8YtfuNQKF0D@FWihEz->P5N=s|JuWpH5AkmYTH_X+cu6C;Y#K07Xh=Dg0_MPWZ zA;S1NB1xx;m>14u<2@{5z7n}Ve)cTojZ!KlWGo^&SvjrD#@ZU<{J}##J!+CAdC#9Ml|VYLA{S@#UWc%h_|@NiY@S2q>^yvO*lXip?C4 zn=nUcBtEn(3j&rk*oioGrhe<1jG^K*@_%dlS37`xr67q*XGHiGscV&m#QY}bd)wlT zp-uVe)WpI)6{Ydg>UEa%)KPktrWz^%=7hHkA|^4pFoc=&BBc@23!cm7u1~L+?w$tq zHqo?z4@=wTUJ8=XZzvS#JoJUApOBV?X}qBLafgadyno_b=fR}F=LmVcH!lEEPTdj$ zgU2OT5!8>bq@Er~1wC*N?mT|r9?|*p`Rql{)n-=qPI|$_){g$QtwqMX^_6gs#(BQy z>lt!QonshRiGza=_!Hl;_5)Tjal*LeSDy)_y)4Lo1(i;+^Q&6nYTm!A;lPTgYnisw z`hh8WfxGYAI|b*RRZiyWGmXbHJ6f5+&tpzG{pWMr3r=vcrT#oDC|NqAp(_gk+0sjf z`*e0bXNTKS>V3;X-@u%`ot!U?>c%7-E@<99Vj)l32j z0K8SVz9uO>JE59*BKXUKzG8p7c=u!bIi~}ma|iBU62Mi-hiGv#V^8`&VnS_O4gtVp zyw4Mx0kiA3=4z{&4*V02_IS6KE$@z;wL>>D^88m){^C~@n&DHP(TdCxusw{OdOgM? zR>7OH7YGC3hWh%(B|frUeRImO*sS6G`5Wjm{7gyhr3#mco0`D*+wR3@`)+P?&7zKU z8G`i(YO0q&f?e$7Oumgnt7V}mH{&WRXMxIa7mIXP+qNd>qbun^LNUYq3bFOd6TJ#r z=g)21xO0^G^z1~rb8;p>)7mIj^T_z_3j{o_j|o-rN+7H zr)W!H^9NtrE~)){*N>9&^-bLtr+59ZYYmM&G?R*@-ji>nf zu`MBMEJ`EY=;{{i1Eb>dL#OmKu+!N3xQZd^Z}8igT-@;rd&j(6tmi>npfiosUsezNRfXRV8Y-;^cMgN{ zOFvM{)|e>ktfb^17X9$m7|4Ebll=ZV`T5uFi;ieub)JpTH*4C)BUj3Q-D118-m5Rc z&Un>s4oGEo_}(zixq{a4`g^Dk>ZwzENaJmRH$eq=^N2QLXg+)l8{HVeXyon0eXt3v7$+xxy=FF#EGS%l`*-Vb=_dTA6~V=Tu;=|ANuhv z82dUvAw=BL0v2VJ=f`r-lQ;2n^QHRt+9$c;poq%JtYjiFT%HO+s_$1v8T55xQAqt>KMO2LM*oL*jebgN6>yQ4zXXU?P!Q`oQIHO&=PS>sQM|WFv1j0>_VDAu$NwE> ze<8c0A*Nth%vjJHF%;6i3D*#X$iv^f$0E7uUPcXf4#fJ6b2GT^Cz0<4Zx@5ep+}|8 zafskogg_j`QV^Cq0EE(|8H(irLctj({}s-{8Dx;~oHQI#xW)wzK0+`OYXyuN=B*^? zEr2I{#l{R1(ci|?BDMU@da0UZRAPB}BtbAPj8wWX*Kjg?G+iVHJ*Mq?_s6gIn@DL+} z%CXeZeqSh>$wtBXhLGkatFao<=2RkYTMEJjMnQ7$$xNI(@Z?bt4FazoiwQj^l?&$< z8$8AZ=?!w26cLBOk_4j@GSP@+3!d!_kwe6HVr5|BL)p&+F27lAm0@Qy2_ zKN6c*;vlqDpB*eb9JCm5fYkv+iz>gdO8@hP``u%>KqwHimf4#)cnFI#EHwMtVxXMh6P{*qw+h%+!+fWeFwyB6mwH32?B@>_z6O}Nx}4j-WAzsO8^fQ32HAP zA?WsL@VNIt0)zt|z!9x#NA>P+IC1uWs;cauln7N4zy^9DVe6fN@JdH0+7Kd^9AFPc z2Xjde_<_mscV<8b#>H}0zz9b4JHorhkiMZHH;vQ~`;P!?=p+jHgczE`UzmaA(8K%{NHsO- zP-29(9KaBh$tpzv8^+B=H9$YwbdeJD1$=b{skgHdhYp_Y2qs3*Xal^_F^_K)J%CTG zqem&=Qhd0$h=00(7)&tn1^_CI@(N=BJ9-ByN-|h8!(Cqe=Sy}Y^d7>{96GzPJ9QFLSwIS@NTGw z79sfvco&5B(eerKJ;w8EB_NV(Zd|EEOu3=C2Ib2gN+=`ZPz~sS@!4Dx$VW?X1DtsJ z_22(U2L&cdfv_UToPbEqxj|?ZDn|d0b5ID^KqT{{D97;y5J@>VFhr>b5J@>GvE?ou!CM4YIqen7zd#l0rbbXHyH(-L}x&OZT3kK zoPZXMWQA)QLa7lvaX>i6=-@k`5g6s>etb9Ci~n&>O&*XGZea?=Mzw52AUVeulO+6X zpdNa?qJr;zKyeEKiS~n{edj9&B54H`27N8C6XVf(JrGGNsH-(iKnt{U3{8u8pW$!h zkj~Y#1F7JTaFLxVvo;|#h?ExKC^}RwY21=?_>>Y@4uQn5pbdZGp)*4>Py7U$c_`p2 zUBGXsrGvHrZEnMJ)R9_Iqj$=2h~cYINP=zZ1|r*bqMT?S11h5Tv1Vi8k_DQCP;fpu z03#xF8u%25e}lXeYGm1jd}4UR;~xQJP#Te~9SIN`bHENv4vCk6{g@?MUIG5XggLej zJO!XOX7N%rPf8V%fl>NlZeUXQKLY?6LS-A6j7G2%HvWd!7z0ocPB^0pfC};A8!!W- zm1q~3iLq6C0JO(kW%v!WM5jX~h!FXQfDY*CB#6~h;1qh`75+gqJkaI80ir7)@^O3< z)r_D05r(2}oVuZ?6n6j=A^q?Fw&QCc2#8t75GV-AQ>eVXCj=RCp~XMqpnDLsNG}75 z$An$`803R-kXHfp9&N6C!P&hU%}N$BATXSa5|<3VFN}2?A*c+h!b0so23xa`@`tx> zNfyEn$Z^ErNFWHor3(7+5N+c}1Spsg^ylVIaeEI!)>}8?Vt#AnO}(WAf3t{uijU7@ zQ^WDoLBCOh-XV{Q;B8|64gO!b1?Lfm5Fp-WfUE&%efwFUmmt)XwS1aOIK2#d3K6>G zn#>1%0i%Jnr639*S{$hW;X%;iavewnh?=h8GM@$?)A`ThP19Jo#W6M+;(Zfn7=Ux* zv8~6%el+}!0YnkyG6KnRApnFz8;AjlQV~ljo_oV^=!kA84jyR*AwqoZ1w8_x?Qsr) zt}&i-kAez7D80o?3{5OI6%lDdfrq}Xb>DlYnDqOdyKmA z&mdk}l#!-0kUEIq#$jQB>wilBE17EYK_u`S{z4%6O9yQ`N@Ha$89tu%pIT(cSpozM z3!Du_S-oea6s8D|J-|ZV<~OtduOTfW4i~JA&fI+Z{sBC@{J*eQz3>of1mH)QWG4`V zn=qmZId}(v%2a&K?=U#A9#jb)zlo&NJ1odOWzhtoM08Mr6)*we(1Pz^vcSy zf_2eL8(bkFX$-Gn1)$@6XI6>_S3-8zMRYzwLQo0_n9FS70UZA+;9G}~Ai^Gl53$ge z{N%uDm_;5{0=r;BmQn*7VF2ms;K18xETb`40fTik1J9v@P(02fg5S+X2JylTOo${Z zdPIj6xC(=N@f_TT-Uzat)w-|YYb(g|HGcPoLA3z1h#E(*7bb60o0nw8%aH7KNa;;w{U_cbjl?M{F5H*%AK=m*nFe)uFQjx2of1c%~= z)Nl}t^Wa)6)Xif_=K}g_ni^!bdK7`x`p^?-w5CsTI z<(Uft2#^1YRLQswAw+a4Kw1H4On@>3$y+EJv6>JOAX*&Kfgn#VsH-#vkbk&nk=_c@ zj#0g03qf)Y3b1AmDZpHP>jFsyqYO^fe`$ehks>!9%HSIh2$CpK@HB787665*xpgZN zUQPWUX2lmWO@kVEJ_qiAuM7P*fUKX6fCM*_>)y5L{f~PP$e=wjmWQ$+w{cKOiN$%% zieVR2QvSy-awQOLj1%eQkP;vY{*N~wq<}uS9e{C3;W?W)w-MFV5G^3el~6uib+`sO z7!!v@JtPVf_I@K|0v*RRsQeEcpB95ji39Q=R9YY@Ae4SP_qog;Z~;cJA}SN8me>fb z4#;ne<4Qe{Z(tPCPf4G14gQAfKjh894URmx;UemWAoCcjF{6-PD9SUUmjD8Iwg|>5 zeB1-dhF}l{zr;eQ%tMaR!EvuYpiqbZVn*IlH@QF{3CbG1b=pB5p%`wu8M)ymg!2l- z3LO!bNml`ymQaKI6=ZO;H_+P%^>xS=7RuQGl0H^csfG#bMGKG>@mCH^hJ_g2f;6Mm z$U5BifKMu6Tzq#>M~(Qq13AZpa`6LVjD-qiN@mLlo~@3?LE!vn5F9wFN^^Mtphm3h zLM|~I@XIMg0fd@TV&?o1?rQe`O~Hlp-&AUaR}drg(nWUQ-9~dCatlJ>Z@|do1CbH{ z3a_>T6E^x`BUuo&A$h>qNEW;iuX2L<&@6~}goB-r&QyuXhHwy^&jr0K81Lf7aR}f} z<;at@9UitPCZKf!Y~(o-rSmT_HXC~Vk2IK7Q0GWgq9AZh5^OT~wvzB^7vRy&`hyYcJlN3~lWv08jM%7D>YW0c;N$7YR8ErNVk5qb zVMDm^&yaS1Ea@vjkv-@O-~t24S3A<=$k8V@*d!3p%_zdy5&Iz!=SF-F+~36zCLtv* z7*0)rONKagx$*yI_^-a+0uP!oZ-x=Z?%3J@w2m4NYzmAx?1lYX1B$Y{2AqLsvq97l zqyyOZ2|*V()|BV4?_oi2#D{-t9-(Wzc;tx?fvoZHvCx>+1#BcU-e3&+9v@M{C%M5VRQm6`KNxQvUp#To!zy0;H5ei%XQ^hl7K_`+;2q zMvcwms~5mm>p;kg;N~cbJhHMPL=UhV0ca(MN7(9UC4Llju$yzM5&{XV!$nQr$+Oc# z*Kx>eMDH|th;HgQO2jZ0R1Abd{B4Z+cXM9FsFz~EC4e(N1mYt6Akatv3PJ|t;)L^$ z{s)P6lUZ>EPx3YdQ-){!$Ry!L-Dau)0-5aO=vr`ZKXZv zitT2`J7mQMM^2!vCL&OMHLLlKJ=xgerA53ty9%R9Yyhe#Wq)u8v1JI-N z9y(ia7#DJnqYPBrK~FGROC6zoP*luKR0TEe@Ej53jeZjW0?DY+m~5K)LXj_AQ0ZcP z4Mi3`DDf8zihLi2619S$YUovD-cw8y67ymy_T-?NZ95|Bv@DcaIp}XkS zRC!Kt=jPOkT<}IHA^b%o^cuCw44w?Yp4Oa4ZtEUK#|f z7TSq+Z7=1l1xVZ*XDt6%FAWOxYiw;+{V|eIN zaqR&vxQPIV6NsM3ON^5SK#QZKI1~Va8+hSnI(3!?@}nrrH|3ueg2fwq7K&wvxPW1Q z#(}Bk4CQ}w$Qsz!>PjS?k+HvLH)UT&_Al4adQ%f3aa}!i08@NwRNkJ;QY*e`nTcN_ z>M4@^=IuO3+~wb#KZafP`6^{5X=#A5L3Rl%h6MLZvS?+^5h_(BRTb$s)8x1dQA2i- z1;lf+N>*Ie#qI97mA~U}J3mX)jDMe}9-9HvuFQaN;0jOf{;51+?hiWDe?6A=wG%R+ z9ob8`W)AHW0Y;SAvD(PY)W5Y zy7vo$i9D*?g~w%|8MCrf1)Am`uWhM(veyoty`zA|(6D1%!^~hx7VkQQd;Vk2^B#fo zflyV&=@uI)=lSNqeNoAAp`7?iJu*w$1`~tz+m%|Xb`#~82W)lzy0-7xk&!9#I{l#YI2Z!G8IOi{Dv)K$b_gVp;4(n9{Sm)bD@ zH?BegVhcEfG8vROxk~4odYbkZwNjbXDo&e&L*`2Ycg4e{cQ&7VPEEO+Y4(|aQLgJZ zbH0w)oK;|+7k^__*P?}`K9{F$O59Vwza+xE(JUZCf5~hM>X*?y+}2eB8Z>$-0;`4= zhmsxDLIjBDQ29oi*-4uOt(Yfb_lcmeyP-a5yK2H+D`B;wCXy@5HrzwPDaP`ZwW>5D zJe$x>#SzhAL(4;1DVh)Q`e%8S@yeTaBL`GmJo)O9yfMBb2Q=jcwM&9?RP25V9(bRb zVElQm99Z9WyGra_Sp6i5If;g8rM<4UYTreE+I#c5_CvpMQpR^>*Jp;vHp0=KF!|uV z)6Jg3DLd)_<~MX^-|b|gc8=HWmQM`}6*kltrnU~xwd}j!kK}j}DRc|7$*|9myT9dRuUd09)GwCeR^^suli~W*f|?RWL#ecB zHPYPMtV<)8;`Ux(LXcOas?+F$*m84X(NDeU1*?eK{!b}xF^?KKrRmKcdtS-V%p3Q6 z_Wzj{?G$vWxx309lg_mu@tk?spe%m?mGmkt>kYo1L8*rwS?^TYyc4AO_y1(!qdSfPts^U5HJi1imUt@?Qy-lvFR=vtuJGKXzb9-$kRf*@-@|8g!G=1HR)g`~uFQha)atuw zDpzU^YFJXg%gC#xS78??Z1$2WG5_j?vg*$~`;VtzbqSgYniZ}4gm$H7!JNcu&m_%k zBJTGYHN3AIsi7V@i#p^qy&kr(ZGBgvqv_$%argA?@~lx??@uGdwdYA?cwo$*y752!hbl&~RZPV5^1^CCA?bm@bHcdAE7XIup5h;fW&0hqi zgr#K2B_cSisI#ZbryjmF$b%V$0X#_7&+m_%WelIHP*kLA8+)+xPIcmBFqYQE!bUpL$q^^*xfq?0d zv;K`^G0wXT9f@7n_I>)wo2$qkbVQa{aMnJ=^x61EqyKvwf7dIEh@Y@N{OPkP!2l9R zp3Udhm3;;;X72|G1T;pkeyhXgBe_?9uQ)0`Eh&t}RIn$pXtbe##m{I1m(Kcq=#}hA z)0sm@*o*7hq{Wn7=9k=y^Qmy2%Rh5AE={|xLs;%PNiHe`iNQQAadb@ElSxdH@~$?T z8NUqk%;whqFlMSM20zP$jcN@i_mtTCq?j-?hObIMk4HL;r6=ny)>m@F7{toF6?gA44}lvtNnkfbOAu$7Fg zhP1_!y8<8HdIqc|*95%e4^FTTquMA)p3#1u9iGa3Ihz=s^ShU`$izMD5L;zD$!0Kp zI_6PQT?S`G%@(&0j6LwZ^N_OGKw|h%%d}{`_KUpy2Ojr1ij z@Jabk_m;`TPj&Lcaw$($qmiBB%7uy;9aB_vVinfYH%G9Rf7v#KyKPhDpy(c>6zJafZU-{Tc>Qwe((#WEk2J1yFqNV_H9>Xdk7I9sso zX2&wPSt!|+2xC(gB8&7Td(E;vG#jGB?NcVHHax@Q6DFxMTyJ+Zkt{FPE*ZzWV{!!W z$xWg(II~OMw&bw?7@`;%+fAvp+Q7)*IwUJd09@Puu>K($;?_&O+=F`9Zlf zt3TAx@^PP{%C(G{lGsjapT?L zEO+1%lR*tjiN$DQA@qc|{J@RhhUDVHGzb7)e*c!h&Snmtg^)F*iy14&K$8 zt@I-vd%Dk|!b=<$A}lB3Jn5vKZO%j9TOSfxD!yFa=oVCeXKr|O=SW56S|=bh|F>rovOD#^ z#8pP%H<voP^BCoD;txFK6daD%`Ox7aR{6|2;Yqxs{Y zInFOvj-iP#69zji$XX{T$E!6+(H44VKPYK*G7KhqJApQjXX@~lo?zEY0U=u=28~jq z#RE?Ji2EW~G_0J4vi47TdDQp-6ffgbze&7p)6(>W%V^r9S>G2~Gyl@J@Wh;>nb!c) z^?=8%v{|)PkO#i~qt7Bcwsb$Fu^foUB z)j&KjwlT{pvtWJM9ZUToTr+b6=^%JI>)j=J<>#^uGvvM3{cS?_McwAB?`=7go)hRnDKnSYP9|-@P$JwBr*0?{YXp&S0y>ucbaD{kPjz!rAHon zJX0&Su^JJbc>ps15T-oOKaw2YNCp3J(npq22TN_s_P|FxJ%4s?{%a{)TV8QqaYXOU zF<3`lOF4I&Mh*YN=LcZ{G#*1aD#WJ!$_BODG~vJq>VBPJ(DyXE7S?r5i(#x;VfV;Z z*8EgY`nOw4V9v6ydOJ$i4clqm#N9F}H$|w!cw>qcx!d=?&D=&%N@3x#C z^YL^mN^aM*tX}OK{7L4|d=k%*v8P0sB*XZ9KqL?F?isfCuxGH~rC}nOr09ucLq;sD zNk7c#$6nyO*%QqeWj|VOPQ3^LJJU(KAQL8=iBBgVl57n>2S`9jPpx3I!PEaNgKsM@ z{0cf~J$N<{&L_AaV$&-u2>-oNLtJaWn;bEz^!Yk<_Ge{n`g85AmVFVr)z#z}tW$D#g{JQbSBo^+R;ca>R+p*a@MtkM;ae{pb-g^3a^P?r427p z6MWkscYl*3^6XO6KXTh1JTgoDR)C;%&?*Yq5Hg49m!3yVnT9GUGxoW<#&rL7W~zLh zzCzq3{lX`SNUzGzKY?bY!I!L_a$~qc)#;=M=ad!$yVe)+7rS>ZDLrakrJGb?rQ%*y z>7N20&1)ssvUO?uH;zf4Y6wgd&q-89S+h)QNt4U=Qx@Qwb1A&_^k`M{U{zD>+a-z8 zlp~YSp^M1mh>gk2#g`cGIct6#rfU_&)9z$s_S4>pJxYzWpp@$5ynIqofhlV_LRCP; zjWAdHmE=%g!VrPV9^IXY_Vlb182>%O_Pj6V912Xo_}OFH-0U;5X#E28G-Ty<5e+%v zR-EjYi$lZ*^}qzTx|GRduIc zPyFwXJ|31orBUlW<9yJvysd|gbA1PtQ}p?<Tjuv0SgiS>iXjPX5rU?D7LSzAdW z>b~^k)2T-i2K}c=y%fb}RB~hap5+8SKW(R)DDVK;n4k?^bsy9_^WYB(stMZ`3 z!Bg^);-}?cH8jQ>NVcb%VAZBk(%-#>%Dr)(zHZ^gD=MtOk z9U5WYhq}ECobR(p`z;-nR2d5qe0C>!gXO1UtPP>c9$#9^9=#>NMGPz*I{%KEPj}Y0 zI92&nFZ8uV_^Z$Rzmm&hnZgf##y$wuT#kIAF*7BekITuWLmo$`>u9l}Yy|`MPVU`R z9h%(KsMt$rd&szG@kAqBt>FvTPiC&9*G#YKdOpkw{O)^_@?8R;91*YJ`5Nl>Z_CvQ zDDcNa>qFw!$mrJA8Q` znhNq-A+F^2XDj`$6FIr-?E=N)s6uOwBB$1W$EwuA=pM(t${sp1+{Do@g>8-qeQfQM z=*W{@c*L7?6&k)9%0vuX5~$tnI|&?cVkwPc-*LxH+zl4r@Ln_`ub!Cd_y)cO@;M{>cL!us&O%OYf*z6?AlTWK=JY{N>H3!zyV$dfi20|DSrHe@k&67WINK!|e z&E*&Kex#k3XluOx;C;*f=+%#(%s-8@JfsEd;EhxImg2+6ea=-_uugQ*=8TT90oEp-JnlWU#Br zEMqWE$dgM*v#mA={n6+AC@zrn_R5fId-?v;Mu77r&IOAKqB8WYhX1qq%5od!QuqLN$N>00q^9R;_cLl()b-ql`9*&hvG{{ZdiGY5CMwKwRL!WdVQM*0UV3}rY! z4!z-JoV?3qFQKvVGq&POUx)h(k{r3)%w#oFB0@&kd15N$0;PAJm3qPNM~t$77&B?J zidd_qV{9UuGs$C5tJ8kVR`0<{)p&9VG73_Khjic6+Lzs$dYq%vtJ?e3Hr_d#D`sQ# z&fV{B9Azf)nt8gJgDWsn=KQ*yU$wOl9pAmoX>7+2Q9aastxc_`7HY3t^FGPP1Hq}X zQJnSGXwsfov0YNePiErzKKp4ADCvs(7efU3M*9~Pk}c?= ztmu+I-EEDU9%hktM*FI)wOaPSgtr!&P4?D!8&}JYMF7D9%9}N?Up$}saGIP>)qWBr zIe5VXZ`DQ(a`Y??zF~qcpLR8FNppqhJMeA zqIB&bcIL;i_O?vAD4Awi10I-;-q&7vj_eRpu%{eFCl+ALIqB8UkSVvqELE1$!lxW( zKIUToy8x8^OVR5!3@YBpo*$u3iRc;NRS%cw%MQtMp`AHD(%rG1P7p4mOitF*HF&4f z>oc}izj}Bt`5!{F9r4$@BUBN4tKi(eXYXIOC7TV9RHC`yy^zRsFzddl5(K*_*NsKN zd0+Hj^B(>Fl)!m1LA2W8Z9R^8;*GY;szI!O-#73Z~H0g z61O0mVoVtq(K4!1r}*wgm1w0(-;>9&(R@>5#G9`-H(Bj9SVFHB2iQL?48(Ee2I?OL zRpt9@J5NNH>_%XxD(tqN{Z1;Eal?LJFAf%wc1qy|`z;?BKrWP*NAnx-?F?xPIGrsl44q>xYgB zsWe~0yeIZI>thdY^N)ru^R)v$R?4F+myCUrzsh@B*8j|}lPWVT^?B;1LDe@JzO_Cb z5O}?%Z*QUbsXpIQ=gzhF$-f%)`Fi4vcf-uWk}(uIhR=f83O>KvF1>p8-7*KJEmc9Z zvQWs(XZxLN24;4lUAJVL8t%KRGd*+suu(|+TE5_(_QSbXX+M7gw)$;GoSqxDxPIa^ zr*HDq5kEmVO5xP}jVHuUUmaj7rs%T4+TRt=Ol}S}lfa-MUs2lr1Sa~+%g zZwqFB!gXu@w%#jk>CjtgRrACjXRFnt`|~!)#g5-NNB1>sm%EakI$Y#W>ifbO+#hBH z)5=0&+DX?C}!fc%3)h_B=LUbKruZ;QRCm`zCWDuN!`h?_j&r<4_v>y zdpUC9zS?+Kuzv*!#WtgT{(R-wgTFY&3hr-O6Y?l=)s{)?KYlkuS`ubrCN+6 z@&3&b44lp{4Vkzzx$}({K(@a;qGPT>(nuXXRGvcoK`7{5m`s_vJa?bN1ZTB%)z`JH z_c4G*R?T0|2W9V02gkBz8=fox(x>E}%m`{@Un%b>cEDcdKWDS8Ui7OhKSt!V&X@Tv z?+@meICAN)(u{3M5@gG2*UM9!C)_X6h6l%0L<`M=}nEAw`8k?0>j zcbGLK_sLW@9T#CG%i67r3LunZ8I9Ibhx)!hUMz-PPnG;z$c&ziH6p+7K*3W{qP_`? zpvQipb5=C*QK}|Z$}>I0o?D||ArYdK15PJ4-uyFBbGpxv7BH(2IpG@nNvldh8YTc30Vup*mkF*zEP4htxr=(-oDdIXYyA-@KspHUx5RQoCE>0S_o?yl&FrO{YA&?9r5ns)lX8(4Bpg;l#Pv^hOd$x^TT_D((*Y*~d1W0`xKg{YDDI3p&sf@jws$068m%xORDal~SZe=?6if}P3Ci1_Zl1sv zh23+l%KM-*W?1mAp)8_vgy&lj-^CSish8!U{iavNDuDXvfy1p%eJUa+D^9J#) zb5yBXAKOr}m27<=f8_mb+xTBv9(u(FN}!b$r;DhEDdj?c!UgiNU8m$9UaTa%v{FXg zp~)NjxT1GAk$pf@z;)7yT9rwSLP+ALgb-|$L0XK0z1MoRAg`GDeuOT(IJaxaYE|DcXc;fwNyW|Ch))%T81+3FN(e-HS86g>HJptG{yYA*P@`^ z{9b-p-qGaZ{T;rFB0_KP#gNpAtGj{YeM}FOL-{EuQcaAc@{8O9$h+N}q(&d%_mvn% zf3(~0$pfEtq>-A?A}`a~2($^?t8;t8(a@nnn2bI6v@7lpQY%ZY_P1>f0YU`KHMf zDf?2GY!=iino^|Qsvb?(lZmV3cIT5)3Ss|C5eYEW9T4weE}tIO+G}a4r(cdUFR%SW zTH`zdC=aw=?fibo$t@xOkg|(W++Fwr=0~U6zjNphkkaT4!Hv%W@_Soy)pU3BAMn2w zo@4;D*WgF<5ArvA$wD5{rdkgALn|`Ooa4#ER#ciEpAdZOvG}nj^|kY7?wu8gDPjB4 z-D2TlSFYcF75r=>#V{&}BnWu>PDr3J)#p&Lc6Uf=L078Kg8CBM^SAz>u(`-R7=J~p zzK+2|w(8co1%gZcaLbS37NTDnVq1Gq)*ZUHRH-Ck z!A(K>p3=});Fa*W94e`>{WXQuL73>z0mzzb7u#L!`5vM+DIkqxbnqnh#StBQ$a703 zNkW}^bzs@vNydM~lQwqAm zQaz&fBTC638+s0y)fVLInTE_sB*2+{^bU+($sGmN8e#_l=w=d~BX6;lW+a_d{s^@B z=xzLUBm8Jleet~^;lKwmUk@0Sa)MCt%AHV)G7&#UV5LaV^y>H!*E!v-KOR)sQSoXQ zZE?VTqS41K&+c|hyix-2r(i+uTfb2P17=ABSuBpv0e&lMZv>OMD3>2p;uE}=xUi4M z8^W>FD9(zcn*7_@cQNp0d^`L&bk^isU%3x{lWSTx=pVR_#ax&5+^PfC+fQm<=BqOT z7b7ZM5nR?2xmTPyKZ(#bJ;A4Gu-|yfng9U>lTUZ!~RCf$lZ0v$c zhWb@@tfKieL}ka)(V_fcppK-HC>u`M(x@+*R|YkaFq-&O+n)4Nf{xn0n#;hOrlJ%= z$n?sIK=_Q`>EP+Nk*{6+`rym@^RmO4-HW`K>{vAyt(ffY`D6UDL(+5k-LN+un!O^2 z*0nL0Jr~zv+V`f_*%SRYFnL4 zHPX$5{6Vv{1I~$UAFrq{!^*>%gF5%Ru=&;@aj%Y!-WRlww`yBjC57=;NEQjo9m2O9 zT70=Gc->kGm&wB(uu%WP>yCZz*c4cOZzl6xXp1SjktJn$3Cj)^+av>Iwf?m?Nd=KE z+zJ!*(rxN2xJw4;bCRT#s0 zLIW!(!s@o;Ct}~=>?)>?#|9}k0VrznEpd)JiJe#~o_Vf4FJCuof~Z?biKbVEMlFap z$DV(B@f6%{$zpf~(+!}>`{VSj+E$0JTf^h6%X;zgeWLC5HRS+S>D%G#*u2}%Nndw8 z63xyI)}X-)y?@>!^dz2;?fCfYTy&B&=e>C+-;>4r^gqt!uB_<3DjSaTb*+!R0c-Z~ z^^vf02l_MKN^Y8GwZ?hWdKtSASV_g5bosD#Zoh42&XrogbL@_s$!q z146C7Z^qAv<_~{n;&>$YFxt9?TPMiSiJYkGfmql|JeW=ZSH*Rk2iZR|WcLw0hs#Yp zIA<`X>+Fz!Y@4uu9Q4dmWVH|{=4k753la&6qMA($P6-Bua}fJ;wt<86#Vbevv#@ho zB3Zwv3~XUK{cKEFe1U#JWp;EeEsy>MXE6N>nx%>~lVz;p`wM{QlQYzKUS025F6BeBOc$D z<5|F$i!GXC$=I>C;8R+zkg^cf1*`!XFdi{NkOqTTlD;$h>F&>nVGZS-vQdfktm&$cDr_{*U;3 zE9?!Id6P|IlfS;6O7OpxUgU1R)nJ~3Z2tudK2MZpJP%Hk7P2Kw%r3H%a60Cqdy+n= zIq=olKm74CKIUgk1=PYLOJD<%?2gFhBMO@SFPcQ_tT5jM+VjItdoR=~O&o)z$yzQ5fv~11_Xz0RcX*F5JzpL7oK=s>2v|uvkWI*i$qb3ug zXG~&^qQIps7S9StuIts>XZQ4g7sl*kN~Y$d5^(hyRqkQPGxp7T8J zt$yFn=bz8*{d%wGoadbPeV=o^-V@Xv!XrLzo+mV3@r54;JX~L*TY8oah78xTmHMu5 zIw*GN?Np)|RhxljNJd^yz)e<^*TPz?z(ylGZaDN>p@e966OU7T1Iv(ib(ChX_{3%T z?q@RHS`8mBb8KDLSgwD?L4tZ(JCAiHT>kb!FFzGcmI*0=6}6_`&iyT}-(R=-u31zS zJH20=#kQ}Oy+Tu&d!_8|A0m4%L`C--O>g?&xET>#r;&{QoY}q+7IoGnB0#GOByi^wI~H89&(;{T;%{m zSA7{zSBS@`sc_?_-dm#cRxG8gh^}k4w;HwUqk6l){%G`GX_<<F8UWzq>S)Q*W_7?s{X!cTCEvgxiZNAmZE|L$AeC!k$i9^^b=v z{1Q*FW|gi;xjS>0wY0d42aZI#u;dBz0k5mCZ`-$|dIkRYczN*gokTeoy~-q25v|6x zrP~#?id z^S%dyPBVg!Dzra}f1GHof5YCC#@%Q$JnFMt;Y{njo`zZ9ud|v@mX|v_Cf@JZ)%V5G zudYe>Q*nUutU=MF&67)Yr{J%QGJgy25!@1CKE^zwL^UamBBsAgpD-Bbn_z1-XRaLF zFq8QBYA(-`TVkRwuW}#AuWM({+`I6UiIiviAa{leRak(-B!`C?~~_`4Ual6w;F$_Izc&T zU)5Mw5Y;;IYe`Nlb@t{yn}9FJmXuk|XZ>cUeA>0efofU7n43@>5X`A_G-Yx5wU32jg1p%Qmdn;F6I+`}J#W#GPb7AuV*P3TnZy#`G@(}$v z5?0r^W$E2Rt{$$FManD!wK2-8jQA`?nzn?ey3OC)|M_%bkupPC>&o=!jxOOlFIr5f zCcLofXnq~>aOIP)f=%3URB1aF&t^xe@&v|I;ket(iuAji6D4c=W~~lb1}1k8yu5hQe==V4!{|r88GC0J>cCP1iRGTE zmXYof_v09i_ln7n)R~1UI*P3S{KQ)`{d~+tj%vahM|FMO~4 zEz8s_4sQC9KW)OU5~Ef-!CV0d1v+;w*BlFvwYh~+0)t|dB@B`iQs{YFp+ z1K$sO9V5q~;G&M3R{|z7V^+ve^Sm}C%7iHxEYW$>{!#sD*kb>+hlhBFC?Ay!3_RM; z6}~&*Q7F_|wI`xm|907Eo!X4+!o;whSvUEX{L)n~TdZD|r&1e|Gbp|^%0Vnk+u4i}0N2TvI5d~r0wX502=a=`f zxpZ0t3g14}J#(`w;`Gq4``$$#b**?@a$i_Giiz1ia@7!fJM#7cS9y+vdts2CZ`RCC zjh!klj=JwoiG6c-Nypn}TX*wK+cY$?&x&?_)>U2G&Sg2y*3JK6T=&7P=IdbH_+@I* zQ19v5VR!wao5dRWv0L4oPbL3wbA9Y~*X;DAja5^nQ!+{0 zOMbbpT?yU|86D*=iycz0mcAZ@w9=SgKxfZLF{g!*-7JU|_S;BEi-|Y4Y z{c@sOQYp1TNzLpkypuUH0z51!#Zp&-0#qn{?;3-L#LeWRI;;W~tZcD_zV%RCr&uVY}@HN7I5=-qdYd4|hxI`?p0sc_d`K zlYen~t>Onis^W^4lZ2sR8qTY&@F3qK-K9Yq^R? z?3rjdk+=p0mifaV8ASyi&R5KwK1E*5*}q`N0t?R*f-beT z?#op^y^f>2fPWTF-NSjQ=bVQ1!gEb7&EkRlh7YCKhQ63N1fS+G_ig?DgUhxjFWUS{ z;=8KyC6;+M-6|T^t3C}|+b*GSF-r~TFoi!8^nW*&b1iJylmWZ_51;WK&V{meb?&|g zlka+s^7>lIXeM-*gX||KXYeobl{g!_0A-w`m^7}wSQEq zh#4_BT_bjCQc`|kykTz->#0!*FaCpuDqoe|`{T1`e#`H!_ieD9_Vzoi%~w+Ak$pI%*bmGLmQVscxm!lsn6FZ@ofU zW@lfljlkF2rAeDPsx~f=G5EH?$GFH#%+cq7m`2eJtK2(}pXSzPWSH5yQL~*j^47IK zXueyQlwnZVKO`|Eo_ENg`|dGSjqV$+#87St98gbV6Irhb5$rWgS(FGt}2{ zecbes8JWU&Qo0MZ*g7BBJk$=3owleL)w=U_QdaarsadDuQQ!4Xq|bPmTeTfCJA2G7 z)MYeMKJ4varb3*+9hv)kWo|9Vqwee6Zm!YtrDQxZ`*-+Qwt8mCwvg%=R*P6R&hVsV zErdR++zj*1)smI!I*iiW1oPGPKC8Qy2EOv~(J~I5FMGxAmqW3C;`Z|RZ*2}Qe0=&U zhlgaR>(tHk0$6_S8x+hI(F~`Gz10^L8Xi&4`_Sdhy)L_KaXM>8)S^S@)L-wXni@{9 z-(1x2WogBOzJ**dt44?6Y>Yd6-xaKMHhVsgwbJwW@s_8HX|wo#m4mCVTX*GcH;9aO z-IEjT3X&7N#k@W{`s|EUxm|SSXyp5dP`}F(C$H_<)%}kBoNXyfht`YT8va5zW!ta1 zJMS?2BzVSuO`azl?6<31O8)1rGyW2JR68-3=T&85@;^78@#o9y5q43lDzlOQX?4b5 zEU!n@#m1(4INAS{@vS8DFYM(vcXhu`_K!Ed1cuzZ|oW{`S48 z`(AXF4<8T?e%mD!c34|EA$p8=p0v=~4?HUD#+~7ri^qZuoYW@>TgGEa?eo@y3e1qGfzEXxqw9%#hb^CfAO+K#%89H;u%lNv#Zo?(nI)nQbL-q zPqSaRwmW6%0}HN?GNwuo3|Y1+&;RB%W}m&N;i%bK?~H1mdu5j?8gjmQYs+HwBKWD0iSCnce3B5bN zt4b@JeNn;90s%vB;p*ny;yJ$}!daB{#N+yp%Cy&ipl&ehPCvCQ*0hr6*zZN{N3ZL3 z^T_k>xYWwz?wY)6nZX5jE8|us{oA_))DNXpn;R_VIJv)H(J54!+aqmx{{cC#&;-{H zb*x!KzEm%(yR2q~4LpYOcF~0io!WOVm>Dm*ZkkceWvA!D-S6)m(zLp^WZu56ShI@@ zUNJq5v)j03AywGr;n8I`_@+#E?{POf(qd~Nu3uDbZ*CM{(eWUYyJ@TA7}K{{p*tOm zx?@(ceR%X<`M65E-GMzTEc%}wIPGzMlh4tVTaVgi^e#W|-dQ}qd`HtzvB%KCWWS`0 z2xa^E<UD$6DSh=t$7}Vaa;+|uiby#<@3F9TE4S$s zbdd_{zT+{(XB^PAEkM0pi?jUUi>?pJ)v)_>?7yl!l@t3r#60r_(;pS1G)S z;OXDWpCA*rF|bcJ(2RO&uT}hXWAu$Tid{lq@|@Q2J{PrC3h-LQYj(?;?f#{m9(oy{ z+>`T!&PyI$USM1mvB%-&zKxj+Lh}vS*VG9585W+3H{Jh>+jumqdC7pt9a#~HJCx?H ztxLB#B(+4kN2y0j$Zm7_-mFl#F}=+y>T!xmdffWA96sslNg0bC#C@a2nh!Xs|BP)t5t z{Oyj`a-ksV$w+O+&){XTech|w{W7arJS|p)&ql16{HbEr>nTumXW8}BI>TXwPLD<| zQMF`yJnkNMj2ReyXJluSaG3hiCV(xgw?3`EeihNfH6{=e%C0kDEzC{8Lmf;}<{j8Kt!N#a=7ENZ%+mvU=UT?%t9ds|S2{ zJU4GK5b2CsnIqt=zqE}0(A^+Kx0 zJEfsPuFM7*@38Ot1|MqnzBjz{W8ICboK4Bxr!VJ6WVs5Lg&ejl_Km!g(I#i$`b^1l zq&Jm=ciuv+$h7Si&3p$ot``Y2?bm6I(_=q;C3f66^t&TR`jC8jezTN>y5XaQwTZAsjMSXX&e(L%4NX1==#JlTn z-rVQ9p+)`Wh7(DC;rx`Z`SLc3JKnM?yJ&oQ>mT~zNz`!7isALWzgs;Au2=jF8ZW+j z=H;)TPpVp@j6QdN6BVNi6}cXo&u`9JD`Id@I*EHpcDIsM!|MR{mDS#UQc>fwHQY^8 zsqPD?b&p$la(^;jI(Znz9(T}KHe{E6a2tj3@8d}wH> z4`G01_kD=1%#Ealq%UEPWk-C8L-^AtUm_5Ha`z)5@TUnsA{2iLItG6-grZUWi7@;r z$)7lhKZzWtS>zojBC%{`0L}JB0C5V-3{KFzJUl`3VjW1+>kTAAu%0WG=6RS(^L#9b zW;-vKCW{ZI$wW@l;$A#S^QRO-`&1c1i>4h)#Nrqop+pS+Fg<* zDC!hVO)!F%XhsAr(S?yjFm`t-k``7uie^z0MLW1!(X>SGMbq>wVu&bg+ZRKV?T;nm zuxu)p79%*0mdpHjnwOM#A_40yOQ0>NCV}QfKaq&W=;K7%Nw7OjL*JjK$-I+@<5+Jr ziMEcT$%Gf)E+3N#H+FL4>`TA%3G6;Y96|qLz2?0Gbisddk{Iukqyv}L7#K{z&a;Gr zG%2DF!&%0_U<}CuX#ZUZ&hr9^$%G;(8HdzTB7hKLlF~kqA*2}sWk|k&m^{i+6jUe@#tb6;_NO$fN9N1j6rTZab#Ap(h~CT zRYL*;=`ajIk||*Xk$l8JMihEXiNw&hNkSA6ih_nzLX>GB9*eya7&(DBq$8FlvwatO z!6OOsN-A(NFj)PQ?d)l+KkH8jVmIyQpc~dyEIxR1E+>+z7-)%81R3>!cN*c2b^Fqw zZgLjZh5W=EAfbl9A?X~&1OtQ3KOsQ@(ucHq+@Lp|;J~g%)1fP?V(bd?u!y3=gei+1 zB`E?-JIhGSgyatu#wN2F(1fW9iy>R_e9#d{aG=w}bls+n3DOYjK`Nac|3uFM*_nh3 za*nx-gWte&AXtwApOK=>9fi0o=$oMlrvq8Cc)*Y}g#(!(ietbi19Mv0gA|fx9JoM2 zHf<@{+0ZtuAKOBjK5=ArR{!N>3OL^fqiyoD;p*;XI6|sGGrc*-7m%}H-np}v2Yp>$fHBCs#RW#g2@bT&5nu8_Ik?N21Q4Fo1GvEKMOqr% z`Ox&91U7|~F+9LSo`OvWZg44pV0mZ?c~8(1uCmjPq2wiKc6JK@*{+sG zU`9YIV+Cv#A4v$Hos`F2B>Eceq*OKr2J3&;RRnY{6RvnMS1v=>49cXfB}qLah-^u6 z<`HO<25%DP|JWV|rUir}QsUme=*Il{3=Cg|85nH;QR)O81+*(o=L!t4LkE}@z_SAR zXYlQSByR>+m%*zt7xY~rJkZhGRe$s@VC0002{gj`O2c#eA^PCpUSrU(9B$pqTM-87 z2@wSi4_L1>x4%hV=Rjbl1eFe(VF!?!kOJzV0$%M<5lqI}5@V2+Mij+0D`oTpr4Qh3 z%V7tGAkFFm@Z~D)w9Q_HW&yh}2DzQ*1MUQ3ZZjqpL+p|r#@;AXq;Vvv5-8rZ2Q-wx z;~HN=@S;QZW@JaipF>s!>PrYulumANMK(Ct3DXfjfZb}JCd9DYo2Ah0 zR!=O3G&XZL6x}i?cJjvJ_*IlS?KV;@=tG`dT_9IZh@*SzjXg5iIq>%4vVehM`#(v@ z9LK8J$C(5{=4#qeYb%FtAgvj6qXVp~h`H-veFYRp7m;E`;Bbe98(3D+?!{L~>{2<# zcq*8LKq{EK>?fKfPq6|}r5kgjw9)Fb-YeW+!p*?&dpQGx(Lbx#`aS21 ztd}*v;l{D6f(}XMTHsj)9ky`*nVaxP-m4<`5D_jWy_P0x;Wthao2!$giR_5HH6(~4 zF$Zppk#!Qg8>)uxw(w#xStF4o>FtUyrTGa)_-;Z$YaFZ7haV zWFlxmTB0SMa-etyE=WZmd#qo}fvO=ktF47*4>n=QL3=*vk(xUem}48&K!dFaCu^WI znf)s@LgTt91H=6F3=F&fImIhXaRT(Zh@+U*!zfN}7=r|oxF(_u5&t$YWrVx++Ci*< z3L_b3`&y=tbA|EP5sZy9f}>G!bplSc{eJI6%iQIiJZp?>T}`cMJk-U*Qy5pYLFQwoE?o6Ajc#Hd|{>t zAslmhbF)DFNE{8vr4pUQ>_?N*;OhmrS5km(3vI8Iw7_J3rr>}HEd;KI$YIEmiRwO3 z%nBX8&cq7zqKH>ge;XRB<{*q-5Rt7y*wd0DppFgN&K6)>dR0UU_Vxi%CV*!UZjj-U zIp?q}qSGAOc0I=i-b`iT_rrg`85S$hO>R}bdklkGf4OHU* zke!kPNJq_G3M7R%D839gwdyU5*Hb8Sm$7FXG`n06bRWPgKdS)V7}1#3-@h=M6UDUT4V2Hj4X%PWcD63>F&hhx)?$di=*42_}Wt}CW|2!FSrlIeJ_ys z-#Uo#^CW(yhs4bR_XC0#omqizeAZyJ2%gytp!0y(k9CV+6=X^oz#-^$4`oaeix+@m zZkTb!2dtno2$|N&FO10J>rh*Lpu+);K ziASd=6&V;Lk1;Ul|Kn*tH%*-x*gt_4pWFIgg6y_AX;a>$7@M{Azq(dL0Y272WW;XtR zEgwT>F>qCow&AxtgIZ~u{=XKaR+mO;|KU?-V9@+0?F!KMjM#!tk;-%Eg*=v7?T2-#HS;l@vjUiG6_x+(1v$ zFhmwo#KIWB1S@;Mg1cQIZ5>Q>!bdW(Gi%wC0voi zOAk!o-vlj!4#fmWBNJfHJa^m?=R1`dLaf3Vg0%0_IJ?dP7^YivPJEq}4>yk}1^agp zo0h^DoNB?1nnx6^{MO5UV7~;qv|mie(bNmxxwG;f+HPKoF~}s!iJL{zFXD_x&0>xc z!js+rPTVY_u)!aoshb)JZ6g_*=bA+lLsaspS+v%~IBFJ=S;8PR6NL>IG=ogdbIl?N zA^v#OEDq{nE3#QcmuuJhu>^7u$^SNsn+@hvFT?7C0!Vy<0n#_o#fY*LU-ik?_ErtU z+r|I(ja;y6drKIAgVC@ykfjoZ9Sw4rPx;Rl(rw#c`eY47hr8Q7pcs6a4-fa~&cAT7 zj-soMol^VC4iqngm!$@5$>;&eii#W{ihI;z3ON0Rlcg2m$)cMsg8Jn!fR5`Q{NEaj z6iE(zV5$Ta2{)`*H$rftVvCQG-3UBNlOA+zAzCmZ#E0KmKEeL$-=6uq*PnR6^a~*| zw|~AsH(W>l!sz`cTJdRFty8i0f-s1rq}D{&Nh=nnV`gM9k9{-Tr++x~y{ zqy|C%8cCs*lg#^|ZvkBSrI5dH)T5$+%fG>Z@Q1m74nNtbBHOo0*9*WXFSH$sqT|9K za}}&h$aejAXqy#JV!A*w0Wt#jCc!VZB*r$i$DjZxuZAl1;x;KpeX0oP7>CsoVG=(fw)#FeKSrzr%w4drBgL50AGN4QIxyDz z6LzO0h8g`)cl!A;#&(Ut#+1ZJI{y+tHl~cxAbX6k!9ixnV352nQh6|bacaV_)!N#^kx(1;0_}m7(?`KlZ38JomzPWkliNZ0njl^I7^dKawb9be>R%t{y6NP;z{b0 zqY6;*3_XKkdasEWvzd`1%JeK1W2ns}tu{Jc+6K_`SH@H@%1GIdm2F`OWxA9PzA{oQ z(eqZ6((hu*3)TPZE#2T`FLKNDHo_Y@=@)p;gC2z7XdO~ac9`hgq9F#TfIcb15WT^~ zX2+SKS=}{+(R)h_QCJ{!x|#;zwi4xqCL6#n;4JWN|8Gxz?G}y#yGn7CK!S~NF|Mg1 zO>}7P0W8Y9fE7kzxr;G+uZeaa`^vAOroc-MUR1X2NP*sP;tX%FLEFVou`Ru*B3nHF z0QH)@FXx<-y(SqGO+fh1Ui0Z|9EMhDahRd2W0 zxGLUe$B-8nWg$AccrwD*B6we@noq|Tkn{BfaZXa)Fm5Rq#+13)B=Hkily3ov-Csb* zI03yA#m4J-$OQ@ftMFGVinZEEtyIy!wEpy>D30j@sK6@uuYwddeobO-GJj#HD<$m~ z{X8cORKCFzmj)-SP+YOW5HB<+mjBCu>_^ejKm!+m?ss@UaRLc^6gwofn?9ygic6gC zN^DlYk`0$QbbQhD1)U!-jx$K$r&vg%2?(^w3-EdFzb$6dUeXCFdT?-(0EJJA)Nf-7 zh#G)S55sxn$8+>^QAN$e9J{foF_CvPID&jg3+IIOio;EZ z3^q$Z13^ZRs7!&gUHRAvdcj0SXl?{*E}ygf(E;c|EwbMYdrhWpc=gWNQ_y=$WP4-9 z;!oh}4B0?){)N+DV4~w6F0J6g2n*2vzQB~=qZ{#~=eRiG5h)ljNsx{a=s7N#%dzTQ zlm9NS$3?KZ@)~vuc;nB?jb3tMf78;?U(ss1f)IXQMLPV-Z61c((^+*oP9bNw;_()M zOBUKTYW~TEHp_w^%}W^U@Z6}4-gYu}fKpkCJB}!`5L!hU|FQbhr;<_e5DWC4Qx!ho zC6BAac9?heTiWhfz6d(_W=6+&K;|L}FFNMKU3Ve?>RDe~(s4;p9}1tFkj`tC+ZzHd z7Wj?2WCtDR0|&)eD7b?ql|biW7~t`4x&nn9&WPJsyabyiP(jt{Uj^L9qLq^)G2Y;Z zyt4cL(xP{?*o~VUbaTw@j{?1=MPBgG4D`5H58fAOJM>R;i@ltXhhCKY|56~kTeQ1& z>?s}I^`CWkG~kc^pSG7={diofIeJIRSPRZ8Q1&863n^2-|GVLpIf)&ODpI(~p_05f zsdz=0)S+-Xwivk~r*i!Fi_!u3SWFq-R^XrxILBu`{5=Di3puUhzZ+h?XsnNVT~ZZ| z?m)fnowFE1kBiayELaAU;Z4J0)ZCKd)&BdL@cYx@Obo#}9l|*Mn&r?!7>;}J+5-YtvOgi z;yck>Q@pF;bPx347~Z-Plqm<1keu#;9~4(y$Nu1a4-TNSVD8ungl~HP-!D&PZqfBw zLHz=X2=Ye`0zr)`V>nP*NjZSmnY9wGrLq|tkc}zYnRo;U`Rtgn4d|?*DPLU$l>^&J zWnJ*Q9X^5~+fnRj>1v4Cc4F*RC;MC{iVoOS5)0`fF&#iz1NRX5Ycn9dh9WwzZyu54 zy;gyIW6BHs*1%eXuy_(Pq7Xpl5Sto+LqiB~0v0_CPLp5+=NxFNN|9wJjoiYy;m-^N zDT4E6c;>J+Rf+-{Hsba|o(K1$^V0d|z|CqDSsBvs&uEeVUwSJA=5+sL_DT%~FLowC U=WRAUprK9?VpTl~e;mW`ejQ=SKclZYG&F0_U|=AG zq@UJmY0Nl~sA=D}VUZe@5Er5Ua_P|tA^##7ELfQTtT37zD*OLPW`{|;nt}Y1$c32} zw+4@z7MKAJ*Emiv2=O0_w+j4fTcQ4< zDmEC%|4c1ROzk?gc7mq(as{e*+jL$FrS5My3fxqO2 z@?U=o1t)X;dh@4q6rj>(C?Nh<&PLWMn13EW*Qotf^*sWz^!ZONLJ%ox%ou>4SXUUhadGUr3L~<%*#ey{yl;h&`X)$ob3<{f@1O zPVB{*Kw{oG=O9j@xR~a9(d9bDmyzXrwR=X`i@hlN*hW-%)zvM7y}p+@62gM~v#ASXjDGs+%EQ z^aqZuF(z5ipm{SNzvNDPZQ+%ogHMbl!bRBy8%%mV_wQRyjz}Hezvr)n%z$o@stVI3qD+wT7Xc`jz>$)^9%D7jSP>U)tys9QMx08`|{-%}o#_73wqwD#^UW@gLU7(rXSUGt*7u2_I&QmW? zu#q{jR4=7fG%+lwNAr%vqmlCg|Nk!MKkCVMfAD~TS;eRIHbU^FUGjn>0R&;a)YKOb z*F6mluCD`8;aEv=i^JkkGb7+<6TuQF#nB_cv1mrYC`RQb$*zi*=fO+ltWSd*Kr6%%$Jl-g9iflvnMf+El>$eHrJ8 zbk(7D#{jC=13JLPv5m52SE$>Iut%xO@ z4wAe|q6@%&nKMd;DFtS3hg;aF%*pdA%I+i^+m!2M!n<)NF{%=jB5^nE0J-}@RVK~*MD5K!zseA#loI8~a5uB92EC4O zH`lL2dA$ebEe|TUujtjzGhkUDXzMyW))0w zHfyi`)MMq>=NHd1wF$Qg18SJ{>DV(beV&*;$WWT%Xw}b}ih~BW#J}hc#F>aOur;Y* z#Li)7Z7-x2@1(4%U??n&%{KKno4?W?Nh^(#LkDUrzR_7P3B%OcF06n4$s=1m>@xWUP76^1g;4N)pGQd`yOIws}P3XA@ zGN-0r^~%FYh6!{k%b}a{;c;y2Uzg2nvLY|lTEYMh`}6SDtC6eH$90;Or3p4PuA6jn ziK-lRh(-As>E5ALKxLh9%CSWf2#2eu~N_F4N3(x#l_)tpuRQjb;-l(GvhK+}ud(e~#D%iz*;&K>FZ`tfOE z&K+%q3xx$@@|GoH?j7$dwy9nUAU6Asd9|SYT9G^MY7sRunMJ{{S^#QeXN7y_s_E)3 z@IDmY(b_k|@ct@4Z|{@h)vk4bK>saZaXOb{NA=uW%r|I@<@(VOG_RrXmT7(6P|#&! z(=%fLFsJVtD#vN>JJs7kQg~aO-<;oMZ*Fb&oNe}O-n!a-kUM=qJb&Z#nd|!yePNY< zk$QnFdrz-;i`*h1Sf$ZBpL08(S~YBYv%%>C*pdAl5!StgmhSZS75ev{P12sn_?3MA4rly86x zk_5t^?iq<$;JZXbChaLVcZmt$5SBjjSWC}2S(2AS&7B6?F9j- zeD=r2Q!3Y%Os{_&DUDQ6UL!EZUhavY}TabqG0!^2Cyb3J#oRsugw$DMA=iSR`dTVY7}S*a0L{aT)l&USbK6< zUj(=0x0VOqbavlC?^jg883Q6}g|se^plsJqpPH9Xt!>1eR^&6khX-p+{h(G9tNVhb z9Q6}i@swK8wz{XeoNar4ijsD)n%Hw%%!yv$C(`?nR1e#iGxp%bAAG?_x7RQLR}rJ# zY_T|&LGwnujd-Srbt4QJ~z=AUaM!ZA}@ zu+YVrV~OP-q0XNsU*tDjOO@NH}Y`*QFGL-?R?n-4E;qqRNV&*xf31bV8le z_fd@t=thkkQLO=@2PVF8LoA(X?<09d!s0ypz31yX6ZO%C9i&2dQa0u{RF_A3r}#|S zDa{TISvXhrWYE=dmmN-{=a&@YCQy!wAg~~GctOo${icwUst`*oR7RkfaB2QnlR#@G zRdd|%;xKmXNoV1RV8P*fBH+Frn76Yht8XDMLkUuzaz_BDA=KnJeO8lCJ-geXhEsh8 z&x7JI*22E!^dxKRWP$2ZYYsf62_x1tLppTFC%vU&GBu_^w4C>&Z1=yQ4r7lz&L7s^ zeqX#ZesVymNHD7wWKaFE(_GED>_XMEArBR;4znbVn}rHh?-J-M#|S=NNRYwV=Tosd zl5T?cqIC^03!SAr)JJMSxxIOYg!yUZpwxp=JIu;b@+^>5dG1{H{R-B^9)32-&SRj$ zGm}knP;*!##!;)uXE7;q;YafqcO|8T6UVD2nATsDIhvSMDyd5(mbyehfiS&*YdE-$ z%WtAunElYvaqOR-P1wS}Tm;exth#lyL%N77mPW(_N=A|{z(y+XvPccKQEh5~1hTTw%YiKiHLH~Ri|qtf2SYTF zS&JzhB_-CC{qF__)@d}e68e={UCH8~>15d5b^GAWJ)7j_@Vm^;N`0*AQZ6j;4Q-+t z%`iBuwW9@QdD^p91sH`3t9(^5E;NR7XQWpEEe`t<*df2YQsnm`Q$}d-UxFP@8o276 z*J6w!3B<_+G@YXvm}@+=^#wRTXhczV<^y8v98|6apR_IOeSrlF6>w{8KmiQ4GQh-B z&+t*2%gcwE=yS8lEIBc}sB<(_<69In31!W=+9TtC?s^X{QUJZ>WaAl{sn*~^ezErLh zl_+Ux3}%1Vv`k9NEn-zuui|Q8%k=cYO3U*n$9@>DsFq~chbfKU>U*veLqv!!ZFEN~ zpy+`^<@vJc^}1h7$$-9~v< z(?0NCelbxS1cH0h^ajW64waefx}yit2sv6NAu)UOiCOQ984~_XX7`DzI+$&MNAh3C z-|XVC0r{=wTaAj>e%~2}+mKMKys`R@gogS@(vciU-s~aDIN;GvlID3ek2I zwS3znsHTm>(isEY#0{^Q?k!XRevyfr0KWAb>x@W_f3$}1q%ljhags@bPnbWg zt9~U--OnpIt~kdevZ=x_gOjyA`@5G+>oz!3A0-z*HNK+mT(%rk{mBdf9H8=CjT!!9 zkJqMGxea=BNQ@%3YX8Pg18#Yo2QBVv1^vqY=AL%N`XS|y7XJYWu7%JBUqN3IoyLw5 zp0SG6lH_ljfleS;WNXzkywk~#)1gp8JB>~tD>FQ>SYq4J*`&|EJQDYUGVH|huI3?8 z_iWpWJret+9A4QfznTNk`5ruIupdB_t<`v^<#a}uZ9n3Q=v_kwFdw;z=s@)DCSzf3 zdO$kI5VHZ^lZd^{Y>qcm_%7HpF}-WB5B#`Kv(gK3rG8j$$($2pd77-4&)-4@CnZc3 zm&%Y(i$+yF8EfG&7sR@jQAGY!k6x~oX}te?c4T%`=h|!OCDj|y0zu!-%KmyvurLC)W(5K1jJB2$krx#y~K3a1O?MqW%o5!T0Ls%n|2Sjxh$ZZ48kL8SHj%A>W- z68RIWnxc<5#W0y*Dv>KeW_Gnhb5c3D8a=>YkV2NMHj&nl#|-2WneNYyKfHc zTu)rv$HF!USt6H{rpL9j{UT;yJzBZ9kh)HGk6uRI5olGH<^ALZ$IE) z3(0P>kksulKauv)W_~LN=L(-hQth9R6J6eQXxejlLhYM1^vg8zJ6plH_%LR7$H*~z z1i0h*zK3ZaqFwNaQ|oWRGBI}IIf^(9q7DER2lN4l`i>(WvKI+NaH?1;PvCJb50I)9 zy!58oa`)IN94QvXnfuMzY_hvDHnM#ON6Ei7kQz?-hVM z5hoXbh_*I*)^Jd7g58_K|Ga#`(E^2$5 z_R__Hn@ft>mGr2zlBV38CEr91!T9Bj;*vQcn%F6YhVzMV=ek%b3w=(vSjo_*rKM&RC`>R zreV)aO4oH^^l!+uJyK=#g9ex$d;4@#5o2~B`B#+SMC7Cj#c-0nV{bLx9zP?>=8eW_ zzw&D3*&l~rn#KlvFTl}$Hhvb6&8uapyA9(!d?ruC^{Eg0z4IafTZz;)Fbj~q8%*sM zH%KjDAu2vK$9vvM?UrNVx&0(tJD-+BvY2xjwc6QY$ZJub6`eD5mM`p^v$T}HfrT|m zEi14#TX{>t=nuV9sd>r;>`q+2Ek0*)nMg861qD*aWu-fQML+E=UvDNfFrTezxYc=+ z$_@M+x*{DI>D1Uk2O(ovT?-gR^^LrVZMZGEGez{Trs6&w#{aQ4dwK^W>o{+%2Wi@c zf^UWXc0~^7DNa;%3hVvo75#Z76VW?+Og$lIE#yaOPgVJ7X|9#hTaxd03egsHM27v6b)p(q4Bq!eCAE#w)gEbqtXIe7ev*Y`E{R ze5A~j)(YM63yHo1*!)3x)_?Zq=_v)8}g|E!R&f>7))=J4XL+DcdAl#R0P^wx2o;^bBu3p zZ-_9ir6rDYQw_I`cdh`$H$B;plz?2asm9xzgo(XIrZ$4zmrY0}w7!Prt@*tp){}i5*&c|cQHg;~cr$KU4cAZS}8 z@7R*9f+VXR)t>R$-v{%8$>drOI?w(lzAQe)l6&cA{BHr*l}S;L?60tiP=a%_p2sNo ziM*z*@9`zV(Vjr0#O0&p65+yd#;%+y>?daaQb?03>{)~Cj1ARN+Fg2?!T}=jscm{~ zKmEGw-FoGkaRq=VjH3kT`%ir@Mt4|lTD|*-^D0mNw#_2x=jo`H1{?gv$%#EZa}$q~ zIJTx?j0Pv1rm*U22c4%PP@tN`rwfc{17HV>^kMtJRw-i}+D72&(x&A13oMSsW#dapuLf=TnY%jt72Nqm7PV)w?Ibg$okkp zhi=vZgTD(?1G=pNI!+??Ms z@p63F;{~jlshP@rW0CQX5qv6C<8v}|N`3TC3SJ@bf1g|-IEs^6JKH=OZ9xf*_g9|u zc_8vo+gjK%r+elX`{*j^DeF3e{)Zcx1h=NBc>d6sPQqiaqh0kGZ*>pbTz zHxQQq?2huZp3Cg?;$}bWjsW$yJuZet5oJeLaa`v~!vVxEC z*$;V4a!lqZXR|Y-QY!vC7REQ>=QK8UE}5a26Z7>Htc4XICB`;G>M#bzGV-6_8M@+t zNwzqJH-b<|UpSMs-IEg^Qi5FL@c>(HW!8=vMVRg>60??r8+Y-CkCQF(Xjzl~!P%a< z9zgT$@24wB;efqi#phPwdt=FOMev5x0OxoFV-0kBdn~Q5sMxD~a1uQNHQZe|H(hZr zT5M*mVh$~*_!9S3Z8ROy&ols|z;wD_B2}SeH6|~9P7rh${(N+e2%7Ay3yTiIoxW?( z_<0i>pAyUc&xPh@PYl*&1;{<3u#D~c`~eFFh>5wrxkvW&4_~mQ&p3&Os z=kP<~g%yHG_SNFmv<{$~OZrkdfdme|U$M9(whSIGuR@L?9iu`<+?+HQlVxaK`ms%l z9Kbo%-F2pKoB8L?^)61B8E05FkccR}3^WJpGJCjzc1|20mtZmiNb(mNibbxY?0_Cm zOpw7m;ifDa8vi!@Doll@wmQ2d7YPLZ@3($e(7hk*x%st2fy7E!iEez|YT}by_@+Rr?4Pz&nVJU+pegk};Mq~_o zyM8sw*z0lJ`OuNG^QDn#))Ne_e+TT#F^i?=sosCI#f=sbtPLs@M@Ag$dUrA3w>k){ z|GraydXv8w%(CdYF%_M_3o=-}tg#i8Y@6RmXj_nNokrh;?->ol(w8e&d{TML%bI5K!Wvm^rX|pk7CFM8FDd4Fh~CYz;$I z!OtGJO-~x4Z>(PEE^3Q4GZV?_XfNme+(CO*yAs7fxXCfk7P)^qQdfedwOIti#c*V) z=m!z9e^~70N#=W@Fc*PCCCJxxF5ECr-ddheR{qfnO_etx!du!S|Ki(`7Du=i%v z{hX_-pC#GrxV^XI4;TbYYZ>DTiDh9Ay^ef$(^vCxXJ==+A1fWr?t6zI;m*re)kyvB z{di#kz96r~2c$!}xEV6@L}{#I^XqbT^76V5$bRk>1?Q0JsUeGtF0npaST(+q9r^if zsbZMv{85);=KU)rew{!@)b1O;*0;6>9q$9ot8-ubCY|IQN&zv8Sb z#xFyXIeMtJV~>|^wiF~G3SMqh2Qn;?lVke~HmTS0h3^|si(_hI@~mI$?uOTtxj-zG5S(5M|0XHeN)L4-8|Cjb|{x$dyV164|v zZH#?+11e1pUyyk4>Xyzb<|U)CkK)uZhN#|;n%6L1Nqt8^ECNsM12m4S{A|5F&QMNh zKrijdor4lf}gGCJ$$AYj5f1A9FKjmOXMRTap#Hl96vkzXGaT z()4nC8|n1`b}U)+*h(kt`gIInvNBawR2sal_SCZbs5DhpgvBC7f|bVOdP?u_)%4wz0*(w$f~iXEMTaJdSenFGMCm%lYPG? zB3@!j+=+y=D5s=_BojsWTJWDG3&lXA6skkEQeDsYm`Zt{n;wC z)e+47)Gf+IMI)4Lb*W&kp?#5x9mf(m;xNI+wHTSTQ7yCv>3A0D|0pG?{77il>NiXj zE&RO!aB#pqNN~^nRR(gB9`-x-!NBkSgHB2#tid=OkDix8hoQuqbLTl7JS+}&{xpKw z%7{C=Pk^ORM+s8GbPP>?W)JiPCoe@QzlDma(ym?9&C&>F7pvVvC0Chg$0TRD&LD9c zY&ruq;pKrO-#J; zRsgmA9)jzB6V%3^iYgZi;ZKuz7FB)BjF!LkkG6Z*lhm6Ya?hlzNi3*3B!03&(X!i>V`xlQD{#T+#ITLuT+uZfjn1cd=6QMR>oN{l)8%jh z^nOtF-zTtzh+hWAz&v|51+QCL8p1)+aJ26+w*hpji@g4)is)wbS3z*k1HKnuG$|cL z6xMa#3QPm8xAy9+TQ>{zL0}qFagH#BcI%KY9v7N?utg>dv5jIx5q{^zLv!mYeR)n} za8X+|1U(u>Wuq9kj1MUeJ2@*sC;eOiW&YnQ&V9xk4nS8W7Mo#T6}u=Q=13gM`roMT z9I<#lu1kZL1u-*gtXK|ty7o$O@+PMjx9}Vr~q)KyVaK*FAJ2~?sr0A#F4d0(5 z-4(PE-R`h-u_`Zb0=|&aq|!aVT}@xSgu{;x{@GZi{aPsb-Ner3x>DyYtMeokAX*qN zXYY1b7#ftfs&yoWnUHzjD1MDXJA3m<}QxiKdQ8NApY|unv)~B5X%+JvdkfhXHCl_1bJm^dv*KR z?>jmM>h9TyhqsLRFS`D93zMmKfLx+##g>wjr7o%p!=nhdt zAd~C!-ON~(SDuBQc~shg3MPx zG9NH`$YD5L!Jt6Nrz~gT-F!qa-OAN^wwEjvi5^nIwY#ps2`fh_|K0>&fHUmbjkM0M zJqbUbKih)Ky`!VHw31WWjU#-_m_oeFt}<#9zlfZW1IDulvkQ_&_f&;bp!>nbFat-X z`WL49pDdFR@c4f3uk2Zqw>2YZs->zkNBVKsTT*Q<+JpKN2l=`*jyc@WWKXUHyZ2GI z(mY_#isr;C`@O$}^P4%v0=}qva9L`uNwRg)c%}aw2l<3Lw+d=J2*@kU;b56hz~wER zJ}+NSFC+IIh92C1ylf;)rB$5}yI3L{kC*3eDzFNB9QGbW7pC8g8#_ols==4(pP`8j z3QMqU!8mD+=?y!UDQn149AfL7@#T*Qwy2?dDl|@{O9f%@N+02W1&q}F;K%d2jxve8 zUpb3k6t8XDRgFgD7Yf&$0PCTM!5$>@{N&B}9;4=GMQEU%WVR=A{lGmRur-#7eOf|QO zadgGVGEA`Nhk!v-76J$TccqRF4MYm4- zQf?s>akr}KY!k62%<^9;$ZSCe)&_wm${38;!%j>h1;GWi!0u7xTb7=IQ$UqBw`W*q zSisGafHOQ8*8$AnVD>CZ&5+f!LuhT|b5aucw1ki|+*ciNRfvKM;=W*GSt#$+Dd7HD z)e4F9$Z)mS;EPT?`oW1WGHYeupY!<*?Sr#xKLt zk)_Wg^Cf4fMDDk%5(lkM(CPW}?3o{6^r?y|)nS+oh5+(^;yKaTg~K~RuY-I3H1k5u z1s)!?0zK!XPK}`i9Sf8Vp);HaqJwk9llYD4*O9{e1nW>Q!qqRq2q8O+DFo!E?|a*) zMOYuu<|W}zOrbnkL;|vP1i&BqlIHt4rje&A0&>F-uZT~Ki6>`D=4qxNRHB?t9135% zyhwJup#g})FIV8Ga)9+Pl-U;p-rkzccl3W4o1oWa{$e$T&Xx zLuVd6-%rjXx3Cn|@+mLaN0%+ZtP?e1aTFgt{($V&s28}3QNtQ1qe)LAymnPl)}j{v zx;VHJVR3K{OgJSvnDO4+Axpb^Xq2}Dog%o}46<~r;E;#jvunC3)$<%9C6w?>t>*8@ z@5qolH{X%J?le9UcER?6`4JmB(K-e_q5<(9P3nVKc53ZqcE%CIdNjA)dg9w6j1kjk z;Q_8E5ostJkYO8XlU|f8Cts;B^NSV{M!k9EN?I?^ zy(sh6a`vp0i@@0^Tj|i{uRSmIVV8~7!o#`DcnH6KpIn2y;WrA(U#PEJ8)2jPRt?<# zefeM${b$olP=twGX;433=0^xVKI94HYdl~xf@Ft;Q0WkZHr13*^#SX3|06iFXTt?05d>6;%!poOb{YP^!JMR^R=Loasp29m<-^# zzEkNyKHvEGwYK7HCIXyjCq*k zQZh4Bt_==g;y}LP#{4cv2X6}4MqHm#h1}ht)afx3PY}9%A8Q64dW6m z^RZS!=CYZUUxsQY4;!%fkvTw^I{+hfD2)juQ$d?SwFa_gm|7cv2ZXKwrD)nsBEe(r zDm8SVjJ#;PPF?tS+CJ;(aB=#c*VPkc{=oj;6_|<+KW^0~TLd+FIT8;D-#s-kT82Xl z>D^P@_&kKsOXKZum&!sZ?>B4aPx{6Hl&a~1Z{Z{NXWeW6`Jm4TP_9pr*;jd=1Gwg zH)@+JX0pH-+vjb)n85c6lf(CxPG)De5N~A7ITHi1exYwbU&JfGrOx*uQ)8|lKSS=O zLy??_9Re$75SBpB-v}jVNGpG$_D2wwPeYjwIH_ori(i@!!tE4}(gxwPsYH{{#!`s- zF@D7eN7p7-_3y%^Kvom)GKeH7P+@f7q%yNm_9xKsfLdLKYYMTmf-=p93<*m(xU7Fg zgTXaPt)@@dLBFQ2&wPgFHcrz*Z|3t$g6 zYF*||VLTD;g${=2{wCk?6`|47I!yH4F4RkNKuGXt^TP4CS`t5iyG;V)%e~cMK&f({F9}!*--bzZJMP#SLS0uI=gh{F?;2!HzZ44j?n$lun-RUo zGU-t;E&1F#KJKtzt}{^UL6mkVN@~vlad?MnIyy}hwY5LYi>m%y-3js{qRt+&{+zK; z9Un8PXuyrzh}sSlHfqHN)PC`%0 z#3+s+9ZOI4c>`4fm@aDve!FuvLq3O~ zh|d?(xI02sJAPU+!a05Sh4FuLvjbmgdveJwFxfh$S7Y4m5Y#9%BQ(yTK z=Ib^R05eLwK3J1n#vX{N8!@R`KKM;?w4J=!UlSUoo&Cd`H=xg! z-JG~f)CmAbJhCRis58jG4%P8_Tf{^x$DF2-jGnGy*@>s|Jn3>8dE_EA{8W#Q=n@X1 zN7Rn8skNUt^}8Zp;eEWq(UC?uB(cQx;pZR~KpecyjTfxI&!NLjkL6+eDUV{dW`Fj8 zwK7n%f94wTFZ(>@5kUf!_QST>PzA4UX1NHQ2#8LoQEiB zK<78#9fAh50O~C}%yzZ#9ak+8VkNBZ{DZczvos753cjv%Y!zS1J9FMJ3i9%P(tf(? zkXkG0_T>5>3vg4)h0&ZqwbdX#*#-1))iGv*!-$^9 z_-Bmx?U!$7(|Ja$2!3qulKCmT_1`1V0j5axXS#(!OmE|n1PtOO{Tqj9EDiF)Ay6OV zWM2EmkMcB~I>Q!}qrFQ#?;0izY(x^7*g~< zV-?;KC=>Tbk9uD82Hp|U=d-1E`h(JPNDJHi%5*M-A<0vz;S`E2f&VO z72ayn{6z}428Rq_Dd9z~Ma{Ggn?rHp#q*4uK+OBL$|V?cT`!npAL zz|6cthTR`U<)Bgl&LUy~IhaNT9&iT+>)8kEzK4;h_sBZL^cvyvK8*~h8ZlM8SG?y8 z+cs74%yZ+B5)P_=q{|2ZXjoaS1yWcMGcM9ba$y6%6%EYT1*4M>^G0OLMO^wRP$#%c zO3?V}NN&7&qr8S00PMqi)DId@?;q+cue9H5958P2tYfC6v)&-76Ts&N0i;P3aB|cM z?Ww4wHwJ{2sJP%EVOjAeFy%N%-1N^XvnT!Vpa9F%PtscfzZzJeK9u7A^t57P0!-IO zi5mCu3LxA_#aM^NPx)|`1o)9(IGa|}6uwjGw2id3V|!oA-UI&=z`vu5uCjjJf&7?@ zv`C_7UE#z3s+GP8FT5}VaP;}mJCtz@e`8MCR^bv4KxlwaSyN_cs&fh)PmIey6YpZK zg;YglXK#v*M#aBn;JRk0CYtOEstF>KYehO1sS$}Sa7HcD>MK%D-)YcO^92)zN#v~D zX#aTFo7&0m6Uj+eKE$7o4ME_5bD<8xJ;NsiXIlnmD`w@`N;w__IGF>TtY9tb!OT&o ze#$Hb9vbmN60~5XqBBF{W})#L*Cg>oT@~#huIuuK5=6&1ur@i-a^Y6s7gq=@#dmQM z998T)(GJTy?+FnO*4Q8L5P1dW$L_GEKDmC1Q4py6W!_|Zzu8yi6$5Msx^vAQTP_-S zvt&qdX@yJfI4ws4!cC)YHf5@uv2(+5Ku%-)%5R&IFH*U2)b|}3W>2_x0ZG?eG>&h& zg!0~wH;$6wXBNYsdML|ZxTN^S{dkw$4h%fMMte%y$Y z?YI>5+uv@|A-2W&4g2>6^Njeu${>o&9Fs=W)Qd{7QmK;Kax zch^e&hMR%I+sm+oLy63i^9q@0aW@f+F(>8owVOv0#gW4y2u%|RTid2_CX5*m@de8IDklO%B5PTkTQy>Rak98;`Ih@Cpuq`I z=g4D|)u0f~ztzyLIgGSK0hOkLb}hg;kyl%~^bLgROdlD-`T8}RS_=wsfMwtqgos`h zi`?{rZVB|wpJ!bR@}f1n2uC3k%P3ewbWSDv#XZ0W7(*9aLhWH6@CNd3q2l0zL{q#I z$e2Cs=Cbofqm3%>(8rb)@6UVp3cv_Orf#WjwPXM<#&C$|inh>oH^B%>a*?yCJ_ zQfi;$Z6ytzTXTjv{H503$m?kVhvG22lI(U zc+_i&_BqfI(v9`XTO7gEBXTG4d4KyJh%lPJ&Yap`ZKk)u6dQ<)&i5kD)k$x&ZO?up zgjKoi%H9@$Dp`nH$);Z=B1;%XF*uV>16TyfIWsb&JFq*QUP;Xa+DcGxBcQ+xeio3n zQ_5~lZnI%SMAwWW8c2{}RnZe0Dpdg0=;>8PAI>O|*YvNA#96R;^t2hkrxTEa4q==j zn+GFAs&&2*^fL|0D||7BKva0b8>*9Fa-hz*6r6ZOR%tu~j9aUlTbd&gNks#q0BsBK z9MLrG5^{=*g@R>R1D=(KS1sF^iw1SAN;ZT;rG~Z+L08NfC7#>Lb{*!ZQT&Lpl1Vme zrMti0dI-8;dV6|3`(Cy%{0or0I3)c%EK-V3*!T~vUkVz&PShetwd|@8c2;X}DG*Spc&=|Kz`vH8MSNm)7~iKH24G!jv4@Kt zQU6RBuKXk2%pF8&pu|T;sXad(8>1Irrm>32oX>S)J?x&%FR#wBy>3mWN79FMezYH~ zU13CxGx2H1nQVPIR$h-)5{s}8+EsL!P}GqBx!tJdBtHV-09aQ-6nD4|P46jm$P8y} z%MZirIf|^c3~xOkBZAKlU@o6PG0r0LJ3-GV>L0s0Y;-9z+|6Po{LXMwRgk`0-@CkusAiyOKp_Mn#IT0LYYG>DmU&SyMM9 zKrY{@N}4j&#+5-bR;2s0)HT4Qh`1@7rCxK8PD6c7h_6+oFtbCTr4?F_{P+W;Ge=~G z?zXHmLuAGpYs{m6T^nS0WR98bhBWyBGb5H~(xf|z#y8(9EoYJ%oQI^G8?anzkDWn~ zNT-TG=tE?VxJMP;Va2qYsgLCoJxsec7t6&^*Lb$tMGO&UgP+HyN&5<`C zt$a;M*IDlA;1s`-Vtz(tCr1_ax+fMW#powSJKNzt0k4xtZaWAcKJwGJ=80{CRksA@v&+c4`_t zB4AM4+mB$_{hb)z2;PZKW!^mEM^!)23l5!W9G!0T09@LMR)tJTCYf+f)=63v3LIbS z$Z3|-{cOJc{MO@y(_w?NWp>fto*G!v=Dffyzj`aZCjc@s(=ZH=b>!lTt?vs&;|PV@dXw=ek19LHiX~Syt2K1K5aPV;e53KJH65k z-f1;|%mE9)=_%WJ*nfh>e^zgl_{UgfC-2&J<#)o>;$52+o zy)eXkDzLUb9STnhNRL;+bv-i25TXbp55&iNWrs5Ro+6S~pa4|IUwA<)fx*)lpQi1{ z$6Fk$Qz*K_wZv?;!_TWU0VM|j?%AWFo=jOk*Da8O6{ zjZdI{egPe?IC&gw7lilY%w_C_@+H*u?Y3v&1@LzCMXt1)@p7l7%jlZo+{c`E*xJ?k zS9K+AtCNOK`X9z1eC4$+F73l}W%pa+P&AF>F(F9ju4n3+3f6(bf6SDXq zSvaidhJuI^i-dUp6$ak-S4uvC^uC2J2Hw{MsWRNK-%jKyb+PEbm=s$DpliN2Z%{xf zD*6PgYitci-yK>EPforDAb2LOc1Rh;2V7P!Td@QIt#u^vme6c7U8Y zvh-~>?qnnNa&<{>kE+ps=-os)*p$khHk}7}0zJ~8rIzEls&n;#k=peo?{g|GkW8q* zGk%p=z;%etSkYbEFeH`9zWRp#tZu6I=*!qYuF&=p$cUW^?J$ql1^@>Yl!KMj&d<3R z#R@qXSVI?OXq{Y?jFcB`iC6|L74TihF0xm=BB2e}<-Gvk8E0heRB#nb8sV`FQsD7g zC+jNZFy<%t%;4;?oT=z6%g^$D{2!{`Ixed3`5%{EcG;yd4>yP`Q<5)B3PT&*l27=9Sga!mbm&Y3~~!FPa??dZ@3-dfD$T>2nCa z9%fK~pw--eX~X46RpU+2uK4HP>vS5+)yf?CCI`YBkHD5c2s5&>Y>YS5H8jnm#wiKr zJysUY)n;$eh!+V@H$5j;z0VVW0bxY^CsoZwUT$@e{K>^P`EN>-+v6LeU9N#e-K&mlUuyI~-)r#| zJ54(bscn+i$3DY3X5I9DC_ZT6PBMHgmHKk1W~TX+lb_-x8Ld;?7t~X>J6|8k7vs%(O4;9MEFe?=qH~W4w(Dlq$lx#@J!LrTtdtiUWq@2pphYbGA&)-m)H%V#M zNRQl7|HA&t*IuIG)uqQzGU7;l{LH8Ozu#UA`Wh(|#y^Br9M*c$EYVfHTiG#>H;Ia^ z{h$@=70yD>6LaJ!i`Ye!(3%s^gi)ny59FILwLFa#d9k8e@}-(M%2m4a4fIAChn~g1 z;#h}MyZ)d@NtWfGcq?3kN=l0AwVs+t08v?e>~JBh&F>r?IoNN$6ap! z5S}d_+o`uKVW`(Hu$1^F`_Pqg)J06hZzB!=!Q5r`5aGQ#%bd+|xk`zK5yrSK38+i8 z(z(BDNvr>?_QRk4Pkwz*&jg(fIX5(cqLPVlB{0X%;{j-m^{GYv%_@=!(x=(827Ur*4@|bpb zld|2sME3H1d30@$^Godyz7+4YJ_^4XbDT zD#@oLKZEF*M)z?-!{e3rtQbs9Bt~D|-V{_PcFq}G3C?kHQ0W)AEwA=mICov{wfK~G zj#+RWS6O*i$UB$F$!x!+)Wgqi@&iBmCtNiH29C{)81hNhP3ABC)j}eYUnqU)_ZDdg zO(y0Mp11t+@!M_0)@$*f${g1XbUO=!(}=|^X7q&{ z5%kGmd7S-F3l?Nv>hQa^FbZCo$k;Mb;PyRasA3di+eCg>+k3>#X_^?aZ;_}*V4C!Z zw1m@>HyHj-0Ty?2O)W~m%(mJ9p2pxfzo`;s(JR^;s2nVYP?)!JDj92DRhXK$IH=nq z?*G8gSLk@7-glt?*SiO|N0}ekd|7N;xM<1{y7N43a9S{!z&tFk+_KrVKx6IV)bzZ# zLg4O#gP7&01XD=gR9Q9+$DPfY$hmHo*UQOPX$OvhEAx^L8uI0cLC;OO??Y+ik6jq_ z``<#kVj@EW!H6%P4XYfJdmZl-_+F^mYiSrqUlft%u(?&);a`3(6zo~AgKfpcDxAHr z3v}`m3f%nZ*q|HAw{BrgxH!JiFjB#8Vo6BK$Qg;)w3I1&Xnq-0uU}18m3qtZWI)V% zA=+#B)cHD|MkWCL8ud0!E2G?J#e{e^a5GcftGoF!)e`Z%Uyf%{zG(Gax`-$3>2XA$ zap2LC?fSifR|&KH1;^ovE__T$mLgn_3tea3#eRF;8^4i_R3eXJ)$THYz&q=m#oRx> z+W0;kN6l>-_R{G>55c)mn0{M-K=c}gSDDSd8>`%R*NVx@Qk42%B^NQMs}7b`e`m{j z^<|RW+$6RMk))xteO_5SJjdU({ga2RDLrg{$yYKXbxzjKJZ}Ekse#qcy9`l2#_Li3 zWy-tnHy_JQ>~RgsU4X;oIZkQls2L@m&ehVC$OMUnPQR4x4!X~Z5Vn7{sEog$U7-7m zENFq#7~XdI#0)|5uj%*tA0-#zKh1HSaV&#BDgKIn)JFXI+0yYxM8|KSqSVzhjB28K zPftW6a`59yAmhXL2{|T_mahz)DXEJEh)OdOIYcO+<%vtpzp7v?qU!5^#KKt-WKfAy z&0}F<1au-eh_>DMdn@sdV}r5yUfJ$V#fjdjB^|aex7L>K_P16zAYr<{qX`&vDm?b= z61r*@7S<34JNjF;;p%ytOA;UIqWp1;qB~ts|NFM{oF(ul_4a}6)d)p>5t5|%+!Ps5 z(~*!@hfp6d9A}*Ir#gEF+bj5mzZK*%5iq_!vR7B}=jh8FZ;}K&-52sE11+;(ek=By zTlAYJeuVVyDw5uyT2pV__Oc^V6tVc>HLrUw`%pp&anex#qqfDQ@eu(h<<@4{sl?H@ z7bhz})7FCkWkO z^0#5qzmA}1;%?N7c~y4AJxMjz@(*fsrqt_Z?joDav1g0t78}6XHqjA(RG^t9+WDNQ z#~BY_0Z|$-GTG8w-6O_D@kwJoKhrp`Tc7x;XP<7GU&E@;+@{?FhGiK#KJQ7n$w*tD z$&!6Cyv2w6j6SJ3#2q$>xf|arA4gT{^!)fX{T&`sRZzCWEgEd)o8!hZ03z0x#&cxA zdmx1;n|P-?aF7i3)hM}-hA zes0bCpv=HGBX?X1dq29b1@k?D;lTXIHO$}O*Vz=*SkwJ zc^*GObXt-ZGBDngYxIkdjOooUDLSGJBt4i8hDiOMp7>4_vM9b(aX-IuZ1T_jr{2S@ zT5h|gF7U}!ALSR)8}PH=P5O+Y4g(?)Z9y6Zx2?~8=R~&ICpD#3JpA@V`G5R&>gjuA zC|Pa$9qC8NWUHtoKFGNAN4#%}Q2CQ${7Y3TM+7Zm?#Zrg#@{x-+Z{KC-X)n{H(pjh zz27GZSp2r|{j#z`DjuUPK3ID_SFG0Z<4GsP@*_u7NAz(6;UAEdziQhy14dwDUQPk)=U{%FaNxjmoP_f2+( zme>Gsvvkd8=-po1s1wWm4cRPpJ6&}KcT4ZYKhqO*(_h8j73?~2EPnOu04&d~0(Vy2 zzmcV%$foQf5ee zw)O-x)Ha7&sV(f^N_62_AGDt8wD4(cpe-d z;j3Fe(tnyPhA_OCJq47N1v84Dy$f#8d`{N>gvp1L!S)wh&Rf%G&N&e(9VMRz7z~(?K>v!`*vEj1NrPwwPyH zO|pOZgt9s35#;=6^N`>5Ga1e-x-L~q-tF zjJ{U8f`#D29;L9~;xu#g6fMU1E2=Tk$KN>VnDd) z$$XJG{G|oH(ex=D*N!(osc>TarOwWWfAubna3*WWaDUo(IC@F8^eLWMo=YyIUCN1#Lve8 z@X-Lc)LQeEP+h=;;ppCBSHl!3I=rMv@(LU+T(pBT6)U+I;DghD4&GPe6oAkp>d^$Y zLIBAZT#Rd=k`bQ>Ib4S$iHnJo6p51o!HAV@IDTNFtC(aTmDC5Ka^nLC%0Of>n4i4I ziN<0k{)odzhnXX@fTN8`QyZsujv5N(WBC8_xx0+xfc0a%jzb8?%z3bf(*Z_<%N=48 z69a6Yg0bM3h#~XpgzCJ7Ufp2=&vM#hrn(w7?pLD4&eP6 z%8V2y2Tfxwl2Ug+n!<{)Dj*KbhK=#sa8LtC zA*c;|HHT>u3${G52yxvl{FBAhu!D=k3eL2=w0F>pVsx8``WeHAmAwpE}8^zk;%_M;MbAgAR9{>k7<13C?G2=ekBNCoRztr6so$;10{A%WWfnKJHuv=T7X0H;GT zw17k~cj5tP#S`^=0tz^GSf>$AiL7e_HDDLjtpoJ!KE|)c1?VLS?km)th@2(_v*Mt| zMq;olMnZa$fKj_2J#I!0M)A~@`1khpstF8FCHaH(kf`2_I}nT#69f1L7$ZtBgTYXY zD9a8O$6gKN0&8Q%VIJ^5eAt!2XXMwdfq%9rLRyjrlOy@X!M3>Q0c!ffR^YwUe*=4x z;5Q&R8qI9AD~4>4s43>S7(dbq;0y?QVnUqcAyC_fgSJS4Zn+4!_(KVhT54b%FwvEX zO5}*o|3f`!&()e>6!oATNa=w2=`fPdVLr$91$gYB{YU-*Mj z)PtT5gn>U`GkTI)HD~Wjp}@9~DFq*h>LZAWU$E9WVT04Weg1-g#xdjpn(VNeiNfVUuMsMgk@Oxl2K2uu;ZJiry( z059gCH;}=#U^y)4&UfGetQg-2w!z?MY@8vS2j1TXVP|@;K-rQ0&EPK>7`LVIOaB1X zs;KbL+0SnWQ(#6Wcp6!E?Qlup=j0y(6ahZ{i>%Uz@!KwM%s^pEihi0B28@@ zfg}|aT%E6|29Cc}KsS(*li+IX^6t)pd$9}Iya4`%4Y%Su_ymOBbS1OZyud;wObLks zJ%~vGCrQI0hO#h`AQIsO|06B{MO;KktqpKC*6y#L;2f;Cggvke_Uhl?U|XzcdjjUg z+#5ked$EAECrAlx82RfQ+<Vn9`G+38){14Avv(%1A-wL{(&X1#?8UFV9bUI znD3~51HE?5i7Z_nB6GD65TJVuj@k<_+_zBlow6S`ntX;LFGip?3-uw5Qo%*`kl^Cq zCeA?J6JwJJc%M-_Zif^g?Sn`mY472FgWz6`AkSrR6G0d;K^`|4j1dWyaWg>hD}{<_ z58rAGQE4mVLV&1A6j4FcaGP<^mKmL_A}XY=U6U*V2C3k8fy+raK9WQOw?PVH=u;GK zI0iCC(JIL|;{4s(?T?E(yBPED$3Or2u|r;vS+k9!AI%10SaGRFNo+ z3=qb^*IZmbT=ei#0qr?(E`v3I%rC(G3Bl+jl;K_nqjlUJb3*|ewf~%i(cz?OZ#yUq+1-sRgMrTebVBorF0m@x7jR-g z8ww*vKKYFM92+S97u-Tz;wyh8vy6>wsD*ouYIPb4Q3diRaZyo>;7VY_)ttoj1ruFq zE{5W11pHT}=_8qDaig%--p=Eq3bZR70?#@e!lFu#^V7c5Q_Wz>$T@ zBV}+PZ7{S_BR-@PjE;LMYj;l+Q=7fd#3fH(ffJ^y!$^_$h#>-Cj6p9lNF!F{qJper z5}8*!{{651B0zq90$Ia=2>Ic8i3IpvL5htLkY&s~g3hIgT)@T? zq=*!F3F*b8e1)&M9QeSAr;55sASC~hU@wv{7V-!SvoZlPi-j4J3ZcQnfG^F0nBB&R z&_0Mb6ummvY@<_F04X;-S>(&FkYfy%$zRM9r~jM}ScO~t$qqWl0E8C(`A zJq|I#fN8Zn7XYd#;BvtGWB7Go%O8&n37vwJ;h=9sN0Pl$H?3>ebSAHOP7?WN8WO67 zK@iLVjUd5Qc#gWiaKxaf`V1{{i9=m*U{_)(rFATt%K*|2C&yJ-3CnV@X`@4k5K~Jav1Px^5 z-M3~ycM?|>4L-$2ngDrKqhWmoJ%plqN2BAl34!v_p{G2UgmeI%!l)bRDqiHTH0S{s zJy4g@W(bho{ck`f6N)Oz(34AYp#*R=qtGkL;yT zZ7}>w{h}Iw7E4A;ccG{f0eetfLr%Vhs)Nuv|M&`UmC*-90Ikyr#wSF^RYP?#P$Kya zv;bZz6r-Xrk|L$wK~Xg&8p_uO=nz)SZ-O#G(AJ!NCv&y{5@v`B5~WXpNll`;S~cLq zhOu!27%qZCkx3t+k1BO=_poEDxSDk+HDJSy54~ch zADD3ETnYSvDpd?r5&%`iu^`vhp}UyLxN+gd=t@rIDjQIMlnW33f8`t{p!E~FirEXY ztENDh7RCxz4PDY{h=6F2|Fj@fAmqp|=nohsj@A>XGA?>zsg;KmplS90oA_UGM}iFh z3pK^=r=@>T4r~?(Ab2R+yIPXJ`QiK++5?_!qcSM~$4kNhFEw8leTHT`^ay|&!3AV0 zU^kIUgm?kiBy|$wQDd?|k_h?^F#G@iVEkXLheRDx-+_s)93E)1sQ=&jRN?>02}+p~ z8F(F!7Zf=JSmK)4DjwYhAjc_8~C`$_nvq> z*rnO?!OO(@i}%O7julG-@eZ{y2J?IIP&9b;$^skm9sId?VZ!GQ8WBsB`Sq zz(qscKWt%k1?s9WL!t_^R19QF@NI5@_{)Eg(GSja;IMmG$O%NSR~R_YnYo-Wgo%!g zq!V?PxMIwb910i~%1PO2#^$!e7=|j} z(Eh($z^pN`YvFF)!Z0FwDe~=Lu~;1eXP7<)%JtR1>gaPVs)9zjNLc{LkPQ5g864zS z4;TWw>^lCi4eU(G5LgG+=Vd6YA1i)Az^t(%|1+2-HYrb@!#puw)E^KtVJQve1q$Tz zqpG?8PNYQHtLJM-)blk89Ml*6VLI3l zc1vJ8SaGQwc8nEgD`6<&x=OLj2Urt^xc+D9|A-4n^oI~218QNV|Lye#SPm}H)jWOL z=F|TpC^c*nlHh~@ik7Y;Wm;fA|I1-J%odY4wn6wOEFGZ&BS-GNhYe#!E(h&ru`Glh zVeWy|gV5W~qXh32`Y?-LQcSY{E9OX$hM!=l7a*W_O6(UHik;A++X(Cy9!5->hM|f% z^wnK3+#ZUyX$@(r!4`Ab_;6G)cQx+%xArR`x|jpB$xsj87Kq^7*q{l?;3#@R8!4xN zUk9P%H(QE@rD02I^Z%tG@oT%7(@OW+?c1^=4$EGf&+s{9EA;NYUqTj}8)xYGqU&m!dhIl=IsPO;e z#`h#>fYK}G;l_Gv>Y5bSrDrtah(;h0gU2hM9|k!6Oiei}Q>9#!Mz8}}3V@WvcF;L6Sf z8lw6Y>9cYalg=?3JER`9WfRT~skW-cjRxjUt^*A%gdUNN$qS6!4IedNOEvaXFUB0x z#^dudrTk5K8$!xNUe)OS&P3G6nx}kt;q0a{{!`DgS(nQf=kM|+CXer_Mx%n; z;CTF~nNUOi^*8Dj)&~+6(cf-ZDGY2I*UE=xb2g+D2G*fE z<(I62rUsea^HfhI)LkE_@6c0J4G$J&uaB&SmRZ`k-f+E<;oT4@Xvv2VY*6>1-}~lx z_}e$6<(7P_-dr+V+l_bHa)(>3H8b%5uf;+haNG1{u&gS%*?v>LRkt;2IQY&*TO@RO zQp2MnkS?wLTSVk|_}VN(abQUx0B3T2xc+STmso?xEK`{qiGwSNE3Y1bdZni84!ge% zPMf<}1B2NMIEfpH>W(d<|4@a`d3I1^M{vhS|B>9ID~#h~=D1*PX+a zA-zYv5jQsWP0OSnbPX)u1)ftJqh1-23F03e6QHmn&l{s|V{HI5gXABv$)Cp@mych% z)?FJVv?4Ah82vIgyQr}vvJ+6&ZrgP}o2BGun`)5oI0z`zA`(6dkhfn81IPD#`P$`TQzr#8TKLv zy_x+zx8$Z0hXWX1AXLR_+*%4_V)#Dc@l9#ci%98jrH{X}2xh2}VQSZM;0 zde#ngYD9tpiqhTVH-3ufRg0LWbwpV4E1r!3BV)c>P7G3&0=E2NMO?jGFVrpsQg|mx zl#gTWi>u|hM-vcvJSw`-DTq5s}`abDhZY-7+ts8HuoW;|YPAeay;Z311zQxB48n`c^_mv=h&w z*xe?zZ=GF$7M)`@k3MIdab>>XtGIKde>CPSqg8U_!KUl#=uEkhx=wzpx~h@Y58(T+|!u>=+>j4v`;14n!g05 z$fkU&dZ8KkVuAfAu*^$r=Gz%@%C~}tI?_!2!%UM*KAQ<|A|@ZIT?nQ~l}hs+aTHz_ zex5y)&UkCN$aYjxcv=5h;!rwk`{o5rne^?Wb)lI%XTRCW=b{cw5VBkRncJ!k%xCKC ztDC^fFgyV_lC6#N@mdm%3;7F{t@Xa~YHiqgo}QR=foGT&gL?t-MM}%_d4UAs1iT~u zQaI80B_iVtI5Qs4LFoVP6g~R4@vmqhG`w=EQ)H&#>>vz=TlNCJqV_KbrUx7e6?;BVr+@H^`#$=q?~ z23P*T{bIp>YTh_Gm)ImFGH^xz?nz^+SjaP3uS8j^02|xibu#MqAO9krl-PFgQy(n5 zL1zd+${~N-?E`+E9R>Xs4$71_8J-%SHxc5PJvAhg zalBI#40cWDF{}6X@o?-Z&n%DbH%#;UVURvGDX>9tr%Pmk)G3EHPe{t;+p&4~#SM>hXvg|Bj~0HA5>p#>3G6Ni&QLZOpswa zrd5BFOE^d_w@3vKMuz&vV4@+#!FaXxl8aGgahdYHt9a)#yk25bLET3Nc zaVk1uKx-+^?xH`guPV%9lr^<{B)n8ue((a+(4pj2B)v-D;Z##60O>Ips_L;@ds^%y zr(_yEpOcSjf}rpz{Ek!TZuxtw7j|YQsgKi=JeBkfyvpEQtu)}Ghm}R1PRpg@RJW=* zH4Tk%Wd$jXDO^7wxHJxb1+++UOEIgEkDyl1#M2_$m*AEc@v$dgijrWa*eB~7$XiY9 zyL#5cFNDPhc1a>6qqnFDb-&IVEJv}Y8z4nR$t&%4nvY)YCx*A&<$cQD^}f8T%2NG> z;7zsBZQ&D<;cV?^GL|Fv!^1|)NqdyPbiYiTuUmYm*R26FM3{p-ir;!9YzpCR`UcwP zKb9iW*!kh);1@&i$cDOt%PWdowppL}MZc=AYd|3^yte&GLM*+x3DtpUfT*{vHqoK& zBzb?H(Qi(c$?peuA=HQ6yeqbMs8uw7vv8a|qBTrO(tOc2h)YucHg4}xtA6*yPA=J0 z+!qhFk?Y)-J1z(X8&)|^j&L$AS!OQ0vfgp}8t%r#C@G6LQ@V26Pl~p&4|Fnqys98R z9zOJG$N4BDI#ID$wr&>@Z}E7ym$r52`PL%=D?o-u)m6Ezv~R?>J4`cla#c+!<{|G^ z8gG`m0fen|SLBhoTvo}AubeTq90bNpE^f@DoJnTz+1zPF%O`g`fqU_wQYkgrji@$y z+~8*mDqeSXmWe;fTEcHdrz@3!QoU4v7U^j#zccYgqBQdENV^yv zkZx&F6e{Jy5H1?2vvMvPT`ukfoD&PK3RBSCw`U<7>?A13`xK{e^$bxvuOob_qZt@n`)(qaeLJsW zCS$KmwT(MIYm-hguF`7xzF;5--&{MU0KUmtY%V%R8RzEpRIT@9Ci;6S-rt)E+8JNU z#+Pv;iug#!mNuj9=2hohJ1f*Dzbr;N3W>iqmQr_oH|s8Nq03P$W$H?o+IlYTqG9{C z=3)1rbEGpuyX@j2O`_G;SFxqMAM+*S!)MY}OOBGqiR{*I3f`EQz$2gJym+O(4;&Xn`Q_9_X zw~za>q22i1o9%Sr3cScBu{(Lf?|-~%IhttH%V?K~uV&LtYMtF|cM$LPI7y@3O60g8 zVbB^)Ttz&0NZ|dzMR9mW_sKeHvgQ_0g?j6c1N$zAUXMg;l6q1A)QlZC5(YkZi)K?<={jCakvl(G{m)o;Yp5TTc^{hOiRPgsB5h**FKY!^+&905ms*liW zLgonB?9}?^<0*5jU*U%yY|eb0@7Mlj0(5e1XqY3KM}A5k!Ot?y=svsmWvf5?RG_8) zCiNtjvc<#uKqIRB4?g|WAQcW2@2_@M&~}YirS$N!N50@zw$Tv|BFs&lV7a{8>g)R! z`<$67r@r!At-LuMirblcp!!;0mi^6q zN@Nm=sQj()rROCMFBw($hRZ&?2+@#U12CufiEVC~s8Q7Jd)SzB`vG+@WkgT8NyhjB z&}(3(E_$3Y3)g$3?rN=f?U|q^?Ya66UfBg}oL=2`smJtlA-gX;d$#RESVP=F&F5GP8M<`>gzFuwd8C^d}5> z(JMy++e-cqy4Z!2BzMZ$2$hOQEDB%CyjvmNRsGV_V7YZY-3?aS{SRS75vgF5--Dc7 zKM|G)`bl>(moCA!8HC_;8wVFc+Pe|ck`66#3q%XOCWf5g9-2mbTR#Djjh^@?*4szI zHaG}2!gjh^@Q3ktC(K#CU|tccqHnsJ^gKJ_72EaW7My(dDr*#E#BT)?2}J}DA3F@w z6&6Xl44Z+3;)sq%t>SVt+N2`YHK^c8wpPPM;$_5|xlU~%7j%V!3@#m`ogb#i_r$nH z873p&;M*qcRQKW$tLf_#Vp4P#LXkBo1aOtU+i$LpFq?mPib|Bs;j{S0sa;gMQ+gs33ip!!fKbo-oBIsO z`W@E;(!UAWcLnSCCVJ~t>(4Reh}>G#N4R}ARm;ercq!A$-n_8@4nCJwn(=4Jw6x;b z;v`ZGF!Fxa*)d6BA#GeaO?ndkGs-b|x=m!$&D zjuPi#+Ot#aAX*qP>BAF+;ty&Zl+{^+b%Q-pWP{%5=C#Zj*eC45;?Q;9-Qh4B}H%-HL7nZtA?eFC!{MC3IE71CU>{|w)(E% z!uh?k8gA>+6Lzhm!}a}FRjj0RYjx8IVh#nGwwjE?GFMiCHz3 zYOjf@DmS>h|2FRCs$Gq>S2pVB+Il6* z>~;8#)QA=^e5yufF!PoC zC{BSoimcp`lI@i^L+b|>Tf6U@_9+h#Y0G(|rFur5`CQL^lO41~ z5pMSOA1+H1iYohcU232I*h_TIiAs0+APjAYj7oRVX3%|x(CDWZzmX}m8bh6=G}(0j zm-3{SHm{mzMX}>W9T7ZD)6tvM==fY_$cOpf{g2PWlGyS4{0)Dm4c@4*X1$)>wRCFG z#xpV|T5UXfGg#Z(pB^a|j-!>eJc&>wU}qVNc2v?z?Rr(Ex{uQ_(!FZKaTCwSiZz0r zO2a_5XtVFk-;t*_j)enZx*oAXduj26!bjiixqpbyM~54bv4mKyHIo=f^z4VjGo=UN zk){RX8F%md?i^`PHwomD+U!S#COdw)L);kqrx)a6VBRZdpVagF56p$$jwS{XM>|kj zG(cVejq(j-CY8hgEj*Xy{w$2p-X%WhZNh*_x;+mvR>D3~*vPE+b+2u@Pg8CGvSKJt z;LXZCMf00!y=3X%1&z#=+JiJ`iPFD|Osd#dI=;Q5a~!`#-^6xlqp+w48lDN)of(xo z4s;4&PL=lg+g-L&68ru!t@4{s2n}O*mJ-+QEXTKEw7eZ+Ok8p71ABBh4m)ah3C!A_ zBq$VgOtnbr1#}s)Ck!Rbl53el!^jm{gfn?pIDM$X1zijjx)-7y&3IUxBX~MUnAqYb zHy(4hCd-?(S6am+6i*JRJWNV%da`n^NMG&i%J$YXu~%te+QGf}`+eF6WQh2~)BIZv z#b^6ug6_s1G=0>4La*MvF!#V;KFQPF=@a~<-SBxGQ7Z5lk6w3e-{2>_)bOwk{CPPt zlo0%oUdVmpWv@s_!>IU(kd}~^lYo^-nfL~eR%}9}4i|W}!n>jWNM^3I3?9kU<|)p--Hng_{LOTo~_42;BkEXw!(0r;w-8 ze!5a&j^n)CnwMkE!>tK(=y{19li>H`=oE#Ii#+zXZGVWa1a^%uj5Z<0gnlj46$vf~ z{Sy6E8~Z5kyinJU=7esJ$7(1^>7NROQGl^feR^5!AggdhsVEWNVBQ;Or$)hJ|6=6n zbD1;Sne_d{@9$z?Y#zWY8ASrkdhL5xJ~2EZrLs+E36$5$`#5j?zk|e z9nx9JOY8N!-Z>d$Mayr3=vD6>5SFYKpq|QVXTNU!zJk}MMLaxEH;|6so(3UkRWx8t z^F`}nazNDc_(8E%MxWNZ>gmB!KW{vm3ewG}JkcBarvyy#tOTqO4FrwtsoEn3f@1#J z(0GllF|@R)11B2?4_p4qFZpM<(d^POso2*!hH`qoi%p14&_!z5A;L|1ISyUj`9W#U z>91F_<$^B9h3*#|T%;&&7N=g%p;Z^Q197Nq?NQKsKDO*9`xT*uPtt#&Q1nUYz8K$t z;C&_b{UQ1lg3Q5xb+P<$)i0<1-YYuXj=k$BPpue05FiZX6SjPfn8+t+ZLM_Oi;r>5Ta3a)mfIbtiSFS+AG> zOxz84vT5>|qKc;4$7H??TUC80v(aSJ^d`bS6DO9=#4w(Y^lFxD1gm2_+j+l*`thCX ztDi2z{4)R+JQLr1de)-3W!4h;$Xi^LBrI#WSMM9)hI8sKLO*#Bh zeb>BQ%{thWKedxRB{zIl=JF(pJh!Bl!rso4dY4drejy_nw1@ZcYo{>&uT6#7M$t?jt zUQ@Pp(*v8k*0krk_*(wL;hwjOO1BX&mp}3q(KK_c$*J=tJ9}Dk-!QLJnpA7BxUCf^6!k#yvFeQb=K@yR+;?Rx zvg+BKT3uz|;@CYuC%QMRLIpKw@yvV+<`saidW>^9m`Eom; z7M#Jx4;Y*LH4bJI`oep6*|yLrIE}4Zv_nl5*Ai5vS6<>%YdEbVIGc<}oH98u3(jGy z2Eh1KuF`*O5h&04Um${jt=G>(g2qmo;x7341 zHft6{A!X5ShO%5%fjBH`NkzxKqtA1#>2JC?Ba1cQWpbeTCta9$Ly2yOyey0Sk>%t- zl*B^g>b(QYhQCrDlXpLNnjbI;+b;l2Dt}(HNhdQEv~cOLhTf8nduQ&{P#+{p@zw0$ zj*n|*Wj1BW`P_1skXBNj`9aKTlV2A! zwho@)(xvHrzMm%Dp9h;A;-c~45RTLrR!n(fP)#{+y;_ZXf=pd~@UaqB&kgq00qNYc z$Ks3SB7=ZriLc+mez_?Up6LsmW+tDm#U7wrd{>?ijlbu;5TgbAo>dW#|&8BMjPKK7(@(9&RcB#eW(&0Rj%bJT(fD%}4+L#;*IH0`GYfuHP|ILNSf=n!QPSgU z%mA}WTDnsPl<%r85-nO~6_1`}hPuQySd59wO)vVU_22f>@uaJ&qxb1t%lswr-uJ6F z!?f~)MYF1mDlqR9k588W*G7xAD*VmzdJDf#bE$c*49Pf4O)bQA7JgKx<@8gM1_Ty( z=2d^HAn6ser%eg|y!G86gsw;P^=9G^-_4gfRNasbccsg(OMHk^@QZ0x@frv58pl;! zR}8{`ZL#B`*B|c&f4xOHr3amH*j!f@{k^`j^g|4{?L#PnS%D(`czT_}2r#W$HZl7UUK`!}s-PaV%Z<>Y60 zeT)(5b2F3WiJI;0-pR9!<$^A|2*o09!PB>Nw3^=Ph1<=u4}np_m^tS@n*&C7cYB>< z>1}se_?-TsrC9FvDWXXc%A)t&mBmk${~8@xRxf)7ET`KeR<(VBw$+VYap6@>S8BPI z94=lsygiQk7gS1jSLMr>1XHzLu4$1$YQ^hJNDY1Y@ABf`?0m<{)LgmJyMSI+xKF_f zQNPsXlSSiQmwFP~4eM8j+ikMna&EikxsnAl=B@g-Oz-vcJwPO1Cyh?dX)BALk3I9& z?0jf{sQlVb$iCc;GQ4)=r>R$;Lgt6}nZtTid@e0Uty`L>3z4zkKP_wzY&h8m%w|Oe zP)Xb4F$V15L_R^i=lDoDa3g-ZHf5Fdrn@txMyZyC8blB>>HcKAepOLDqz~Qty%XulM=Br<&9y{h%HsKb0!g>9qhp$4@q?=Jt;|`| ziM2F;S8c*Xw#)nnaZ~K@=!>5}(inIx$sX00a?b_xZ4@t@<`dX%J5NW-R%Hx1wG^OY?*TuZc_d{+m$llqVsyv$ z1F2=de}tGY!2FrCXddD6K#b=8`sGowFxa-=X}PO?i{VKBrh}brc~b*^go$?FtiprQ zLW3`SwJ<}4+B*ogr0I<0>1mqTvK2{<*n5^LY>l&{1L$29<(NAa9o~HLJ&DIIkB3T=SkI4NL{wP^G9RH16!z;O;$FC>%mF5;tPW-DKrShZX zTY4tt`-T;MI0(7&1uKJOVFmMw@=8_`o0I3t^B=4mJ9bTuh4}{xN+!4=tR9~7EnhcM ze~bHG(}?!&;WTnG|;-vnU zHkAWV!SnhW_~z?d$HJcvvjvFF)$KrB?P0nxHx#YHhXfI?c@5tDoI?G#$zQHXYBJud z0MWMK{tnb?U7oupI20f_bbEWfd9b#=%=F<~u83J9){xA>aT80_p*!xQLDx1M&V|o7?wjYcGtMom_eNkQ~+&#(q^8M`~KyWpi8;cePptDSoz1& z7D%i|OVdM#`aY4OH=Rwp><-UCBL!tN1_3j_j2RzoTUKi|YsKvMtPZI+-gPd^41467 z*<&8Q@6&}J=p*}8$+|Rm8UAvFs#FdCO&TR>0q;v60CA9J=+A7R9vxyU3G@05G)AV2c@-?dFU~Gmh0NdT0?1UZxJ|KG*2&lhCd)%P}wh zGr_yCPes)Q^~G7^m-Hr~j5@WCk8 z8LTlxBEn&Y6e-+@kuR#cbq*w1Q#4O<=sj&S8^L7`-%`Tnx$5Fy=A`*=hu{>vodYws z-cH=|9!O?f_pF1m5=HK^qn=Gyuy9xs-`=h(Xp#K2G+&szRT`^MAx3?0>Vnta8uGpT zATnml$k1rYXkxNbZtd|zc6t9FDv_0Qj<(+S{ zG@THtBs-NJ`={Y?j1A>_jCbDy$G1xE#f`pD;}9s^(p)bqESERTDSwTryGY6xlpJ~V#4hTkwyN`6 zPnG7%wq8?lnNgN`?1vbZTFnpsrWUVV%K0*mXnkH~czd`pFCS6oKWFyxv|IV%VoP~( zv60B9lh-rEMe{EfNAXo4AH!|LDd+)8x zjFg#`q@=8b>`{@eq9Sj5&x}h#Rz?Ytlw{9}l_G!=3BgcgwVB;#XCZu4v1}x0)WqdyjiQZtuLb`oZWy=%DfVjjbyu#eWa@$aM{| zPB)$kw~yB%V$OJgrB>XKQ-5>Z(V19o$?v^j$2!fO^w_Ky>X`lQ-MTZ?l7|X!&2h4g zR!PeV7!MArw9;#T6iC$lcrM|=zSJ`*Elc@N_% z{P`hDt||$RS$f>QTQ8inrsDO@IyE!~@{RS(&5iZd&eBXB3DCy1@SWQnJ+_#>H2Q~> zH!Ttu|3!x4*#<5+ErCL7X6y;$`=OImcVArI&oToAHz%?`y*;r$S>gH8aB9*}PC~jx z{9LZ7M(Dz96|cZr-lViXp9als`+KEqo%;<1%?bn-9xvQev?lAnVs`YvmqW^Jyl3kD zCd$Pa=qTjmUmd5q9I+e`lbWNLNdN0{M#edZ3t>J!I2P~uCYO#JRtyi}=P5aV!W{qb?1WsdvBZ$8}g z-mrOYHpMyBCL{^XoThKM^_X%hxYr^^TkxhGQ}4Jvj#oD9L)Mym+SEdvNp76#^|_9~ zGquRoQ>XlQpXcMlx@lNx*HWG8)VqeeOZ+)W`N9cuU zy6{T;n~HFn{xN41nRru91wKBbks2Y<)@b>L$xGaO@?B|`=j}6z)nztb-CTNgOS4Hi zU)FkVe3$8!ksqx;@7A4-^}1hY=XYo^v8+7HmVKn#;Zo9Bk$kV`Cq=rLpM+v#y#(gj%x*S zoM88`7vwSv&kyw*u`50`G+tnQlF6j@7m>)zhbF!9rB*ZHf}_p3z-J$WPV z(7E`afg=#VtPs+H8GX0>!;z|J?m0zQua7wZzm<81vK-5z%8w5nBkWj0Dp2?M`Qt}yF|8_e|$c|;~IJkS3r z{7XLV#l4u*f=Bx=LhGD2G?Q6u?ot1CpYqZs%+lQ|RbVOLxGH@4qnNR&aeOmGqd+zG zVE#-7PR&yB_M|lCgHcLk3_ryk6*6hQ@{aEr7w1M51vm0zaP*@KtQ>Tl5yz@)lZ1&* zN&iTFdR4^Gz;NQaBx}#_>^nWuQjB6nrY{}GC;l*0)Vv>=F|8n}D@@CvZ;SfDNklFb z3|L7uj)v7smbE=BuqL2)b2{%OP+l)7@-xW1^1aU_<^-k5d#uR0${K;M>`6Hc9hv)v z>CRm~Zx__{1J3{_+#ai9Af#gur`ZZkzf8#+d6O+8=_l7!^!aztxqTImJrmP~(*bs! zE;1>t*9T8(Tuor|NX=yu+wvD1^*hCx@(JUy8szjy_A(idwS(aEW>pJYHdYrSb+%P+ z4X;z1bhTgi+CK-#6G>_5aY_k@l3Cz#r{T}bz9t$n4;;vV@+l6T~W+&Y^dDJmX zIh;h)EvB-U)-zP$pj$@eD6PWrko^P4y@pukDw@p?S=`=t1%LXr!_l)d$1dqliGP!) zELBpbHX03Y|8upJ`5IoIKulkiNdS>YNBZLPN`H^OiS(D{4`-gwBtLd}9p})yLSMr* z`cN%Q5c{@YM~Cez?u*e~;cxOv?&O}r{7tvd2^cFSw+_$nTY5`WazjeGM83<_e@{E`{jMN{&CZ>{}b=P(is83MmftsG^cyX3o%!}l}eQ+yF& zEFo2Z9mx;XcM$`1qygjs4kWgChf;XNIsi2^k}F~*q-zNMQQv}JBKh=u+?>IHuBY=eNqXXc9?`&O4my=hszMU^IN~tDphX|0O}$RJsHdYs zq)88c)AdIb&EkDHte1gjZJ@m4;@MVgL!)$ZVAzv$He}(=ilqAP%em`=mRDwd`WEf2 z`fwt4AD07sFOQ$OL83Wkwu0Rxj32+8)Z{+@Y)qdzmCaJnJcF2m^VrOCkk3)3@G+J* z%SW|Bn845E$zP8%$P$Q;%4 z6~g3CWgdK@szSIsoy7Usw&u~f6puU)6|1}`{B(6b{2I|@Ddj#Q*$27HLhY$p?s@~y z3Q3YSM(k4}xEiPAFJ87$WS{%eS864wcK4nSj^4juWG0yW@E~bBo`OK}!~$OThdOVi zW76NMlqg>kN>Y8kqfR>Kdl6G>M9lmq68``LsgCx(B;SLdB5*Sp!iV!RpW7Qe-r9u_ zPQ~2D@~gQY>ys+T<0Za^b1lV}yuYx*<1M+!_~ZsfansUUo#e3^mFQ2W+xJ_vL;W`< zUK_YfuVC{gg!7ng%8Fl(8ul~tmq;j+I5!j6zK_1FdQ#Y|jmlu7Z8GF%1I;yWhKDOO zlv$T#4VZ08uU@6a{X9&0?L0eSZz%7u&M@!Mn=8|{CzbQb-skbYUye|F5tU+;)4M=S zV#M-==gPM#iZ9k53J0vrnJGsw3v_E{tZEl-KZlBS6-{6FUMDKY!#B{tJE*nqFdt=X z3|E+EbML|ll6S_WCmYuCOBJkinJJAW9&<2uGT&nO&Bhdb*GUKGMP^&xK${bh`J<#f zUhK(7Z&8gG`M#p(3$6$~;gOT_OTSym<={~#!8!KUNT0FtkFKmsP!=RQR#Q*fX2MLX zrE^5&)8X%Y`!0^%KEQk1SV7dnx2WJ@Gna_wQ(kX#oZe|%dquKsSf@n!WJ+X- zLOBPkB+FHofCmyQLbsV_hVlJgNZX0MbvJQNh}C#56)_~}biw181bOD#P>Pk^kDP#} zRx`hk6A2f>?aYXuJIayctglN%76lS`2x?h})M5DWzS!&m$loK<81v~vk zR=%y1vuBxBCTE=bO%yO@>cgmHFF}5G>hcF_Rs4Ico#RszD%$>xKAbpZu8W;ocHpdW zGPmT1miuc+Lu3dURS(uMpH40zXB0ft8kn6KYT-ZAt=Ax*6#S7YiM8kS{+dWh`UB8u zpP)~Mw5pSqgzE(R@3_>BSBG2tkf>qZZ;MClQ5*asi?YusWMP(+{k?P__){x|%f*T{ z{-GbJ$t~-cDWxO^w)|R&aa+_MLm#UWyB)0QNKrAAC%2xJmStsWl$@N?QP*+z*A%c8 zZ^Q{J;BOUl*#GunWA_@BmZjW^Y1yKi-#WgoTyV89gr~>X$sgk=rDdhjaM*)f>vGG4 zAQuV4Oe3?86lBrqqVs~~6xPQ7zOv)DsPzME95Ws>`wMMdumALrO~KW9$Pz^vye)DH z(Pt@S&g=SMPwr9wEqB%E*(;8Y`&^fuL&})3QDttNmIHDL9?k{V*kbB#n%u83nGIZU zW33z*_t$&QaNu18*)tWM>Pk`zW`*%%i|oM>!@+DH>rbB~HY>az*+AdTAU=qJ#QR=& zO;(PG$gd)b6R!l(&b)R?`ETpRdxD#Fx8CusjjzOstdZmL4Y&9=T;TBepr3bD%E0~d*FC*`w^F^K@MIo79KjDw@-|F&Q|)b{7!64eD+Ra*1w)q zrYmB&HKusl_u==U3kvI*twn=Jb15D_kGZbbE0{&%!SE|y*|+VnpVEwctBp*pr3WAH z<^kpg=U~GABHbiK+C}9F9C>$>v2NhoV?r+jY{h3<6jsziOOzzSlq2sLt8hl@hX=mB zU*@+#+}EYSkE4IeIMa7_Gg&Qd%F0CR&DHAZkxJ$YQ!_17qlON1w&3qyH55!O3ab{) zsOuZqLRIJd2_uH=ZVXk@5#+kF4V7~^pO`-J;#&UT8SU^F;>XMn4zu8_DldMYrJBb` zUVmuP@}gp5%V`CtusQ0tKiRABGC7@KT|1m9qqy?W&k3nNVxOv5?+hN;q>uK0 z>}o;IYX6;uMr`%)A-yJbH~vl0KT;=?@RaN3Gip~b&5ib6k;<<#BCgm~97qjoC_hTR z{Ip>s?7}-K$#p5IfiGIQMwvdH8B^l?_!S4qaasg3P0qe??iUHYB(LD%`f8uh^b!7; zw`8tAHCD|^D6W7NPpxURI6rSbj&q9~N;wI*G9?34g%vW}HIOoaUJ&+e;c$1w3mfC0QyO=*T^4 z<9*lvXtO^Ye#((PLHg^PG;T#IQDMZY#Ar6<@#pk2=V#@FWkT8&i&=jkvkoxNAz!;z zd-^)Z{2}*PL-#G(V8d^UtV_727K!yD3UjY(_e_NCRi5<{i4MLP47KWCh{gI+ ziG4c~yg9>>+&&V(GBcMSwoZ7yblHv4+xKouh%3<=sk1FtgZ>QNjkw!5Y{rw$l(x+# z;xh4moux$9oJ-yNuDCrOZntPkadrOvt?lavjW~fz$D-q<8I&63N)3eWH}DZgYD+I( zynk`g(DpOCNguRDVQ|Lp$D2>ZJgA7+ zUVn-yIh_1<&BiYr&%w2~T<>s|&z`TCoHTG*@MITOWU~*aUq01ZJ4)J+N>yvZG4H`4 zl-T-uq;AXe=aypk!K=2qrElL2jLliCXyi#AR*|!KrCPLV(w$!u@^j^A+y=7^qgJ@y z691+cPP;Vx)cV{ySNN>J&*ivWQpYZmb+tUR5I(J2GNKh`bG>pk?n_q!a8wfmv8NYH zEaJXx1W!yDGPm2D`EJ#<8X~tSwaT5Z-+M_k0?QOPA9CGJpQm_3u=&v{GYQ*Nt5| zAod9H)M5ac{8)tiqgjg|^ZRiluRsunOz}S#t{-RH(*6nl5P2%4^}<2s#xl#pozZoh z$##Uz+!lY>*?gxZw(_pjavvtIsXalnwAEBoo?4%w-qlO;(^v&7>_&gllU|wF!V$mh zhJbe|!>TS}9QS6#*64k?rJ}c=b?Ef3{W?Q`MxDy{vvfs+=i#*)@#}FPaKdUs>cK5B zIgT5jJZN&$RC7*1%N^X8maa1UJb!m{WwBmjJt>gaiSM#!!70rqqTCb?^68-m3LnyV z2AD;j$}<<2JuDqaR!KeaqHNwU**>>_cE(AohUh_NJw$Vf*xp~*Cb>=Gs*|6Vx7pol z24ZVEbT=h@mU{Xl^`4pUitBFGOl&o$yk!42?y$*~dxGJ3${9Z=VO)OR*1%QD z45crlf>PNkLeq9`WmcND-|ale&+!hbxNSYQ;LfZEiYOM^W53S9Kb{6E9*B`~jz=r4rep8$<*7Wi(x%B?3Fcq{Z3T6wdrMxb^Fu zomxn^X)lz#)4%XiqlWU76`>EgSpfz; zrP9(ZX>6BBbc?5EZ4IoXW6U{^a#y9jWpW;NDla9CW7^jUFW}= z$aAm0RvgoP_M9xKQp%G@|CrLX*7LaJh~(G&c1KLCUc^fWl^BN?#3WJX5b#-({TAm4 zBqA;#5KH{RxguC(`_7v5;c#0Lx6~0D#le2P=vDf!D{LXIf6g--PDgjj_9@DWO) z{qXti(`uXO$YT=r=Hh+@t>FMiI)&ha!Fpe8m}HklBsVU3C{#rpY%YJ;J(o6f2De0M zLTvN%8{PT_3)7J0>pp=Qsns8L9&_=}2!7BoDKjrVBC;bo-*EC3b;=B{;O7wTcr)^a z8wa~H&rGR(sO$VbX7`F9x?w8*kCiKTb7A^fZXPq#5~i zW?pHzVd|(a`Lba5q)Bo|Kz`;^-pS!w+=*Xr9S))AWW;{j1An_xe9OCiIb|loBoUxk{cRSL@Mjac^{ui&+?GQHiWAXP0GBqVd8- z#K{WH`BCa}FRA8^U6oahq|MIcV%5Xf4gIrPrYT5mLv7AE)6zk!p2h6c#KfZ?sd2E| zR#{d%z}{LzmS~P`oPOn#E7sdxmPkqHtY3B0u^wZgY4mNpv#1=X*lb=mgnC&dER~n2uscjsG zyRdppC?YHH!_+5s?ax87q5Pu3l}A2JUuSlJqRrHWnNRY^yJg>#7<>>N^q_g#_sXG( zR^vkYn5YFg2iv6(XPc0q{&B%_LjxvdBKayDRpPspA2Xq6w?d2fEvRnm41a5J2|Vg^ zRm;TY^Mu|#t_oAr14$xVx)u48PooFl5X~@U)$H%P&tRP!b?B!w?<21FQ*P=u5rfHj z=kgYZt!+ob%^r&#IeF)_$(`P+{ioc!g%>#<`Mvx0!_r}TpzlIL@~y0gb|)GQ8WT)1 zf>K;?0t$DS7sWJ)ezf#FD?4${c%2lV< zd$Y%1f92$Ft8&es3+D9^*ZTa!m3x#jWPy^Nj;ij`ro{AUOzll?fuT080D+asd3hXx zlFIkrS8)LERMna3_H z)ReqkKjI;ZGou;Elb{|v(3m+PVH>5EsOKTup~n?DHWg-&ufat**+^3#KwN_fNPK-T zgahAMJ@|GCm3!kA-56=-{aQ2>^%0I+7}9Kx+dR0W+Z@h1I)}yyD^0&8F=Bnm5?-Yc zSu~^^Jj#y zILW`tdw%lwR~2csM;hZi*^$Gu+I&5hy`zDPgZnp(^gc7;zX5+%az(;3`xxL%k*?vL zjS_umjQd$;!EF+r{jS8&IoheFo>}NZ4r#~nQ{$UN{11KvFW3{wm&!7hy^ifyIdM$q z;QLVOqRv|9{HJNL!}PoY{4ph`y27ve1oVAf36&Widp`eGuGNF_yl2UzE0)VbQ*Rm3 z9hhkC{KQoox2|SaKgB(8lWnD?Bn;=zIC5FmJVPVku(Z&H+}X2%7jmAwZP%0&Xg|~$ z_KsYMCf60mKK!AnYl1l^#W6=Fi~isX%`15;97{?p<)iO7>04-f?5PdkSr-1hU*~!! zS2ntJY$by`wYh%V; z*sAch#I+KrEso){z6i2A5i>d3EE{*=c$I?cH}EU)032n$BPLH(fG_MG@7e3D-7HG= zVw&@7*dm9OP{PT>-d-7%%{Z|J>0IlO-%Gx zex2x7&$S&Q9=ermrgtUs>h~*VS^If;%%^=VhbyH$g#0f-PWa_9V#RD#@n(#d49iPJ zgsw+uR)_21o(1-Qbef?`xD};YoupTcDf>Rqx0rA%K(jhd&xN!sb)fHU!Y!bhsON$y zD{`8V)~q(m9Z@ZK7Sf;QG$W>2ZIU~pR^S=ZU+pxbG<|J^QBbVj=hM^DwK)^tt0Z|X z6+SaDvOhV$T2f8$R}Q84IEiXm4$voi5PV>~G&l(USWNSWP63tf6^&%Yp=Qp^ZjEOu zqm&h8lv6)!$Orl+6IL1-TW2h_d0Ul-nI^+#TReisKbCrg8s`bH9ue%&N(y@rr8xN5 zUspDILq~R*gz&jt5;N(|R=JSyI-OwY-|VGKqBLq&a>AcECE0s2^~!Z4eJ7hnTsaGW zLg56J7+m6tLZe_`wD9^_T~hII$$1&weOzIs^Fhoc$`RJh>X_H`bjkYa{m#DL6Q3KOPI!yH&YDie2@8pZCeSmt~=jmr#X4f(?BG8 z!qPSDkL+wQ&JW48p=z5^tytY54+)>;@fa4CVaz0*@+eeO$4vSqmuBluov$ z2$nzglhrmTa`V)IDBVMCLDP*-=V=dlQTK*@=Xmh*IR{Rq!8!C$)EHyF+wVixtaTDz zkFR#6^@U8ZPDW&l%-)^gzS6Xj#d|9!$YaTy*_phIDc0qsZ1jP)&$3rt#mqP_i3j(e z{xNe=^QGpQCkGF=J;s(94)j?FE?!Xh{?uyeO7h0jw2dfQmvTCqFAi2qw-merXkDJt zxlokJG|UuvEa9a0k7W9eoK=}4E%O}ct4g>PqgkD*H-{-(9_SktTC6)L@sRLWtox>4 z+C{4K*{qwdiVQs6TQg}W+tS59wiGbfJ2sQ_JzYN6JMiOtc}RbV)sn8lS~4xy6FM$z znRflm2ahF|{j);^{mGS5Z}#!AE2p$`@;KBi5pu zFXae#&3xAEGvX6t)mo3#CoYhP1W{3{@m`_+o=J4%;oE%uw6G_?3A(c%s~UW}launV{_{kY5bnxkp*%IF$XbYJNPo6Zn-=N-AXa5XWh-IxdbRqw{Mb?l!df_ZI;KLVB;3#-d> z8IZ=&zz4NO(@m{hKh?Kh9l#D1O;jZBH>AxsZWVqo6TUjdhnpBqdO6i{azs?)*MR@M z!I6oSsO-`{AG&KVU{ zx_bEu`&r2i%D$p#lgv9a)pMRtxK>NK8fNl*W~L<8E|UFrb7=4^u{hPX@k6Qo30qm9 zoM2j>c;TCd2v1kWo5KYa{j+ngExBvhPy7eN$LDf)rnNVN*lMnUu zH`RN0q&MtqH7FZSJPY&4>k5&L>QIrEeOVc`&{#T1tFL>aJS);pouw=MP@_kJ5Np=0 zkgu+_klxWlb*wU?Z`65bUfZY{FdPS;w?g>tg)}x$-iyOxW8eErU=DbJe-2?D?kM zF(Rf$@-AkE4@A>p6EB(1KRtbv!O8uy?V-+ZLIeFek{wGrqk`!Nf{v}rwI>O8SK>zw zHm|+l{PG-piJj9>pt^y3!giC>NpXzu%Je5`rIH6}RI7YdUpMz%SfODExtvclVSM&P z7q<128mV1$gn_#ZS2&K`nP4PjyqbBg;ir$hN&TF}p+=+I+*dNRwBB89Y)o->3i1g3 z$vfhb@FGEK_?Oo0M@Pwq9#cHFF=Ny9-=H{mGVcb(cW<+oJR{{9<=#&F6z%h_? z*t)Krdg*M-(%+%~IBsJL?=Q;_a`s>KMNANS2q|>pI!0<=p?ionbo)9+Xhi?+pjY}gFrnzx=nYID zdUg3GCK$c?c@qNmL*2L?&z8PBw$r{lG7rCPS(5)wvr+y#?id1guF?W_8aoh(i9(xr7Kn*N zuQY;o+e0pS^e8)a$BRfDCIUrY z#O+Li`kfv0?VTN&Q9Q;A)$5Jl>4#|o#ub&lOTajg!YfUcMyLoN|{N`q>^ z|0rPWMJey(3mH5-J4hu7W62GR{^4Q9`};4)ufi3I%fJY4^D;9dj4%*8gkdFUz`=+r zw28wffqVgHGm6E+*t9Q ztXI(d3ve{2U<-067jgH%b?7;+?9lnSes14MhH7&QfKSb%XMZO7Ci4VZd8K{0Tw zFAHLqEP}xkfI2y`4EX#IemdqdI*N|zK)LQEstk_yWkSV2VX->4ygTB2CzRj0^4iHZ&^}6CAHh}BRpD=D-Vc2 zZvw%g`3Za~=n+14d%kHhfvv+7+O`Gn_AJ%QsHtf{)DvK0z2;GD=OlG9sD=Pb&J9PG z4l{0n!`72Y@bHZOiB9o1ViZ5>K@R!wVbQ@v$+vhWfz#<_)G0VteS5V?WP>=e*HCdu z4u%Ax4#dzRgE@|E1%DcQpC5E0W^-2oIartpQNV%({{Rx-4@TPtvdY1@AhQm$c0n{v zV8w(GLp=FlId>8hP=hbNJ5y(#3!3~yhGNRW7<7Tc9A4v4=Kup^8=vF z&wwa{Lx(9Lu9odFhPk}1L8Ah|;0HvLw=*fedB9+h5A_bHB$$v1Jv03MfeASCn-?6L zfBv5#OM|%cF&B}@5k@aJA+TN@g;0CICc%KlL0$mdc8Z{4Kp?@4SX`Q4%YZuDKwo(! zb|GTORe}Hu%?t0$HG3hjO_YKa07qI8207Ar`v$)UV+)7(VBlzW4rF*?TCg67S`>`` zO_e?)wVS&()S9JMYgE-AurAw5Q@#Hc&q**&)lQNX9SVc53D&>TmA_ix$aX47k#>8ivPl{aLZe-vUoOsn zbs(Q#+cRy1ec1_7OMw6b-Tva>xMV6wi*BderB6U4vK}z53Q?9}*wM8kRtCgsUZ~i| zi+~Z*O4u3vQW!JxhcOk1q8vku+~F*@1f*Yqr8+{5ho}0_axE%?RfQp?79uKWtO%^L z&I%0rxJBsAI=ev^+RIQSl?re$IiNY)n`pMmL4)QMdlU?wVz`m7)u{5Vnk@8jewH>wXOP}I%L3*g4!04k0d#ISS09?F~!AL;`S zBq_iTWwtw5cp$^XL2*?WN7NSoC9wS@irVfbPb37G*zF`>e^V*y-K-vXclARX-c6gZ1Fth?_m4qH+T;vE9l&W5X&9xL8zTe_ z_k^OD4?mU#bvfSvT-F07Ph^R1AH~mvVz@?tB}MOI^pFb?czVF?K@?2@dl8RfyEzk? z?7!4=cz757nQW#MR3FZxs2i?k;ASfw6$APbO6c7e3_0QkA*TbBQRGzr>&7Sx)xVzw zRtB76QD5RMz!%R$6pQ%?#@;m#q+d8(l)6rW6bu1XDXIWxThvae71(_!L&bpp1ii0m zl`P7BCVc}ll2w5~@e+?P(3lW-Pk}w6ly)=)04IJ9S+!v^*C6~i7$+n!l)SEF1_ajo5p@6v0mzXQiYQ2@awcg)E)-xa2nTl+5JpaFNV#Zx z#2ia5O!^@iC$ku9PQ>$)Y)JcaQ0vgZ39l5sMzW~5La!Y7Q5LJS?|*@C1+n=!1;PjrIa^V4eIlhis z0XpaH3<|e`kO-m~lms8LnuQCLjC~jgPNQh#WD~$QJ$4WFZyM!--5@-J|5=gtLZuVn zMIBax*e8Lj02Uj(nTGNeE|*{#r`S)QdqF@0@tzduvE3B zFkVIKSb`|PqrE!?f730j1#={xfsk~2OL31DoO6+WAvB5qS>Ya4*`x20k6}bc9N|qw zie0SQ9vrE7k=gS32Euky--97#FN}SHZ+6yRz)Vhcxt{GrqW{!&gmboy7a4;feu8cK` z@1|$8HOU{q*81`;wkI>A3U#o8hy$#k2Z_&u4G`Eb%F0O70rEb(GmP1x+HYrpHiH}L z4lZnw;B#%*u~3IN2wvhE3hicL#M>QSr4U}o3RJHICO38!xDgB?a6~Fwf;DdxqlyD5 z6zTcqJZSE+FDe%A0);p%hS?e+{6nC*_5cLh&Bq7~6E{M-v;bZWK`r5&j5G$*H_Aga zQXmk@2-I{ZF(WurqH`7K938;xVqjbq@?F?@)ZAYH!DJ+$;*A9iFVb55+gTdOk{-17 zG8KkYAlz?I%EEE-JN=Xz2Bne%&Ht9NtSwOKZ;Upgg^)mk)hi1$mH)|S=ikB(g&|i5 z5=zJj)TZd5xGjP>lHTpXTHg^dLR3sUPu%aY0!8;81?44-5NhnW1hAr>Js9AQvibued&h)jfl8Ladjd=hSM=~S1zNlkFo4_n4;Vci z8DbJhWCgrwzzUGU3NTibg|Y3eUPN34iwosYF`Q=+61ZPJB{dLrKX{oRk_EsXwavDPN@4HK=x7~UbjTgHK;(c$AVsH{h#c{Cs7PwJihkyzMOv$}1U>fO(dPM3~IFLkcEGxmaTc{K+SCMuS3xV`OBI;(R zR7HjXA<9IO?MlkF(N4LFM)(pRm{z5u7@T4eGnhLQqM88jOzn9n^lyemZ955oZPY`w z+1)}F4in|fgbP)CImnd|yS+vR34y`V6UdDas|_KE6jolCyJQU^iFEua3hm}lw4I;( zfLVFvE{3K~6vGh#thXA)-VqZ}A-lTB6vM2V*TBttnEZcBON9nhUnLl`Gf~9AjX)bJ z-c6Q>8`48R19kqhLdCs7^mlV78c`+*aHa7P9k$(!iDDw806RR0Vn}TY4**mGilOSSJmjfZ`uxSh(*UZuEO_1^ZWXb>?X4-)cK!)9 zvj2;?hIu-XB9&lf8iv((nL26F)d~1Hu~23qSe=?PdlZng2>X5>K~jgN#m?nDIGh`i zL4$cZ&HuBAWnJH+52!mik$}Qqk%QfLcw6}Q)*k$C(nLCRg#vVliwLS?#0o6lKm=$c#!GY{3aib1Oseywk);-t`i6<@M0H*Imi&;U=f0gKo>(p!EWFUkSPBxcWn;sF-ku~vb}$d%#tZR@ERhwtH20V z(u0qO2-X2(pKVbLY#7r*-u&kCa6Lfi*iOV@T*O3WRNz_ z8}va|(qPf-b4RUiF=7P}C`%T<3vvbQ%lKJPEhE+hZGnpkczNjo>&iiM9wfxjJe-`7 z$iiW)ycx!j{3(i1046a5>CqlkYS}}=i598wF9Z}fN>m`ENVV%b{XG?Fi-#SwHTi3g z!tO^^WRRdou)>k0Jqmx5E$jhiO8xI-D~k{PQ64$e=x>1wH&P#1n3jYT zxcHwSYF?~8YH=GRUxHsJAR1omIhdz<`|B!ffv~auXD$0k6K#Aa`=YL*`G6~f1f}u=v#oQec!#i+33VyFA7JkdcQJIA7#Xx$ z#})PeE?*Z-w?nWdB}K|tL?7mM{qMYNWWB3TiIlWx+wBKH+sExt?CwNF@t5V`x+Q80`o!U| zzWOfdEG^oEFO1nn?7`r~jACS>0Q;7-2SW;0B!)N`JDj=)+pStrV~&GBfhuEdTe>U8{LRm(f~f>hIP&yg1#T3ZhOwUKdoZM?MFz)J5@2f8 zdoZ}LMeR0VEWdUS2H0%3Kh?shr*j7W;H_ zlLGsk|5w`*?!&~p$qB)qX=x#gBUm~vSRY}>{m&}*3KVw)dls22lr0zDXeKPAz(Bfh ziDaN53e0wGi}ck@8p}$^O|uQ^(O@``y=8PDMquz2-8MK6Sap%A7zucnS$E)ntJ^+? pZG%TLSUMyQA;`#@2Z~_=akO5 Date: Fri, 15 Jan 2021 19:07:29 -0800 Subject: [PATCH 029/813] Alter the CUI lifecycle to be more consistent and reliable (#1633) * Alter the CUI lifecycle to be more consistent This handling reduces the platform-specific behaviour of CUI handshakes, and ensures that the appropriate state is maintained when a client connection ends but a LocalSession remains cached. * Apply review suggestions * fabric: Update to new networking API * session: Correct field grouping for cui attempts --- .../sk89q/worldedit/bukkit/BukkitPlayer.java | 13 +++--- .../worldedit/bukkit/CUIChannelListener.java | 5 +-- .../worldedit/bukkit/WorldEditListener.java | 7 +++ .../com/sk89q/worldedit/LocalSession.java | 29 ++++++++++-- .../event/platform/SessionIdleEvent.java | 45 +++++++++++++++++++ .../worldedit/session/SessionManager.java | 17 +++++++ worldedit-fabric/build.gradle.kts | 4 +- .../sk89q/worldedit/fabric/FabricPlayer.java | 21 +++++---- .../worldedit/fabric/FabricWorldEdit.java | 9 ++++ .../net/handler/WECUIPacketHandler.java | 20 +++------ .../src/main/resources/fabric.mod.json | 2 +- .../sk89q/worldedit/forge/ForgePlayer.java | 14 +++--- .../sk89q/worldedit/forge/ForgeWorldEdit.java | 10 +++++ .../forge/net/handler/WECUIPacketHandler.java | 10 +---- .../worldedit/sponge/CUIChannelHandler.java | 5 --- .../sk89q/worldedit/sponge/SpongePlayer.java | 10 ++--- .../worldedit/sponge/SpongeWorldEdit.java | 8 ++++ 17 files changed, 165 insertions(+), 64 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index ae44b42540..a5f5d615a9 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -50,6 +50,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.UUID; import javax.annotation.Nullable; @@ -186,7 +187,7 @@ public void dispatchCUIEvent(CUIEvent event) { if (params.length > 0) { send = send + "|" + StringUtil.joinString(params, "|"); } - player.sendPluginMessage(plugin, WorldEditPlugin.CUI_PLUGIN_CHANNEL, send.getBytes(CUIChannelListener.UTF_8_CHARSET)); + player.sendPluginMessage(plugin, WorldEditPlugin.CUI_PLUGIN_CHANNEL, send.getBytes(StandardCharsets.UTF_8)); } public Player getPlayer() { @@ -246,18 +247,18 @@ public T getFacet(Class cls) { @Override public SessionKey getSessionKey() { - return new SessionKeyImpl(this.player.getUniqueId(), player.getName()); + return new SessionKeyImpl(this.player); } - private static class SessionKeyImpl implements SessionKey { + static class SessionKeyImpl implements SessionKey { // If not static, this will leak a reference private final UUID uuid; private final String name; - private SessionKeyImpl(UUID uuid, String name) { - this.uuid = uuid; - this.name = name; + SessionKeyImpl(Player player) { + this.uuid = player.getUniqueId(); + this.name = player.getName(); } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java index bc042e9970..2c6b0f11f7 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/CUIChannelListener.java @@ -24,13 +24,13 @@ import org.bukkit.plugin.messaging.PluginMessageListener; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * Handles incoming WorldEditCui init message. */ public class CUIChannelListener implements PluginMessageListener { - public static final Charset UTF_8_CHARSET = Charset.forName("UTF-8"); private final WorldEditPlugin plugin; public CUIChannelListener(WorldEditPlugin plugin) { @@ -40,10 +40,9 @@ public CUIChannelListener(WorldEditPlugin plugin) { @Override public void onPluginMessageReceived(String channel, Player player, byte[] message) { LocalSession session = plugin.getSession(player); - String text = new String(message, UTF_8_CHARSET); + String text = new String(message, StandardCharsets.UTF_8); final BukkitPlayer actor = plugin.wrapPlayer(player); session.handleCUIInitializationMessage(text, actor); - session.describeCUI(actor); } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java index d7ac392462..fd72b13e56 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditListener.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.entity.Player; +import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.Location; @@ -36,6 +37,7 @@ import org.bukkit.event.player.PlayerCommandSendEvent; import org.bukkit.event.player.PlayerGameModeChangeEvent; import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.EquipmentSlot; import org.enginehub.piston.CommandManager; import org.enginehub.piston.inject.InjectedValueStore; @@ -144,4 +146,9 @@ public void onPlayerInteract(PlayerInteractEvent event) { } } } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent event) { + plugin.getWorldEdit().getEventBus().post(new SessionIdleEvent(new BukkitPlayer.SessionKeyImpl(event.getPlayer()))); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index a758d0096c..c32e496140 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -78,12 +78,17 @@ */ public class LocalSession { + private static final transient int CUI_VERSION_UNINITIALIZED = -1; public static transient int MAX_HISTORY_SIZE = 15; // Non-session related fields private transient LocalConfiguration config; private final transient AtomicBoolean dirty = new AtomicBoolean(); + + // Single-connection lifetime fields private transient int failedCuiAttempts = 0; + private transient boolean hasCUISupport = false; + private transient int cuiVersion = CUI_VERSION_UNINITIALIZED; // Session related private transient RegionSelector selector = new CuboidRegionSelector(); @@ -99,8 +104,6 @@ public class LocalSession { private transient boolean useInventory; private transient com.sk89q.worldedit.world.snapshot.Snapshot snapshot; private transient Snapshot snapshotExperimental; - private transient boolean hasCUISupport = false; - private transient int cuiVersion = -1; private transient SideEffectSet sideEffectSet = SideEffectSet.defaults(); private transient Mask mask; private transient ZoneId timezone = ZoneId.systemDefault(); @@ -907,7 +910,12 @@ public void describeCUI(Actor actor) { */ public void handleCUIInitializationMessage(String text, Actor actor) { checkNotNull(text); - if (this.hasCUISupport || this.failedCuiAttempts > 3) { + if (this.hasCUISupport) { + // WECUI is a bit aggressive about re-initializing itself + // the last attempt to touch handshakes didn't go well, so this will do... for now + dispatchCUISelection(actor); + return; + } else if (this.failedCuiAttempts > 3) { return; } @@ -965,6 +973,10 @@ public int getCUIVersion() { * @param cuiVersion the CUI version */ public void setCUIVersion(int cuiVersion) { + if (cuiVersion < 0) { + throw new IllegalArgumentException("CUI protocol version must be non-negative, but '" + cuiVersion + "' was received."); + } + this.cuiVersion = cuiVersion; } @@ -1164,4 +1176,15 @@ public List> getLastDistribution() { public void setLastDistribution(List> dist) { lastDistribution = dist; } + + /** + * Call when this session has become inactive. + * + *

This is for internal use only.

+ */ + public void onIdle() { + this.cuiVersion = CUI_VERSION_UNINITIALIZED; + this.hasCUISupport = false; + this.failedCuiAttempts = 0; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java new file mode 100644 index 0000000000..a304d0b299 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/SessionIdleEvent.java @@ -0,0 +1,45 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.event.platform; + +import com.sk89q.worldedit.event.Event; +import com.sk89q.worldedit.session.SessionKey; + +/** + * An event fired when a session becomes idle. + * + *

This can happen when a player leaves the server.

+ */ +public final class SessionIdleEvent extends Event { + private final SessionKey key; + + public SessionIdleEvent(SessionKey key) { + this.key = key; + } + + /** + * Get a key identifying the session that has become idle. + * + * @return the key for the session + */ + public SessionKey getKey() { + return this.key; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java index 73bdf94c43..3d40970092 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java @@ -32,6 +32,7 @@ import com.sk89q.worldedit.command.tool.Tool; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.event.platform.ConfigurationLoadEvent; +import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Locatable; import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.session.storage.JsonFileSessionStore; @@ -137,6 +138,9 @@ public synchronized LocalSession getIfPresent(SessionOwner owner) { checkNotNull(owner); SessionHolder stored = sessions.get(getKey(owner)); if (stored != null) { + if (stored.sessionIdle && stored.key.isActive()) { + stored.sessionIdle = false; + } return stored.session; } else { return null; @@ -356,6 +360,18 @@ public void onConfigurationLoad(ConfigurationLoadEvent event) { store = new JsonFileSessionStore(dir); } + @Subscribe + public void onSessionIdle(final SessionIdleEvent event) { + SessionHolder holder = this.sessions.get(getKey(event.getKey())); + if (holder != null && !holder.sessionIdle) { + holder.sessionIdle = true; + LocalSession session = holder.session; + + // Perform any session cleanup for data that should not be persisted. + session.onIdle(); + } + } + /** * Stores the owner of a session, the session, and the last active time. */ @@ -363,6 +379,7 @@ private static final class SessionHolder { private final SessionKey key; private final LocalSession session; private long lastActive = System.currentTimeMillis(); + private boolean sessionIdle = false; private SessionHolder(SessionKey key, LocalSession session) { this.key = key; diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 7a077e5058..88f1998b40 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -27,7 +27,7 @@ configure { val minecraftVersion = "1.16.3" val yarnMappings = "1.16.3+build.1:v2" -val loaderVersion = "0.9.3+build.207" +val loaderVersion = "0.10.8" configurations.all { resolutionStrategy { @@ -53,7 +53,7 @@ dependencies { "modImplementation"("net.fabricmc:fabric-loader:$loaderVersion") // [1] declare fabric-api dependency... - "fabricApi"("net.fabricmc.fabric-api:fabric-api:0.20.2+build.402-1.16") + "fabricApi"("net.fabricmc.fabric-api:fabric-api:0.29.3+1.16") // [2] Load the API dependencies from the fabric mod json... @Suppress("UNCHECKED_CAST") diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java index f200565b0e..7240aa589d 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java @@ -43,12 +43,12 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.block.BlockTypes; import io.netty.buffer.Unpooled; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; import net.minecraft.network.packet.s2c.play.BlockUpdateS2CPacket; -import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.text.MutableText; @@ -59,6 +59,7 @@ import net.minecraft.util.math.BlockPos; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.UUID; import javax.annotation.Nullable; @@ -128,9 +129,11 @@ public void dispatchCUIEvent(CUIEvent event) { if (params.length > 0) { send = send + "|" + StringUtil.joinString(params, "|"); } - PacketByteBuf buffer = new PacketByteBuf(Unpooled.copiedBuffer(send.getBytes(WECUIPacketHandler.UTF_8_CHARSET))); - CustomPayloadS2CPacket packet = new CustomPayloadS2CPacket(new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL), buffer); - this.player.networkHandler.sendPacket(packet); + ServerPlayNetworking.send( + this.player, + WECUIPacketHandler.CUI_IDENTIFIER, + new PacketByteBuf(Unpooled.copiedBuffer(send, StandardCharsets.UTF_8)) + ); } @Override @@ -254,18 +257,18 @@ public > void sendFakeBlock(BlockVector3 pos, B bl @Override public SessionKey getSessionKey() { - return new SessionKeyImpl(player.getUuid(), player.getName().getString()); + return new SessionKeyImpl(player); } - private static class SessionKeyImpl implements SessionKey { + static class SessionKeyImpl implements SessionKey { // If not static, this will leak a reference private final UUID uuid; private final String name; - private SessionKeyImpl(UUID uuid, String name) { - this.uuid = uuid; - this.name = name; + SessionKeyImpl(ServerPlayerEntity player) { + this.uuid = player.getUuid(); + this.name = player.getName().getString(); } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java index 3c24ef7665..755ee118e2 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extension.platform.PlatformManager; @@ -42,12 +43,14 @@ import net.fabricmc.fabric.api.event.player.AttackBlockCallback; import net.fabricmc.fabric.api.event.player.UseBlockCallback; import net.fabricmc.fabric.api.event.player.UseItemCallback; +import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; import net.minecraft.server.command.ServerCommandSource; +import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.tag.BlockTags; import net.minecraft.tag.ItemTags; @@ -118,6 +121,7 @@ public void onInitialize() { ServerLifecycleEvents.SERVER_STARTING.register(this::onStartingServer); ServerLifecycleEvents.SERVER_STARTED.register(this::onStartServer); ServerLifecycleEvents.SERVER_STOPPING.register(this::onStopServer); + ServerPlayConnectionEvents.DISCONNECT.register(this::onPlayerDisconnect); AttackBlockCallback.EVENT.register(this::onLeftClickBlock); UseBlockCallback.EVENT.register(this::onRightClickBlock); UseItemCallback.EVENT.register(this::onRightClickAir); @@ -303,6 +307,11 @@ private TypedActionResult onRightClickAir(PlayerEntity playerEntity, // TODO Pass empty left click to server + private void onPlayerDisconnect(ServerPlayNetworkHandler handler, MinecraftServer server) { + WorldEdit.getInstance().getEventBus() + .post(new SessionIdleEvent(new FabricPlayer.SessionKeyImpl(handler.player))); + } + /** * Get the configuration. * diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java index adafd65537..089b9529bb 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/net/handler/WECUIPacketHandler.java @@ -23,33 +23,23 @@ import com.sk89q.worldedit.fabric.FabricAdapter; import com.sk89q.worldedit.fabric.FabricPlayer; import com.sk89q.worldedit.fabric.FabricWorldEdit; -import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; -import net.minecraft.server.network.ServerPlayerEntity; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.util.Identifier; -import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; public final class WECUIPacketHandler { private WECUIPacketHandler() { } - public static final Charset UTF_8_CHARSET = StandardCharsets.UTF_8; - private static final Identifier CUI_IDENTIFIER = new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL); + public static final Identifier CUI_IDENTIFIER = new Identifier(FabricWorldEdit.MOD_ID, FabricWorldEdit.CUI_PLUGIN_CHANNEL); public static void init() { - ServerSidePacketRegistry.INSTANCE.register(CUI_IDENTIFIER, (packetContext, packetByteBuf) -> { - ServerPlayerEntity player = (ServerPlayerEntity) packetContext.getPlayer(); + ServerPlayNetworking.registerGlobalReceiver(CUI_IDENTIFIER, (server, player, handler, buf, responder) -> { LocalSession session = FabricWorldEdit.inst.getSession(player); - - if (session.hasCUISupport()) { - return; - } - - String text = packetByteBuf.toString(UTF_8_CHARSET); - final FabricPlayer actor = FabricAdapter.adaptPlayer(player); + String text = buf.toString(StandardCharsets.UTF_8); + FabricPlayer actor = FabricAdapter.adaptPlayer(player); session.handleCUIInitializationMessage(text, actor); - session.describeCUI(actor); }); } } diff --git a/worldedit-fabric/src/main/resources/fabric.mod.json b/worldedit-fabric/src/main/resources/fabric.mod.json index 9caabb11c4..d380affc9f 100644 --- a/worldedit-fabric/src/main/resources/fabric.mod.json +++ b/worldedit-fabric/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ "fabric-command-api-v1": "*", "fabric-lifecycle-events-v1": "*", "fabric-events-interaction-v0": "*", - "fabric-networking-v0": "*" + "fabric-networking-api-v1": "*" }, "suggests": { "fabric-permissions-api-v0": "*" diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java index aecef4438a..2151d98454 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java @@ -26,7 +26,6 @@ import com.sk89q.worldedit.extension.platform.AbstractPlayerActor; import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.forge.internal.NBTConverter; -import com.sk89q.worldedit.forge.net.handler.WECUIPacketHandler; import com.sk89q.worldedit.internal.cui.CUIEvent; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; @@ -59,6 +58,7 @@ import net.minecraft.util.text.TextFormatting; import java.io.IOException; +import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.UUID; import javax.annotation.Nullable; @@ -128,7 +128,7 @@ public void dispatchCUIEvent(CUIEvent event) { if (params.length > 0) { send = send + "|" + StringUtil.joinString(params, "|"); } - PacketBuffer buffer = new PacketBuffer(Unpooled.copiedBuffer(send.getBytes(WECUIPacketHandler.UTF_8_CHARSET))); + PacketBuffer buffer = new PacketBuffer(Unpooled.copiedBuffer(send, StandardCharsets.UTF_8)); SCustomPayloadPlayPacket packet = new SCustomPayloadPlayPacket(new ResourceLocation(ForgeWorldEdit.MOD_ID, ForgeWorldEdit.CUI_PLUGIN_CHANNEL), buffer); this.player.connection.sendPacket(packet); } @@ -258,18 +258,18 @@ public > void sendFakeBlock(BlockVector3 pos, B bl @Override public SessionKey getSessionKey() { - return new SessionKeyImpl(player.getUniqueID(), player.getName().getString()); + return new SessionKeyImpl(player); } - private static class SessionKeyImpl implements SessionKey { + static class SessionKeyImpl implements SessionKey { // If not static, this will leak a reference private final UUID uuid; private final String name; - private SessionKeyImpl(UUID uuid, String name) { - this.uuid = uuid; - this.name = name; + SessionKeyImpl(ServerPlayerEntity player) { + this.uuid = player.getUniqueID(); + this.name = player.getName().getString(); } @Override diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java index 0b83f0ca37..5746537f2e 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.forge.net.handler.InternalPacketHandler; import com.sk89q.worldedit.forge.net.handler.WECUIPacketHandler; @@ -48,6 +49,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.CommandEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickEmpty; import net.minecraftforge.eventbus.api.Event; @@ -293,6 +295,14 @@ public void onCommandEvent(CommandEvent event) throws CommandSyntaxException { )); } + @SubscribeEvent + public void onPlayerLogOut(PlayerEvent.PlayerLoggedOutEvent event) { + if (event.getPlayer() instanceof ServerPlayerEntity) { + WorldEdit.getInstance().getEventBus() + .post(new SessionIdleEvent(new ForgePlayer.SessionKeyImpl((ServerPlayerEntity) event.getPlayer()))); + } + } + /** * Get the configuration. * diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/net/handler/WECUIPacketHandler.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/net/handler/WECUIPacketHandler.java index 63ad62be14..2e64c47326 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/net/handler/WECUIPacketHandler.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/net/handler/WECUIPacketHandler.java @@ -27,6 +27,7 @@ import net.minecraftforge.fml.network.event.EventNetworkChannel; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import static com.sk89q.worldedit.forge.ForgeAdapter.adaptPlayer; @@ -34,7 +35,6 @@ public final class WECUIPacketHandler { private WECUIPacketHandler() { } - public static final Charset UTF_8_CHARSET = Charset.forName("UTF-8"); private static final int PROTOCOL_VERSION = 1; private static final EventNetworkChannel HANDLER = PacketHandlerUtil .buildLenientHandler(ForgeWorldEdit.CUI_PLUGIN_CHANNEL, PROTOCOL_VERSION) @@ -47,15 +47,9 @@ public static void init() { public static void onPacketData(ClientCustomPayloadEvent event) { ServerPlayerEntity player = event.getSource().get().getSender(); LocalSession session = ForgeWorldEdit.inst.getSession(player); - - if (session.hasCUISupport()) { - return; - } - - String text = event.getPayload().toString(UTF_8_CHARSET); + String text = event.getPayload().toString(StandardCharsets.UTF_8); final ForgePlayer actor = adaptPlayer(player); session.handleCUIInitializationMessage(text, actor); - session.describeCUI(actor); } } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/CUIChannelHandler.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/CUIChannelHandler.java index ce02fe6f9f..8e342f79ca 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/CUIChannelHandler.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/CUIChannelHandler.java @@ -53,14 +53,9 @@ public void handlePayload(ChannelBuf data, RemoteConnection connection, Platform LocalSession session = SpongeWorldEdit.inst().getSession(player); - if (session.hasCUISupport()) { - return; - } - final SpongePlayer actor = SpongeWorldEdit.inst().wrapPlayer(player); session.handleCUIInitializationMessage(new String(data.readBytes(data.available()), StandardCharsets.UTF_8), actor); - session.describeCUI(actor); } } } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java index b6dbe0d9f9..f0f814d74f 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlayer.java @@ -239,18 +239,18 @@ public Locale getLocale() { @Override public SessionKey getSessionKey() { - return new SessionKeyImpl(player.getUniqueId(), player.getName()); + return new SessionKeyImpl(player); } - private static class SessionKeyImpl implements SessionKey { + static class SessionKeyImpl implements SessionKey { // If not static, this will leak a reference private final UUID uuid; private final String name; - private SessionKeyImpl(UUID uuid, String name) { - this.uuid = uuid; - this.name = name; + SessionKeyImpl(Player player) { + this.uuid = player.getUniqueId(); + this.name = player.getName(); } @Override diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java index 7274c0db79..889a9cf83a 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; @@ -51,6 +52,7 @@ import org.spongepowered.api.event.game.state.GameStartedServerEvent; import org.spongepowered.api.event.game.state.GameStoppingServerEvent; import org.spongepowered.api.event.item.inventory.InteractItemEvent; +import org.spongepowered.api.event.network.ClientConnectionEvent; import org.spongepowered.api.item.ItemType; import org.spongepowered.api.item.inventory.ItemStack; import org.spongepowered.api.plugin.Plugin; @@ -294,6 +296,12 @@ public void onPlayerInteract(InteractBlockEvent event, @Root Player spongePlayer } } + @Listener + public void onPlayerQuit(ClientConnectionEvent.Disconnect event) { + WorldEdit.getInstance().getEventBus() + .post(new SessionIdleEvent(new SpongePlayer.SessionKeyImpl(event.getTargetEntity()))); + } + public static ItemStack toSpongeItemStack(BaseItemStack item) { return inst().getAdapter().makeSpongeStack(item); } From ef9af59ce5f3d850cfd676d085c5f63f24f8e5a8 Mon Sep 17 00:00:00 2001 From: wizjany Date: Fri, 15 Jan 2021 22:07:49 -0500 Subject: [PATCH 030/813] Update Bukkit adapter for 1.16.5. Just a data version bump. Barely dodged the mapping changes this time. --- .../src/main/resources/worldedit-adapters.jar | Bin 669750 -> 669759 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 38abccb509a37dc0ae6b2aa859e3b38a4a2be3d8..31237d7c4686f7f1921bfd6b84402a310e708ab7 100644 GIT binary patch delta 27844 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 XX-h9+ONyvusxm4^r|69Uw!;4dIQN>H delta 32718 zcmY(o1z1$y*ETHEL#L#G(jAfl64KpBH_{~_>7anp4M#viX^@T~1PoGCx)l^qLJ&bp zLcd{Ve*fqFyu4(2_KJJ0z0Q5s-t_$9ZvDkgs;>ox5MH{3KwQdhjx$Ij^@k*1{ETMB z{jA`mxcL7i%pcIjKbSw%8EFKxeA(t*yBY=j#V1-6;8ywso)~mOq6n8TN4FrdQH8p;-L}jSp@R@TE)I zFu<>o00W2yAn!pEHhIXC;;~04ZQujDtB5kbzo8zB<6+UMVfw|x*) zj+gjDn{fc6Q^u=RmiaWP7Ub4M^ZMm40z)`at-t20h^5u z;jCQePFx}}2-u;3y(35gc$JK#1N15oh^FMpSUg;YnNz$(KhKPJCG%Mrzq>wPi*d>5 zhnw~N!MJ)4&kz|l27H;}FraP}32Tb{4#rzO-f+Q7yIa@s_T0NP_-BgyE%;|A$7laZ z=a=Ew-a%7C34HmmFDg1#m>>g$6IrekV6wY-ebH$W1a$bPHBtm1DT<4y?yD2UnWUF4 zCGlUnq=_K{zU+9&4x%6NiL zP~?Rl!5Y%u62Rv>TqQdf$%3{_C8))_Aju#A!>~H~0!cw{06%@03NDUs4#6k9lKxWy zT`(48HhF6laApcq1z4XVnbCwr1OOox0FP#8kt*h05JO_$po?Xy41ED|G-Wk`E(9Ck zMBPRy0eJ25Uw~J21jQiiidH<4y(mET9)b%E)G!m0php`CWFfdb$CV9@*_#GyGRphAzrK$!l!$PYbA z1X_V&tG=dvbsyL%0As3-(E)siV612{O3*CcBRLJI4}n!=K4^FiP*h(iVp;{TE61>S z;S`JxZOsgF!TDP4AmsrRLJ@eCkKBYrXhC+68QxbMCukUi_4RMI?+q}D`cJU{Nr*&u z@qkVUaOgVuKzewfq{1K{e98~5gDmh0OJbmhL|9K2tWXc2@B>&i+ZIHLr4IB51<)6~ zNrN(I1}`S6gSc=Fo8YtVqzRBiF%5fR!!iwq0rhvFoM?Gn(9Qp18GwG`pnhB~69?+P z;sT&Yj6r$$Y`o1tbhsV5u5J0R3b+~oy>NI1kQXK-0rV*0L};WXs1nyu>axs^Y?$o` z27WO>6eTN4+6pQeJ&IRqJU$&#O+qro8P>b zF3kr656B=`5`du7AA-PqxQ)oE0nx*-b?&BQ;069EK;!}a79+&o^;# zwa-DZWRSFrPMswNvlC#&R#LD#PC|Q=fic~WUALeFV|eO9Jmb4uJB8z^v;eRn8Z)76 zLvczhSHQGjoOpv342I!EMNY63{%HgcSPw6b@`L{oA}$<0q`Yhk{Ikap(ieF!C0a-d zY!AUM&@q*C0DTlgglehxxn(ahJmat5bD&tmlqA`Gpy4F})*}^m z@BrKbU_@wLO)vqN;3rv|0!iT@Av zq`pE@p;>*wj`;YG1Hc&S!I}dR;Me#(tsa1@@FHOhxEYL1;4@t%e;^=8162WjWq_&B zm_Y^eLBN{UCV)qAS*meODwhFU4F4%DC4=AMfE10Nu>K$GpfN7Upjd=Esc)!#F?%CI z3}E*LGpNMk_vS|d*aR0mA&R}z0PuZ}A@Pgg8A|{;5J3aFj2?InRzl!VkW_;=p;)N4 zw&5&#fMO^@1-m`K1=|3R7htsLkOr_49&}F=co;7xw}S0(_?cVhh(7_Z_&|6|-xU}q zI-ni=9tVR@p0MH%P^W=O4_p1BE-)2tWlDg_<|lAf=OXb{FeN~ifO#G7>p+pfwb$Ss zEGk4h*qI2pult{h{4kON=t@9PqBGxsF=H&YlzAV(>JY5DeoN`R9iVITpZdjQ1F)!o zNYRetU@KfymKbyURv=9s16Th8W{ml%4x&ZNPJ`?4+q*Ll?#FLr`y%)!KHciC;3E*W z>B{Hp1c1dFgen>X`XjCc++;2LILg9hf=Wda{U31w7~ >#l>J;{E>o0nW!qOZf$M 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 D+VTT+ From c4efc8be1b7b00926455dfd5c53cec8b2052cad9 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 17 Jan 2021 16:50:00 +1000 Subject: [PATCH 031/813] Add a way to clear a registry's contents (#1645) * Add a way to clear a registrys contents * Delete latest.log --- .../src/main/java/com/sk89q/worldedit/registry/Registry.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java index 8b03db653f..e4c764c0f9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/registry/Registry.java @@ -58,6 +58,10 @@ public V register(final String key, final V value) { return value; } + public void clear() { + this.map.clear(); + } + public Set keySet() { return Collections.unmodifiableSet(this.map.keySet()); } From fc3c499847afef582086925ede4f7aaaabe80f76 Mon Sep 17 00:00:00 2001 From: wizjany Date: Mon, 18 Jan 2021 15:32:38 -0500 Subject: [PATCH 032/813] Release 7.2.2. --- CHANGELOG.txt | 9 +++++++++ gradle.properties | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fb6008e98c..5a366ece05 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,12 @@ +7.2.2 +- [Bukkit] Add support for MC 1.16.5. +- [Fabric] Add support for Lucko's Fabric Permissions API. +- [Fabric] Fix the chunk deleter tool not running. +- Fix repeating extent (e.g. clipboard pattern) direction being incorrect at negative coordinates. +- Fix CUI having wrong selection when switching to an ellipsoid selector. +- Fix some CUI lifecycle issues. +- Fix SideEffectSet.none() using defaults (instead of off). + 7.2.1 - Fix some usability issues with the default wand tools and session-persisted tools conflicting. Wands will now only be saved per-session if they differ diff --git a/gradle.properties b/gradle.properties index 9be8b1acdd..dd0c0e009b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.2-SNAPSHOT +version=7.2.2 org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From b9cee6b9886724f863e09cdcada40df18fcc3bc2 Mon Sep 17 00:00:00 2001 From: wizjany Date: Mon, 18 Jan 2021 15:49:41 -0500 Subject: [PATCH 033/813] Bump to snapshot for dev. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index dd0c0e009b..026ce61b02 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.2 +version=7.2.3-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 9534a9cfce0fa8839899c90ede4abb95273d8dab Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 25 Jan 2021 02:14:09 -0800 Subject: [PATCH 034/813] Update so many dependencies, merge Forge/Fabric for final jar (#1651) * Update so many dependencies, merge Forge/Fabric for final * Clean up contrib docs for Gradle change * Fix setting compat flags while using toolchain * Fix deprecation in doc printer * Restore proper forge JAR name * Add dist classifier for mod jar * Properly relocate new bStats * Fix jar used from fabric * Fix fabric bom * Dup the shaded classes for consistency * Sync Forge/Fabric log4j versions, de-dup * Downgrade both log4j. This will work * Update some plugins as well * Drop the fabric force stuff * Use duplicate strategy to directly merge jar --- COMPILING.md | 9 ++---- README.md | 7 ++-- buildSrc/build.gradle.kts | 22 +++---------- buildSrc/src/main/kotlin/CommonConfig.kt | 29 +++++++++++++++++ buildSrc/src/main/kotlin/PlatformConfig.kt | 6 +--- buildSrc/src/main/kotlin/Versions.kt | 7 ++-- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 1 + worldedit-bukkit/build.gradle.kts | 17 +++++----- worldedit-cli/build.gradle.kts | 9 +++--- worldedit-core/build.gradle.kts | 32 +++++++++++-------- worldedit-core/doctools/build.gradle.kts | 6 ++-- .../internal/util/DocumentationPrinter.kt | 30 ++++++++--------- worldedit-fabric/build.gradle.kts | 7 ++-- worldedit-forge/build.gradle.kts | 7 ++-- worldedit-mod/README.md | 2 ++ worldedit-mod/build.gradle.kts | 24 ++++++++++++++ worldedit-sponge/build.gradle.kts | 24 +++++++------- 19 files changed, 143 insertions(+), 100 deletions(-) create mode 100644 worldedit-mod/README.md create mode 100644 worldedit-mod/build.gradle.kts diff --git a/COMPILING.md b/COMPILING.md index 9eb31cba3f..d97c74d8d1 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -1,8 +1,8 @@ Compiling ========= -You can compile WorldEdit as long as you have the [Java Development Kit (JDK)](http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html) for Java 8 or newer. -You only need one version of the JDK installed. +You can compile WorldEdit as long as you have some version of Java greater than or equal to 8 installed. Gradle will download JDK 8 specifically if needed, +but it needs some version of Java to bootstrap from. The build process uses Gradle, which you do *not* need to download. WorldEdit is a multi-module project with four modules: @@ -38,11 +38,6 @@ If you want to use WorldEdit, use the `-dist` version. (The -dist version includes WorldEdit + necessary libraries.) -### Note regarding Forge builds -The build system used for forge (ForgeGradle) requires more memory than is usually given to Gradle by default. -If it fails, you should put `org.gradle.jvmargs=-Xmx3G` in `gradle.properties`. -Please don't commit this change! - ## Other commands * `gradlew idea` will generate an [IntelliJ IDEA](http://www.jetbrains.com/idea/) module for each folder. diff --git a/README.md b/README.md index 6ca765fe48..c6b1e2ff2e 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,8 @@ Edit the Code Want to add new features to WorldEdit or fix bugs yourself? You can get the game running, with WorldEdit, from the code here, without any additional outside steps, by doing the following *four* things: 1. Download WorldEdit's source code and put it somewhere. We recommend you use something called Git if you already know how to use it, but [you can also just download a .zip file](https://github.com/EngineHub/WorldEdit/archive/master.zip). (If you plan on contributing the changes, you will need to figure out Git.) -2. Install the [Java Development Kit (JDK) v8](https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html) and restart your computer for safe measure. You absolutely need version 8 of the JDK, even if you have other versions installed. +2. Install any version of Java greater than or equal to 8. + * Note that if you do _not_ install JDK 8 exactly, Gradle will download it for you on first run. However, it is still required to have some form of Java installed for Gradle to start at all. 3. Open terminal / command prompt / bash and navigate to the directory where you put the source code. 4. Run **one** of these following commands: * Mac OS X / Linux: `./gradlew :worldedit-fabric:runClient` @@ -34,10 +35,6 @@ Want to add new features to WorldEdit or fix bugs yourself? You can get the game When you make changes to the code, you have to restart the game by re-running the command for your changes to take effect. If there are errors in your Java syntax, the command will fail. -| Got an error? | -| :----------------------------------------------------------- | -| If you get a `Type javax.tools.JavaCompiler not present` error, you need to edit your environmental variables and add a new `JAVA_HOME` variable. The value of the variable needs to be the path to where JDK 8 was installed. | - For additional information about compiling WorldEdit, see [COMPILING.md](COMPILING.md). ### Using a Java IDE diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index a04b11a812..3c9f55afc3 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -26,17 +26,6 @@ repositories { } } -configurations.all { - resolutionStrategy { - // Fabric needs this. - force( - "commons-io:commons-io:2.6", - "org.ow2.asm:asm:8.0.1", - "org.ow2.asm:asm-commons:8.0.1" - ) - } -} - val properties = Properties().also { props -> project.projectDir.resolveSibling("gradle.properties").bufferedReader().use { props.load(it) @@ -48,15 +37,14 @@ val mixinVersion: String = properties.getProperty("mixin.version") dependencies { implementation(gradleApi()) implementation("gradle.plugin.net.minecrell:licenser:0.4.1") - implementation("org.ajoberstar.grgit:grgit-gradle:4.0.2") - implementation("com.github.jengelman.gradle.plugins:shadow:5.2.0") + implementation("org.ajoberstar.grgit:grgit-gradle:4.1.0") + implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") implementation("net.ltgt.apt-eclipse:net.ltgt.apt-eclipse.gradle.plugin:0.21") implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21") - implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.16.0") - implementation("gradle.plugin.org.spongepowered:spongegradle:0.9.0") - implementation("net.minecraftforge.gradle:ForgeGradle:3.0.181") + implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.19.0") + implementation("org.spongepowered:SpongeGradle:0.11.5") + implementation("net.minecraftforge.gradle:ForgeGradle:4.0.9") implementation("net.fabricmc:fabric-loom:$loomVersion") implementation("net.fabricmc:sponge-mixin:$mixinVersion") - implementation("gradle.plugin.com.mendhak.gradlecrowdin:plugin:0.1.0") implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0") } diff --git a/buildSrc/src/main/kotlin/CommonConfig.kt b/buildSrc/src/main/kotlin/CommonConfig.kt index 3fe01b5526..35baff48cb 100644 --- a/buildSrc/src/main/kotlin/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/CommonConfig.kt @@ -1,8 +1,12 @@ import net.minecrell.gradle.licenser.LicenseExtension import org.gradle.api.Project +import org.gradle.api.plugins.JavaPluginExtension +import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.repositories +import org.gradle.kotlin.dsl.the fun Project.applyCommonConfiguration() { group = rootProject.group @@ -20,6 +24,31 @@ fun Project.applyCommonConfiguration() { } } + plugins.withId("java") { + the().toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } + } + + dependencies { + constraints { + for (conf in configurations.names) { + add(conf, "com.google.guava:guava") { + version { strictly(Versions.GUAVA) } + because("Mojang provides Guava") + } + add(conf, "com.google.code.gson:gson") { + version { strictly(Versions.GSON) } + because("Mojang provides Gson") + } + add(conf, "it.unimi.dsi:fastutil") { + version { strictly(Versions.FAST_UTIL) } + because("Mojang provides FastUtil") + } + } + } + } + apply(plugin = "net.minecrell.licenser") configure { header = rootProject.file("HEADER.txt") diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 72555ff2d7..ddb588bc26 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -30,11 +30,6 @@ fun Project.applyPlatformAndCoreConfiguration() { ext["internalVersion"] = "$version+${rootProject.ext["gitCommitHash"]}" - configure { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - tasks .withType() .matching { it.name == "compileJava" || it.name == "compileTestJava" } @@ -120,6 +115,7 @@ fun Project.applyShadowConfiguration() { include(project(":worldedit-libs:core")) include(project(":worldedit-libs:${project.name.replace("worldedit-", "")}")) include(project(":worldedit-core")) + exclude("com.google.code.findbugs:jsr305") } exclude("GradleStart**") exclude(".cache") diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 14054d450c..279a0c8ff8 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -4,9 +4,10 @@ object Versions { const val TEXT = "3.0.4" const val TEXT_EXTRAS = "3.0.6" const val PISTON = "0.5.6" - const val AUTO_VALUE = "1.7" - const val JUNIT = "5.6.1" - const val MOCKITO = "3.3.3" + const val AUTO_VALUE = "1.7.4" + const val JUNIT = "5.7.0" + const val MOCKITO = "3.7.7" + const val SLF4J = "1.7.30" const val LOGBACK = "1.2.3" const val FAST_UTIL = "8.2.1" const val GUAVA = "21.0" diff --git a/gradle.properties b/gradle.properties index 026ce61b02..a9be536143 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=7.2.3-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true -loom.version=0.4.33 +loom.version=0.5.43 mixin.version=0.8.1+build.21 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca9d62814a..28ff446a21 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 2a4044c958..6da848fb55 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -6,6 +6,7 @@ listOf("bukkit", "core", "forge", "sponge", "fabric", "cli").forEach { include("worldedit-libs:$it") include("worldedit-$it") } +include("worldedit-mod") include("worldedit-libs:core:ap") include("worldedit-core:doctools") diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 5571cb1f4c..8568f9be2c 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -9,7 +9,6 @@ applyShadowConfiguration() repositories { maven { url = uri("https://hub.spigotmc.org/nexus/content/groups/public") } - maven { url = uri("https://repo.codemc.org/repository/maven-public") } maven { url = uri("https://papermc.io/repo/repository/maven-public/") } } @@ -25,13 +24,13 @@ dependencies { "api"("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") { exclude("junit", "junit") } - "compileOnly"("org.jetbrains:annotations:19.0.0") + "compileOnly"("org.jetbrains:annotations:20.1.0") "compileOnly"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") - "implementation"("io.papermc:paperlib:1.0.2") + "implementation"("io.papermc:paperlib:1.0.6") "compileOnly"("com.sk89q:dummypermscompat:1.10") - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1") - "implementation"("org.bstats:bstats-bukkit:1.7") - "implementation"("it.unimi.dsi:fastutil:${Versions.FAST_UTIL}") + "implementation"("org.slf4j:slf4j-jdk14:${Versions.SLF4J}") + "implementation"("org.bstats:bstats-bukkit:2.1.0") + "implementation"("it.unimi.dsi:fastutil") "testImplementation"("org.mockito:mockito-core:1.9.0-rc1") } @@ -59,11 +58,11 @@ tasks.named("shadowJar") { include(dependency("org.slf4j:slf4j-api")) include(dependency("org.apache.logging.log4j:log4j-slf4j-impl")) include(dependency("org.antlr:antlr4-runtime")) - relocate("org.bstats", "com.sk89q.worldedit.bukkit.bstats") { - include(dependency("org.bstats:bstats-bukkit:1.7")) + relocate("org.bstats", "com.sk89q.worldedit.bstats") { + include(dependency("org.bstats:")) } relocate("io.papermc.lib", "com.sk89q.worldedit.bukkit.paperlib") { - include(dependency("io.papermc:paperlib:1.0.2")) + include(dependency("io.papermc:paperlib")) } relocate("it.unimi.dsi.fastutil", "com.sk89q.worldedit.bukkit.fastutil") { include(dependency("it.unimi.dsi:fastutil")) diff --git a/worldedit-cli/build.gradle.kts b/worldedit-cli/build.gradle.kts index a655b4b9a8..43a537a440 100644 --- a/worldedit-cli/build.gradle.kts +++ b/worldedit-cli/build.gradle.kts @@ -9,11 +9,12 @@ applyShadowConfiguration() dependencies { "api"(project(":worldedit-core")) - "implementation"("org.apache.logging.log4j:log4j-core:2.8.1") - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1") + "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.0")) + "implementation"("org.apache.logging.log4j:log4j-core") + "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "implementation"("commons-cli:commons-cli:1.4") - "implementation"("com.google.guava:guava:${Versions.GUAVA}") - "implementation"("com.google.code.gson:gson:${Versions.GSON}") + "implementation"("com.google.guava:guava") + "implementation"("com.google.code.gson:gson") } tasks.named("jar") { diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index e0ae9e60bb..5cea27b135 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -6,7 +6,6 @@ plugins { id("net.ltgt.apt-eclipse") id("net.ltgt.apt-idea") id("antlr") - id("com.mendhak.gradlecrowdin") } applyPlatformAndCoreConfiguration() @@ -19,31 +18,36 @@ repositories { artifact("[organisation]/[module]/[revision]/[artifact]-[revision](+[classifier])(.[ext])") setM2compatible(true) } + metadataSources { + artifact() + } } } configurations { - all { - resolutionStrategy { - force("com.google.guava:guava:21.0") - } - } register("languageFiles") } dependencies { + constraints { + "implementation"( "org.yaml:snakeyaml") { + version { strictly("1.26") } + because("Bukkit provides SnakeYaml") + } + } + "api"(project(":worldedit-libs:core")) - "implementation"("de.schlichtherle:truezip:6.8.3") + "implementation"("de.schlichtherle:truezip:6.8.4") "implementation"("net.java.truevfs:truevfs-profile-default_2.13:0.12.1") - "implementation"("org.mozilla:rhino-runtime:1.7.12") - "implementation"("org.yaml:snakeyaml:1.9") - "implementation"("com.google.guava:guava:${Versions.GUAVA}") + "implementation"("org.mozilla:rhino-runtime:1.7.13") + "implementation"("org.yaml:snakeyaml") + "implementation"("com.google.guava:guava") "implementation"("com.google.code.findbugs:jsr305:1.3.9") - "implementation"("com.google.code.gson:gson:${Versions.GSON}") - "implementation"("org.slf4j:slf4j-api:1.7.26") - "implementation"("it.unimi.dsi:fastutil:${Versions.FAST_UTIL}") + "implementation"("com.google.code.gson:gson") + "implementation"("org.slf4j:slf4j-api:${Versions.SLF4J}") + "implementation"("it.unimi.dsi:fastutil") - val antlrVersion = "4.7.2" + val antlrVersion = "4.9.1" "antlr"("org.antlr:antlr4:$antlrVersion") "implementation"("org.antlr:antlr4-runtime:$antlrVersion") diff --git a/worldedit-core/doctools/build.gradle.kts b/worldedit-core/doctools/build.gradle.kts index 1487d7f83a..7f667b4bca 100644 --- a/worldedit-core/doctools/build.gradle.kts +++ b/worldedit-core/doctools/build.gradle.kts @@ -1,7 +1,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - kotlin("jvm") version "1.3.41" + kotlin("jvm") version "1.4.21" application } @@ -11,7 +11,7 @@ tasks.withType { kotlinOptions.jvmTarget = "1.8" } -application.mainClassName = "com.sk89q.worldedit.internal.util.DocumentationPrinter" +application.mainClass.set("com.sk89q.worldedit.internal.util.DocumentationPrinter") tasks.named("run") { workingDir = rootProject.projectDir } @@ -21,5 +21,5 @@ dependencies { "implementation"(project(":worldedit-core")) "implementation"(kotlin("stdlib-jdk8")) "implementation"(kotlin("reflect")) - "implementation"("com.google.guava:guava:${Versions.GUAVA}") + "implementation"("com.google.guava:guava") } diff --git a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPrinter.kt b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPrinter.kt index cf5f5b0fc0..40f894cb72 100644 --- a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPrinter.kt +++ b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPrinter.kt @@ -151,7 +151,7 @@ class DocumentationPrinter private constructor() { } private fun writeHeader() { - cmdOutput.appendln(""" + cmdOutput.appendLine(""" ======== Commands ======== @@ -168,7 +168,7 @@ Commands You can access a command listing in-game via the ``//help`` command. """.trim()) - permsOutput.appendln(""" + permsOutput.appendLine(""" =========== Permissions =========== @@ -186,11 +186,11 @@ See the :doc:`commands` page for an explanation of some of these commands. :header: Command, Permission :widths: 15, 25 """.trim()) - permsOutput.appendln() + permsOutput.appendLine() } private fun writeFooter() { - permsOutput.appendln() + permsOutput.appendLine() permsOutput.append(""" Other Permissions ================== @@ -256,10 +256,10 @@ Other Permissions val name = prefix + command.name val entries = commandTableEntries(command, parents) - cmdOutput.appendln(".. raw:: html") - cmdOutput.appendln() - cmdOutput.appendln(""" """) - cmdOutput.appendln() + cmdOutput.appendLine(".. raw:: html") + cmdOutput.appendLine() + cmdOutput.appendLine(""" """) + cmdOutput.appendLine() cmdOutput.append(".. topic:: ``$name``") if (!command.aliases.isEmpty()) { command.aliases.joinTo(cmdOutput, ", ", @@ -267,19 +267,19 @@ Other Permissions postfix = ")", transform = { "``$prefix$it``" }) } - cmdOutput.appendln() - cmdOutput.appendln(" :class: command-topic").appendln() + cmdOutput.appendLine() + cmdOutput.appendLine(" :class: command-topic").appendLine() CommandUtil.deprecationWarning(command).ifPresent { warning -> - cmdOutput.appendln(""" + cmdOutput.appendLine(""" | .. WARNING:: | ${reduceToRst(warning).makeRstSafe("\n\n")} """.trimMargin()) } - cmdOutput.appendln(""" + cmdOutput.appendLine(""" | .. csv-table:: | :widths: 8, 15 """.trimMargin()) - cmdOutput.appendln() + cmdOutput.appendLine() for ((k, v) in entries) { val rstSafe = v.makeRstSafe("\n") cmdOutput.append(" ".repeat(2)) @@ -287,9 +287,9 @@ Other Permissions .append(",") .append('"') .append(rstSafe) - .append('"').appendln() + .append('"').appendLine() } - cmdOutput.appendln() + cmdOutput.appendLine() } private fun String.makeRstSafe(lineJoiner: String) = trim() diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 88f1998b40..647a20dbda 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -46,7 +46,10 @@ repositories { dependencies { "api"(project(":worldedit-core")) - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.8.1") + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { + because("Mojang provides Log4J, we bump to match Forge") + }) + "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "minecraft"("com.mojang:minecraft:$minecraftVersion") "mappings"("net.fabricmc:yarn:$yarnMappings") @@ -133,7 +136,7 @@ tasks.named("shadowJar") { archiveClassifier.set("dist-dev") dependencies { relocate("org.slf4j", "com.sk89q.worldedit.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge") + relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency("org.slf4j:slf4j-api")) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index 5df186510f..b1de4dd6fe 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -27,7 +27,10 @@ configurations.all { dependencies { "api"(project(":worldedit-core")) - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl:2.11.2") + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { + because("Forge provides Log4J (Mojang provides a lower version, but Forge bumps)") + }) + "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion") } @@ -93,7 +96,7 @@ addJarManifest(includeClasspath = false) tasks.named("shadowJar") { dependencies { relocate("org.slf4j", "com.sk89q.worldedit.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge") + relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency("org.slf4j:slf4j-api")) diff --git a/worldedit-mod/README.md b/worldedit-mod/README.md new file mode 100644 index 0000000000..9a73d8fa12 --- /dev/null +++ b/worldedit-mod/README.md @@ -0,0 +1,2 @@ +This folder is for the merged output of Fabric and Forge jars. This allows us to distribute +both variants of the mod in a single file to avoid end-user confusion. diff --git a/worldedit-mod/build.gradle.kts b/worldedit-mod/build.gradle.kts new file mode 100644 index 0000000000..66fa8cd67b --- /dev/null +++ b/worldedit-mod/build.gradle.kts @@ -0,0 +1,24 @@ +import net.fabricmc.loom.task.RemapJarTask + +plugins { + base +} + +applyCommonConfiguration() + +tasks.register("jar") { + val remapFabric = project(":worldedit-fabric").tasks.named("remapShadowJar") + dependsOn( + remapFabric, + project(":worldedit-forge").tasks.named("reobfShadowJar") + ) + from(zipTree({remapFabric.get().archiveFile})) + from(zipTree({project(":worldedit-forge").tasks.getByName("shadowJar").outputs.files.singleFile})) + + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + archiveClassifier.set("dist") +} + +tasks.named("assemble") { + dependsOn("jar") +} diff --git a/worldedit-sponge/build.gradle.kts b/worldedit-sponge/build.gradle.kts index 6fe33217df..1bff90e437 100644 --- a/worldedit-sponge/build.gradle.kts +++ b/worldedit-sponge/build.gradle.kts @@ -1,28 +1,28 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar plugins { - id("org.spongepowered.plugin") + id("org.spongepowered.gradle.plugin") } applyPlatformAndCoreConfiguration() applyShadowConfiguration() +// I can't believe sponge sets this in a base plugin with no opt-out +convention.getPlugin(JavaPluginConvention::class.java).apply { + setSourceCompatibility(null) + setTargetCompatibility(null) +} + repositories { maven { url = uri("https://repo.codemc.org/repository/maven-public") } } dependencies { - compile(project(":worldedit-core")) - compile(project(":worldedit-libs:sponge")) - compile("org.spongepowered:spongeapi:7.1.0") - compile("org.bstats:bstats-sponge:1.7") - testCompile("org.mockito:mockito-core:1.9.0-rc1") -} - -sponge { - plugin { - id = "worldedit" - } + api(project(":worldedit-core")) + api(project(":worldedit-libs:sponge")) + api("org.spongepowered:spongeapi:7.1.0") + api("org.bstats:bstats-sponge:1.7") + testImplementation("org.mockito:mockito-core:1.9.0-rc1") } addJarManifest(includeClasspath = true) From 4095a0866e53058800d1411f9a25b144795a0562 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Mon, 25 Jan 2021 20:52:04 +1000 Subject: [PATCH 035/813] Boost TileEntity clear performance, with extra boost on Paper (#1652) * Boost TileEntity clear performance, with extra boost on Paper * :( --- .../main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java | 8 +++++++- .../main/java/com/sk89q/worldedit/fabric/FabricWorld.java | 4 ++++ .../main/java/com/sk89q/worldedit/forge/ForgeWorld.java | 4 ++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index 4d6edd2616..4fa4d831b4 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -44,6 +44,7 @@ import com.sk89q.worldedit.world.block.BlockStateHolder; import com.sk89q.worldedit.world.weather.WeatherType; import com.sk89q.worldedit.world.weather.WeatherTypes; +import io.papermc.lib.PaperLib; import org.bukkit.Effect; import org.bukkit.TreeType; import org.bukkit.World; @@ -243,8 +244,13 @@ private Inventory getBlockInventory(Chest chest) { @Override public boolean clearContainerBlockContents(BlockVector3 pt) { + checkNotNull(pt); + if (getBlock(pt).getBlockType().getMaterial().hasContainer()) { + return false; + } + Block block = getWorld().getBlockAt(pt.getBlockX(), pt.getBlockY(), pt.getBlockZ()); - BlockState state = block.getState(); + BlockState state = PaperLib.getBlockState(block, false).getState(); if (!(state instanceof InventoryHolder)) { return false; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index c4fb5cd6fd..5692a71818 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -205,6 +205,10 @@ public int getBlockLightLevel(BlockVector3 position) { @Override public boolean clearContainerBlockContents(BlockVector3 position) { checkNotNull(position); + if (!getBlock(position).getBlockType().getMaterial().hasContainer()) { + return false; + } + BlockEntity tile = getWorld().getBlockEntity(FabricAdapter.toBlockPos(position)); if ((tile instanceof Clearable)) { ((Clearable) tile).clear(); diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index e54caa1a43..0fa0a9ba0b 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -208,6 +208,10 @@ public int getBlockLightLevel(BlockVector3 position) { @Override public boolean clearContainerBlockContents(BlockVector3 position) { checkNotNull(position); + if (!getBlock(position).getBlockType().getMaterial().hasContainer()) { + return false; + } + TileEntity tile = getWorld().getTileEntity(ForgeAdapter.toBlockPos(position)); if (tile instanceof IClearable) { ((IClearable) tile).clear(); From 5aa81ff96efc661f051758c94e0d171c4ec40277 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 26 Jan 2021 15:57:56 +1000 Subject: [PATCH 036/813] Speed up Fast Reorder Mode and make it default (#1653) * Speed up Fast Reorder Mode and make it default * Make non-exposed side effects internal * Docs on isExposed --- .../java/com/sk89q/worldedit/EditSession.java | 2 +- .../com/sk89q/worldedit/LocalSession.java | 2 +- .../command/argument/SideEffectConverter.java | 4 ++- .../extent/world/SideEffectExtent.java | 10 +++++- .../internal/wna/WorldNativeAccess.java | 6 ++-- .../com/sk89q/worldedit/util/SideEffect.java | 33 +++++++++++++++---- .../sk89q/worldedit/util/SideEffectSet.java | 4 ++- .../formatting/component/SideEffectBox.java | 1 + 8 files changed, 48 insertions(+), 14 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index 1547bc2e96..a64f9b5476 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -213,7 +213,7 @@ public String getDisplayName() { private final @Nullable List tracingExtents; - private ReorderMode reorderMode = ReorderMode.MULTI_STAGE; + private ReorderMode reorderMode = ReorderMode.FAST; private Mask oldMask; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index c32e496140..837db9498c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -108,7 +108,7 @@ public class LocalSession { private transient Mask mask; private transient ZoneId timezone = ZoneId.systemDefault(); private transient BlockVector3 cuiTemporaryBlock; - private transient EditSession.ReorderMode reorderMode = EditSession.ReorderMode.MULTI_STAGE; + private transient EditSession.ReorderMode reorderMode = EditSession.ReorderMode.FAST; private transient List> lastDistribution; private transient World worldOverride; private transient boolean tickingWatchdog = true; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java index 4becfcc65f..4d5fc97d51 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/SideEffectConverter.java @@ -59,7 +59,9 @@ public Component describeAcceptableArguments() { @Override public List getSuggestions(String input, InjectedValueAccess context) { - return limitByPrefix(getSideEffects().stream().map(sideEffect -> sideEffect.name().toLowerCase(Locale.US)), input); + return limitByPrefix(getSideEffects().stream() + .filter(SideEffect::isExposed) + .map(sideEffect -> sideEffect.name().toLowerCase(Locale.US)), input); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java index 2c6c4cdad6..cf07691229 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SideEffectExtent.java @@ -32,10 +32,13 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; +import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; import static com.google.common.base.Preconditions.checkNotNull; @@ -50,6 +53,11 @@ public class SideEffectExtent extends AbstractDelegateExtent { private SideEffectSet sideEffectSet = SideEffectSet.defaults(); private boolean postEditSimulation; + private static final SideEffectSet INTERNAL_NONE = new SideEffectSet( + Arrays.stream(SideEffect.values()) + .collect(Collectors.toMap(Function.identity(), state -> SideEffect.State.OFF)) + ); + /** * Create a new instance. * @@ -86,7 +94,7 @@ public > boolean setBlock(BlockVector3 location, B positions.put(location, world.getBlock(location)); } - return world.setBlock(location, block, postEditSimulation ? SideEffectSet.none() : sideEffectSet); + return world.setBlock(location, block, postEditSimulation ? INTERNAL_NONE : sideEffectSet); } public boolean commitRequired() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java index 77d6c8ba3e..042385c64b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java @@ -167,7 +167,7 @@ default void markAndNotifyBlock(NP pos, NC chunk, NBS oldState, NBS newState, Si if (isChunkTicking(chunk)) { if (sideEffectSet.shouldApply(SideEffect.ENTITY_AI)) { notifyBlockUpdate(pos, oldState, newState); - } else { + } else if (sideEffectSet.shouldApply(SideEffect.NETWORK)) { // If we want to skip entity AI, just mark the block for sending markBlockChanged(pos); } @@ -183,7 +183,9 @@ default void markAndNotifyBlock(NP pos, NC chunk, NBS oldState, NBS newState, Si } // Seems used only for PoI updates - onBlockStateChange(pos, oldState, blockState1); + if (sideEffectSet.shouldApply(SideEffect.POI_UPDATE)) { + onBlockStateChange(pos, oldState, blockState1); + } } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java index 3ec36e348f..def32e1b2f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffect.java @@ -22,22 +22,32 @@ import java.util.Locale; public enum SideEffect { - LIGHTING(State.ON), - NEIGHBORS(State.ON), - UPDATE(State.ON), - VALIDATION(State.OFF), - ENTITY_AI(State.OFF), - EVENTS(State.OFF); + LIGHTING(State.ON, true), + NEIGHBORS(State.ON, true), + UPDATE(State.ON, true), + VALIDATION(State.OFF, true), + ENTITY_AI(State.OFF, true), + EVENTS(State.OFF, true), + /** + * Internal use only. + */ + POI_UPDATE(State.ON, false), + /** + * Internal use only. + */ + NETWORK(State.ON, false); // TODO Make these components in WE8 private final String displayName; private final String description; private final State defaultValue; + private final boolean exposed; - SideEffect(State defaultValue) { + SideEffect(State defaultValue, boolean exposed) { this.displayName = "worldedit.sideeffect." + this.name().toLowerCase(Locale.US); this.description = "worldedit.sideeffect." + this.name().toLowerCase(Locale.US) + ".description"; this.defaultValue = defaultValue; + this.exposed = exposed; } public String getDisplayName() { @@ -52,6 +62,15 @@ public State getDefaultValue() { return this.defaultValue; } + /** + * Determines if this side effect is considered API. + * + * @return if the side effect is exposed via API + */ + public boolean isExposed() { + return exposed; + } + public enum State { OFF, ON, diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java index ebf5f73329..e57ee500d6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/SideEffectSet.java @@ -32,7 +32,9 @@ public class SideEffectSet { private static final SideEffectSet DEFAULT = new SideEffectSet(ImmutableMap.of()); private static final SideEffectSet NONE = new SideEffectSet( - Arrays.stream(SideEffect.values()).collect(Collectors.toMap(Function.identity(), state -> SideEffect.State.OFF)) + Arrays.stream(SideEffect.values()) + .filter(SideEffect::isExposed) + .collect(Collectors.toMap(Function.identity(), state -> SideEffect.State.OFF)) ); private final Map sideEffects; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java index a323bdf25e..dace903315 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/component/SideEffectBox.java @@ -41,6 +41,7 @@ public class SideEffectBox extends PaginationBox { private static final LazyReference> SIDE_EFFECTS = LazyReference.from(() -> WorldEdit.getInstance().getPlatformManager().getSupportedSideEffects() .stream() + .filter(SideEffect::isExposed) .sorted(Comparator.comparing(effect -> WorldEditText.reduceToText( TranslatableComponent.of(effect.getDisplayName()), From 56c891946ddbd380990d46a1ca89d86c228b4ffa Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 27 Jan 2021 15:33:51 -0800 Subject: [PATCH 037/813] Allow UPDATE mixin to soft-fail on Fabric (#1654) This allows Carpet's mixin to take priorty, and UPDATE will simply be disabled on Fabric in that case. Fixes #1605 --- .../worldedit/fabric/FabricPlatform.java | 20 +++-- .../fabric/internal/MixinConfigPlugin.java | 73 +++++++++++++++++++ ....java => MixinWorldChunkSetBlockHook.java} | 5 +- .../src/main/resources/worldedit.mixins.json | 3 +- 4 files changed, 92 insertions(+), 9 deletions(-) create mode 100644 worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java rename worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/{MixinWorldChunk.java => MixinWorldChunkSetBlockHook.java} (94%) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java index 746a5fc72a..eed8ede8b6 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.fabric; +import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.mojang.brigadier.CommandDispatcher; import com.sk89q.worldedit.command.util.PermissionCondition; @@ -29,6 +30,7 @@ import com.sk89q.worldedit.extension.platform.MultiUserPlatform; import com.sk89q.worldedit.extension.platform.Preference; import com.sk89q.worldedit.extension.platform.Watchdog; +import com.sk89q.worldedit.fabric.internal.ExtendedChunk; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; @@ -42,6 +44,7 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; +import net.minecraft.world.chunk.WorldChunk; import net.minecraft.world.level.ServerWorldProperties; import org.enginehub.piston.Command; import org.enginehub.piston.CommandManager; @@ -212,17 +215,22 @@ public Map getCapabilities() { return capabilities; } + private static final Set SUPPORTED_SIDE_EFFECTS_NO_MIXIN = Sets.immutableEnumSet( + SideEffect.VALIDATION, + SideEffect.ENTITY_AI, + SideEffect.LIGHTING, + SideEffect.NEIGHBORS + ); + private static final Set SUPPORTED_SIDE_EFFECTS = Sets.immutableEnumSet( - SideEffect.VALIDATION, - SideEffect.ENTITY_AI, - SideEffect.LIGHTING, - SideEffect.NEIGHBORS, - SideEffect.UPDATE + Iterables.concat(SUPPORTED_SIDE_EFFECTS_NO_MIXIN, Collections.singleton(SideEffect.UPDATE)) ); @Override public Set getSupportedSideEffects() { - return SUPPORTED_SIDE_EFFECTS; + return ExtendedChunk.class.isAssignableFrom(WorldChunk.class) + ? SUPPORTED_SIDE_EFFECTS + : SUPPORTED_SIDE_EFFECTS_NO_MIXIN; } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java new file mode 100644 index 0000000000..48f933c36e --- /dev/null +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java @@ -0,0 +1,73 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.fabric.internal; + +import net.fabricmc.loader.api.FabricLoader; +import org.objectweb.asm.tree.ClassNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.spongepowered.asm.mixin.Mixins; +import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; +import org.spongepowered.asm.mixin.extensibility.IMixinInfo; + +import java.util.List; +import java.util.Set; + +public class MixinConfigPlugin implements IMixinConfigPlugin { + private static final Logger LOGGER = LoggerFactory.getLogger(MixinConfigPlugin.class); + + @Override + public void onLoad(String mixinPackage) { + } + + @Override + public String getRefMapperConfig() { + return null; + } + + @Override + public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { + if (mixinClassName.equals("com.sk89q.worldedit.fabric.mixin.MixinWorldChunkSetBlockHook")) { + boolean carpet = FabricLoader.getInstance().getModContainer("carpet").isPresent(); + if (carpet) { + LOGGER.warn("Carpet detected, disabling UPDATE mixin " + mixinClassName); + } + return !carpet; + } + return true; + } + + @Override + public void acceptTargets(Set myTargets, Set otherTargets) { + } + + @Override + public List getMixins() { + return null; + } + + @Override + public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } + + @Override + public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { + } +} diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java similarity index 94% rename from worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java rename to worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java index 4bfea3b8da..1773ab6946 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunk.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java @@ -26,6 +26,7 @@ import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.WorldChunk; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -33,8 +34,8 @@ import javax.annotation.Nullable; -@Mixin(WorldChunk.class) -public abstract class MixinWorldChunk implements Chunk, ExtendedChunk { +@Mixin(value = WorldChunk.class) +public abstract class MixinWorldChunkSetBlockHook implements Chunk, ExtendedChunk { private boolean shouldUpdate = true; @Nullable diff --git a/worldedit-fabric/src/main/resources/worldedit.mixins.json b/worldedit-fabric/src/main/resources/worldedit.mixins.json index 31d013a873..e58972154f 100644 --- a/worldedit-fabric/src/main/resources/worldedit.mixins.json +++ b/worldedit-fabric/src/main/resources/worldedit.mixins.json @@ -6,11 +6,12 @@ "MixinBiomeArray", "MixinServerPlayerEntity", "MixinMinecraftServer", - "MixinWorldChunk", + "MixinWorldChunkSetBlockHook", "AccessorClientSettingsC2SPacket", "AccessorLevelProperties", "AccessorServerChunkManager" ], + "plugin": "com.sk89q.worldedit.fabric.internal.MixinConfigPlugin", "server": [ ], "injectors": { From 476342a66593a70ddc1107d5c04b8db62a71ce00 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 31 Jan 2021 13:01:31 +1000 Subject: [PATCH 038/813] Fix the offset mask forcing negation of itself (#1656) --- .../extension/factory/parser/mask/OffsetMaskParser.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java index 3deb0d70d6..0ff12b0477 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/mask/OffsetMaskParser.java @@ -24,8 +24,6 @@ import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.function.mask.ExistingBlockMask; import com.sk89q.worldedit.function.mask.Mask; -import com.sk89q.worldedit.function.mask.MaskIntersection; -import com.sk89q.worldedit.function.mask.Masks; import com.sk89q.worldedit.function.mask.OffsetsMask; import com.sk89q.worldedit.internal.registry.InputParser; import com.sk89q.worldedit.math.BlockVector3; @@ -63,7 +61,6 @@ public Mask parseFromInput(String input, ParserContext context) throws InputPars } else { submask = new ExistingBlockMask(context.requireExtent()); } - Mask offsetMask = OffsetsMask.single(submask, BlockVector3.at(0, firstChar == '>' ? -1 : 1, 0)); - return new MaskIntersection(offsetMask, Masks.negate(submask)); + return OffsetsMask.single(submask, BlockVector3.at(0, firstChar == '>' ? -1 : 1, 0)); } } From 137c266e3a55d5132ed3d623d9949ed9a4ad4af8 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 6 Feb 2021 20:23:29 +1000 Subject: [PATCH 039/813] Migrate to adventure-nbt --- buildSrc/src/main/kotlin/LibsConfig.kt | 3 +- .../sk89q/worldedit/bukkit/BukkitPlayer.java | 2 +- .../sk89q/worldedit/bukkit/BukkitWorld.java | 8 +- .../worldedit/blocks/MobSpawnerBlock.java | 120 ++++++++-------- .../com/sk89q/worldedit/blocks/SignBlock.java | 19 +-- .../sk89q/worldedit/blocks/SkullBlock.java | 18 +-- .../com/sk89q/jnbt/AdventureNBTConverter.java | 132 ++++++++++++++++++ .../java/com/sk89q/jnbt/ByteArrayTag.java | 29 ++-- .../src/main/java/com/sk89q/jnbt/ByteTag.java | 21 ++- .../main/java/com/sk89q/jnbt/CompoundTag.java | 28 ++-- .../com/sk89q/jnbt/CompoundTagBuilder.java | 3 + .../main/java/com/sk89q/jnbt/DoubleTag.java | 22 ++- .../src/main/java/com/sk89q/jnbt/EndTag.java | 10 +- .../main/java/com/sk89q/jnbt/FloatTag.java | 22 ++- .../main/java/com/sk89q/jnbt/IntArrayTag.java | 30 ++-- .../src/main/java/com/sk89q/jnbt/IntTag.java | 22 ++- .../src/main/java/com/sk89q/jnbt/ListTag.java | 45 ++++-- .../java/com/sk89q/jnbt/ListTagBuilder.java | 3 + .../java/com/sk89q/jnbt/LongArrayTag.java | 30 ++-- .../src/main/java/com/sk89q/jnbt/LongTag.java | 22 ++- .../java/com/sk89q/jnbt/NBTConstants.java | 6 +- .../java/com/sk89q/jnbt/NBTInputStream.java | 3 + .../java/com/sk89q/jnbt/NBTOutputStream.java | 3 + .../main/java/com/sk89q/jnbt/NBTUtils.java | 4 +- .../main/java/com/sk89q/jnbt/NamedTag.java | 3 + .../main/java/com/sk89q/jnbt/ShortTag.java | 22 ++- .../main/java/com/sk89q/jnbt/StringTag.java | 22 ++- .../src/main/java/com/sk89q/jnbt/Tag.java | 11 +- .../com/sk89q/worldedit/LocalSession.java | 14 +- .../com/sk89q/worldedit/blocks/BaseItem.java | 39 +++++- .../sk89q/worldedit/blocks/BaseItemStack.java | 15 ++ .../sk89q/worldedit/entity/BaseEntity.java | 25 +++- .../factory/parser/DefaultItemParser.java | 84 ++++++++--- .../extent/world/SurvivalModeExtent.java | 3 +- .../function/block/ExtentBlockCopy.java | 20 +-- .../internal/cui/ServerCUIHandler.java | 53 ++++--- .../com/sk89q/worldedit/util/NbtUtils.java | 49 +++++++ .../util/collection/Int2BaseBlockMap.java | 2 +- .../com/sk89q/worldedit/world/NbtValued.java | 77 +++++++++- .../worldedit/world/block/BaseBlock.java | 79 +++++++---- .../worldedit/world/block/BlockState.java | 10 ++ .../world/block/BlockStateHolder.java | 14 ++ .../worldedit/world/chunk/AnvilChunk.java | 101 ++++++++------ .../worldedit/world/chunk/AnvilChunk13.java | 88 +++++++----- .../worldedit/world/chunk/AnvilChunk16.java | 13 ++ .../sk89q/worldedit/world/chunk/OldChunk.java | 78 ++++++----- .../src/main/resources/lang/strings.json | 2 + worldedit-libs/core/build.gradle.kts | 1 + .../sk89q/worldedit/sponge/SpongeWorld.java | 4 +- 49 files changed, 1019 insertions(+), 415 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java diff --git a/buildSrc/src/main/kotlin/LibsConfig.kt b/buildSrc/src/main/kotlin/LibsConfig.kt index 29c5bfa3a8..959b39f9cd 100644 --- a/buildSrc/src/main/kotlin/LibsConfig.kt +++ b/buildSrc/src/main/kotlin/LibsConfig.kt @@ -28,7 +28,8 @@ fun Project.applyLibrariesConfiguration() { val relocations = mapOf( "net.kyori.text" to "com.sk89q.worldedit.util.formatting.text", - "net.kyori.minecraft" to "com.sk89q.worldedit.util.kyori" + "net.kyori.minecraft" to "com.sk89q.worldedit.util.kyori", + "net.kyori.adventure.nbt" to "com.sk89q.worldedit.util.nbt" ) tasks.register("jar") { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index a5f5d615a9..5f44d3ea0e 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -295,7 +295,7 @@ public > void sendFakeBlock(BlockVector3 pos, B bl player.sendBlockChange(loc, player.getWorld().getBlockAt(loc).getBlockData()); } else { player.sendBlockChange(loc, BukkitAdapter.adapt(block)); - if (block instanceof BaseBlock && ((BaseBlock) block).hasNbtData()) { + if (block instanceof BaseBlock && ((BaseBlock) block).hasNbt()) { BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); if (adapter != null) { if (block.getBlockType() == BlockTypes.STRUCTURE_BLOCK) { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index 4d6edd2616..720ff750b1 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -149,8 +149,8 @@ public com.sk89q.worldedit.entity.Entity createEntity(com.sk89q.worldedit.util.L } } catch (Exception e) { logger.warn("Corrupt entity found when creating: " + entity.getType().getId()); - if (entity.getNbtData() != null) { - logger.warn(entity.getNbtData().toString()); + if (entity.getNbt() != null) { + logger.warn(entity.getNbt().toString()); } e.printStackTrace(); return null; @@ -457,9 +457,9 @@ public > boolean setBlock(BlockVector3 position, B try { return worldNativeAccess.setBlock(position, block, sideEffects); } catch (Exception e) { - if (block instanceof BaseBlock && ((BaseBlock) block).getNbtData() != null) { + if (block instanceof BaseBlock && ((BaseBlock) block).getNbt() != null) { logger.warn("Tried to set a corrupt tile entity at " + position.toString() - + ": " + ((BaseBlock) block).getNbtData(), e); + + ": " + ((BaseBlock) block).getNbt(), e); } else { logger.warn("Failed to set block via adapter, falling back to generic", e); } diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java index a43ef366d5..d88852f8ac 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java @@ -21,20 +21,18 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.NBTUtils; -import com.sk89q.jnbt.ShortTag; -import com.sk89q.jnbt.StringTag; -import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.util.NbtUtils; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagTypes; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.ShortBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.storage.InvalidFormatException; -import java.util.HashMap; -import java.util.Map; - /** * A mob spawner block. */ @@ -46,8 +44,8 @@ public class MobSpawnerBlock extends BaseBlock { // advanced mob spawner features private short spawnCount = 4; private short spawnRange = 4; - private CompoundTag spawnData; - private ListTag spawnPotentials; + private CompoundBinaryTag spawnData; + private ListBinaryTag spawnPotentials; private short minSpawnDelay = 200; private short maxSpawnDelay = 800; private short maxNearbyEntities = 6; @@ -110,7 +108,7 @@ public void setDelay(short delay) { } @Override - public boolean hasNbtData() { + public boolean hasNbt() { return true; } @@ -120,50 +118,52 @@ public String getNbtId() { } @Override - public CompoundTag getNbtData() { - Map values = new HashMap<>(); - values.put("Delay", new ShortTag(delay)); - values.put("SpawnCount", new ShortTag(spawnCount)); - values.put("SpawnRange", new ShortTag(spawnRange)); - values.put("MinSpawnDelay", new ShortTag(minSpawnDelay)); - values.put("MaxSpawnDelay", new ShortTag(maxSpawnDelay)); - values.put("MaxNearbyEntities", new ShortTag(maxNearbyEntities)); - values.put("RequiredPlayerRange", new ShortTag(requiredPlayerRange)); + public CompoundBinaryTag getNbt() { + CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); + values.put("Delay", ShortBinaryTag.of(delay)); + values.put("SpawnCount", ShortBinaryTag.of(spawnCount)); + values.put("SpawnRange", ShortBinaryTag.of(spawnRange)); + values.put("MinSpawnDelay", ShortBinaryTag.of(minSpawnDelay)); + values.put("MaxSpawnDelay", ShortBinaryTag.of(maxSpawnDelay)); + values.put("MaxNearbyEntities", ShortBinaryTag.of(maxNearbyEntities)); + values.put("RequiredPlayerRange", ShortBinaryTag.of(requiredPlayerRange)); if (spawnData == null) { - values.put("SpawnData", new CompoundTag(ImmutableMap.of("id", new StringTag(mobType)))); + values.put("SpawnData", CompoundBinaryTag.builder().put("id", StringBinaryTag.of(mobType)).build()); } else { - values.put("SpawnData", new CompoundTag(spawnData.getValue())); + values.put("SpawnData", spawnData); } if (spawnPotentials == null) { - values.put("SpawnPotentials", new ListTag(CompoundTag.class, ImmutableList.of( - new CompoundTag(ImmutableMap.of("Weight", new IntTag(1), "Entity", - new CompoundTag(ImmutableMap.of("id", new StringTag(mobType)))))))); + values.put("SpawnPotentials", ListBinaryTag.of( + BinaryTagTypes.COMPOUND, + ImmutableList.of(CompoundBinaryTag.from(ImmutableMap.of( + "Weight", IntBinaryTag.of(1), + "Entity", CompoundBinaryTag.from(ImmutableMap.of("id", StringBinaryTag.of(mobType))) + ))) + )); } else { - values.put("SpawnPotentials", new ListTag(CompoundTag.class, spawnPotentials.getValue())); + values.put("SpawnPotentials", spawnPotentials); } - return new CompoundTag(values); + return values.build(); } @Override - public void setNbtData(CompoundTag rootTag) { + public void setNbt(CompoundBinaryTag rootTag) { if (rootTag == null) { return; } - Map values = rootTag.getValue(); - - Tag t = values.get("id"); - if (!(t instanceof StringTag) || !((StringTag) t).getValue().equals(getNbtId())) { + BinaryTag t = rootTag.get("id"); + if (!(t instanceof StringBinaryTag) || !((StringBinaryTag) t).value().equals(getNbtId())) { throw new RuntimeException(String.format("'%s' tile entity expected", getNbtId())); } - CompoundTag spawnDataTag; + CompoundBinaryTag spawnDataTag; String mobType; - ShortTag delayTag; + ShortBinaryTag delayTag; try { - spawnDataTag = NBTUtils.getChildTag(values, "SpawnData", CompoundTag.class); + spawnDataTag = NbtUtils.getChildTag(rootTag, "SpawnData", CompoundBinaryTag.class); mobType = spawnDataTag.getString("id"); if (mobType.equals("")) { throw new InvalidFormatException("No spawn id."); @@ -174,68 +174,68 @@ public void setNbtData(CompoundTag rootTag) { throw new RuntimeException("Invalid mob spawner data: no SpawnData and/or no Delay"); } try { - delayTag = NBTUtils.getChildTag(values, "Delay", ShortTag.class); - this.delay = delayTag.getValue(); + delayTag = NbtUtils.getChildTag(rootTag, "Delay", ShortBinaryTag.class); + this.delay = delayTag.value(); } catch (InvalidFormatException ignored) { this.delay = -1; } - ShortTag spawnCountTag = null; - ShortTag spawnRangeTag = null; - ShortTag minSpawnDelayTag = null; - ShortTag maxSpawnDelayTag = null; - ShortTag maxNearbyEntitiesTag = null; - ShortTag requiredPlayerRangeTag = null; - ListTag spawnPotentialsTag = null; + ShortBinaryTag spawnCountTag = null; + ShortBinaryTag spawnRangeTag = null; + ShortBinaryTag minSpawnDelayTag = null; + ShortBinaryTag maxSpawnDelayTag = null; + ShortBinaryTag maxNearbyEntitiesTag = null; + ShortBinaryTag requiredPlayerRangeTag = null; + ListBinaryTag spawnPotentialsTag = null; try { - spawnCountTag = NBTUtils.getChildTag(values, "SpawnCount", ShortTag.class); + spawnCountTag = NbtUtils.getChildTag(rootTag, "SpawnCount", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - spawnRangeTag = NBTUtils.getChildTag(values, "SpawnRange", ShortTag.class); + spawnRangeTag = NbtUtils.getChildTag(rootTag, "SpawnRange", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - minSpawnDelayTag = NBTUtils.getChildTag(values, "MinSpawnDelay", ShortTag.class); + minSpawnDelayTag = NbtUtils.getChildTag(rootTag, "MinSpawnDelay", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - maxSpawnDelayTag = NBTUtils.getChildTag(values, "MaxSpawnDelay", ShortTag.class); + maxSpawnDelayTag = NbtUtils.getChildTag(rootTag, "MaxSpawnDelay", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - maxNearbyEntitiesTag = NBTUtils.getChildTag(values, "MaxNearbyEntities", ShortTag.class); + maxNearbyEntitiesTag = NbtUtils.getChildTag(rootTag, "MaxNearbyEntities", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - requiredPlayerRangeTag = NBTUtils.getChildTag(values, "RequiredPlayerRange", ShortTag.class); + requiredPlayerRangeTag = NbtUtils.getChildTag(rootTag, "RequiredPlayerRange", ShortBinaryTag.class); } catch (InvalidFormatException ignored) { } try { - spawnPotentialsTag = NBTUtils.getChildTag(values, "SpawnPotentials", ListTag.class); + spawnPotentialsTag = NbtUtils.getChildTag(rootTag, "SpawnPotentials", ListBinaryTag.class); } catch (InvalidFormatException ignored) { } if (spawnCountTag != null) { - this.spawnCount = spawnCountTag.getValue(); + this.spawnCount = spawnCountTag.value(); } if (spawnRangeTag != null) { - this.spawnRange = spawnRangeTag.getValue(); + this.spawnRange = spawnRangeTag.value(); } if (minSpawnDelayTag != null) { - this.minSpawnDelay = minSpawnDelayTag.getValue(); + this.minSpawnDelay = minSpawnDelayTag.value(); } if (maxSpawnDelayTag != null) { - this.maxSpawnDelay = maxSpawnDelayTag.getValue(); + this.maxSpawnDelay = maxSpawnDelayTag.value(); } if (maxNearbyEntitiesTag != null) { - this.maxNearbyEntities = maxNearbyEntitiesTag.getValue(); + this.maxNearbyEntities = maxNearbyEntitiesTag.value(); } if (requiredPlayerRangeTag != null) { - this.requiredPlayerRange = requiredPlayerRangeTag.getValue(); + this.requiredPlayerRange = requiredPlayerRangeTag.value(); } if (spawnPotentialsTag != null) { - this.spawnPotentials = new ListTag(CompoundTag.class, spawnPotentialsTag.getValue()); + this.spawnPotentials = spawnPotentialsTag; } } diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java index db8c4b2be9..a52442285e 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java @@ -23,10 +23,11 @@ import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.util.gson.GsonUtil; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; -import java.util.HashMap; import java.util.Map; /** @@ -82,7 +83,7 @@ public void setText(String[] text) { } @Override - public boolean hasNbtData() { + public boolean hasNbt() { return true; } @@ -92,13 +93,13 @@ public String getNbtId() { } @Override - public CompoundTag getNbtData() { - Map values = new HashMap<>(); - values.put("Text1", new StringTag(text[0])); - values.put("Text2", new StringTag(text[1])); - values.put("Text3", new StringTag(text[2])); - values.put("Text4", new StringTag(text[3])); - return new CompoundTag(values); + public CompoundBinaryTag getNbt() { + CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); + values.put("Text1", StringBinaryTag.of(text[0])); + values.put("Text2", StringBinaryTag.of(text[1])); + values.put("Text3", StringBinaryTag.of(text[2])); + values.put("Text4", StringBinaryTag.of(text[3])); + return values.build(); } @Override diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java index e754fb4536..e33b7fe830 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java @@ -19,14 +19,16 @@ package com.sk89q.worldedit.blocks; +import com.google.common.collect.ImmutableMap; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.internal.util.DeprecationUtil; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; -import java.util.HashMap; import java.util.Map; /** @@ -81,7 +83,7 @@ public String getOwner() { } @Override - public boolean hasNbtData() { + public boolean hasNbt() { return true; } @@ -91,12 +93,12 @@ public String getNbtId() { } @Override - public CompoundTag getNbtData() { - Map values = new HashMap<>(); - Map inner = new HashMap<>(); - inner.put("Name", new StringTag(owner)); - values.put(DeprecationUtil.getHeadOwnerKey(), new CompoundTag(inner)); - return new CompoundTag(values); + public CompoundBinaryTag getNbt() { + CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); + values.put(DeprecationUtil.getHeadOwnerKey(), CompoundBinaryTag.from( + ImmutableMap.of("Name", StringBinaryTag.of(owner)) + )); + return values.build(); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java new file mode 100644 index 0000000000..407bcb0099 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java @@ -0,0 +1,132 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.jnbt; + +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.DoubleBinaryTag; +import com.sk89q.worldedit.util.nbt.EndBinaryTag; +import com.sk89q.worldedit.util.nbt.FloatBinaryTag; +import com.sk89q.worldedit.util.nbt.IntArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.LongBinaryTag; +import com.sk89q.worldedit.util.nbt.ShortBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; + +/** + * Converts between JNBT and Adventure-NBT classes. + * + * @deprecated JNBT is being removed in WE8. + */ +@Deprecated +public class AdventureNBTConverter { + + private AdventureNBTConverter() { + + } + + public static Tag fromAdventure(BinaryTag other) { + if (other instanceof IntArrayBinaryTag) { + return fromAdventure((IntArrayBinaryTag) other); + } else if (other instanceof ListBinaryTag) { + return fromAdventure((ListBinaryTag) other); + } else if (other instanceof EndBinaryTag) { + return fromAdventure(); + } else if (other instanceof LongBinaryTag) { + return fromAdventure((LongBinaryTag) other); + } else if (other instanceof LongArrayBinaryTag) { + return fromAdventure((LongArrayBinaryTag) other); + } else if (other instanceof StringBinaryTag) { + return fromAdventure((StringBinaryTag) other); + } else if (other instanceof IntBinaryTag) { + return fromAdventure((IntBinaryTag) other); + } else if (other instanceof ByteBinaryTag) { + return fromAdventure((ByteBinaryTag) other); + } else if (other instanceof ByteArrayBinaryTag) { + return fromAdventure((ByteArrayBinaryTag) other); + } else if (other instanceof CompoundBinaryTag) { + return fromAdventure((CompoundBinaryTag) other); + } else if (other instanceof FloatBinaryTag) { + return fromAdventure((FloatBinaryTag) other); + } else if (other instanceof ShortBinaryTag) { + return fromAdventure((ShortBinaryTag) other); + } else if (other instanceof DoubleBinaryTag) { + return fromAdventure((DoubleBinaryTag) other); + } else { + throw new IllegalArgumentException("Can't convert other of type " + other.getClass().getCanonicalName()); + } + } + + public static DoubleTag fromAdventure(DoubleBinaryTag other) { + return new DoubleTag(other); + } + + public static ShortTag fromAdventure(ShortBinaryTag other) { + return new ShortTag(other); + } + + public static FloatTag fromAdventure(FloatBinaryTag other) { + return new FloatTag(other); + } + + public static CompoundTag fromAdventure(CompoundBinaryTag other) { + return new CompoundTag(other); + } + + public static ByteArrayTag fromAdventure(ByteArrayBinaryTag other) { + return new ByteArrayTag(other); + } + + public static ByteTag fromAdventure(ByteBinaryTag other) { + return new ByteTag(other); + } + + public static IntTag fromAdventure(IntBinaryTag other) { + return new IntTag(other); + } + + public static StringTag fromAdventure(StringBinaryTag other) { + return new StringTag(other); + } + + public static LongArrayTag fromAdventure(LongArrayBinaryTag other) { + return new LongArrayTag(other); + } + + public static LongTag fromAdventure(LongBinaryTag other) { + return new LongTag(other); + } + + public static EndTag fromAdventure() { + return new EndTag(); + } + + public static ListTag fromAdventure(ListBinaryTag other) { + return new ListTag(other); + } + + public static IntArrayTag fromAdventure(IntArrayBinaryTag other) { + return new IntArrayTag(other); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java index 78a9d7521b..6c511e63c3 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java @@ -19,14 +19,19 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; + import java.util.Locale; /** * The {@code TAG_Byte_Array} tag. + * + * @deprecated Use {@link ByteArrayBinaryTag}. */ +@Deprecated public final class ByteArrayTag extends Tag { - private final byte[] value; + private final ByteArrayBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -35,25 +40,21 @@ public final class ByteArrayTag extends Tag { */ public ByteArrayTag(byte[] value) { super(); - this.value = value; + this.innerTag = ByteArrayBinaryTag.of(value); + } + + ByteArrayTag(ByteArrayBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override public byte[] getValue() { - return value; + return innerTag.value(); } @Override - public String toString() { - StringBuilder hex = new StringBuilder(); - for (byte b : value) { - String hexDigits = Integer.toHexString(b).toUpperCase(Locale.ROOT); - if (hexDigits.length() == 1) { - hex.append("0"); - } - hex.append(hexDigits).append(" "); - } - return "TAG_Byte_Array(" + hex + ")"; + public ByteArrayBinaryTag asBinaryTag() { + return innerTag; } - } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java index e7fe1cc407..834f1ba7e4 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; + /** * The {@code TAG_Byte} tag. + * + * @deprecated Use {@link ByteBinaryTag}. */ +@Deprecated public final class ByteTag extends Tag { - private final byte value; + private final ByteBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,21 @@ public final class ByteTag extends Tag { */ public ByteTag(byte value) { super(); - this.value = value; + this.innerTag = ByteBinaryTag.of(value); + } + + ByteTag(ByteBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override public Byte getValue() { - return value; + return innerTag.value(); } @Override - public String toString() { - return "TAG_Byte(" + value + ")"; + public ByteBinaryTag asBinaryTag() { + return innerTag; } - } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java index 3a382effec..c2e02b3585 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java @@ -19,14 +19,20 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; + import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Set; /** * The {@code TAG_Compound} tag. + * + * @deprecated Use {@link com.sk89q.worldedit.util.nbt.CompoundBinaryTag}. */ +@Deprecated public final class CompoundTag extends Tag { private final Map value; @@ -41,6 +47,15 @@ public CompoundTag(Map value) { this.value = Collections.unmodifiableMap(value); } + CompoundTag(CompoundBinaryTag adventureTag) { + Set tags = adventureTag.keySet(); + Map map = new HashMap<>(); + for (String tagName : tags) { + map.put(tagName, AdventureNBTConverter.fromAdventure(adventureTag.get(tagName))); + } + this.value = Collections.unmodifiableMap(map); + } + /** * Returns whether this compound tag contains the given key. * @@ -425,14 +440,11 @@ public String getString(String key) { } @Override - public String toString() { - StringBuilder bldr = new StringBuilder(); - bldr.append("TAG_Compound").append(": ").append(value.size()).append(" entries\r\n{\r\n"); - for (Map.Entry entry : value.entrySet()) { - bldr.append(" ").append(entry.getValue().toString().replaceAll("\r\n", "\r\n ")).append("\r\n"); + public CompoundBinaryTag asBinaryTag() { + CompoundBinaryTag.Builder builder = CompoundBinaryTag.builder(); + for (Map.Entry child : getValue().entrySet()) { + builder.put(child.getKey(), child.getValue().asBinaryTag()); } - bldr.append("}"); - return bldr.toString(); + return builder.build(); } - } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java index 7267a72e0a..941fe9fa71 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java @@ -26,7 +26,10 @@ /** * Helps create compound tags. + * + * @deprecated Use {@link com.sk89q.worldedit.util.nbt.CompoundBinaryTag.Builder}. */ +@Deprecated public class CompoundTagBuilder { private final Map entries; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java index b579308571..769cee761b 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.DoubleBinaryTag; + /** * The {@code TAG_Double} tag. + * + * @deprecated Use {@link DoubleBinaryTag}. */ +@Deprecated public final class DoubleTag extends Tag { - private final double value; + private final DoubleBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,22 @@ public final class DoubleTag extends Tag { */ public DoubleTag(double value) { super(); - this.value = value; + this.innerTag = DoubleBinaryTag.of(value); + } + + DoubleTag(DoubleBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public Double getValue() { - return value; + public DoubleBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_Double(" + value + ")"; + public Double getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java index c6fc635983..3f179e54fd 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/EndTag.java @@ -19,9 +19,14 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.EndBinaryTag; + /** * The {@code TAG_End} tag. + * + * @deprecated Use {@link com.sk89q.worldedit.util.nbt.EndBinaryTag}. */ +@Deprecated public final class EndTag extends Tag { @Override @@ -30,8 +35,7 @@ public Object getValue() { } @Override - public String toString() { - return "TAG_End"; + public EndBinaryTag asBinaryTag() { + return EndBinaryTag.get(); } - } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java index e1281ea131..2477caa93d 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.FloatBinaryTag; + /** * The {@code TAG_Float} tag. + * + * @deprecated Use {@link FloatBinaryTag}. */ +@Deprecated public final class FloatTag extends Tag { - private final float value; + private final FloatBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,22 @@ public final class FloatTag extends Tag { */ public FloatTag(float value) { super(); - this.value = value; + this.innerTag = FloatBinaryTag.of(value); + } + + FloatTag(FloatBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public Float getValue() { - return value; + public FloatBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_Float(" + value + ")"; + public Float getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java index 39c6217359..1146ac1e66 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java @@ -19,16 +19,19 @@ package com.sk89q.jnbt; -import java.util.Locale; +import com.sk89q.worldedit.util.nbt.IntArrayBinaryTag; import static com.google.common.base.Preconditions.checkNotNull; /** * The {@code TAG_Int_Array} tag. + * + * @deprecated Use {@link IntArrayBinaryTag}. */ +@Deprecated public final class IntArrayTag extends Tag { - private final int[] value; + private final IntArrayBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -38,25 +41,22 @@ public final class IntArrayTag extends Tag { public IntArrayTag(int[] value) { super(); checkNotNull(value); - this.value = value; + this.innerTag = IntArrayBinaryTag.of(value); + } + + IntArrayTag(IntArrayBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public int[] getValue() { - return value; + public IntArrayBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - StringBuilder hex = new StringBuilder(); - for (int b : value) { - String hexDigits = Integer.toHexString(b).toUpperCase(Locale.ROOT); - if (hexDigits.length() == 1) { - hex.append("0"); - } - hex.append(hexDigits).append(" "); - } - return "TAG_Int_Array(" + hex + ")"; + public int[] getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java index 359cf85b9b..8583579c03 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; + /** * The {@code TAG_Int} tag. + * + * @deprecated Use {@link IntBinaryTag}. */ +@Deprecated public final class IntTag extends Tag { - private final int value; + private final IntBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,22 @@ public final class IntTag extends Tag { */ public IntTag(int value) { super(); - this.value = value; + this.innerTag = IntBinaryTag.of(value); + } + + IntTag(IntBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public Integer getValue() { - return value; + public IntBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_Int(" + value + ")"; + public Integer getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java index 8134a3f74e..39023d0226 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java @@ -19,6 +19,10 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; + +import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.annotation.Nullable; @@ -27,7 +31,10 @@ /** * The {@code TAG_List} tag. + * + * @deprecated Use {@link com.sk89q.worldedit.util.nbt.ListBinaryTag}. */ +@Deprecated public final class ListTag extends Tag { private final Class type; @@ -46,6 +53,33 @@ public ListTag(Class type, List value) { this.value = Collections.unmodifiableList(value); } + ListTag(ListBinaryTag adventureTag) { + super(); + List list = new ArrayList<>(); + Class listClass = StringTag.class; + int tags = adventureTag.size(); + for (int i = 0; i < tags; i++) { + Tag child = AdventureNBTConverter.fromAdventure(adventureTag.get(0)); + list.add(child); + listClass = child.getClass(); + } + + this.type = listClass; + this.value = Collections.unmodifiableList(list); + } + + @Override + public ListBinaryTag asBinaryTag() { + ListBinaryTag.Builder builder = ListBinaryTag.builder(); + for (Tag child : getValue()) { + if (child instanceof EndTag) { + continue; + } + builder.add(child.asBinaryTag()); + } + return builder.build(); + } + /** * Gets the type of item in this list. * @@ -415,15 +449,4 @@ public String getString(int index) { } } - @Override - public String toString() { - StringBuilder bldr = new StringBuilder(); - bldr.append("TAG_List").append(": ").append(value.size()).append(" entries of type ").append(NBTUtils.getTypeName(type)).append("\r\n{\r\n"); - for (Tag t : value) { - bldr.append(" ").append(t.toString().replaceAll("\r\n", "\r\n ")).append("\r\n"); - } - bldr.append("}"); - return bldr.toString(); - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java index b98c667e50..ad3a6e25cf 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java @@ -28,7 +28,10 @@ /** * Helps create list tags. + * + * @deprecated Use {@link com.sk89q.worldedit.util.nbt.ListBinaryTag.Builder}. */ +@Deprecated public class ListTagBuilder { private final Class type; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java index c2e9688d08..7ca5df0dc2 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java @@ -19,16 +19,19 @@ package com.sk89q.jnbt; -import java.util.Locale; +import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; import static com.google.common.base.Preconditions.checkNotNull; /** * The {@code TAG_Long_Array} tag. + * + * @deprecated Use {@link LongArrayBinaryTag}. */ +@Deprecated public class LongArrayTag extends Tag { - private final long[] value; + private final LongArrayBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -38,25 +41,22 @@ public class LongArrayTag extends Tag { public LongArrayTag(long[] value) { super(); checkNotNull(value); - this.value = value; + this.innerTag = LongArrayBinaryTag.of(value); + } + + LongArrayTag(LongArrayBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public long[] getValue() { - return value; + public LongArrayBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - StringBuilder hex = new StringBuilder(); - for (long b : value) { - String hexDigits = Long.toHexString(b).toUpperCase(Locale.ROOT); - if (hexDigits.length() == 1) { - hex.append("0"); - } - hex.append(hexDigits).append(" "); - } - return "TAG_Long_Array(" + hex + ")"; + public long[] getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java index 8f894520a2..aa7e74f10d 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.LongBinaryTag; + /** * The {@code TAG_Long} tag. + * + * @deprecated Use {@link LongBinaryTag}. */ +@Deprecated public final class LongTag extends Tag { - private final long value; + private final LongBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,22 @@ public final class LongTag extends Tag { */ public LongTag(long value) { super(); - this.value = value; + this.innerTag = LongBinaryTag.of(value); + } + + LongTag(LongBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public Long getValue() { - return value; + public LongBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_Long(" + value + ")"; + public Long getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java index db6689cb52..9d65f5e79d 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java @@ -20,13 +20,17 @@ package com.sk89q.jnbt; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; /** * A class which holds constant values. + * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ +@Deprecated public final class NBTConstants { - public static final Charset CHARSET = Charset.forName("UTF-8"); + public static final Charset CHARSET = StandardCharsets.UTF_8; public static final int TYPE_END = 0; public static final int TYPE_BYTE = 1; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java index 35a0bb62e1..1b41180851 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java @@ -38,7 +38,10 @@ * found at * https://minecraft.gamepedia.com/NBT_format. *

+ * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ +@Deprecated public final class NBTInputStream implements Closeable { private final DataInputStream is; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java index 98ccb72db0..ae92946ae0 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java @@ -37,7 +37,10 @@ * found at * https://minecraft.gamepedia.com/NBT_format. *

+ * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ +@Deprecated public final class NBTOutputStream implements Closeable { /** diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java index c6e53e598c..52d21ca451 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java @@ -29,7 +29,9 @@ /** * A class which contains NBT-related utility methods. * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ +@Deprecated public final class NBTUtils { /** @@ -72,7 +74,7 @@ public static String getTypeName(Class clazz) { } else if (clazz.equals(LongArrayTag.class)) { return "TAG_Long_Array"; } else { - throw new IllegalArgumentException("Invalid tag classs (" + throw new IllegalArgumentException("Invalid tag class (" + clazz.getName() + ")."); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java index c7089e3f48..80742783c8 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NamedTag.java @@ -23,7 +23,10 @@ /** * A tag that has a name. + * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ +@Deprecated public class NamedTag { private final String name; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java index f8224ab0ed..486ae69a67 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java @@ -19,12 +19,17 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.ShortBinaryTag; + /** * The {@code TAG_Short} tag. + * + * @deprecated Use {@link ShortBinaryTag}. */ +@Deprecated public final class ShortTag extends Tag { - private final short value; + private final ShortBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -33,17 +38,22 @@ public final class ShortTag extends Tag { */ public ShortTag(short value) { super(); - this.value = value; + this.innerTag = ShortBinaryTag.of(value); + } + + ShortTag(ShortBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public Short getValue() { - return value; + public ShortBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_Short(" + value + ")"; + public Short getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java index 3727f8d8e1..124f72f48b 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java @@ -19,14 +19,19 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; + import static com.google.common.base.Preconditions.checkNotNull; /** * The {@code TAG_String} tag. + * + * @deprecated Use {@link StringBinaryTag}. */ +@Deprecated public final class StringTag extends Tag { - private final String value; + private final StringBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -36,17 +41,22 @@ public final class StringTag extends Tag { public StringTag(String value) { super(); checkNotNull(value); - this.value = value; + this.innerTag = StringBinaryTag.of(value); + } + + StringTag(StringBinaryTag adventureTag) { + super(); + this.innerTag = adventureTag; } @Override - public String getValue() { - return value; + public StringBinaryTag asBinaryTag() { + return this.innerTag; } @Override - public String toString() { - return "TAG_String(" + value + ")"; + public String getValue() { + return innerTag.value(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java index a94b3b3bb3..5a3bd1d484 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/Tag.java @@ -19,10 +19,15 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.BinaryTagLike; + /** * Represents a NBT tag. + * + * @deprecated JNBT is being removed for adventure-nbt in WorldEdit 8. */ -public abstract class Tag { +@Deprecated +public abstract class Tag implements BinaryTagLike { /** * Gets the value of this tag. @@ -31,4 +36,8 @@ public abstract class Tag { */ public abstract Object getValue(); + @Override + public String toString() { + return asBinaryTag().toString(); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index 837db9498c..f83815225f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -23,8 +23,7 @@ import com.sk89q.jchronic.Options; import com.sk89q.jchronic.utils.Span; import com.sk89q.jchronic.utils.Time; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.Tag; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.worldedit.command.tool.BlockTool; import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.tool.InvalidToolBindException; @@ -51,6 +50,7 @@ import com.sk89q.worldedit.util.Countable; import com.sk89q.worldedit.util.SideEffectSet; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -803,13 +803,13 @@ public void updateServerCUI(Actor actor) { } BaseBlock block = ServerCUIHandler.createStructureBlock(player); - if (block != null) { + if (block != null && block.hasNbt()) { // If it's null, we don't need to do anything. The old was already removed. - Map tags = block.getNbtData().getValue(); + CompoundBinaryTag tags = block.getNbt(); BlockVector3 tempCuiTemporaryBlock = BlockVector3.at( - ((IntTag) tags.get("x")).getValue(), - ((IntTag) tags.get("y")).getValue(), - ((IntTag) tags.get("z")).getValue() + tags.getInt("x"), + tags.getInt("y"), + tags.getInt("z") ); if (cuiTemporaryBlock != null && !tempCuiTemporaryBlock.equals(cuiTemporaryBlock)) { // Update the existing block if it's the same location diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java index a365bc4b14..c6ad28b38d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java @@ -20,9 +20,13 @@ package com.sk89q.worldedit.blocks; import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.TagStringIO; import com.sk89q.worldedit.world.NbtValued; import com.sk89q.worldedit.world.item.ItemType; +import java.io.IOException; import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -37,7 +41,7 @@ public class BaseItem implements NbtValued { private ItemType itemType; @Nullable - private CompoundTag nbtData; + private CompoundBinaryTag nbtData; /** * Construct the object. @@ -49,13 +53,24 @@ public BaseItem(ItemType itemType) { this.itemType = itemType; } + /** + * Construct the object. + * + * @param itemType Type of the item + * @param nbtData NBT Compound tag + */ + @Deprecated + public BaseItem(ItemType itemType, CompoundTag nbtData) { + this(itemType, checkNotNull(nbtData).asBinaryTag()); + } + /** * Construct the object. * * @param itemType Type of the item * @param tag NBT Compound tag */ - public BaseItem(ItemType itemType, @Nullable CompoundTag tag) { + public BaseItem(ItemType itemType, @Nullable CompoundBinaryTag tag) { checkNotNull(itemType); this.itemType = itemType; this.nbtData = tag; @@ -80,18 +95,32 @@ public void setType(ItemType itemType) { } @Override - public boolean hasNbtData() { + public boolean hasNbt() { return this.nbtData != null; } @Nullable @Override - public CompoundTag getNbtData() { + public CompoundBinaryTag getNbt() { return this.nbtData; } @Override - public void setNbtData(@Nullable CompoundTag nbtData) { + public void setNbt(@Nullable CompoundBinaryTag nbtData) { this.nbtData = nbtData; } + + @Override + public String toString() { + String nbtString = ""; + if (hasNbt()) { + try { + nbtString = TagStringIO.get().asString(nbtData); + } catch (IOException e) { + WorldEdit.logger.error("Failed to parse NBT of Item", e); + } + } + + return getType().getId() + nbtString; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java index 10655963a0..461dc31dfc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.item.ItemType; /** @@ -60,12 +61,26 @@ public BaseItemStack(ItemType itemType, int amount) { * @param id The item type * @param tag Tag value * @param amount amount in the stack + * @deprecated Use {@link #BaseItemStack(ItemType, CompoundBinaryTag, int)} */ + @Deprecated public BaseItemStack(ItemType id, CompoundTag tag, int amount) { super(id, tag); this.amount = amount; } + /** + * Construct the object. + * + * @param id The item type + * @param tag Tag value + * @param amount amount in the stack + */ + public BaseItemStack(ItemType id, CompoundBinaryTag tag, int amount) { + super(id, tag); + this.amount = amount; + } + /** * Get the number of items in the stack. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java index 393023df81..ef26da7b80 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.entity; import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.NbtValued; import com.sk89q.worldedit.world.entity.EntityType; @@ -43,19 +44,33 @@ public class BaseEntity implements NbtValued { private final EntityType type; - private CompoundTag nbtData; + @Nullable + private CompoundBinaryTag nbtData; /** * Create a new base entity. * * @param type the entity type * @param nbtData NBT data + * @deprecated Use {@link BaseEntity#BaseEntity(EntityType, CompoundBinaryTag)} */ + @Deprecated public BaseEntity(EntityType type, CompoundTag nbtData) { this(type); setNbtData(nbtData); } + /** + * Create a new base entity. + * + * @param type the entity type + * @param nbtData NBT data + */ + public BaseEntity(EntityType type, CompoundBinaryTag nbtData) { + this(type); + setNbt(nbtData); + } + /** * Create a new base entity with no NBT data. * @@ -73,22 +88,22 @@ public BaseEntity(EntityType type) { public BaseEntity(BaseEntity other) { checkNotNull(other); this.type = other.getType(); - setNbtData(other.getNbtData()); + setNbt(other.getNbt()); } @Override - public boolean hasNbtData() { + public boolean hasNbt() { return true; } @Nullable @Override - public CompoundTag getNbtData() { + public CompoundBinaryTag getNbt() { return nbtData; } @Override - public void setNbtData(@Nullable CompoundTag nbtData) { + public void setNbt(@Nullable CompoundBinaryTag nbtData) { this.nbtData = nbtData; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java index 186fff5560..2a9d3bf8fc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java @@ -32,10 +32,13 @@ import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.TagStringIO; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; +import java.io.IOException; import java.util.Locale; import java.util.stream.Stream; @@ -52,44 +55,87 @@ public Stream getSuggestions(String input) { @Override public BaseItem parseFromInput(String input, ParserContext context) throws InputParseException { + ItemType itemType; + CompoundBinaryTag itemNbtData = null; + BaseItem item = null; + // Legacy matcher if (context.isTryingLegacy()) { try { String[] split = input.split(":"); - ItemType type; if (split.length == 0) { throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.invalid-colon")); } else if (split.length == 1) { - type = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0])); + itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0])); } else { - type = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1])); + itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1])); } - if (type != null) { - item = new BaseItem(type); + if (itemType != null) { + item = new BaseItem(itemType); } } catch (NumberFormatException ignored) { } } - if ("hand".equalsIgnoreCase(input)) { - return getItemInHand(context.requireActor(), HandSide.MAIN_HAND); - } else if ("offhand".equalsIgnoreCase(input)) { - return getItemInHand(context.requireActor(), HandSide.OFF_HAND); - } - if (item == null) { - ItemType type = ItemTypes.get(input.toLowerCase(Locale.ROOT)); - if (type != null) { - item = new BaseItem(type); + String typeString; + String nbtString = null; + int nbtStart = input.indexOf('{'); + + if (nbtStart == -1) { + typeString = input; + } else { + typeString = input.substring(0, nbtStart); + if (nbtStart + 1 >= input.length()) { + throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.hanging-lbracket", TextComponent.of(nbtStart))); + } + int stateEnd = input.lastIndexOf('}'); + if (stateEnd < 0) { + throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.missing-rbracket")); + } + nbtString = input.substring(nbtStart); } - } - if (item == null) { - throw new NoMatchException(TranslatableComponent.of("worldedit.error.no-match", TextComponent.of(input))); - } else { - return item; + if ("hand".equalsIgnoreCase(typeString)) { + BaseItemStack heldItem = getItemInHand(context.requireActor(), HandSide.MAIN_HAND); + itemType = heldItem.getType(); + itemNbtData = heldItem.getNbt(); + } else if ("offhand".equalsIgnoreCase(typeString)) { + BaseItemStack heldItem = getItemInHand(context.requireActor(), HandSide.OFF_HAND); + itemType = heldItem.getType(); + itemNbtData = heldItem.getNbt(); + } else { + itemType = ItemTypes.get(typeString.toLowerCase(Locale.ROOT)); + } + + if (itemType == null) { + throw new NoMatchException(TranslatableComponent.of("worldedit.error.unknown-item", TextComponent.of(input))); + } + + if (nbtString != null) { + try { + CompoundBinaryTag otherTag = TagStringIO.get().asCompound(nbtString); + if (itemNbtData == null) { + itemNbtData = otherTag; + } else { + for (String key : otherTag.keySet()) { + itemNbtData.put(key, otherTag.get(key)); + } + } + } catch (IOException e) { + throw new NoMatchException(TranslatableComponent.of( + "worldedit.error.invalid-nbt", + TextComponent.of(input), + TextComponent.of(e.getMessage()) + )); + } + } + + item = new BaseItem(itemType, itemNbtData); } + + return item; } private BaseItemStack getItemInHand(Actor actor, HandSide handSide) throws InputParseException { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java index 2cb6b02c82..21c287cd79 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/world/SurvivalModeExtent.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.extent.AbstractDelegateExtent; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -95,7 +96,7 @@ public > boolean setBlock(BlockVector3 location, B } else { // Can't be an inlined check due to inconsistent generic return type if (stripNbt) { - return super.setBlock(location, block.toBaseBlock(null)); + return super.setBlock(location, block.toBaseBlock((CompoundBinaryTag) null)); } else { return super.setBlock(location, block); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java index 7f56aed565..56ae3ed10e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java @@ -19,8 +19,6 @@ package com.sk89q.worldedit.function.block; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.CompoundTagBuilder; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; import com.sk89q.worldedit.function.RegionFunction; @@ -30,6 +28,9 @@ import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.Direction.Flag; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import static com.google.common.base.Preconditions.checkNotNull; @@ -87,12 +88,13 @@ public boolean apply(BlockVector3 position) throws WorldEditException { * @return a new state or the existing one */ private BaseBlock transformNbtData(BaseBlock state) { - CompoundTag tag = state.getNbtData(); + CompoundBinaryTag tag = state.getNbt(); if (tag != null) { // Handle blocks which store their rotation in NBT - if (tag.containsKey("Rot")) { - int rot = tag.asInt("Rot"); + BinaryTag rotTag = tag.get("Rot"); + if (rotTag instanceof IntBinaryTag) { + int rot = ((IntBinaryTag) rotTag).value(); Direction direction = MCDirections.fromRotation(rot); @@ -101,11 +103,9 @@ private BaseBlock transformNbtData(BaseBlock state) { Direction newDirection = Direction.findClosest(vector, Flag.CARDINAL | Flag.ORDINAL | Flag.SECONDARY_ORDINAL); if (newDirection != null) { - CompoundTagBuilder builder = tag.createBuilder(); - - builder.putByte("Rot", (byte) MCDirections.toRotation(newDirection)); - - return state.toBaseBlock(builder.build()); + return state.toBaseBlock( + tag.putByte("Rot", (byte) MCDirections.toRotation(newDirection)) + ); } } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java index 591dcca399..1624254215 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java @@ -19,11 +19,6 @@ package com.sk89q.worldedit.internal.cui; -import com.sk89q.jnbt.ByteTag; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.StringTag; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; @@ -33,11 +28,13 @@ import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockTypes; -import java.util.HashMap; -import java.util.Map; import javax.annotation.Nullable; /** @@ -126,7 +123,7 @@ public static BaseBlock createStructureBlock(Player player) { int z = (int) (location.getZ() - (xz * Math.cos(Math.toRadians(rotX))) * 12); int y = Math.max(0, Math.min(Math.min(255, posY + 32), posY + 3)); - Map structureTag = new HashMap<>(); + CompoundBinaryTag.Builder structureTag = CompoundBinaryTag.builder(); posX -= x; posY -= y; @@ -137,25 +134,25 @@ public static BaseBlock createStructureBlock(Player player) { return null; } - structureTag.put("name", new StringTag("worldedit:" + player.getName())); - structureTag.put("author", new StringTag(player.getName())); - structureTag.put("metadata", new StringTag("")); - structureTag.put("x", new IntTag(x)); - structureTag.put("y", new IntTag(y)); - structureTag.put("z", new IntTag(z)); - structureTag.put("posX", new IntTag(posX)); - structureTag.put("posY", new IntTag(posY)); - structureTag.put("posZ", new IntTag(posZ)); - structureTag.put("sizeX", new IntTag(width)); - structureTag.put("sizeY", new IntTag(height)); - structureTag.put("sizeZ", new IntTag(length)); - structureTag.put("rotation", new StringTag("NONE")); - structureTag.put("mirror", new StringTag("NONE")); - structureTag.put("mode", new StringTag("SAVE")); - structureTag.put("ignoreEntities", new ByteTag((byte) 1)); - structureTag.put("showboundingbox", new ByteTag((byte) 1)); - structureTag.put("id", new StringTag(BlockTypes.STRUCTURE_BLOCK.getId())); - - return BlockTypes.STRUCTURE_BLOCK.getDefaultState().toBaseBlock(new CompoundTag(structureTag)); + structureTag.put("name", StringBinaryTag.of("worldedit:" + player.getName())); + structureTag.put("author", StringBinaryTag.of(player.getName())); + structureTag.put("metadata", StringBinaryTag.of("")); + structureTag.put("x", IntBinaryTag.of(x)); + structureTag.put("y", IntBinaryTag.of(y)); + structureTag.put("z", IntBinaryTag.of(z)); + structureTag.put("posX", IntBinaryTag.of(posX)); + structureTag.put("posY", IntBinaryTag.of(posY)); + structureTag.put("posZ", IntBinaryTag.of(posZ)); + structureTag.put("sizeX", IntBinaryTag.of(width)); + structureTag.put("sizeY", IntBinaryTag.of(height)); + structureTag.put("sizeZ", IntBinaryTag.of(length)); + structureTag.put("rotation", StringBinaryTag.of("NONE")); + structureTag.put("mirror", StringBinaryTag.of("NONE")); + structureTag.put("mode", StringBinaryTag.of("SAVE")); + structureTag.put("ignoreEntities", ByteBinaryTag.of((byte) 1)); + structureTag.put("showboundingbox", ByteBinaryTag.of((byte) 1)); + structureTag.put("id", StringBinaryTag.of(BlockTypes.STRUCTURE_BLOCK.getId())); + + return BlockTypes.STRUCTURE_BLOCK.getDefaultState().toBaseBlock(structureTag.build()); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java new file mode 100644 index 0000000000..17be01289b --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java @@ -0,0 +1,49 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util; + +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.world.storage.InvalidFormatException; + +public class NbtUtils { + + /** + * Get child tag of a NBT structure. + * + * @param tag the tag to read from + * @param key the key to look for + * @param expected the expected NBT class type + * @return child tag + * @throws InvalidFormatException if the format of the items is invalid + */ + public static T getChildTag(CompoundBinaryTag tag, String key, Class expected) throws InvalidFormatException { + BinaryTag childTag = tag.get(key); + if (childTag == null) { + throw new InvalidFormatException("Missing a \"" + key + "\" tag"); + } + + if (!expected.isInstance(childTag)) { + throw new InvalidFormatException(key + " tag is not of tag type " + expected.getName()); + } + return expected.cast(childTag); + } + +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java index ee571c6436..21d480d692 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java @@ -50,7 +50,7 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { * @return the internal ID, or {@link BlockStateIdAccess#invalidId()} if not useful */ private static int optimizedInternalId(BaseBlock block) { - if (block.hasNbtData()) { + if (block.hasNbt()) { return BlockStateIdAccess.invalidId(); } return BlockStateIdAccess.getBlockStateId(block.toImmutableState()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java index 86ea9b454b..b2f6ae5423 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java @@ -19,7 +19,11 @@ package com.sk89q.worldedit.world; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.internal.util.DeprecationUtil; +import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import javax.annotation.Nullable; @@ -35,8 +39,12 @@ public interface NbtValued { * must not return null if this method returns true. * * @return true if there is NBT data + * @deprecated See {@link #hasNbt()} */ - boolean hasNbtData(); + @Deprecated + default boolean hasNbtData() { + return hasNbt(); + } /** * Get the object's NBT data (tile entity data). The returned tag, if @@ -49,15 +57,78 @@ public interface NbtValued { * not return null.

* * @return compound tag, or null + * @deprecated See {@link #getNbt()} */ + @Deprecated @Nullable - CompoundTag getNbtData(); + default CompoundTag getNbtData() { + return AdventureNBTConverter.fromAdventure(getNbt()); + } /** * Set the object's NBT data (tile entity data). * * @param nbtData NBT data, or null if no data + * @deprecated See {@link #setNbt(CompoundBinaryTag)} */ - void setNbtData(@Nullable CompoundTag nbtData); + @Deprecated + default void setNbtData(@Nullable CompoundTag nbtData) { + setNbt(nbtData == null ? null : nbtData.asBinaryTag()); + } + + /** + * Returns whether the block contains NBT data. {@link #getNbt()} ()} + * must not return null if this method returns true. + * + * @return true if there is NBT data + */ + @NonAbstractForCompatibility( + delegateName = "hasNbtData", + delegateParams = { } + ) + default boolean hasNbt() { + DeprecationUtil.checkDelegatingOverride(getClass()); + + return hasNbtData(); + } + + /** + * Get the object's NBT data (tile entity data). The returned tag, if + * modified in any way, should be sent to {@link #setNbt(CompoundBinaryTag)} + * so that the instance knows of the changes. Making changes without + * calling {@link #setNbt(CompoundBinaryTag)} could have unintended + * consequences. + * + *

{@link #hasNbt()} must return true if and only if method does + * not return null.

+ * + * @return compound tag, or null + */ + @NonAbstractForCompatibility( + delegateName = "getNbtData", + delegateParams = { } + ) + @Nullable + default CompoundBinaryTag getNbt() { + DeprecationUtil.checkDelegatingOverride(getClass()); + + CompoundTag nbtData = getNbtData(); + return nbtData == null ? null : nbtData.asBinaryTag(); + } + + /** + * Set the object's NBT data (tile entity data). + * + * @param nbtData NBT data, or null if no data + */ + @NonAbstractForCompatibility( + delegateName = "setNbtData", + delegateParams = { CompoundTag.class } + ) + default void setNbt(@Nullable CompoundBinaryTag nbtData) { + DeprecationUtil.checkDelegatingOverride(getClass()); + + setNbtData(nbtData == null ? null : AdventureNBTConverter.fromAdventure(nbtData)); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java index a7d50f6b1c..a488f59057 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java @@ -20,11 +20,13 @@ package com.sk89q.worldedit.world.block; import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.StringTag; -import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.TagStringIO; +import java.io.IOException; import java.util.Map; import java.util.Objects; import javax.annotation.Nullable; @@ -44,7 +46,7 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { private final BlockState blockState; @Nullable - private final CompoundTag nbtData; + private final CompoundBinaryTag nbtData; /** * Construct a block with a state. @@ -62,7 +64,19 @@ protected BaseBlock(BlockState blockState) { * @param state The block state * @param nbtData NBT data, which must be provided */ + @Deprecated protected BaseBlock(BlockState state, CompoundTag nbtData) { + this(state, checkNotNull(nbtData).asBinaryTag()); + } + + + /** + * Construct a block with the given ID, data value and NBT data structure. + * + * @param state The block state + * @param nbtData NBT data, which must be provided + */ + protected BaseBlock(BlockState state, CompoundBinaryTag nbtData) { checkNotNull(nbtData); this.blockState = state; this.nbtData = nbtData; @@ -85,7 +99,7 @@ public BlockType getBlockType() { @Override public BaseBlock with(Property property, V value) { - return this.blockState.with(property, value).toBaseBlock(getNbtData()); + return this.blockState.with(property, value).toBaseBlock(getNbt()); } /** @@ -99,33 +113,28 @@ public V getState(Property property) { return this.blockState.getState(property); } - @Override - public boolean hasNbtData() { - return getNbtData() != null; - } - @Override public String getNbtId() { - CompoundTag nbtData = getNbtData(); + CompoundBinaryTag nbtData = this.nbtData; if (nbtData == null) { return ""; } - Tag idTag = nbtData.getValue().get("id"); - if (idTag instanceof StringTag) { - return ((StringTag) idTag).getValue(); - } else { - return ""; - } + return nbtData.getString("id"); + } + + @Override + public boolean hasNbt() { + return this.nbtData != null; } @Nullable @Override - public CompoundTag getNbtData() { + public CompoundBinaryTag getNbt() { return this.nbtData; } @Override - public void setNbtData(@Nullable CompoundTag nbtData) { + public void setNbt(@Nullable CompoundBinaryTag nbtData) { throw new UnsupportedOperationException("This class is immutable."); } @@ -135,7 +144,7 @@ public void setNbtData(@Nullable CompoundTag nbtData) { @Override public boolean equals(Object o) { if (!(o instanceof BaseBlock)) { - if (!hasNbtData() && o instanceof BlockStateHolder) { + if (!hasNbt() && o instanceof BlockStateHolder) { return Objects.equals(toImmutableState(), ((BlockStateHolder) o).toImmutableState()); } return false; @@ -143,7 +152,7 @@ public boolean equals(Object o) { final BaseBlock otherBlock = (BaseBlock) o; - return this.blockState.equalsFuzzy(otherBlock.blockState) && Objects.equals(getNbtData(), otherBlock.getNbtData()); + return this.blockState.equalsFuzzy(otherBlock.blockState) && Objects.equals(getNbt(), otherBlock.getNbt()); } /** @@ -167,8 +176,22 @@ public BaseBlock toBaseBlock() { return this; } + @Deprecated @Override public BaseBlock toBaseBlock(CompoundTag compoundTag) { + if (compoundTag == null) { + return this.blockState.toBaseBlock(); + } else if (compoundTag.asBinaryTag() == this.nbtData) { + // The above reference equality check is fine, as JNBT classes contain an internal + // Adventure reference. + return this; + } else { + return new BaseBlock(this.blockState, compoundTag); + } + } + + @Override + public BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { if (compoundTag == null) { return this.blockState.toBaseBlock(); } else if (compoundTag == this.nbtData) { @@ -181,16 +204,24 @@ public BaseBlock toBaseBlock(CompoundTag compoundTag) { @Override public int hashCode() { int ret = toImmutableState().hashCode() << 3; - if (hasNbtData()) { - ret += getNbtData().hashCode(); + if (hasNbt()) { + ret += getNbt().hashCode(); } return ret; } @Override public String toString() { - // TODO use a json serializer for the NBT data - return blockState.getAsString() + (hasNbtData() ? "{hasNbt}" : ""); + String nbtString = ""; + if (hasNbt()) { + try { + nbtString = TagStringIO.get().asString(getNbt()); + } catch (IOException e) { + WorldEdit.logger.error("Failed to parse NBT of Block", e); + } + } + + return blockState.getAsString() + nbtString; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java index fdbdd92d42..be4584b03b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import java.util.Collections; import java.util.Comparator; @@ -210,6 +211,7 @@ public BaseBlock toBaseBlock() { return this.emptyBaseBlock; } + @Deprecated @Override public BaseBlock toBaseBlock(CompoundTag compoundTag) { if (compoundTag == null) { @@ -218,6 +220,14 @@ public BaseBlock toBaseBlock(CompoundTag compoundTag) { return new BaseBlock(this, compoundTag); } + @Override + public BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { + if (compoundTag == null) { + return toBaseBlock(); + } + return new BaseBlock(this, compoundTag); + } + /** * Internal method used for creating the initial BlockState. * diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index 93aaa55ed4..875da7895d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -19,10 +19,12 @@ package com.sk89q.worldedit.world.block; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import java.util.Locale; import java.util.Map; @@ -88,9 +90,21 @@ public interface BlockStateHolder> extends Pattern * * @param compoundTag The NBT Data to apply * @return The BaseBlock + * @deprecated Use {@link BlockStateHolder#toBaseBlock(CompoundBinaryTag)}. */ + @Deprecated BaseBlock toBaseBlock(CompoundTag compoundTag); + /** + * Gets a {@link BaseBlock} from this BlockStateHolder. + * + * @param compoundTag The NBT Data to apply + * @return The BaseBlock + */ + default BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { + return toBaseBlock(AdventureNBTConverter.fromAdventure(compoundTag)); + } + @Override default BaseBlock applyBlock(BlockVector3 position) { return toBaseBlock(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java index dd8e407b94..8ecd71034d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java @@ -19,15 +19,16 @@ package com.sk89q.worldedit.world.chunk; -import com.sk89q.jnbt.ByteArrayTag; -import com.sk89q.jnbt.ByteTag; import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.NBTUtils; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.util.NbtUtils; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -36,63 +37,74 @@ import com.sk89q.worldedit.world.storage.InvalidFormatException; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.annotation.Nullable; public class AnvilChunk implements Chunk { - private final CompoundTag rootTag; + private final CompoundBinaryTag rootTag; private final byte[][] blocks; private final byte[][] blocksAdd; private final byte[][] data; private final int rootX; private final int rootZ; - private Map> tileEntities; + private Map tileEntities; + /** * Construct the chunk with a compound tag. * * @param tag the tag to read * @throws DataException on a data error + * @deprecated Use {@link #AnvilChunk(CompoundBinaryTag)} */ public AnvilChunk(CompoundTag tag) throws DataException { + this(tag.asBinaryTag()); + } + + /** + * Construct the chunk with a compound tag. + * + * @param tag the tag to read + * @throws DataException on a data error + */ + public AnvilChunk(CompoundBinaryTag tag) throws DataException { rootTag = tag; - rootX = NBTUtils.getChildTag(rootTag.getValue(), "xPos", IntTag.class).getValue(); - rootZ = NBTUtils.getChildTag(rootTag.getValue(), "zPos", IntTag.class).getValue(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); blocks = new byte[16][16 * 16 * 16]; blocksAdd = new byte[16][16 * 16 * 8]; data = new byte[16][16 * 16 * 8]; - List sections = NBTUtils.getChildTag(rootTag.getValue(), "Sections", ListTag.class).getValue(); + ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", ListBinaryTag.class); - for (Tag rawSectionTag : sections) { - if (!(rawSectionTag instanceof CompoundTag)) { + for (BinaryTag rawSectionTag : sections) { + if (!(rawSectionTag instanceof CompoundBinaryTag)) { continue; } - CompoundTag sectionTag = (CompoundTag) rawSectionTag; - if (!sectionTag.getValue().containsKey("Y")) { + CompoundBinaryTag sectionTag = (CompoundBinaryTag) rawSectionTag; + if (sectionTag.get("Y") == null) { continue; // Empty section. } - int y = NBTUtils.getChildTag(sectionTag.getValue(), "Y", ByteTag.class).getValue(); + int y = NbtUtils.getChildTag(sectionTag, "Y", ByteBinaryTag.class).value(); if (y < 0 || y >= 16) { continue; } - blocks[y] = NBTUtils.getChildTag(sectionTag.getValue(), - "Blocks", ByteArrayTag.class).getValue(); - data[y] = NBTUtils.getChildTag(sectionTag.getValue(), "Data", - ByteArrayTag.class).getValue(); + blocks[y] = NbtUtils.getChildTag(sectionTag, + "Blocks", ByteArrayBinaryTag.class).value(); + data[y] = NbtUtils.getChildTag(sectionTag, "Data", + ByteArrayBinaryTag.class).value(); // 4096 ID block support - if (sectionTag.getValue().containsKey("Add")) { - blocksAdd[y] = NBTUtils.getChildTag(sectionTag.getValue(), - "Add", ByteArrayTag.class).getValue(); + if (sectionTag.get("Add") != null) { + blocksAdd[y] = NbtUtils.getChildTag(sectionTag, + "Add", ByteArrayBinaryTag.class).value(); } } @@ -179,50 +191,49 @@ private int getBlockData(BlockVector3 position) throws DataException { * Used to load the tile entities. */ private void populateTileEntities() throws DataException { - List tags = NBTUtils.getChildTag(rootTag.getValue(), - "TileEntities", ListTag.class).getValue(); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); tileEntities = new HashMap<>(); - for (Tag tag : tags) { - if (!(tag instanceof CompoundTag)) { + for (BinaryTag tag : tags) { + if (!(tag instanceof CompoundBinaryTag)) { throw new InvalidFormatException("CompoundTag expected in TileEntities"); } - CompoundTag t = (CompoundTag) tag; + CompoundBinaryTag t = (CompoundBinaryTag) tag; int x = 0; int y = 0; int z = 0; - Map values = new HashMap<>(); + CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); - for (Map.Entry entry : t.getValue().entrySet()) { - switch (entry.getKey()) { + for (String key : t.keySet()) { + BinaryTag value = t.get(key); + switch (key) { case "x": - if (entry.getValue() instanceof IntTag) { - x = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + x = ((IntBinaryTag) value).value(); } break; case "y": - if (entry.getValue() instanceof IntTag) { - y = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + y = ((IntBinaryTag) value).value(); } break; case "z": - if (entry.getValue() instanceof IntTag) { - z = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + z = ((IntBinaryTag) value).value(); } break; default: break; } - values.put(entry.getKey(), entry.getValue()); + values.put(key, value); } - BlockVector3 vec = BlockVector3.at(x, y, z); - tileEntities.put(vec, values); + tileEntities.put(vec, values.build()); } } @@ -236,17 +247,17 @@ private void populateTileEntities() throws DataException { * @throws DataException thrown if there is a data error */ @Nullable - private CompoundTag getBlockTileEntity(BlockVector3 position) throws DataException { + private CompoundBinaryTag getBlockTileEntity(BlockVector3 position) throws DataException { if (tileEntities == null) { populateTileEntities(); } - Map values = tileEntities.get(position); + CompoundBinaryTag values = tileEntities.get(position); if (values == null) { return null; } - return new CompoundTag(values); + return values; } @Override @@ -259,7 +270,7 @@ public BaseBlock getBlock(BlockVector3 position) throws DataException { WorldEdit.logger.warn("Unknown legacy block " + id + ":" + data + " found when loading legacy anvil chunk."); return BlockTypes.AIR.getDefaultState().toBaseBlock(); } - CompoundTag tileEntity = getBlockTileEntity(position); + CompoundBinaryTag tileEntity = getBlockTileEntity(position); if (tileEntity != null) { return state.toBaseBlock(tileEntity); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java index 512649c45a..dd3bfdbe6d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java @@ -19,15 +19,17 @@ package com.sk89q.worldedit.world.chunk; -import com.sk89q.jnbt.ByteTag; import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.LongArrayTag; -import com.sk89q.jnbt.NBTUtils; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.NbtUtils; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagTypes; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -36,7 +38,6 @@ import com.sk89q.worldedit.world.storage.InvalidFormatException; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.annotation.Nullable; @@ -45,62 +46,75 @@ */ public class AnvilChunk13 implements Chunk { - private final CompoundTag rootTag; + private final CompoundBinaryTag rootTag; private final BlockState[][] blocks; private final int rootX; private final int rootZ; - private Map> tileEntities; + private Map tileEntities; + /** * Construct the chunk with a compound tag. * * @param tag the tag to read * @throws DataException on a data error + * @deprecated Use {@link #AnvilChunk13(CompoundBinaryTag)} */ + @Deprecated public AnvilChunk13(CompoundTag tag) throws DataException { + this(tag.asBinaryTag()); + } + + /** + * Construct the chunk with a compound tag. + * + * @param tag the tag to read + * @throws DataException on a data error + */ + public AnvilChunk13(CompoundBinaryTag tag) throws DataException { rootTag = tag; - rootX = NBTUtils.getChildTag(rootTag.getValue(), "xPos", IntTag.class).getValue(); - rootZ = NBTUtils.getChildTag(rootTag.getValue(), "zPos", IntTag.class).getValue(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); blocks = new BlockState[16][]; - List sections = NBTUtils.getChildTag(rootTag.getValue(), "Sections", ListTag.class).getValue(); + ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", ListBinaryTag.class); - for (Tag rawSectionTag : sections) { - if (!(rawSectionTag instanceof CompoundTag)) { + for (BinaryTag rawSectionTag : sections) { + if (!(rawSectionTag instanceof CompoundBinaryTag)) { continue; } - CompoundTag sectionTag = (CompoundTag) rawSectionTag; - if (!sectionTag.getValue().containsKey("Y")) { + CompoundBinaryTag sectionTag = (CompoundBinaryTag) rawSectionTag; + if (sectionTag.get("Y") == null) { continue; // Empty section. } - int y = NBTUtils.getChildTag(sectionTag.getValue(), "Y", ByteTag.class).getValue(); + int y = NbtUtils.getChildTag(sectionTag, "Y", ByteBinaryTag.class).value(); if (y < 0 || y >= 16) { continue; } // parse palette - List paletteEntries = sectionTag.getList("Palette", CompoundTag.class); + ListBinaryTag paletteEntries = sectionTag.getList("Palette", BinaryTagTypes.COMPOUND); int paletteSize = paletteEntries.size(); if (paletteSize == 0) { continue; } BlockState[] palette = new BlockState[paletteSize]; for (int paletteEntryId = 0; paletteEntryId < paletteSize; paletteEntryId++) { - CompoundTag paletteEntry = paletteEntries.get(paletteEntryId); + CompoundBinaryTag paletteEntry = (CompoundBinaryTag) paletteEntries.get(paletteEntryId); BlockType type = BlockTypes.get(paletteEntry.getString("Name")); if (type == null) { throw new InvalidFormatException("Invalid block type: " + paletteEntry.getString("Name")); } BlockState blockState = type.getDefaultState(); - if (paletteEntry.containsKey("Properties")) { - CompoundTag properties = NBTUtils.getChildTag(paletteEntry.getValue(), "Properties", CompoundTag.class); + if (paletteEntry.get("Properties") != null) { + CompoundBinaryTag properties = NbtUtils.getChildTag(paletteEntry, "Properties", CompoundBinaryTag.class); for (Property property : blockState.getStates().keySet()) { - if (properties.containsKey(property.getName())) { + if (properties.get(property.getName()) != null) { String value = properties.getString(property.getName()); try { blockState = getBlockStateWith(blockState, property, value); @@ -114,7 +128,7 @@ public AnvilChunk13(CompoundTag tag) throws DataException { } // parse block states - long[] blockStatesSerialized = NBTUtils.getChildTag(sectionTag.getValue(), "BlockStates", LongArrayTag.class).getValue(); + long[] blockStatesSerialized = NbtUtils.getChildTag(sectionTag, "BlockStates", LongArrayBinaryTag.class).value(); BlockState[] chunkSectionBlocks = new BlockState[16 * 16 * 16]; blocks[y] = chunkSectionBlocks; @@ -166,26 +180,24 @@ private BlockState getBlockStateWith(BlockState source, Property property */ private void populateTileEntities() throws DataException { tileEntities = new HashMap<>(); - if (!rootTag.getValue().containsKey("TileEntities")) { + if (rootTag.get("TileEntities") == null) { return; } - List tags = NBTUtils.getChildTag(rootTag.getValue(), - "TileEntities", ListTag.class).getValue(); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); - for (Tag tag : tags) { - if (!(tag instanceof CompoundTag)) { + for (BinaryTag tag : tags) { + if (!(tag instanceof CompoundBinaryTag)) { throw new InvalidFormatException("CompoundTag expected in TileEntities"); } - CompoundTag t = (CompoundTag) tag; + CompoundBinaryTag t = (CompoundBinaryTag) tag; - Map values = new HashMap<>(t.getValue()); - int x = ((IntTag) values.get("x")).getValue(); - int y = ((IntTag) values.get("y")).getValue(); - int z = ((IntTag) values.get("z")).getValue(); + int x = ((IntBinaryTag) t.get("x")).value(); + int y = ((IntBinaryTag) t.get("y")).value(); + int z = ((IntBinaryTag) t.get("z")).value(); BlockVector3 vec = BlockVector3.at(x, y, z); - tileEntities.put(vec, values); + tileEntities.put(vec, t); } } @@ -199,17 +211,17 @@ private void populateTileEntities() throws DataException { * @throws DataException thrown if there is a data error */ @Nullable - private CompoundTag getBlockTileEntity(BlockVector3 position) throws DataException { + private CompoundBinaryTag getBlockTileEntity(BlockVector3 position) throws DataException { if (tileEntities == null) { populateTileEntities(); } - Map values = tileEntities.get(position); + CompoundBinaryTag values = tileEntities.get(position); if (values == null) { return null; } - return new CompoundTag(values); + return values; } @Override @@ -228,7 +240,7 @@ public BaseBlock getBlock(BlockVector3 position) throws DataException { BlockState[] sectionBlocks = blocks[section]; BlockState state = sectionBlocks != null ? sectionBlocks[(yIndex << 8) | (z << 4) | x] : BlockTypes.AIR.getDefaultState(); - CompoundTag tileEntity = getBlockTileEntity(position); + CompoundBinaryTag tileEntity = getBlockTileEntity(position); if (tileEntity != null) { return state.toBaseBlock(tileEntity); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java index bd9d5e08a5..13e69458ae 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk16.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.world.chunk; import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.storage.InvalidFormatException; @@ -34,11 +35,23 @@ public class AnvilChunk16 extends AnvilChunk13 { * * @param tag the tag to read * @throws DataException on a data error + * @deprecated Use {@link #AnvilChunk16(CompoundBinaryTag)} */ + @Deprecated public AnvilChunk16(CompoundTag tag) throws DataException { super(tag); } + /** + * Construct the chunk with a compound tag. + * + * @param tag the tag to read + * @throws DataException on a data error + */ + public AnvilChunk16(CompoundBinaryTag tag) throws DataException { + super(tag); + } + @Override protected void readBlockStates(BlockState[] palette, long[] blockStatesSerialized, BlockState[] chunkSectionBlocks) throws InvalidFormatException { PackedIntArrayReader reader = new PackedIntArrayReader(blockStatesSerialized); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java index 8f5665c449..fa4288885b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java @@ -19,14 +19,15 @@ package com.sk89q.worldedit.world.chunk; -import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.NBTUtils; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.util.NbtUtils; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -35,7 +36,6 @@ import com.sk89q.worldedit.world.storage.InvalidFormatException; import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -43,27 +43,40 @@ */ public class OldChunk implements Chunk { - private final CompoundTag rootTag; + private final CompoundBinaryTag rootTag; private final byte[] blocks; private final byte[] data; private final int rootX; private final int rootZ; - private Map> tileEntities; + private Map tileEntities; + /** * Construct the chunk with a compound tag. * * @param tag the tag * @throws DataException if there is an error getting the chunk data + * @deprecated Use {@link #OldChunk(CompoundBinaryTag)} */ + @Deprecated public OldChunk(CompoundTag tag) throws DataException { + this(tag.asBinaryTag()); + } + + /** + * Construct the chunk with a compound tag. + * + * @param tag the tag + * @throws DataException if there is an error getting the chunk data + */ + public OldChunk(CompoundBinaryTag tag) throws DataException { rootTag = tag; - blocks = NBTUtils.getChildTag(rootTag.getValue(), "Blocks", ByteArrayTag.class).getValue(); - data = NBTUtils.getChildTag(rootTag.getValue(), "Data", ByteArrayTag.class).getValue(); - rootX = NBTUtils.getChildTag(rootTag.getValue(), "xPos", IntTag.class).getValue(); - rootZ = NBTUtils.getChildTag(rootTag.getValue(), "zPos", IntTag.class).getValue(); + blocks = NbtUtils.getChildTag(rootTag, "Blocks", ByteArrayBinaryTag.class).value(); + data = NbtUtils.getChildTag(rootTag, "Data", ByteArrayBinaryTag.class).value(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); int size = 16 * 16 * 128; if (blocks.length != size) { @@ -83,51 +96,50 @@ public OldChunk(CompoundTag tag) throws DataException { * @throws DataException if there is an error getting the chunk data */ private void populateTileEntities() throws DataException { - List tags = NBTUtils.getChildTag( - rootTag.getValue(), "TileEntities", ListTag.class) - .getValue(); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); tileEntities = new HashMap<>(); - for (Tag tag : tags) { - if (!(tag instanceof CompoundTag)) { + for (BinaryTag tag : tags) { + if (!(tag instanceof CompoundBinaryTag)) { throw new InvalidFormatException("CompoundTag expected in TileEntities"); } - CompoundTag t = (CompoundTag) tag; + CompoundBinaryTag t = (CompoundBinaryTag) tag; int x = 0; int y = 0; int z = 0; - Map values = new HashMap<>(); + CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); - for (Map.Entry entry : t.getValue().entrySet()) { - switch (entry.getKey()) { + for (String key : t.keySet()) { + BinaryTag value = t.get(key); + switch (key) { case "x": - if (entry.getValue() instanceof IntTag) { - x = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + x = ((IntBinaryTag) value).value(); } break; case "y": - if (entry.getValue() instanceof IntTag) { - y = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + y = ((IntBinaryTag) value).value(); } break; case "z": - if (entry.getValue() instanceof IntTag) { - z = ((IntTag) entry.getValue()).getValue(); + if (value instanceof IntBinaryTag) { + z = ((IntBinaryTag) value).value(); } break; default: break; } - values.put(entry.getKey(), entry.getValue()); + values.put(key, value); } BlockVector3 vec = BlockVector3.at(x, y, z); - tileEntities.put(vec, values); + tileEntities.put(vec, values.build()); } } @@ -140,16 +152,16 @@ private void populateTileEntities() throws DataException { * @return a tag * @throws DataException if there is an error getting the chunk data */ - private CompoundTag getBlockTileEntity(BlockVector3 position) throws DataException { + private CompoundBinaryTag getBlockTileEntity(BlockVector3 position) throws DataException { if (tileEntities == null) { populateTileEntities(); } - Map values = tileEntities.get(position); + CompoundBinaryTag values = tileEntities.get(position); if (values == null) { return null; } - return new CompoundTag(values); + return values; } @Override @@ -189,7 +201,7 @@ public BaseBlock getBlock(BlockVector3 position) throws DataException { return BlockTypes.AIR.getDefaultState().toBaseBlock(); } - CompoundTag tileEntity = getBlockTileEntity(position); + CompoundBinaryTag tileEntity = getBlockTileEntity(position); if (tileEntity != null) { return state.toBaseBlock(tileEntity); diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index 2ed98270c1..a48412d5d7 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -331,6 +331,7 @@ "worldedit.error.invalid-number.matches": "Number expected; string \"{0}\" given.", "worldedit.error.incomplete-region": "Make a region selection first.", "worldedit.error.unknown-block": "Block name '{0}' was not recognized.", + "worldedit.error.unknown-item": "Item name '{0}' was not recognized.", "worldedit.error.unknown-entity": "Entity name '{0}' was not recognized.", "worldedit.error.unknown-mob": "Mob name '{0}' was not recognized.", "worldedit.error.unknown-biome": "Biome name '{0}' was not recognized.", @@ -372,6 +373,7 @@ "worldedit.error.parser.missing-random-type": "Missing the type after the % symbol for '{0}'", "worldedit.error.parser.clipboard.missing-coordinates": "Clipboard offset needs x,y,z coordinates.", "worldedit.error.parser.player-only": "Input '{0}' requires a player!", + "worldedit.error.parser.invalid-nbt": "Invalid NBT Data in input: '{0}'. Error: {1}", "worldedit.error.disabled": "This functionality is disabled (see WorldEdit configuration).", "worldedit.error.unknown": "Unknown error occurred: {0}", "worldedit.error.missing-extent": "No Extent is known", diff --git a/worldedit-libs/core/build.gradle.kts b/worldedit-libs/core/build.gradle.kts index d669216d6d..26fdba8be4 100644 --- a/worldedit-libs/core/build.gradle.kts +++ b/worldedit-libs/core/build.gradle.kts @@ -13,4 +13,5 @@ dependencies { "shade"("org.enginehub.piston:core:${Versions.PISTON}") "shade"("org.enginehub.piston.core-ap:runtime:${Versions.PISTON}") "shade"("org.enginehub.piston:default-impl:${Versions.PISTON}") + "shade"("net.kyori:adventure-nbt:4.4.0") } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java index c37535160c..540808475d 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java @@ -168,7 +168,7 @@ public > boolean setBlock(BlockVector3 position, B snapshot.restore(true, notifyAndLight ? BlockChangeFlags.ALL : BlockChangeFlags.NONE); // Create the TileEntity - if (block instanceof BaseBlock && ((BaseBlock) block).hasNbtData()) { + if (block instanceof BaseBlock && ((BaseBlock) block).hasNbt()) { // Kill the old TileEntity world.getTileEntity(pos).ifPresent(tileEntity -> applyTileEntityData(tileEntity, (BaseBlock) block)); } @@ -301,7 +301,7 @@ public Entity createEntity(Location location, BaseEntity entity) { Vector3d pos = new Vector3d(location.getX(), location.getY(), location.getZ()); org.spongepowered.api.entity.Entity newEnt = world.createEntity(entityType, pos); - if (entity.hasNbtData()) { + if (entity.hasNbt()) { applyEntityData(newEnt, entity); } From 85c150e017fb79d93e903ab72c0b5789efddd96f Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 6 Feb 2021 02:51:44 -0800 Subject: [PATCH 040/813] =?UTF-8?q?assorted=20changes=E2=84=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/sk89q/jnbt/NBTInputStream.java | 120 +-------- .../java/com/sk89q/jnbt/NBTOutputStream.java | 239 +----------------- 2 files changed, 17 insertions(+), 342 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java index 1b41180851..3c9d701e9e 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTInputStream.java @@ -19,13 +19,14 @@ package com.sk89q.jnbt; +import com.sk89q.worldedit.util.nbt.BinaryTagIO; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; + import java.io.Closeable; +import java.io.DataInput; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; import java.util.Map; /** @@ -63,115 +64,10 @@ public NBTInputStream(InputStream is) { * @throws IOException if an I/O error occurs. */ public NamedTag readNamedTag() throws IOException { - return readNamedTag(0); - } - - /** - * Reads an NBT from the stream. - * - * @param depth the depth of this tag - * @return The tag that was read. - * @throws IOException if an I/O error occurs. - */ - private NamedTag readNamedTag(int depth) throws IOException { - int type = is.readByte() & 0xFF; - - String name; - if (type != NBTConstants.TYPE_END) { - int nameLength = is.readShort() & 0xFFFF; - byte[] nameBytes = new byte[nameLength]; - is.readFully(nameBytes); - name = new String(nameBytes, NBTConstants.CHARSET); - } else { - name = ""; - } - - return new NamedTag(name, readTagPayload(type, depth)); - } - - /** - * Reads the payload of a tag given the type. - * - * @param type the type - * @param depth the depth - * @return the tag - * @throws IOException if an I/O error occurs. - */ - private Tag readTagPayload(int type, int depth) throws IOException { - switch (type) { - case NBTConstants.TYPE_END: - if (depth == 0) { - throw new IOException( - "TAG_End found without a TAG_Compound/TAG_List tag preceding it."); - } else { - return new EndTag(); - } - case NBTConstants.TYPE_BYTE: - return new ByteTag(is.readByte()); - case NBTConstants.TYPE_SHORT: - return new ShortTag(is.readShort()); - case NBTConstants.TYPE_INT: - return new IntTag(is.readInt()); - case NBTConstants.TYPE_LONG: - return new LongTag(is.readLong()); - case NBTConstants.TYPE_FLOAT: - return new FloatTag(is.readFloat()); - case NBTConstants.TYPE_DOUBLE: - return new DoubleTag(is.readDouble()); - case NBTConstants.TYPE_BYTE_ARRAY: - int length = is.readInt(); - byte[] bytes = new byte[length]; - is.readFully(bytes); - return new ByteArrayTag(bytes); - case NBTConstants.TYPE_STRING: - length = is.readShort(); - bytes = new byte[length]; - is.readFully(bytes); - return new StringTag(new String(bytes, NBTConstants.CHARSET)); - case NBTConstants.TYPE_LIST: - int childType = is.readByte(); - length = is.readInt(); - - List tagList = new ArrayList<>(); - for (int i = 0; i < length; ++i) { - Tag tag = readTagPayload(childType, depth + 1); - if (tag instanceof EndTag) { - throw new IOException("TAG_End not permitted in a list."); - } - tagList.add(tag); - } - - return new ListTag(NBTUtils.getTypeClass(childType), tagList); - case NBTConstants.TYPE_COMPOUND: - Map tagMap = new HashMap<>(); - while (true) { - NamedTag namedTag = readNamedTag(depth + 1); - Tag tag = namedTag.getTag(); - if (tag instanceof EndTag) { - break; - } else { - tagMap.put(namedTag.getName(), tag); - } - } - - return new CompoundTag(tagMap); - case NBTConstants.TYPE_INT_ARRAY: - length = is.readInt(); - int[] data = new int[length]; - for (int i = 0; i < length; i++) { - data[i] = is.readInt(); - } - return new IntArrayTag(data); - case NBTConstants.TYPE_LONG_ARRAY: - length = is.readInt(); - long[] longData = new long[length]; - for (int i = 0; i < length; i++) { - longData[i] = is.readLong(); - } - return new LongArrayTag(longData); - default: - throw new IOException("Invalid tag type: " + type + "."); - } + Map.Entry named = BinaryTagIO.reader().readNamed( + (DataInput) this.is + ); + return new NamedTag(named.getKey(), new CompoundTag(named.getValue())); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java index ae92946ae0..59fc92bc31 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTOutputStream.java @@ -19,7 +19,12 @@ package com.sk89q.jnbt; +import com.google.common.collect.Maps; +import com.sk89q.worldedit.util.nbt.BinaryTagIO; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; + import java.io.Closeable; +import java.io.DataOutput; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -70,236 +75,10 @@ public NBTOutputStream(OutputStream os) throws IOException { * if an I/O error occurs. */ public void writeNamedTag(String name, Tag tag) throws IOException { - checkNotNull(name); - checkNotNull(tag); - - int type = NBTUtils.getTypeCode(tag.getClass()); - byte[] nameBytes = name.getBytes(NBTConstants.CHARSET); - - os.writeByte(type); - os.writeShort(nameBytes.length); - os.write(nameBytes); - - if (type == NBTConstants.TYPE_END) { - throw new IOException("Named TAG_End not permitted."); - } - - writeTagPayload(tag); - } - - /** - * Writes tag payload. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeTagPayload(Tag tag) throws IOException { - int type = NBTUtils.getTypeCode(tag.getClass()); - switch (type) { - case NBTConstants.TYPE_END: - writeEndTagPayload((EndTag) tag); - break; - case NBTConstants.TYPE_BYTE: - writeByteTagPayload((ByteTag) tag); - break; - case NBTConstants.TYPE_SHORT: - writeShortTagPayload((ShortTag) tag); - break; - case NBTConstants.TYPE_INT: - writeIntTagPayload((IntTag) tag); - break; - case NBTConstants.TYPE_LONG: - writeLongTagPayload((LongTag) tag); - break; - case NBTConstants.TYPE_FLOAT: - writeFloatTagPayload((FloatTag) tag); - break; - case NBTConstants.TYPE_DOUBLE: - writeDoubleTagPayload((DoubleTag) tag); - break; - case NBTConstants.TYPE_BYTE_ARRAY: - writeByteArrayTagPayload((ByteArrayTag) tag); - break; - case NBTConstants.TYPE_STRING: - writeStringTagPayload((StringTag) tag); - break; - case NBTConstants.TYPE_LIST: - writeListTagPayload((ListTag) tag); - break; - case NBTConstants.TYPE_COMPOUND: - writeCompoundTagPayload((CompoundTag) tag); - break; - case NBTConstants.TYPE_INT_ARRAY: - writeIntArrayTagPayload((IntArrayTag) tag); - break; - case NBTConstants.TYPE_LONG_ARRAY: - writeLongArrayTagPayload((LongArrayTag) tag); - break; - default: - throw new IOException("Invalid tag type: " + type + "."); - } - } - - /** - * Writes a {@code TAG_Byte} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeByteTagPayload(ByteTag tag) throws IOException { - os.writeByte(tag.getValue()); - } - - /** - * Writes a {@code TAG_Byte_Array} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeByteArrayTagPayload(ByteArrayTag tag) throws IOException { - byte[] bytes = tag.getValue(); - os.writeInt(bytes.length); - os.write(bytes); - } - - /** - * Writes a {@code TAG_Compound} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeCompoundTagPayload(CompoundTag tag) throws IOException { - for (Map.Entry entry : tag.getValue().entrySet()) { - writeNamedTag(entry.getKey(), entry.getValue()); - } - os.writeByte((byte) 0); // end tag - better way? - } - - /** - * Writes a {@code TAG_List} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeListTagPayload(ListTag tag) throws IOException { - Class clazz = tag.getType(); - List tags = tag.getValue(); - int size = tags.size(); - - os.writeByte(NBTUtils.getTypeCode(clazz)); - os.writeInt(size); - for (Tag tag1 : tags) { - writeTagPayload(tag1); - } - } - - /** - * Writes a {@code TAG_String} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeStringTagPayload(StringTag tag) throws IOException { - byte[] bytes = tag.getValue().getBytes(NBTConstants.CHARSET); - os.writeShort(bytes.length); - os.write(bytes); - } - - /** - * Writes a {@code TAG_Double} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeDoubleTagPayload(DoubleTag tag) throws IOException { - os.writeDouble(tag.getValue()); - } - - /** - * Writes a {@code TAG_Float} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeFloatTagPayload(FloatTag tag) throws IOException { - os.writeFloat(tag.getValue()); - } - - /** - * Writes a {@code TAG_Long} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeLongTagPayload(LongTag tag) throws IOException { - os.writeLong(tag.getValue()); - } - - /** - * Writes a {@code TAG_Int} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeIntTagPayload(IntTag tag) throws IOException { - os.writeInt(tag.getValue()); - } - - /** - * Writes a {@code TAG_Short} tag. - * - * @param tag - * The tag. - * @throws IOException - * if an I/O error occurs. - */ - private void writeShortTagPayload(ShortTag tag) throws IOException { - os.writeShort(tag.getValue()); - } - - /** - * Writes a {@code TAG_Empty} tag. - * - * @param tag the tag - */ - private void writeEndTagPayload(EndTag tag) { - /* empty */ - } - - private void writeIntArrayTagPayload(IntArrayTag tag) throws IOException { - int[] data = tag.getValue(); - os.writeInt(data.length); - for (int aData : data) { - os.writeInt(aData); - } - } - - private void writeLongArrayTagPayload(LongArrayTag tag) throws IOException { - long[] data = tag.getValue(); - os.writeInt(data.length); - for (long aData : data) { - os.writeLong(aData); - } + BinaryTagIO.writer().writeNamed( + Maps.immutableEntry(name, (CompoundBinaryTag) tag.asBinaryTag()), + (DataOutput) this.os + ); } @Override From 4ac2bb3e2573db0ae63eea388da97e33837260e2 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Mon, 8 Feb 2021 21:48:59 +1000 Subject: [PATCH 041/813] Further work on migrating to Adventure NBT --- .../sk89q/worldedit/bukkit/BukkitPlayer.java | 2 +- .../bukkit/adapter/BukkitImplAdapter.java | 4 +- .../src/main/resources/worldedit-adapters.jar | Bin 669759 -> 440499 bytes .../com/sk89q/worldedit/blocks/BaseItem.java | 4 +- .../internal/wna/WorldNativeAccess.java | 22 +- .../com/sk89q/worldedit/world/NbtValued.java | 3 +- .../sk89q/worldedit/fabric/FabricAdapter.java | 18 +- .../worldedit/fabric/FabricDataFixer.java | 14 +- .../sk89q/worldedit/fabric/FabricPlayer.java | 5 +- .../sk89q/worldedit/fabric/FabricWorld.java | 8 +- .../internal/FabricWorldNativeAccess.java | 3 +- .../fabric/internal/NBTConverter.java | 201 +++++++++--------- .../sk89q/worldedit/forge/ForgeAdapter.java | 18 +- .../sk89q/worldedit/forge/ForgeDataFixer.java | 14 +- .../sk89q/worldedit/forge/ForgePlayer.java | 4 +- .../com/sk89q/worldedit/forge/ForgeWorld.java | 8 +- .../internal/ForgeWorldNativeAccess.java | 4 +- .../forge/internal/NBTConverter.java | 197 +++++++++-------- 18 files changed, 260 insertions(+), 269 deletions(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index 5f44d3ea0e..487dfb804a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -299,7 +299,7 @@ public > void sendFakeBlock(BlockVector3 pos, B bl BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); if (adapter != null) { if (block.getBlockType() == BlockTypes.STRUCTURE_BLOCK) { - adapter.sendFakeNBT(player, pos, ((BaseBlock) block).getNbtData()); + adapter.sendFakeNBT(player, pos, ((BaseBlock) block).getNbt()); adapter.sendFakeOP(player); } } 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 f3d46ebb22..c9e0743d31 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 @@ -19,7 +19,6 @@ package com.sk89q.worldedit.bukkit.adapter; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.blocks.BaseItem; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; @@ -31,6 +30,7 @@ import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.RegenOptions; import com.sk89q.worldedit.world.block.BaseBlock; @@ -151,7 +151,7 @@ default void tickWatchdog() { * @param pos The position * @param nbtData The NBT Data */ - void sendFakeNBT(Player player, BlockVector3 pos, CompoundTag nbtData); + void sendFakeNBT(Player player, BlockVector3 pos, CompoundBinaryTag nbtData); /** * Make the client think it has operator status. diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 31237d7c4686f7f1921bfd6b84402a310e708ab7..5f9fa5a89b84b266e88a53e9f2cccf18e3ff502a 100644 GIT binary patch delta 142673 zcmY(qV|Zpw(*+vawrx!8iEZ1qdB=7pxr0eE(ZsgxOl;e>bLM^KyUw}JuUfskYE^aZ z-s)Z5eN9t;gNLXj3l0GX0s;dA@~c8B36TmSuS`%WiAx$h`)@OZ^gmHd{hyd&{hvsI z1m*ru3WEy&CqqER|0nCmL1{n{{{j`whdd7uP!N!=6x1d;;B_!8EN~MC4ys-k91iq9 zO)H2qu>XJtv@ZnG|4bxwsHxW=K|prlQ+ln{fK1rnD8T4#XvBIYghj~zRB6!&!T$r& zm@rWP*`PPpmG^^zfUrRUZ)U)SlQ}Se32U$@z`zVpnEG-2L9qX{xGO+!R{m;i1?2br^dFnGI6MA-B)LZF|CFE1I{twsYk1iIx&~ZY|5*ikl>7tqK8^o8 zh9=CGd;Kp`$p1X11jb_miKD=g>Xicm|2dcsT=)knLMR~ri*l9%JoNByl;H6H<>0Rk z0T3_<3j^GO0z<4}u{!&!_^HiVstMFeQxPA}*Q~fHL`Uhsp&Hn+Os{hMF zQl0C+!9q6~{hI9o>-mri7Uq%x39(~OI_Cde` zZ}1?6Q;ZHVfJzgvX!VW54*&S5#u@)bp)o!7&&F!y)gtikXec0o#-?Dxz@B(m9H3$e z3`~9eeB{5daF^cy0i0Fhe>A)stpCoF!%pG9j4AnP4!-=QnSf4V9ajT75kW%%tEXY1 z>H`nK|Jj6}SpEao=imMrQ{Q0yJ0g7F^zX>a^T+>z4{YfFhUew#m*j6?!+Ss3| zS8uViUv=?iLBP6y+<$4ZP4RDe9%fkPcpv&5ZCG}sF?nes{BTJBZWX0uYs-^= zn8P-k#b$h^$ETVBLVPqLLf)H?zDrDNQrzi|cF>u2r}Wz5-n+j_Ac6Svg?vVJkss&U z174XvV$3#Eq`z!LIsFZ({H37)Dd*5^&+Q0;8299`U!teCwG8jMY>&(_pKIZ8uTk?S zs#yUNLd~P5_wX^F!}*4*PBGD>^*&1kkFH z=|w`fi!xFVW=xG{K(ElL!RtlBwre$N3|`Q-3p1jJ)HUyaIETq7*)%DK*z~t2=UDXnCg(Wxza=}=?SNOlS;S-;_e-Mj&xI#Y3XF#Xq@rb$7 zK2?Z@Qf-6b%#;FC;nkD^Tj7qBojp`yv+(wP6dy_Q{K*Dp=(4jh_Q^~ql$@i9_bORt zCf%k$SPz~@Igc>6C3;4W)WIsObG$5sUcsQ}gd$Nx+xpxZJzPENkTXV)5P6BQb1pa! zbPwjoIX4gX_Cb^8RkMl#fMdNh(}&nthkgwoM7wHDJH%UtktckUdW|o{8r8B#?2C2!MSq+AD~5P8{sduq*`m z1~mG@I!Esn#5`y36~sP=@BJiS1_t|6E-wZ9lP@<1hir>E(Q%{ygug`Pmv@qNBK2z9 zZra8T_Jy3n@JrkVgg{QA@#|g_^twV4lX>NAzXT&=`lW9}1|wtpg>I8W5>q}~^**8c z#csdB32IzB2Pa_r1#iE>3MyZJ@1=${pzx~QrVLiZ@{8Us3RcAQ%iNxW+%mkz4JIae zmg_~vcqi#a#_~(su7}Jee-Z%NV(WG!2R7Fg zkfYEdzvRyd{}Ap4Gn~*|LA^kDHre>$0JBeBq=kzR=EoQWWAR7cM+yDb9zhHyR^~fBuSxIn5MHT;B%pOnx1D!2 zzZ1SRPQ2|MP+KJx*i%yotsdkaq|{Nk^YNpbZ5r=Bg2gb$PmAbM3p;WEENRt9R#M*x ze9=M*%>c`)EEaOrms)a})j$Ew09zxfKBb4wP!c{UY4o7cBWzVk!7F41=7WE+2>Ily zRMiu^3U)YnCtkfP-S0=%y_9Z7&$O9+NS^S!w2J^1AcA~G_-enr|01qecw=a?Yta@y z6s*=s($P;D$UKX2Pnwe&TFp>?S(%5m***2zYow}_$-BY; zPqs68t6>;n_!wd)$~2Uw%#(aD|C*Uu7(-DI1Ky=nkw8SRp~iGv>7Ji*&ncBZchB}q z&R}L1FpIw=ud_0*3uH5lNY2r_e3xoJ$6Ky{v!ci*JBF8*UXkwXyS}8Tpu>sNey`cw zsGVGzMYB4M8_K3>Wu}{o7aCK19B$O_oqQCA#v@}t2^s`)C(=V@TdEH%t>9WEU-xZ8 zX*;*mP4C`0&QDssWcp=~ompzW^j{RsG=(4m40PKB31B%OGlOeqhpL)5DHO_PjeIRj z8k*Rb(c(EOvKCqFzrqjZ@PAK9@GNjNB94!p!pK#f!VJi)ncIr{{i&U`A_;y?9a04{ zEidobBEOdN6{HimB9)bCee3S%GBzK)T^&0$hk!xq&Cn{RX_BxjVxGq|0?83|)-zxM zbUOr)WtZq_=yCzHy&;3@K+kf_YOO-FA=j>UA)quXZz}InJqCmGW{bKM{C+YG^W+k7 z6DtJp9{FMm3C>W}Bd*M*sF3iV^q#jq3oUZucqSiz0UwlKNC(^RbcA~@EPN6QmA$WZOnufKcw4j!<1P4%?Tu>$`r4AnM3&G)IkSZ~h zm=B1uM@uLroAr2G8;xm0xeTy&ZgF+_bGz!xBDJ?|<4c&2y7-u~>DC=70Zn=0?t6IO zUe3p){aL{}_}4KK387Q978f=nT??y~6(D)kjk}o}W+OsqZjnYzD|<^QWQs-szD1}W zA5IjJ^$E-rMNb8?I^T8;X*)@UTJ0t-ehB$H%KTK-ES?xW-49HSnhWhl#2-O*fBxB~ z?Vp<7uBov|X{5v>ol07>Gk+Tw*bNXFljX%TEovdTK=9m&#<)OTiA;&L%k7*9N{!Z? zr*%Kwj4@&*R_IfG+%DigHof%%e0mKJT05i67FsilmhD&6J3S8$-%zLdJuUicT14#DgbE3)CARBGZzY}8TDqb9K2>=S=M&16j&{%9%=8yA4rS~ zO3(V@{&*^+oKSM(kof;oOx0izV>%zCRvJ z52bxKu4g8dP}W$UMn1nCWOtEx7|GJ794_PO zjW@Dm3KE5s$42nQpXQ7;`pOiWe>L zC_cg{Edu6902H5Q<=yImIkX`u$D;2;n*s0MAs z*~bTsZa;tuX|=q#^r^L&Dta1MSWmOoZf(HoAERkw%XGN9!K}9&FGIVMUfu$RaeE7! z&zbWdG|c+)2{*UoFUl&p1%-5xe+uqqq_(`(wu>6y0ancN1!+K}{1C=?6})2?<_9I4 z8`IA9Vf@bZsjQBBBi@*v=?%MWWu%L~R?*AAPX3;(&W^BV6W@hxLA)$#oJb$<#Ofrc zEMUa3AG6~TAr`W)H??8R5FLDk>5SIEQtLMqTSP8#=;9kGEFeW1<)HhGJC@;95!W^1 za-1v!plfD4VQ<*?1@>KxStu&^{Gj++we$U3^zw;c3efS;(#slG2t9>(_rUU|zVn?x zyV3mKiCGB9G~8=T5+2{I&p7DPbbZGV&;>N?DVTM`Hfff>kBpA5dMuii1r|DCqzt}~ z$S%z=F~>>c6MuGwJp~w=-o$jgn*>BLoT@Mbx?>HQK1!9L-4Ldo;eIYO#>Je2uH!IfM218M+ZxH>?|*c1_9*VqvL?+KYfme%_v%FtKumP z7aDdbor_9WQrMw<^U86RTezp*vjvB&%=(HmDNy*OK#$U;XuPOycm_wr5pM@6wl;1+ zEY`ro5eee(R@vTe16t!r&nSfKpIKz|tB;O*2p_WFGhP|U2Nv8niB~OwSq1COOiF9G zcFADuge4ruj___R8RPwD=u>1tfwM!UKH`!oe$}V8NioYJP>W1k4@jIrzxW^Tct_f5 zeC#hu8cG(Z=`Tn0Fz($4b{&HVGoqdV!>yyj;w7Uf`yG{&94!O**7c3MyM&1JL8U3Y_jY24J!+Np{5W0GxI0@Lh6b6^Jb_i6f zc}oBkVrB?Qap9C-9F#2 ze2<8PNIPfsqMAui$hq6ZyN4JM|84N9XgPC%qqGRWqah<7zEZ9e&BxJ#MkQQhV05UJ zf`$902RFXbE`w~DGa{MF3l_x|39`Jv`saeyk0L;`~0^bicHBw zCAMR@L%>;RsK3kf0V@CnPq`i zsXq!;&3aGc5d{F6o5^tc!T#dUMe@OoftNChL2!v({4|XA@HfDp*o&O0?TO6zJI@qX zmQ2yP16X^v1nB+47*#M+^eZSj(LCW8=5Io?vy{L+O#JsC1^*xHX5x~%l3xD9=^lob z)Cygunf*zuw}~%*6PV@L=+y{}cow+r2*3|oAMn0?ml|kRCQeVRh3FY?zVl@a$ORh8 zk)GfL)H1J@#RGP{m56q(9X9uJCe`hZ2U43lyi^FSDH5CV>PZ>My>ALu1FQ2}ahqum z@|=M0c>NJlqQWAG0da_MBYS_su{_IgIt&P_Im9+tH_;c00h8Leqs@%{4>JJe4lvTZa+ z`DAZnC#9#)CH9KbE=DNP5Ta$eNRt@GxxZDxK9j+iLr~03m-5^lYx@t9m_u_y;r0DN zjwr?8$TzdT)$0A2s5e`2+XsWg45vC|}* zeXz~kodb|$)ZTG7ZgQI`67Px;o|?p5={7uOw`eC?a9E$YSDcQB3IUd$&|DTW-IBTw z#Yy&|gD-e`ji?~IPnBDkC!sR*tK<+LkI+c!y+R>pnmSgnMH)1G0h+j&>M7j)a^~z; zO9Ds3>FCNCh4V5(?)e;|a_6(0t;;6h+T+27d=nsb`U^nnq4t6)W2C=)mBKhXU6FJS zv70u&IJ$SZ?mj8vI$NJN$y0ThZXt| z-gg@Z>!?N{q>aLK0RCFlA+?Xc4;=m-{;OkOE-Gclf{;Dgf|^=9;k#)8Gp;mLbD63d zI4&UV=jgh#g}D2Kl>N&dvxAt)u~ZCi@n;U!%NS(P-cN8JMYV3m>xN@4_6&tNPbl4a zU2s&VtsApv|1&T|XK9alFUKA0`RdGbj~BM0-s;WYUhdfTE}OVTm7bf}H4@e~Q$8PT zqymXvmK13HxtMXxoLa?xOS@60K$;2Ww@|=ALU-$}*aJL5mqBNMlp}J)!#F-I+2<)a z<9SCXE{5l8IMxT!$X<(=&VaW$I-nRG>BULqZZz6s%uBSuWS882Wa+Yhom3tg-^#ui z!?c`wR;zXZA7&-5=z=dhQp&BDz_gG)!ET@`T!2Frf13EH^039$`+X9AV4zLYasg1o z9?ct7!J%&-B;gH~yZM8At2uMG_%$SU&xb%^CQVr!VdwXhc|!y~e!lbMNCyMM8Vg}@ zwy@v1EPq9>w1&4xG5V<8d^P26zf6}lrqJad(@9G@ZO}hs4XlU<4`m+m-1!J*rk(h_ zghMn0__Nh;j&5W_vM81#Pu!*-(*uB%G9y`AI}wt@b>M`<-_LdFlDyHuS)I48+eA+q zKh%%SiAVg{n;dgvnht}?1yY?Hz(v&_REszwC}NB&#p6hR-4PElK}2;Tul>mXgS zWJ-^n*iCaP0To1F!JHhP=&|&}gT6PVX@j09>D)c|^AK>*K9C8*qXt$%vY<(kK4aL` zT1^m=BXwn`x0HyOC!mo7nY3HRW-CbF;05F9)Q$! zXX1Sq<4!xZ3IT}C5mO6jhOq#|?Yfp%G&oy4c>G=HG+X4Yo($qD!n$_&o7=sC5@+Y? zTu0J_?1@s}mStw{<22{kf}y^WsA4i%uOO`Evz;OQ-H z%La@be!N>&4vH?jh28FiZ(`=}liL=&E;vIvQ15xrsX7Wi8&x`rgHHB4+u9-D%SR^y znrBK^qCC+-`@TeNJ$oqo=)mc%XkHg_F{br^SZfjYKubV&>!K1A2N@k^6bC(6xbIh#U zU4OcdQN>7 zopC#+mv*kQhL0x`J>9BH+wmB82<+QEIOtn>V^=sPfvZ{^ZB+a}jYd0g0)7}*2F;&c zlLHm0?H^eADjvJgPBhHxs-EAVFx=lcw5qJyO@hV_U*eP>YQ?>U`iF#hZCr?rx_M z4L=srLiZg23x*D*MhsTa%|{qZnvgskm^j=UPVnLk4uSwQ)RU5dEfS{b=Pn|!d#MB+ z3VVkGwT^%12hUwQ^@h4N2$>q_7ICXdPBGtJ89Bo7W0LE8M&ZTS>j#NMMBo;*X5552 z;S#k_9_=?uI1P%egz-WoQ3VS@Fsgy5BOt*KB7g<#I#W1G~H0!n+Dq}@+W2Fll?r>vI6_OkfhE}ofdQ=TOAH@ z)0^S#WNB!@4;Mgy9B=Bq9wqneiPYB1hwQ+Y$d_*_JFl||5$4=Q-463%@M%=>4#(On zn5_HuWqR`vF?2(nhT=fh?R#g+U}-`=?#m{4`K4L!y|k zY&{NbHjzlF1N>3D34Una5!}`V`J6AtF{JjXuf?9FD==Xl3f-eGfao|ps^pA8Q8}m> z8m`Dijuu$JZ-WSD+wTSQTew}tsS4|o&I@ECcTx$CXq)CZsPrBHQe=cgCy+uEnfyDj zNbP~<>dwUH$7(X!A-$uF+fpWN1F=Z6Z#}t! zyxq7=tj&0}E_rl=#h>~-p}qBOCa?xwJ?Li!-*!*76AI+H4V$m@;tU&dG%vUEc0`_}NGST;=HvdRJ z$OkL|49QAwx2`He9yt4yAjK($yx@nsN2Z6ePRv}2)2@gr2xc}QS z#GMg4l9Xj2@uZk0H$11&I|VoN4C5I8cx@l)^(>oCJa{Yd?J<~JwA+NPB>j)kLlHmfKCU6G@?NgUZlCw@eIC z_!o@N=8@7fj}K+4;RsJa15C`1iysED@di!cW9Xes@;ql@GFPm;No(mR4P(xSZo?U+ z?;zDedGN2OKBFLEtG9D(l2#b<)N_i9+4Tb_HSNCu`CTQ@SSHL zaSby^KH=BHGko=@7{cP3 zR2qWIGoSHW9QP)D?Iv>BA-o@&Ql-PZDz>!%<$dn-yrTG3Pf->xajha&|y?6qZ{Y5cklqL)@Hqu-KHXC-CR`il| zCQjmE?`{SScSE~o(z}M%Og&fUVZAzZ`Qu^(p3aHJcfJWsr^1|I?;=8~cmj6;ujppL zX_wmmeUZtz7`Y^Fy?(wy*;}IDbz+`T5?FsB`bIu=o4BHzJg;(=+CnmDZ4K0)hQXOb zn&GB?=hY{St%Nh8pUJ1V3S#B59(_p|8kB8uoOY-fi6#Y`{rXpgRXS-UTJ(rzsMd(~ zu2erp({&Vvvy?BDAr4J~thKghqQDLSdbQ~Bq)wRg*d<=z4rN&$yJOJAZ)#1-T)m`r zzp1D8_`5)(;k|N-Ju?|#O+?}l9D?rUiGIo$v_N)1u9y5U7{xMf4BY;y_`45=4e>DL zL`n290we>}*abu^Q7DH1A#23WQ@$3&Vj88$MrZk415mH~@uwl%!|1^|I^XyJFiCEN zcu{CuJMoX!$Ryz~r_^mtFkt$0b z`Nju+YNa*sKjJ)$dZtKgnG;YcD;!8`zgLuy8?X=DN?0oT6fmpQjm5&0F^ANai~8K@ z^s4(1>DEj7_SC#O;1ree48s`d0Q|~f)TP&Em^t} zx__XXFD`p8+I^jdFNxM$+o3)GHm6?woje6jf+{l!yWlUA&N=_YZ$hq7`c{u`Qm;4w zFOtrYfE%-CjuS> z1yb2<1Qkf#5tWumh7fuw4n0|$Z7LV;b%nHk4Hfu}LL?#*`fcSpv>dAPZEqKd4!P4E zjyk+eGReO7me9{Y0>m$h;hv*H&@R$pGzGr_syK?6XK6ueGID7^U@YaI!o-F|+QQTc z5)rnT3er0%d~K=kh0zTu2ZbR7B7OTfvr#;YWO$^kXq41OEm3YsjAn$bp%v6iiHQ4D zbxG^e@zjdjb6lfQ`|K`gf5@okr1vp&BovAyljp2re<~JpjEyGn5doM4;5qwn)`{`fidNRC|+G*uo!V%bt~yXP;!KZEX!mR!FB-{zm& zPxUU2{I0?`c{kGei^pygJLxTTyfbvYTL02~KcIl;$1R*ow|h}X^!nAhWi{zj+jwWt z`j!5r{Ql>*izDfiB+wVXRj75HZ{%a;U{m~(xr*tE^hpy4@Fi~TZlx6xzP!qObNc(s zc3o)Ql9>ES5%`Af^5xO0nD{n-ASin2+8kg=@WuOh9kxlp0tlf zLk8><*=N%NNHIn5xD_#LDS*Dz`6kaOQ`bo9SjEgVQ=oMPP?zH}OCmDGG_C5DAeW&2_&*yt!PckV@5%5 zps$|-&|LORyKIS#t8(?zVn4aVAw5>sXFY&;UG$ci?$Ukp`%{D*Mz%b1PvvTm#7m|E_VvDZbFdNLeVkWJ$b*u0q1va7~&N*hS}Eu1Zl z*W}?G0$E)kV|1iv<--eXtgzTjQgz0=l9XIpen`;Q#D*oxV)x_dz(SJ=gfh7=mA|w= z1E$Xw^l0)eXX@1{58G1H&ooS`bfa1&C_99^!~J4%M7sh%>g--}dQ1PfP5T5U7 zo2p$Q&d!SgAVsE97{gzth@C$31MUokncZ%e_^SAOZ&pq2HNDfmX%ES`j2`RNDRSW! zbhbPZ`DO1kpwBzwmMnYE;%EndMjGs60N7QEhEtz8QB>eq3x61o#hg(3tLl6db^I_m zEMyRu%O`3@J+0KqPw8viQ6*{{?zipk?HpEoVBJa{2Cy%-_Q6>z~>}tNCu6!0a$q( zTOyB*yWKk?)@;Xrwf%`Yw0Nt2&dbpUE~)*Fo>f?z50U2D5gv_rtcRG2GtGmSX$O~; zU#o(iRaR?F#i?)lmbHu!M`&ci4&dRExiAP30$wYbDTK@9o*5trnDe%4U5Gz?z8m$@3C}M0% zHUcLXl_Eg1tMh6=?dO$>LG{b>8lf7*MNz?5f8~{c+RrLY1h##fHy6&v)3Fq`w6^L5 z4dZC&4OEz!mH>~oKIR5*(*lSN<10mkE3o{E`R0}nS~)i@4dwPTT!Hf!JBM2|Xm(Ye zD&jE$Vzz}aDq^;Suq{W!Xdu({v;}yZn5ZSrbSWP1T;Sx~v^JDmX80uMuM`fqc+l)$ zd9H|7_2EtFf=44lTLT2<%->jxx%ACU6jJm|Flr@4ftjN}S&v=FSF!qCkxDf?d)J1SSM#i+t0&XcP2A>;S+*&a`>yi7NZgFC%68gX0La1%e z`P^cJj?6i+c|$RgP4)fR=V{4(2g{-E4s9O2yQcL9ZQf;0p4rzl)7|n9SdjSXN3vcF^j}V{W-Es;f zy+;{HZRT+$3C$7RGWn;yhkfRBND5H_%!zIV=}7>lDWlMKL@#{h~dJSvf^6 z!hP>>q{j}CdVb=W^KTNav*EMr4JN!47fPAHrk{t!9CLZr_$M_Dj143gyuAGOe1u7l z6oeU%e7tlQS8fgB$ATI}gr@TOZ#u5WTIJ#K^_jW z>N&DAavcU7MpV%gGiABr$kqlmhT07yHU~miU(vuis{g3a3amqVBZ|6UhCMPW+_+LH9(3-D0l@vqwpS!S|4bie&z% zCwEc+NKU}0*elvBLSeT=X8gT*A=c~`$peW$B(3PHZXv`;dHR=bVYlcjoK+wH= zVJ@jZ_zATXAmQFnYD?^ubykSv1Lj0mN=W!svha%BAOFNx>MQh~u<(lHFV0Qs3cJ@Y zbR_$LpXEyIin!+}1c<-V%|0b{1>ZYL8A`l@0%n1UpM)n%QbJ;{OtT4zU6J?1Qq_`w znX{5U(a$I!-np80L<)0BK0#&`lLRB~*$V{=bBl}6wWq!ci$pnQnVn;5AWk&z;H-$e ze;$g0RvyY)%j@uV#_&%fM}U2@0AhuLpRYu+5ofq=u8{8;UnL1mPbNG}Rwh1${+6$! z{9pb0|LVx)fC^JQz&I9A1%SQcoDxO=)7hduMrmZ=GiM%~QeHeZd2c!jPErl_cj&jC z2=67%HS?lueR!eKDI1em)_0Jv;IBci%WsonXi?HrcR!CFfBGs;@)&jlxh~il!~qPBUS9F{_+bQw z-NnoXlCERzQQJHyz;ca`y?~@2eUG8c`9OrImoRcDb9yJe@R{W64H>^xw|+cFA2&7) zIJ-;28zrfaGpB**mW@2@x6CrL5gieN)yw$AFY1aaD@f(NifNjPZ%AqQS zuUnUL1sFwV%ZSF@iVPZT#0LKe+H0O+>Hz!w1tfJ#XVTdGWsszOq)ah*Z`@V35=oGq zgo5<_Mgw}LeP1XAzbltH=AA#7N1M5js3(^O$)%`4vx%|^Bx?U%!8!JnA`NktBa5P) zFp1|@)UAyurBq51Zbkoi zmi9qZa*A<^XOL}1L>E>30{Q>;MEq|~4ZMZ9L;kHoZ~I&Qt^l0DgyjS#ro!R_{nbZM z{YVl{%Rv$3L!36I6GNeK1)TA$4TEGlsHh>DFrkk&Y$yQ(*o{jKzVrom1$%c~Lmj)B z#Xq=z}A0SUy8z^K^;E$+o${l9=q`=@|WjIpzGFEymIC<5zm-DZrI! z<4Ih9oF&qpfQz7n8KLxN-j??4dNr1}0I5`G@w3Wuq#r9e;?B7uNQ6AKzFWbTI5sDH z?7R9L&MLUG;S?$~KDD0QZebiPcCpjyAeNckPiJSWBfFoT&Y*KlOuK0P!nOgLsc4v0 zlW$#-dsmGs>BcR$-K#@2t&m>+#(<3b?`ZGp9%bSXtf<$g(Px7!W!{w(?Yh!cVMXEH zKddhKER*HwNpJ;sG(x**{07OD4KS~y9I}06d6PxVZLX1nH(&9w<@vDMR=8Gvm|n)C z_HO4=Yx$tqDz}#wkpa3mAKSJU1<390^N5@`pN2If1k{FP$ z-4S(#XhgWt5f4e%LIuOGp$2EN!Bv%BX>&K}-)let1O&v?(Vp4WmYc_!+0zlYjR{Nrzsms{xW)-84Nxj_*_Bi$ zq^5_HZxD7&%RM6JEyi+2_T)#F@{B;2dv(E3wlcz7?!nz zlZ#JGzgpT?%pRnPc*;cR1s^R+Ent>$laezC@q|Bxp&^qF@+{peIHlf>xdl2UCAMy0 z?;jRIy;sxdJBfbxDyH!k3fOy74Zt)rpnqokUd>_&%vvf24{IGyb29y|n=`RgE38#8 zF-)jO{^`!8ku3zRg#G_+=K9}_3)^HDg@6kL!=QDaqUtM6<`cgg2&i|U??gR1Ae zRc5chR#s_?UEXMe`N{LtnK40;G7)NMx9RJ;)p?ZTdf95({?ygwv^_HnYUF{(?G&@z z4;&^;q4^H8k0NT9biF1#D%-jPpyG3p{Y+qi3DAm7X zmJn`y!o5V_)95=#4;*<0t_EbopZ(jOL%_qMnqO|?NjLwXTtz))?}Fb*LdRkNTq1>H zkY7#;+-_K#KVwKgPXlju(MA1iBBuxvsRTWHC~m??yUcn309kCn6v`LMmmIbs&p`LU z64FiFvnQ0u^CIaddDq_f6Vgq{b2T^B9gN(fm@FrA_C%x!g3^d<}c68AB8T94d4E3>zpXOW*A!`F?sNQQ)Ne}%*}i76fWiL0TtKzjm|U=WnrbgN)o}Th2ICv zL$XijTn}2~0AOq4_6kYf&Kc`*j^)KIB6(VwHq?f5#$WBdumv%r6Dk$RyYwionnk2l z$~#-}tf~bhoz34iSR*kSW;s}~6VzyAjW$}~uG&G*-;CHV#cz)ji1H=BWsL(15Gs47 z;Rv1TIHy1jE{+j8)UvJu>l;kj8X$F04Y6*E(wQm!0JI0P8R(KW!@P~+I<2a@6^uKw zVR`Dj##tKXRbRM{Km8gf~E6)b;$t(Ru!Wsm-ubP2~YsUv&>}3Zd7}h5X(=TDnp3w{q5D0pPG#yoPvz1l{18%~vlx=it(V{=VlR zx^@z1`Fx{!vMNCFxY~)d%)EJs+A=kL>DeQ@3XZ#4-MEFb$^?x>W}G(;(Un-!Q6_La z?O}_IyV{TBCF>h{Ksh1S>=MS=)o^#9d=|aPGP?e|@@1$<56%%Hg-R z0x0q{6gOI?%TC?S8C2Ee((?~1PVqHhH((R4%C3$pTwq?PcXbSP1Z+%ij{M@2f3I%f zVsB_}*t(g!nrjrg{;(JIjVSLto8O$)eo6fy%+kMTYb40{eI+F z`YrMn4tQTH^)LU3Fa%gyZSgs!KZ5Vw7^;}8CWJqt*S`nm5q_hvSw2(UK zasD>^OX1W{+O^Ne8i#EoD8)P+-L|klQ33i;YA&kWOi1+6(4xhP3Z9Tmp50tNn3W8D6hAd$3q<~->| z!8zvVBoH_DQ?6^m#Kr>u7Us7x53-iF@?*Mt<=odS@eG3r@pI3E zb7WE5+w5s(t1hku?KS7H1{4zAg6BNM<-96&`G_+@K?wx?$?2g3{Hi6jTACuG83aw> z+b88t&6$<}h&F6-lPvNDCwEasAIC=f08|5<=GF@oMz{Ku1Q0isx-4x+_TYU!y50{Z zJgqu~rhgFU#bqK_8r0gY%pPzQQQDS|%gQXJrKP4~Evb>WuR4Il^)6 zRY@{+bng$BL#da6K)_m9Up=O=90FI_`vT(wKIWB7^P+F2s2G)du$rfy90$j;`lnJx z_aL^WayX}tG!z^cxX(%Y!p=7pd%-OQP(RoCC+ki`cz%*8h z4ONc-D@4@l65w1(Q33x>hFV!aDth6P(oi1Tp}o7JA$7^%tzT%7){N3ZH6`OXEz730 zfA=ElKTn>`?@HM%s?q?W~$3*XckQymrEWGi~D?)=V#$q%apEU zoVpY@o_F5xTL`wLCPY$C;qcWjgzcLb?4cf%$4QIe2gql`FkK*uFsuJLdZo=9#$4(1 zzJP-1v>x|bhUv%QAhveMZCB2dv*F#ZrEU?bAW-kV1Eap6E= zWXIM*)wf(oBK0F=-P8q9i)d{`1Y=Qo0cr?ioX02m4@?nld^=ek_Py&H7*wxSnPzv& z)Nmw25#Wtqw~VoE4&$TO%P{zyqMh*OFk51R^Jd{j9i0ygbPCF)7HsWS9r|S)?9)P# zq`}@`^1TlywXWgPZ2XL6pB7^xrCM=W+ybMokDJ!W?}zGiR^$qT3$y^LO}2(B{{Hpl zcT{uPf(_7>me7ye5q48e?Nes1req&uAxT^V0zl;-B4i#3sZ3-=$|gs*H$1!rH3g9{ zjq>kli?4BvT^LYp>E+_75>c6mNYw%}T2|tbKYs=0#qH53CU2qVk6LBmE|_AXcC4tX z8D7CA+c8ArhezT{e}hUAylsA7f7u|xq|2?PrwASULVfq<;o&*&IUOUW5RvC6P2EoO z0tZn1T~()KM`V=GZj^4X@LZZ3k(Ywx{6p{Q>bl3N``*bvS0!T+!)wVUNjqw%5^HhF z7M5~)sg?bk!)tU!{t2a4{gNu5xpO6_ZZxccUxD}}Ya@=4Xpxw8Qy@dmv**#$jjbuj zo_}=rI{R1ji9eu-E&8J?F{=%M!qcIhg#q9lf)jc~8|6$nu;8Pa1@q@CYF3oHK=H>P zS?TU#!P5#4U4%-NgGrjEt=RMpuATQSQ@4`YPa)hy!9VG-R${?Q1jW4-&-v_7(m1!e z?#oKz0+*-);H2!om7?9a`ARQp*RVaCOwgCq90l<4a03}JRtAQ!V1}tVTWD2Sinsvp zMT(`V2)QcDWAwS3^>7ahVYlP~kKe1O2$v-oVaE1A zjROoXE4NA{7H9n~yI!sYW_!E|JZT1KOA;;1BrR(^m;;#vt8gRP-o-^iR>)ChR zh1I=xSJiXD5pG?ed6A@|S{vEZ_G*8k*kBm_;1N2*Lds+oNvQcb-Z>&B!X!%bLsWP1 zXj3x4O7w^Voq&--Gl}UQ#)7hXacuvO6Tx@LN=6PY>eJ&aPYaE>4{3i;zPc*z{!{GsnPZdx93~ewhmVah9>#~o3 zRurEwlK)vsvVdk4Y2ipXR;5;{!w;>oI-zYihemR(iM=&D>1er} zqOOU}z^x_meX`h#!4WvtOT2re*yH|Xn}=^t5E@tBcKg(ax*^SIlS-V9_()y~c>v28 z(chU}BW4^r>c{Ml7E@$c7A4b7SaM92WmG8}1U#}cnd=jR&Ke6$MJ3B&@cdIo4O|oW zb-BC!Orpaw)|9red#b3?nUEhA{GRJs$C1g3Z1o?3o)E`tk_1vP4W;8s3Xx*(jQqRz zhd^)jbPsVC+a>#6XYsm;#1i})4uIIlcw$Mi8{W-fxIo|ZCQG9y;<>Nb>-_YGdDR~s zyx%8je=Goj*$tEKGzGRs4=D~~x~}bMMO~$-#5cNS;Guge(t-`qClhcc7}%%4Q9hgB z4Z@tm6b5F|*7NF>^7DKn6*peoPibDwP=!D0cHJii0|7BayaXPMp_CDSq5%}Yb28Yw z=r!9#_JRbH|Colxq=~ut*~s`|rBWMHEk&7^?pWVxt-^MW%r&sSPC|R&8WqUB-j$JIB$lx5Fr|P>-LV)7YRC!sb;3t4Gez+_GYh<1c?_4Dvy#kTuA^ zY}*%zTg&u9*t8jS-ES>^3lo@1Jj}WQ_x>5BxvLJVswzvYn>L+@lL5FfY28QxMoLK| ztK=a50^%QAjLIFDQyIi9;oi8Y8j#jdOceeiv)XO)Ldv*F3H`C#{xUoW18>~Uut{)3 zr)t1h!+Owk1El&uuVLSJ=WtgQS={Aie(;6W?~u4)Ik>+O2!$%EerZ@>en`HQ4yQoX zBOrnk+cX*_I8X@hSOKJfhIR3t?87@YQap$G6}*8R1jZCd1C9CkeZ?=M{w$;cHSmuBl-7a-9-WTkEY2_n3ER=8kx+T* z?VIgAiH}(~V9&Op*6?K=`BFvT!E*&XbS2q(j~41|agx6#NdR}aH{8YRlq4Mc4yr;F zB!5J_`x7a$j8|+%xmFy88H@eYJkoDiTZd8-#yZ2-Ek~*MlZ*YL%}Jvu2CCb#ZmgeU zY4cL6!q*)~5BG1w{d!WEM{l1dLG{su$-q$CzF5cbKozf>#@+)9*`3(6Tgn@$_J25c3-X?#T3sT*Q%DA)~2DL9w4 z#EREC;z6qhPDONkg$g|$Ya!9RL*Sx6{KNcV4-sc7mX zj7CFlG{j(3rS#L=260Aka+t0CSf7%Znv*NcPw?9M5*dpxFxwS2=3hw>Wowa*Pu`yw z=7lKy0A8{`SXbrQMM#WJGS&l}3Jy?0@ye>9#5FstGARtP$-U9=WQIC1__7RLMA|Z~ zR7pxLm7hhsg~i?4vZ|0gd%&z;z7|9~gs|U}axC5d3>O-ok2qyg5qydK1>ML#k-*Y$ z>Ft5Rf5nPnD5=7Vp(?9M@FFdF%aVlcpHh~v2teV!W2F)bnaX_8^3SIAh&IG~@lwtE zdckrZWkz%@;Wsi*eVnWyn8mF6lvJq1d9T;Ce>{ii-&Qs?Z<+C8_YSL?CuUkrBBLXo zXS?fotw0=d5FU_HhI15FETohREF%&8wsdHDGL-%T-Z?ytlj&1uAj+zvIVhELI%DqO z0tmz(41F_Q^z}zFOlin)&$+~Z;9V3!!=TGkRHYvjdCo_^S+TYTv7y%;C zVmelZ7o7LW_X->&BQ_^1ei^+$$(;GceayLXfphz5`Lv>1*slZx_5_lhdJZR=N1FIA>cs&~0dZx96`x5l zHSG69FZY6ok_F<`q*2%0N8Fh&3NI7I0SLkyvPzJrT&msrc9%WzZew)GQ-G2!kvb2X z6{B!~Wpw^X?0V6b{qUT;f5`{EYB!8y91q2{Hl1p>X7|+mC3THN*LaUjH&0DiB@Ryf zakXlSD^{U0I{J*@bu>!>Mq1|p7gcs^SYi*sm1Jm8ju(Rq3^$z~G3wgN#m6e<>D|^Z zTutV6Y%(&>W0ZQvjT|)zI^EY^>ZHV|0Zv+tqv}XPJ@i#3=r| zL*|bCKH~R^hhG?rHWF=H^Cad=pG2MH5<}Um%PEYrBzxh$D*G~FTOiWa8)t{sCCsH5 z0!073GU1=XQBGPVzRHea52k#s1jQdI9~@zlFYIMh;%{ecLKT;X)qq^N9|;QtBMuoa zw=W3mClXy9DP-(&v|6M)J{jx3(7PR7tj4MG0AuNKcT#s8t=!&&TDqjebX^7AHYYW# zTZW5fkj+BCR7W?GO*_KGj5 z_7v4*_f~}_?YHE(zB+3!5_9N0o-rnTzRHMT=s4q^TgD1W4|-5eI-eVCdjRCQCY!fN z#-4AJkkqZ^kBD$OwYBwCFJ?c@P5_I-vFsGA(f(#AbH(NLK7d$K|Kblcf}b)ngvE58 z$>uXd8|U);Ce{gNmq5O(I68cM!V`VR^q(GQ9ahz z$+*ggP#;)xU&F;1xg~Yq6J7BBU0k&N5Ewc>m$3-;jXd2L6q(=?p&YhJCQCk(l*ifa-j-Te154v8Y)5YQ$cxtwT< zfq}Zds+zjq=+ILD}{&}Jjw7>?Y@)!6!qwb;q|S4RCF^<~+Ut2jLE zdx@^`bpy=e7==CJkVvaG1Jcnz6S`QDtNvwqGzRH6+jouWW0|qw5zxfNT_g)B9UE{v zzq+{2PiJg4*X(HzBeC)@YSL7+PoRz5`3JwT(CWZE~rpjc) zGTK@!7JJk#o=_ZQ3>+3Oq*X;COLF%%1I+YSe1%@8rA`p_^90!2*Cz{;vGug-8ogxT zb#2HM;C&;D&>g-|Kl#};!^|y95!(`YAu~&B2Wjic)rv`_Ev0CnC#wkb8F}kAujOW` zsqGt-?0}}0l%>-p>Nb*xcrK6zGdr35Mf1;DK5AA$PL2NDs;u8fc2}?5iORKl zp?;gM>D>(5qzyCMagb2=1cLWji_!a{#qx&C;&)A2D< zRZV5(XshsCZ4Y@ouD063MgE&DP9=lNtQ^@^WV}6Uu}sW)w$LPhROGh_U)307};c+L(78 za0|K}KYa|ijgeSH+}TN2Cm=0`LeuTPnkevIs-SRO1>FAf4cVR4N~WvQY3r~+BiTDy zo3ZQkIfi$j)=bq{nyzY;-jGeJE+>oCU{Hn09@#8M1P3(qDoP^8smA@tMvnMOu+c*| zrLie}tO|Pa61I7tmF5Fp0k}3yk$WhHNb)QcT4(u0;@r>f|GtDrY9)w9e4xDNA+J{h z!V*(+j2=(mK9k>T7twxW=b3m5Ic_-K(dlO`5K*gaetfewopxoo^_BFfK}ElDA0XW& zblnsnT@PJxupCmz`I((-3R-s|xba<}1w>8DwKzllt(|HEMqd<^qozf}9|wnrCzWCJp>qVY_SONS zEA1b?VxDK@zE<$$1WN5GYsO|K1*2J+Iw^Kqr!?009Oc=|bfb#v5tQDvzv<+&Ezf-J zq=;0D^EdX2TLElr@oW_-1hZ9%_Sf8RtoTBi!A@Qtq6j(`!s4o@8>H8*AcL%jSTVB^ z@`uz30^yR{u#w<@=Q60x+H7RG9vOCJnWNBy z4;*gM<5i5J+xSKCPk$+L5>}lc>AeitaNmM-Our9z(yl z3l_BF)dR;vW~S!my)rZ9p7`}L(A?L(3D@kdIDABNi@Ij3I!@LM{rzby=zpg}S~oEb zJ@E44Hb4sVc1bW(Ki#Tobw~164}*76)^x_QDFL3(xG5cj$x;&be#2j@o@fSxT?#!*mEHz311~kCir54 z;*fIltMB>S{lY?8);GI*t|kt~TVMat3K=_bbbmq`!DSU3_?DH1iKhCGvSzjSHqhW* zg>uX0p41nWHNn+o=E8*;~GV9(g0>3xvfuBJFd?B%j!3Hpsr$2T?~6gu!F zU|Q`O-;?o+&B&Rd9x@O{OYTBe3sK3g4Y5d0)5$~OoY~c zLnHgrW*E0r`r7pH4)n@tyZn86EEJ5Qq>`0&q`f`C5|!)NqkH_!^~DbfG4bwCYqrMk z>}-}u7AyO&Bw&K{RYF~cvKvWitR|dJD zm@U|}8-I7lg%$=EJ32rG`0zGDgfCbiIYMdTN>-i({%C67srA5>C|HIsT-&~4iPcW! zY(^TK8M|&;hR2}u=p7zKPFItYJ_~7Nk#`8Qqm!@bjm|Dh_@=n1R^3J5(r^R2V{JUV z1y_F~GQDlr0$v>+<%G13^!OXo3pF>`@)#5j!YFcQ$*u;WFD!inV6P*S?=bEDJ?V-R z041gTPS!%A(F@^(eip1yo0T8718zl`o`5mWWphunuqnpLzir?ZYjasdocjx3X$GLw z7vKebnNR#@4p(2q|AyvkQ>4I#Ty{6cC7D1?kg*r{1!T|Lkl~J?TQ>=E!^uwPoh{W7 zOqnXjl~C6@02Mj}FerSKfk4b79S4Pl`(zuaqy9o*1C$(4b;1$xM)jOamCQUMuSvRa z;g;VjGTZS`PaezF#LZgtB}jJjgC%KRn>=)Ac~DDA#6ywPmhG|`4y6v9fNgC*Gj_h|HZME3PvAkZ zFz;ktDUkis>hA9e!xd9zpcr)^65@2qVS!ft-BVw&2ldh0Ky zA>rkGCaUk1L-i#WA+szg>VKMh>Tad~-?kGYO$@KnH!SDrF}UFSMbeS2We5BmwsFJ@gA8YBQnW%pkUkyIqLt9W-?bW& z3=F!WVJkObI8)sWS@W3a52f3xGYc_BhH!qh0%j%gN|0ybRQtZ`8nwhKi|wNdB32;G z>K~6s#*+4jaY7*jO@$GEhErqm=udj^pvi#ci4Ry4)i!Hz+Jw0qJKdgI8tcK#FEoq# z2OYb#jdNK!@w(_);0nAN`Qvh(x%|LdTjsq{7iTcyLdz3l$dScn#|bwjjve$%51ccm z0!#)z^I*t2W27T{n33kcuZ zdFNaaQ6eIeO4#_|+s)Ys=0DSPigK^qS6V>9mTzx51D8cWyBkuQcDi;y3 zn$8yEfP7b~?VoJ{e}i>J{0Rn6>!u4*r>6&Jsf6fg;w5r&VN|HX$M4iwo`;Xi!I;nd zX5Qax8ns@JE5XJfd&A;q@Jk{a)i^Muo5Xx7@zjp7){2|s2lkahyC!FlcRprL65!PC zWvrMd4sI-u_@H}plo`KItvQ07hDgT zQj4fi1sg8HNk#vHk7%~o_AP;hQ$l!6xhqu4Khd+B%SkbnmjvQv!4S?=V_sR>*5dqJ8fXr@%fNmdd;vGwRZa|35VaYMf zZh)wN9%#KIvnR6D>+$EJBV;ZjW0T%b^>8kT5-k8bK6T6pm{iITOw!@c7j%*lY&dl;J?!P1l4g zZQnZ^*D+@06f#4iYoWZ7>e;%wQ%pACY@VcF^7l!Bplx!qvhtRHQ5W z3yWzjEa!$ZiV{3aI_PPnnzQc<;%`*MA7dM$v0L&l9teaXYXvXf0=%A;$m#tBG=0%d z3F*HjvEwl@1}IFHzogSrCBrQm!S2%~^vn*vgQ5Ip4Ik#}$8?d4>;Mq5E~HJ#!Qx1% zz5f|J+AbH+XibXj6hPFxO5kd#|K@o-B^n7|V`BftK$yHoM*Vu?|6SAQEZlZ=M<>ZK zNnW>0|LxcQ>v}LEaAy>@kJ*#>EiyM!b*a_u#1`gVUkSiHy%l%osfz31Ap`6paDeNp zsz{G$Flp6R;|TATk}C*)7w>t##GJk_v13cwnO(e$;5xUfKSic#CmQ9w@|Od ztW8%O)ktcw$6~j_bQ^dTNQC)`&PFEdMs=)QBwm7Rl16HgtOWpn`x5c_#aej!_fVTV zO+2b=L3R2;EuVEdU7wRK!TRRHLMyFg2wx!&f9j_=QwNXAxWbpSc$W2yFU#kGUrbR( z!97xt?0zCu3WK#*AYCB$O+sFI4E{bP30pG6j1+}(%;i}{m#$0g7s%0J0HlD^v#mX< zv5lyEzZw%tgz*8OlsJ|y#@d7tQ4(v%OLTDqh{Ct_FUZjJ2ie&W+gEo)(8Y4xsbfg# z7|Z*exMR*SuBMT3=fF^w+GbaG&>*|QR%EQ~!?+epl~&6ihLNodIhr=U$*Q0RqI`o61H9ATj1?TGCZHre2}4S$ z+-b-q|5li}n;OC4L0KEw@=8Iy45X$F^uc=kZgs;$m|tp1ArvIFH>V|2H^Jto5$DYQ z%v=&A>EiLne$6idZe+1o8&m=P_%^Xz&PfCNnIv0 z`vAI%#F@Ezq%1*AGAva$0a477Zqq}}c%ROWr!$Y4voPj2^Br9?i_K7FOdGe!;hC8a zskL`NVJW)Yc~^D8wXsCH64m9S>pm)*Jz%@l{MDU{d9%3N^XO84SAxHzq~~2^IWIjv+!$s|L;tBWUoT_w&&QMtODV#zbx#n4@pMV|qLCJ?vz9mPo; zro&KKM+tdw;N*Ia* zH2iV@{?sL?fUT@CYd?nVIG(UI5q&7~&E~%fr;JeXzfQ5pGYuaF*4XI3^j$Hl>AkF` zUbFaN$aMVBc;X(?)ZPl;5hl7KqNR0s_UC{5jeH8w$1C@tf79AN3(T`Q=H5V=Z_BQ7 znm+j2qK5S2GPon~PGcTkp5f?_?SPyH!2i8w!hVP&bX=a1ojn%%T{huk)Jj511fcoJ z!pA7(6KETFZWX&ny?AAXZPq4_vv4s4{J^BGUiH2riavDu))R<4Ug?fxH4p@q0m&Ql z4bcrLHW=3`1XnFF^>Eb1ysf^Mr-dlu?itQw;yS6kPBCjB^@7818G)0!*<#LAIYt1*Nx^-!MR_EaO9``BIw*JJwJZO zYVp|>Ar@JnW6`{EH@y=|44o7I1b=l!x+G8RVf1xGqP#~(04$Rj^Vas(NS_8M=sfGr zI(+`b-s;1B3(~9mOj3M>!%p661xM+HY+6eF?iis690aM$n5;rtvz{n0895nOJ#Y*TIjfRU&?wp4k22hIXyTW6| z&%+SAf?~zo`t^7@^U8em-hKS;dG`V1^O?+}r%=j0^574Vq2>XupFn}&Mpl-^;1#mo zoZPQdP$UfHdp3{s4QCwnG&GAWjDLq(S!zB*d`r8)pprT#UE#?Nm0(14T)g`#I(Z~a zF9^#d+3MGbC%z)OLa&sNDj>aALs**`!Z3fPMVDi44##8Vdv1ZUujlt{6Iu};_{jXx zdLm5HnF5YEkveTVQuoB5t>~)I7{!(V%H}9lnYvZ3=@YqZ?Bk%^@Oq^F!mp=a{k~+- zZ9iv_DsuNvAvuTNh);3!Ylri!p&sJy>WRIHV&z&!-r8?*ynbm#I|DQse1n1+=|0cn z!wlRzIuS@?iaEOciWuDEZ>{k8G%1{&)UYVoyZFUHOi#-sGA6CmV9*tr%eZqHz_pK1 z$Nl@4Iy3g#`M#tj8{v?Lvome@Q5qshKU(g{rL1Lqc6^r@Uv!eWGOI1G@x8iC>DvZ! z>BVp7rYfE;7rIlu?C*foB~H~uf(guQ-QUHa_<1Hp2I(>PV>-y&<@n8>C6_fP^q_$e z{$bj!h~&QXjd0Z#iXplYxV?F<@q;9R3JT`fxmA`txnf<)xjvpkBukeOh6*zcTuaan znjYH_T?WP=`I-|GkkCAp5Nj})i@~gb&ExkDZz%QgnRh$g-^IPHI4P9g=T>8ZVk8`= zLb3{FWn7$QV^&~_7A2)IgMA+xG`k(lUDj&+P|{~iOpEL@GRvydbu})D7b;U-0hmGP z$z6~&g;40!4g#S?Mdj%T7G!;j%6JHe3;%1BsZpfXm%?Fd2F!u)l9OBT%J4(Uubu@w zX=;mPS1~Tj^6-FNhPqI)4tN#ARHx3;;Pzp`HbaIG4QE2{tFaw#Wu%%Yd@rEgO@!Ic zZq%VZU;%ajYQ;_<516|%nMHK6Q@U2nUO!(p**Z^*nru+%&~tC0nI+nY1Rf$PFos^b z7~VLvC23bB2Xm3kIn@Oq^+VW|b5r_cTh8U+0(*%Ds}8_a{%tYJwv16y-(*4Mjcry% z&$2|Es`qyz1WTsBNnMD=Jqk;*=u*&PcM%73Jv8#TTjG%cvqP=KC*?sTSgX2LPoK4- zc>{#+-?Qd$$5IF9EJBWvc0+U?t!xN)di0+&@p2<%IrKl|X;#+FVfESU$;8R)!!WNk zc;xNKQ4RrW>0(p2{m05m&hT*yapD<@FQ(BgGS9)Gvh(zGRBevM*J)0OGrj~fS#S;g z=ex*Rn_yp&e}5HQw~lO2@!wrwf>F;Sy9j?byA2d>bWr$i&*DDpJp6G4soxEOy&^-L zn}51?{rBN%=vGZ(O2&I;h1R;fe!r#!FJ=tNTS5~MQRj2mvsHno*#H6UxozgMP*+T( z`L%IZmdUVa)V0M=ou7E>ph>SwC-u=8YU%vk z=JDYpOTXys-AR|%cW{61$5nwPsMlqXN-}UDz68y*HGHs1#L^AHCQX|o&rt}Z8BlP> zw^jp)lN+0w)kaNIsfYm7QeH6k$->WUrG&*C{@kdldBXwoX5+z_P+Ytt$Bc1-5vz4! zqdfx$S!MJFsFJNPpm`e|0*5N(J+7oW{Z!l<7)7~Cm@5+(bB7^S`?B_&+umKjq&5U; z6g}~Jch=*ea~2?ndr=E!+K*}jCZ-6Tq!vK(K&n%83;ZOuW?vY`RyEF2uRTYh$DE!G z4*xckvtWl}^1hfexgV87!E*q6K?@Xnf7SlrdU)%uhl}Y&zIOoiB>4_Kwx?;_a+Ga< zO|9~Jh=?I9WX$GimcPq6Ab{RQCf z(t4ow6Rb?v*AjF5k=J+e9iqEahwH#u#Mi=1W8sO!*E5MxZ5EnyYFu;kynw(m;V;My zA4Gva!k?N*0}2gdKMgv0W>DLCCcVF(#g9DKW}Hg(CEYUMx=>4>e;iddpBd}M3Z7Z6 ziCyG?YaW8fvyk-a+IzX$dm)D}#R~((j_Ma_9=?Tp2|(xffu|pDZ%}fjtSHmGUfp@T zwH8^KG<^5n{kpDT(u=B7hzf59o1qMAEKrCvbq0SpgUgel%wu1$5#F$9u$8kKWa$on zxI&S{OIIj{5^_Z-r;(bn+v?lyri_D;tE5ir_FXAkLrNMaK{A8e@E{C~>U?5vS1jDo#mMpkGN4G?i-t*F5W9bWMU_x z+VSYfhBgw|sL6ljBBX^bF^_~k$J)`}CZm0f)}3Q(oV)Y$9|Q+}pbsnO5Rb(p4f_$7RL%yb_93Gx4*vSgOoDa%Cu@@0eJ%NNpu50yJHMv@FESv|>U zzo{ffV|tsIc|M>+%fj9_-X|hOlLLCvKG}<65u2nkw0Ji z6yMjQ%fV$IV&G@X%*ou1Xs0((n4%!7!?PtbPsrZjtUulS@v%YPz6KirCAvKCI>=)y zjxOm!mc%tgPAzX*zD3AAXTj!h({+;0`Ge!kZk57~5%l;?X||DkPGdHIo815%v$sh0^#`)!5PW%>1Ff- zhDSD&D0k+#qNldCq;XMFESb}9S)B*c-s7U2;fDccmG` zERq-<_2tx9+~{JGt4W@oGnPs^c)dGGyeg|_oOY*x$`#^-tc-Ed(`sF5GY=}IBM6Y} zk;(*fTUjQ{IY#{J2F9iV`d4HB!AAZDYbuK&>=z}~5#$u=P2LOzMYQIK_V$<`nz|VR zIfq;Ac`Zu~a@u+_ zquMmDmJUH@MKK0xY4~F+geOx}_O`2p^=#N{oqx|N)cqbOq6R`^bsdt2gK&>0sL*#w z5WNX}Ve8ERa-i^i03 zcV~gDGtKXqKWDk9(l=a0TFdJYa2fv?+=|MuCaRS=euLdog{%dc=JyS!+v8V}SDFC< z4TF}c(;>3jp$O*XM;6aU#$QLh6J=vtwSUrC=em~ASH{YML1_3zZ-m68%(8{!76+_K zE76kWB>QP(X2+irKKm+ofM(SA$jf|Y@j(Z=_gY_`Is~3S9itpr!?py*O4^^y=mdWNYGmehc8op!T)0dJ*p;<$95q@tTnbuIRs5X} zZ!K;-*w5e>&A4)mfBIBf$I#ZuQXVG24f%w=?*#XjINl-Jc2}ifp_Sc38>b2_GJ*MR zxO;RQsq{O1ZK(82I^lOhdq}02Ov*>uD8&YfJ{V;bEuqsahSiXpE(Ce?+N03{`U)+oho6WN^(t0C#r9)^oQG+D{PTt5fYqU>k|X2cp40@coCj5U&>VN+%3K)| zvopPFaHgq^atVan_d+o~!9Yt6pYJ6eC)1^>B}~yLZt3wyZYgcdN#R>w2}~fNTV#`5coOM#}r7XZqbS{iX=0~%0BXiXgS2x zVui{%yZt_FVMjb8&$>27M^6kw1$z=5zxKQ{{K2O%-Nmr{_?UM0_;NAwEw7D!cT zc5^GQtd5mdhBW4Om;FKYtJ46(fK8!V&Gv-Cd6Dfzz@Kbv_n|mxRtHm%*~B9=rlRQ9 zm1V00#E$aFSP?M**X_$t6Ws>+<3=&w0egP5bg*=dl3L3Tu;ai>6XTV-rc6U+ z!TTiTeV85y3XOSSK=8@CV#_EH6I{Io1qY<^!iF3Sd#BhMu}^r=L>>k+=nO~e<+X6S zxX!d^L5W%+(sC<@?y%`r)|Z;ys5xi@oXZ))tx{M#Z~2bMEoS8jJm}6_o*3;~Aj;wQ zUm|7?JO@g$UyFMIdalV;UHPmVfIeVmw$X5ZL4rEHJhcN*aGr%P)tR~#$! z4rCIY+VHUnytWo6CcAr(Xul0u$-({`B@Pvw>7smvo6mSUnk%*`fK*&}2Hui2?BqI> zwMQxswyi1jRNI1w5A&QTQifl*H{j3F#jJxr9B0PgjR~xPMIrX&boCrR+NXiAikl%R zTAT%&!hVIt&TZU|GPq%pnpHD*_itXma6iI8PzRey>Ip^b=K4cy!4YvMtrG!bSS25}u(TpeOH+=^=kv z`lW|Kcn%C8W>$-jtRzw8O`5c6#QJ>8dGas^B%Ab;@JnbE8*E>OenA$Ky-7mnz;`tEA=#2fs080-lViXj(H91#e-OB(|Lingkb&c<&kdSn#pAJ9EQ0$83tuyF_HUrr=S&j(rdbKW4c5BvZm=pb83s zo{kdEl5(2DFNAuPassYDsCwfQ7vMyYf_fr=ahl}eGq~I+v-O2Gt*tSo6@c#?);!_5 z7u1UcCbTvJEmF8+y2DPUmkjqeX$OWu%w=|DiGvA+H8v%tZc;3%k1GVS^mtyf#( zIh*`dS4&|7fAW^wp2Z zwYtItquqddjI$)xq@-m+M8jyG_Q7sSMx3L`Dv6V^aOs&Jm=aU7LNad2GrR_K@%^;B z-R(r|Qk_EXXUP>Qj%_R_b;m+SJZB#g0k{6(>VVZNym;yL^r9D4O%I4>U`#&NaHQhz zR}b)8#A)tmQKpNQr%7E5vXd7Qc8e8&^t89O<*4DQHs;c_Lu%bLE5^~^aZGc&#xJ9= zG&s&jw}N@UJ^cF^mfcn7S?fG>8Wdsp0%3g9*^_%VhG;fcvy&w1s4rnQ@qs;)d4@lI zSDf{zFrq(ySIBjk*5qZsXPwX_ZNrRi>D<*u$1AU2|G~|#3Jrbdm38!C<2@5V>k!_Q zc#wm8LfeJ%(zP;|L0G20d@IaIQ<9uHv+#j#SW@G(g(}ob<<*r&i-VL)%)u_t?yA&{ z(LJZ#sB`)sry&yyOP)_b<-kUk&x5!-KLfwj;a!;LHE)sC6Vo-d31e4ePlNvQ#G0~a zx@J_DWgoa4*X6|%l;^Ewg3@(BMb*M0v{0P%aJRRn=CCM&n&Q^#gK2`x93AunCMjkLUEV@ySk7nXLvy5`@L!u{410(VVhTQ(cYr$&oN#8%bmzmVRy&Z7@Tc>n_^?o2vF|m7 z-aME_1Wi|tFrQ?+XJ(#T?s)CGoGadr$iAYh>g$?8iD`YCF;|_dyI;GuBCr$sJJNJk z+O|;Jtzxb(iE_oj6gY?TBvI>KX4kf5Dc z=cs!SlKm56z_+mMbL)wRMhjn^2K}m$GZ?&>1mh%Gz{m48zVSQjx@G6~$)7w(#0mbg zy?bVCaSZR!5psEAV;9&Z5c?`nztP@-&TwVf4aqjM#@GQbuVTbj!}s;X-(;14c*M%K23bZZkv69F+sTKa&h*Pp-; zwrzwQfnAbageIV=mI5P-aiHC?OSZa)MGLQtjKVY|JKcA6=bk!akja+28|jRCHktPl z=V$h3y6$P1A+!c?v(0QY8P>gp^-}|Pd8sn}NDo=2Dq{crDO=Zv;ro$@$SzHzEw6aB zC_)9IBwss+B@EGIL6LLX;GsSR|DoJ0Au=-z(N%u3*F@OnL47`_ER>HKuhT?oadh&B zIgUViN^h#8|8@)ypB`_-#d579GRi>syQ`O`9S=)H?s6?HSA=Puv0`0k-IVcK1s(M` z#)y~1E0&)66!RPN|Mw~jss?~jfWiJx2AVMF&OIO_540rcYY-R-*nc4D9bf)J=f7lS zX{f)r>2JWl1?Zr>V6d3~kjx;)FfjLj1ZLvt&!YLiDYyC%fX0VlD*rLTLFmz7>;D0t zLDvajxc||XL5Rs8f3i*)VC(;6m9oK<{);a8nFogOpATBu z_I$~|=xh$S|8U#Dui0=I$=?}KLFg4=ije>5y+|8~#sGUP{;%He8n8m}|4QVd5scY@ zDC3a-Y64af!y|#F>%j#6!##sgKwz2wY*u!Fxk3C#eird9Y4rHpZf79tHz<*R1_OVC zMgKF1)Cb1=A3Pi+yb1RGUk`N9IOWLxbr=Bm|9a|j7tHKm9U6yVNdGa#K^9kF-4OrT z%AF$N<^~!ELHw^R5@aYsAgUZJ6sY(PjNxC5h%ZC37!V~4LIU*l3C#9iAI86e9se`p z^8q&V?@AF2ob(?de1!aW{N7(9&+z|@Jb__=rlG;#{u!A<0N;oDZ@3TTN$-G{xe$`T zzseXurxEC{AP#i!<$ro8Sm1-O|HTpC*YyC=D*h+#@8|=KO8!#Y^A@0SLHfkt7XPI7 z+mLC2-+W;IH)N6q9s$He0j~K^Dv}C(9Q;42&*gz$;56X>#^u7n!+|F}) zcmc2Qp+uSu!Brvun^pu0mGe)3r&TlXr!1_JgW z>XH`IZ**V2r~vD-{!M5|U{WwRH()zTs@z%yMa9w+IO5UKEz-A>0>@Jx)_fP~hBe?Nlh~9CA zw1IW#vB_XgJ85jM0=x8IP{CO6Tza)=D&PO|yvU&lD3`5z24T50 zYW*n$6l?vV2$+{4d#K>KWNP0bvlz7Mj8q}%(JIwy*?NlMxfK2a$%_%V#A-8w&zYAQ zdXQ1=nvG!KJra#z5V)jjTZ1Ps?7EB)Ao;~>!-5&nD@Fej%drtOD3{TD(%_rrYi)Xv zvHs%9IaPjO1up>LHK?^ZjUwO{ziJisWJ2oFF4JLDTUMAC^dT)WEaPK1Sp0>Ui`J4u z@ypg0LfN97;f8q2w`4WpkK6VNCcVfn|J@rB`buHX{!?l8FRi;?!;NXtxHb?DWf}*m zc`+2`I0pTULu)!zN-dfxBuw5*&jKOqDipjO$)gfZNsa|z(%W!ESgJp7#EOxdT<;_A zB{J(y)j@OYgJF>576QjC*ESQXNg+5Hs!1uh8M;I%*b~Z4AvhDtO({4M3Zf8P2?bFK z4upDA2rh(rQVLFlK2iv7gg&NTWFa=MgrZP-g~O4^_!Pr^rrj}M2&LWGVF;z(5n>1d z@ANRb65RkXaE3BIxo}(3K3)HZt-A`!BWT+M9NgUr?(XjH?(XjHFu{Yn1eX_gcMBc@ z!JXj2-7PHnzTK+*x3=bFYEI^0db+y$dHTL&zk+Zw!({ymWet-5j!{H_aK2Hf&&DVw zQyx)LjgJ_OGGU#voo1Z69o1^%p2~$9QZ6r0;YkUndv!|j-6kk{F;1imC|kJX4%Bjg zWPiLt4>%1?4Lkj?5Vqw0j0jV3h2FP7@pNlWd&4#0gma2KaE^HjFbxDzEpLQ4Vx1BV zw8FI-*84+sDc2hfJVUOLE-MY3<2YoPpupa{4-jFVk`54IpP~&AVV$xL5aFESgb0!@ zr-TSnF3*Jsk}o%fys6b2!`oR55=6~pJJ~2Pce`ArY+@>DRx* z-Zz-!!`@ezuuyWw0puFMoNZU!H3sV|0rEA1Zkyf{@rH*?=^>klf`=NCH|w_0|ilkkVx!6fyH7 zWM{{yKy{{hqi949{a(Zq{viIOe#tI%T zOREJHBC6aa9HM)ZLNpH}`1uVD+&p=@QiTC^O^0~_vE+y5$_&PF>^(Dx75nIF#E&cp zoIIIm{&DFk^eS1Zlm-CO`pCDC%zD9}>e&eN4ibi5lSV}R%g6h`?AaOM>Mma@&HvW^ z9Y<@8%g6}h4zC&NkTr>;o>wyQaPuV;98gNd_+7v)7Cl;dYg&=F>gm1p?81PGTysCP zSNsZ+{_z7cg4+Hw?DMX2@<{^&LDcgLwK2xI9nxbqmlsO2QJFAsm=G@hc2y#n_mz1| zRDc@JSW|V$Se&vONJ`swDcfwLKs`Hjo`(;ZHI@?Z$4M+z;+oizY42(r#JK(ul;|*K zxy+^&Z^0W!l&{?R0i^!CfE$56Y;d!@+xe?U%_j?lQt&AXL;Tp&JUe@HT>vfg{_WK8 z5lg?_bHkDBv{(ZA^8`i6k1)ZMRpfps9%E&BQ=4)I+x*;GcqU9Oi$ z_)!i$O&Gn0?Cg3a<&f~2g$O0K6OYIB$Xh^D_HNsx-lhyjYTU7k>)Y7fD9@R>d=%J7 zUm`ZxMe!5zNh%In~$?25Qeue9gTJ1PSbQxr;4Fs?#HM z-Bslb1I^_fB{704I7xx(ZuwTtp*d{&glF<{!;V}psi&PdQf2La{UyTTy-ar*#f4eP zv`NOQN__mP6FWH6W__+j+Gs~K{e8ImN4zg5s03*^%yxRIGSrp!pR=(Sw6xH4cx)z9 zPO%(i0ge7!KAPY{PJ6)xD>h02YCRe81Dx(sgK@!(@a~^1y+tYQ{5$nr zwQie#3<%dzo!&ue`?@Sk{D$_eCPz&hQnNiavJKl1B!Jrr*oBijqV*X6D%D*DV#cJ( z0OC5%uC31%qi(XY7~C7Fcx5bihqlg!pc^F#x$11EL@2RO)6z8Ia5a=0exNS9EQZ8= z;cg+BkQb|Ia5D(;iu89uioXBqFk~y)`pf7~zuYjRT?Sv^g=BpuOxcF5|D`IyA*-(d z(7m=J!2@YKE0IB|*{H3>bGWnnh#@Z208F3$Z?=4IC-@&*?uaPetHr2qREbGON33^~ zxvh?Y#kAwi-Chov>A2EXmf2?gqTy3ym&h_RuV|`28okrg>{+^wnVNhtDNPdz|Xx}99 z)vj8)NFZJQiXl1IqJqMYyw#uT(77LKxo@xvN$Z#X*PY{w?!&A`_$mg3@2brBi7znP zRSrE8>bizFOPs&+VABccfx6YLhx@T{_qI;ExsuDZ3QL$rFIO7}|2v7T)_L(IZv(N@ zl7|oenMt|0@-XaotrK|L`^B+w&l2=lY=l3VQ6Hz{?<--ASAH9!8;R97R{0zD7?_Q_ zAd^TkFmUTPmDSUpq^Z9H8Y}*WZsdQx)}bEBR~K)ynmY~j+Hl-lfJsCOjT*%|pGhL6 z)pwY)q-8!i|HKv>3}>;8=4A?1$SJau9dRn0S67~XeOIvI z=n|}JXpS5Klekd34t!wgNT zH)MCKt@2KT+EVNwAo9*=)+$wG64T^i#Qbx z^Y4^j55m7eE(6yw`f#RL~@C7#%xo0Mw{7Mm(im1CPvaLER z`o9E-4=B3Z0Hp&b>#r<)5&g|Q{LU_OZ-*A#&IRV{9+k12KXf``Ib~gW-}KiMt*5^^ z^{P?nlbTmqIPi{)Y46#G)_L6w`m)EX`|nz-J&wrO)y@L|anH+gj8I;4rb-^wBN zZg)E0#cg(7XU)EAR~{LGdn|VPJph4jbn++HBPkokH)BBDiRjOAH80k-3j=JrJRHz^}20sJ%I>TnAm1WlEH@yGhQ zY5mnfw?)q{Gdo}Wv&%AmY~ilsl8iD1i>(SZwNnt&acJpAh#}vMaiy4`Aw391yUZ~l zB|PV#^u#71d&B}^K2Uk)ZF36uHGsSCi!lwtb5geP5OaF(A{|6NVm*cxqmsk(#w&Ud zZR?69uSbkS(*zO_6rOE7UiTf2(wD^Rrs|2)>92V&UW)O_AK~q#j;Fh2i&y9%^5ABs zVhdevQ}yzN$U7mAkN#A`+05g&f-HW+#q~d>Cr8jZFD>)*e%0Dv;iLK4YeL@i+Xubb=?Z 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 z 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 H#DD(>q;;G+ delta 315224 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

H(bz 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

H7eCJ*(f*yn{52!E3dJt4rj&8oGDoua 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

$=!ty0laC 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

OIf_;Xj|uy#(q*8i8dzo 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

B~Sr~JgYslL?9VKLC|j6EQjm` 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 z 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 XC}_mkxr3R4nI^AMDCz<5Adm7tc;@JW diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java index c6ad28b38d..180e80c903 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java @@ -60,8 +60,8 @@ public BaseItem(ItemType itemType) { * @param nbtData NBT Compound tag */ @Deprecated - public BaseItem(ItemType itemType, CompoundTag nbtData) { - this(itemType, checkNotNull(nbtData).asBinaryTag()); + public BaseItem(ItemType itemType, @Nullable CompoundTag nbtData) { + this(itemType, nbtData == null ? null : nbtData.asBinaryTag()); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java index 042385c64b..ee91f9a644 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/wna/WorldNativeAccess.java @@ -19,11 +19,14 @@ package com.sk89q.worldedit.internal.wna; -import com.sk89q.jnbt.CompoundTag; +import com.google.common.collect.ImmutableMap; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -66,14 +69,15 @@ default > boolean setBlock(BlockVector3 position, if (successful || old == newState) { if (block instanceof BaseBlock) { BaseBlock baseBlock = (BaseBlock) block; - CompoundTag tag = baseBlock.getNbtData(); + CompoundBinaryTag tag = baseBlock.getNbt(); if (tag != null) { - tag = tag.createBuilder() - .putString("id", baseBlock.getNbtId()) - .putInt("x", position.getX()) - .putInt("y", position.getY()) - .putInt("z", position.getZ()) - .build(); + tag = tag.put(ImmutableMap.of( + "id", StringBinaryTag.of(baseBlock.getNbtId()), + "x", IntBinaryTag.of(position.getX()), + "y", IntBinaryTag.of(position.getY()), + "z", IntBinaryTag.of(position.getZ()) + )); + // update if TE changed as well successful = updateTileEntity(pos, tag); } @@ -136,7 +140,7 @@ default void setCurrentSideEffectSet(SideEffectSet sideEffectSet) { void updateLightingForBlock(NP position); - boolean updateTileEntity(NP position, CompoundTag tag); + boolean updateTileEntity(NP position, CompoundBinaryTag tag); void notifyBlockUpdate(NP position, NBS oldState, NBS newState); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java index b2f6ae5423..a26632e718 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java @@ -62,7 +62,8 @@ default boolean hasNbtData() { @Deprecated @Nullable default CompoundTag getNbtData() { - return AdventureNBTConverter.fromAdventure(getNbt()); + CompoundBinaryTag tag = getNbt(); + return tag == null ? null : AdventureNBTConverter.fromAdventure(tag); } /** diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java index 53b74c3f73..21d050b26a 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java @@ -20,8 +20,6 @@ package com.sk89q.worldedit.fabric; import com.google.common.collect.ImmutableList; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.fabric.internal.NBTConverter; import com.sk89q.worldedit.math.BlockVector3; @@ -32,6 +30,8 @@ import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; @@ -228,8 +228,8 @@ public static ItemType adapt(Item item) { public static ItemStack adapt(BaseItemStack baseItemStack) { net.minecraft.nbt.CompoundTag fabricCompound = null; - if (baseItemStack.getNbtData() != null) { - fabricCompound = NBTConverter.toNative(baseItemStack.getNbtData()); + if (baseItemStack.getNbt() != null) { + fabricCompound = NBTConverter.toNative(baseItemStack.getNbt()); } final ItemStack itemStack = new ItemStack(adapt(baseItemStack.getType()), baseItemStack.getAmount()); itemStack.setTag(fabricCompound); @@ -237,13 +237,13 @@ public static ItemStack adapt(BaseItemStack baseItemStack) { } public static BaseItemStack adapt(ItemStack itemStack) { - CompoundTag tag = NBTConverter.fromNative(itemStack.toTag(new net.minecraft.nbt.CompoundTag())); - if (tag.getValue().isEmpty()) { + CompoundBinaryTag tag = NBTConverter.fromNative(itemStack.toTag(new net.minecraft.nbt.CompoundTag())); + if (tag.keySet().isEmpty()) { tag = null; } else { - final Tag tagTag = tag.getValue().get("tag"); - if (tagTag instanceof CompoundTag) { - tag = ((CompoundTag) tagTag); + final BinaryTag tagTag = tag.get("tag"); + if (tagTag instanceof CompoundBinaryTag) { + tag = ((CompoundBinaryTag) tagTag); } else { tag = null; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java index e59956df3a..f2aab20d51 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java @@ -35,8 +35,8 @@ import com.mojang.datafixers.DataFixerBuilder; import com.mojang.datafixers.schemas.Schema; import com.mojang.serialization.Dynamic; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.fabric.internal.NBTConverter; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import net.minecraft.datafixer.Schemas; import net.minecraft.datafixer.TypeReferences; import net.minecraft.nbt.FloatTag; @@ -92,11 +92,11 @@ class FabricDataFixer extends DataFixerBuilder implements com.sk89q.worldedit.wo @Override public T fixUp(FixType type, T original, int srcVer) { if (type == FixTypes.CHUNK) { - return (T) fixChunk((CompoundTag) original, srcVer); + return (T) fixChunk((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.BLOCK_ENTITY) { - return (T) fixBlockEntity((CompoundTag) original, srcVer); + return (T) fixBlockEntity((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.ENTITY) { - return (T) fixEntity((CompoundTag) original, srcVer); + return (T) fixEntity((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.BLOCK_STATE) { return (T) fixBlockState((String) original, srcVer); } else if (type == FixTypes.ITEM_TYPE) { @@ -107,19 +107,19 @@ public T fixUp(FixType type, T original, int srcVer) { return original; } - private CompoundTag fixChunk(CompoundTag originalChunk, int srcVer) { + private CompoundBinaryTag fixChunk(CompoundBinaryTag originalChunk, int srcVer) { net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(originalChunk); net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.CHUNK, tag, srcVer); return NBTConverter.fromNative(fixed); } - private CompoundTag fixBlockEntity(CompoundTag origTileEnt, int srcVer) { + private CompoundBinaryTag fixBlockEntity(CompoundBinaryTag origTileEnt, int srcVer) { net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(origTileEnt); net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.BLOCK_ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); } - private CompoundTag fixEntity(CompoundTag origEnt, int srcVer) { + private CompoundBinaryTag fixEntity(CompoundBinaryTag origEnt, int srcVer) { net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(origEnt); net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java index 7240aa589d..cd34ca1646 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.fabric; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.util.StringUtil; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; @@ -38,6 +37,7 @@ import com.sk89q.worldedit.util.formatting.component.TextUtils; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.serializer.gson.GsonComponentSerializer; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -55,7 +55,6 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import java.io.IOException; @@ -243,7 +242,7 @@ public > void sendFakeBlock(BlockVector3 pos, B bl player.networkHandler.sendPacket(packetOut); if (block instanceof BaseBlock && block.getBlockType().equals(BlockTypes.STRUCTURE_BLOCK)) { final BaseBlock baseBlock = (BaseBlock) block; - final CompoundTag nbtData = baseBlock.getNbtData(); + final CompoundBinaryTag nbtData = baseBlock.getNbt(); if (nbtData != null) { player.networkHandler.sendPacket(new BlockEntityUpdateS2CPacket( new BlockPos(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ()), diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index c4fb5cd6fd..5bf412edc9 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -28,7 +28,6 @@ import com.google.common.collect.Sets; import com.google.common.util.concurrent.Futures; import com.mojang.serialization.Dynamic; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItem; @@ -53,6 +52,7 @@ import com.sk89q.worldedit.util.SideEffectSet; import com.sk89q.worldedit.util.TreeGenerator.TreeType; import com.sk89q.worldedit.util.io.file.SafeFiles; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.AbstractWorld; import com.sk89q.worldedit.world.RegenOptions; import com.sk89q.worldedit.world.biome.BiomeType; @@ -248,7 +248,7 @@ public boolean setBiome(BlockVector3 position, BiomeType biome) { @Override public boolean useItem(BlockVector3 position, BaseItem item, Direction face) { - ItemStack stack = FabricAdapter.adapt(new BaseItemStack(item.getType(), item.getNbtData(), 1)); + ItemStack stack = FabricAdapter.adapt(new BaseItemStack(item.getType(), item.getNbt(), 1)); ServerWorld world = (ServerWorld) getWorld(); final WorldEditFakePlayer fakePlayer; try { @@ -667,9 +667,9 @@ public Entity createEntity(Location location, BaseEntity entity) { } net.minecraft.entity.Entity createdEntity = entityType.get().create(world); if (createdEntity != null) { - CompoundTag nativeTag = entity.getNbtData(); + CompoundBinaryTag nativeTag = entity.getNbt(); if (nativeTag != null) { - net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(entity.getNbtData()); + net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(nativeTag); for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) { tag.remove(name); } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java index 62b3f92df9..5fbc89fb51 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java @@ -24,6 +24,7 @@ import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; @@ -103,7 +104,7 @@ public void updateLightingForBlock(BlockPos position) { } @Override - public boolean updateTileEntity(BlockPos position, com.sk89q.jnbt.CompoundTag tag) { + public boolean updateTileEntity(BlockPos position, CompoundBinaryTag tag) { CompoundTag nativeTag = NBTConverter.toNative(tag); BlockEntity tileEntity = getWorld().getWorldChunk(position).getBlockEntity(position); if (tileEntity == null) { diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java index d915dce7bf..418b90b46a 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java @@ -19,27 +19,22 @@ package com.sk89q.worldedit.fabric.internal; -import com.sk89q.jnbt.ByteArrayTag; -import com.sk89q.jnbt.ByteTag; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.DoubleTag; -import com.sk89q.jnbt.EndTag; -import com.sk89q.jnbt.FloatTag; -import com.sk89q.jnbt.IntArrayTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.LongArrayTag; -import com.sk89q.jnbt.LongTag; -import com.sk89q.jnbt.ShortTag; -import com.sk89q.jnbt.StringTag; -import com.sk89q.jnbt.Tag; - -import java.util.ArrayList; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.DoubleBinaryTag; +import com.sk89q.worldedit.util.nbt.EndBinaryTag; +import com.sk89q.worldedit.util.nbt.FloatBinaryTag; +import com.sk89q.worldedit.util.nbt.IntArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.LongBinaryTag; +import com.sk89q.worldedit.util.nbt.ShortBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; + import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; import java.util.Set; /** @@ -50,56 +45,56 @@ public final class NBTConverter { private NBTConverter() { } - public static net.minecraft.nbt.Tag toNative(Tag tag) { - if (tag instanceof IntArrayTag) { - return toNative((IntArrayTag) tag); + public static net.minecraft.nbt.Tag toNative(BinaryTag tag) { + if (tag instanceof IntArrayBinaryTag) { + return toNative((IntArrayBinaryTag) tag); - } else if (tag instanceof ListTag) { - return toNative((ListTag) tag); + } else if (tag instanceof ListBinaryTag) { + return toNative((ListBinaryTag) tag); - } else if (tag instanceof LongTag) { - return toNative((LongTag) tag); + } else if (tag instanceof LongBinaryTag) { + return toNative((LongBinaryTag) tag); - } else if (tag instanceof LongArrayTag) { - return toNative((LongArrayTag) tag); + } else if (tag instanceof LongArrayBinaryTag) { + return toNative((LongArrayBinaryTag) tag); - } else if (tag instanceof StringTag) { - return toNative((StringTag) tag); + } else if (tag instanceof StringBinaryTag) { + return toNative((StringBinaryTag) tag); - } else if (tag instanceof IntTag) { - return toNative((IntTag) tag); + } else if (tag instanceof IntBinaryTag) { + return toNative((IntBinaryTag) tag); - } else if (tag instanceof ByteTag) { - return toNative((ByteTag) tag); + } else if (tag instanceof ByteBinaryTag) { + return toNative((ByteBinaryTag) tag); - } else if (tag instanceof ByteArrayTag) { - return toNative((ByteArrayTag) tag); + } else if (tag instanceof ByteArrayBinaryTag) { + return toNative((ByteArrayBinaryTag) tag); - } else if (tag instanceof CompoundTag) { - return toNative((CompoundTag) tag); + } else if (tag instanceof CompoundBinaryTag) { + return toNative((CompoundBinaryTag) tag); - } else if (tag instanceof FloatTag) { - return toNative((FloatTag) tag); + } else if (tag instanceof FloatBinaryTag) { + return toNative((FloatBinaryTag) tag); - } else if (tag instanceof ShortTag) { - return toNative((ShortTag) tag); + } else if (tag instanceof ShortBinaryTag) { + return toNative((ShortBinaryTag) tag); - } else if (tag instanceof DoubleTag) { - return toNative((DoubleTag) tag); + } else if (tag instanceof DoubleBinaryTag) { + return toNative((DoubleBinaryTag) tag); } else { throw new IllegalArgumentException("Can't convert tag of type " + tag.getClass().getCanonicalName()); } } - public static net.minecraft.nbt.IntArrayTag toNative(IntArrayTag tag) { - int[] value = tag.getValue(); + public static net.minecraft.nbt.IntArrayTag toNative(IntArrayBinaryTag tag) { + int[] value = tag.value(); return new net.minecraft.nbt.IntArrayTag(Arrays.copyOf(value, value.length)); } - public static net.minecraft.nbt.ListTag toNative(ListTag tag) { + public static net.minecraft.nbt.ListTag toNative(ListBinaryTag tag) { net.minecraft.nbt.ListTag list = new net.minecraft.nbt.ListTag(); - for (Tag child : tag.getValue()) { - if (child instanceof EndTag) { + for (BinaryTag child : tag) { + if (child instanceof EndBinaryTag) { continue; } list.add(toNative(child)); @@ -107,51 +102,51 @@ public static net.minecraft.nbt.ListTag toNative(ListTag tag) { return list; } - public static net.minecraft.nbt.LongTag toNative(LongTag tag) { - return net.minecraft.nbt.LongTag.of(tag.getValue()); + public static net.minecraft.nbt.LongTag toNative(LongBinaryTag tag) { + return net.minecraft.nbt.LongTag.of(tag.value()); } - public static net.minecraft.nbt.LongArrayTag toNative(LongArrayTag tag) { - return new net.minecraft.nbt.LongArrayTag(tag.getValue().clone()); + public static net.minecraft.nbt.LongArrayTag toNative(LongArrayBinaryTag tag) { + return new net.minecraft.nbt.LongArrayTag(tag.value().clone()); } - public static net.minecraft.nbt.StringTag toNative(StringTag tag) { - return net.minecraft.nbt.StringTag.of(tag.getValue()); + public static net.minecraft.nbt.StringTag toNative(StringBinaryTag tag) { + return net.minecraft.nbt.StringTag.of(tag.value()); } - public static net.minecraft.nbt.IntTag toNative(IntTag tag) { - return net.minecraft.nbt.IntTag.of(tag.getValue()); + public static net.minecraft.nbt.IntTag toNative(IntBinaryTag tag) { + return net.minecraft.nbt.IntTag.of(tag.value()); } - public static net.minecraft.nbt.ByteTag toNative(ByteTag tag) { - return net.minecraft.nbt.ByteTag.of(tag.getValue()); + public static net.minecraft.nbt.ByteTag toNative(ByteBinaryTag tag) { + return net.minecraft.nbt.ByteTag.of(tag.value()); } - public static net.minecraft.nbt.ByteArrayTag toNative(ByteArrayTag tag) { - return new net.minecraft.nbt.ByteArrayTag(tag.getValue().clone()); + public static net.minecraft.nbt.ByteArrayTag toNative(ByteArrayBinaryTag tag) { + return new net.minecraft.nbt.ByteArrayTag(tag.value().clone()); } - public static net.minecraft.nbt.CompoundTag toNative(CompoundTag tag) { + public static net.minecraft.nbt.CompoundTag toNative(CompoundBinaryTag tag) { net.minecraft.nbt.CompoundTag compound = new net.minecraft.nbt.CompoundTag(); - for (Entry child : tag.getValue().entrySet()) { - compound.put(child.getKey(), toNative(child.getValue())); + for (String key : tag.keySet()) { + compound.put(key, toNative(tag.get(key))); } return compound; } - public static net.minecraft.nbt.FloatTag toNative(FloatTag tag) { - return net.minecraft.nbt.FloatTag.of(tag.getValue()); + public static net.minecraft.nbt.FloatTag toNative(FloatBinaryTag tag) { + return net.minecraft.nbt.FloatTag.of(tag.value()); } - public static net.minecraft.nbt.ShortTag toNative(ShortTag tag) { - return net.minecraft.nbt.ShortTag.of(tag.getValue()); + public static net.minecraft.nbt.ShortTag toNative(ShortBinaryTag tag) { + return net.minecraft.nbt.ShortTag.of(tag.value()); } - public static net.minecraft.nbt.DoubleTag toNative(DoubleTag tag) { - return net.minecraft.nbt.DoubleTag.of(tag.getValue()); + public static net.minecraft.nbt.DoubleTag toNative(DoubleBinaryTag tag) { + return net.minecraft.nbt.DoubleTag.of(tag.value()); } - public static Tag fromNative(net.minecraft.nbt.Tag other) { + public static BinaryTag fromNative(net.minecraft.nbt.Tag other) { if (other instanceof net.minecraft.nbt.IntArrayTag) { return fromNative((net.minecraft.nbt.IntArrayTag) other); @@ -195,71 +190,69 @@ public static Tag fromNative(net.minecraft.nbt.Tag other) { } } - public static IntArrayTag fromNative(net.minecraft.nbt.IntArrayTag other) { + public static IntArrayBinaryTag fromNative(net.minecraft.nbt.IntArrayTag other) { int[] value = other.getIntArray(); - return new IntArrayTag(Arrays.copyOf(value, value.length)); + return IntArrayBinaryTag.of(Arrays.copyOf(value, value.length)); } - public static ListTag fromNative(net.minecraft.nbt.ListTag other) { + public static ListBinaryTag fromNative(net.minecraft.nbt.ListTag other) { other = other.copy(); - List list = new ArrayList<>(); - Class listClass = StringTag.class; + ListBinaryTag.Builder list = ListBinaryTag.builder(); int tags = other.size(); for (int i = 0; i < tags; i++) { - Tag child = fromNative(other.remove(0)); + BinaryTag child = fromNative(other.remove(0)); list.add(child); - listClass = child.getClass(); } - return new ListTag(listClass, list); + return list.build(); } - public static EndTag fromNative(net.minecraft.nbt.EndTag other) { - return new EndTag(); + public static EndBinaryTag fromNative(net.minecraft.nbt.EndTag other) { + return EndBinaryTag.get(); } - public static LongTag fromNative(net.minecraft.nbt.LongTag other) { - return new LongTag(other.getLong()); + public static LongBinaryTag fromNative(net.minecraft.nbt.LongTag other) { + return LongBinaryTag.of(other.getLong()); } - public static LongArrayTag fromNative(net.minecraft.nbt.LongArrayTag other) { - return new LongArrayTag(other.getLongArray().clone()); + public static LongArrayBinaryTag fromNative(net.minecraft.nbt.LongArrayTag other) { + return LongArrayBinaryTag.of(other.getLongArray().clone()); } - public static StringTag fromNative(net.minecraft.nbt.StringTag other) { - return new StringTag(other.asString()); + public static StringBinaryTag fromNative(net.minecraft.nbt.StringTag other) { + return StringBinaryTag.of(other.asString()); } - public static IntTag fromNative(net.minecraft.nbt.IntTag other) { - return new IntTag(other.getInt()); + public static IntBinaryTag fromNative(net.minecraft.nbt.IntTag other) { + return IntBinaryTag.of(other.getInt()); } - public static ByteTag fromNative(net.minecraft.nbt.ByteTag other) { - return new ByteTag(other.getByte()); + public static ByteBinaryTag fromNative(net.minecraft.nbt.ByteTag other) { + return ByteBinaryTag.of(other.getByte()); } - public static ByteArrayTag fromNative(net.minecraft.nbt.ByteArrayTag other) { - return new ByteArrayTag(other.getByteArray().clone()); + public static ByteArrayBinaryTag fromNative(net.minecraft.nbt.ByteArrayTag other) { + return ByteArrayBinaryTag.of(other.getByteArray().clone()); } - public static CompoundTag fromNative(net.minecraft.nbt.CompoundTag other) { + public static CompoundBinaryTag fromNative(net.minecraft.nbt.CompoundTag other) { Set tags = other.getKeys(); - Map map = new HashMap<>(); + CompoundBinaryTag.Builder builder = CompoundBinaryTag.builder(); for (String tagName : tags) { - map.put(tagName, fromNative(other.get(tagName))); + builder.put(tagName, fromNative(other.get(tagName))); } - return new CompoundTag(map); + return builder.build(); } - public static FloatTag fromNative(net.minecraft.nbt.FloatTag other) { - return new FloatTag(other.getFloat()); + public static FloatBinaryTag fromNative(net.minecraft.nbt.FloatTag other) { + return FloatBinaryTag.of(other.getFloat()); } - public static ShortTag fromNative(net.minecraft.nbt.ShortTag other) { - return new ShortTag(other.getShort()); + public static ShortBinaryTag fromNative(net.minecraft.nbt.ShortTag other) { + return ShortBinaryTag.of(other.getShort()); } - public static DoubleTag fromNative(net.minecraft.nbt.DoubleTag other) { - return new DoubleTag(other.getDouble()); + public static DoubleBinaryTag fromNative(net.minecraft.nbt.DoubleTag other) { + return DoubleBinaryTag.of(other.getDouble()); } } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java index 840eb04547..ba02cfa1a0 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java @@ -20,8 +20,6 @@ package com.sk89q.worldedit.forge; import com.google.common.collect.ImmutableList; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.forge.internal.NBTConverter; import com.sk89q.worldedit.math.BlockVector3; @@ -32,6 +30,8 @@ import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; @@ -224,8 +224,8 @@ public static ItemType adapt(Item item) { public static ItemStack adapt(BaseItemStack baseItemStack) { CompoundNBT forgeCompound = null; - if (baseItemStack.getNbtData() != null) { - forgeCompound = NBTConverter.toNative(baseItemStack.getNbtData()); + if (baseItemStack.getNbt() != null) { + forgeCompound = NBTConverter.toNative(baseItemStack.getNbt()); } final ItemStack itemStack = new ItemStack(adapt(baseItemStack.getType()), baseItemStack.getAmount()); itemStack.setTag(forgeCompound); @@ -233,13 +233,13 @@ public static ItemStack adapt(BaseItemStack baseItemStack) { } public static BaseItemStack adapt(ItemStack itemStack) { - CompoundTag tag = NBTConverter.fromNative(itemStack.serializeNBT()); - if (tag.getValue().isEmpty()) { + CompoundBinaryTag tag = NBTConverter.fromNative(itemStack.serializeNBT()); + if (tag.keySet().isEmpty()) { tag = null; } else { - final Tag tagTag = tag.getValue().get("tag"); - if (tagTag instanceof CompoundTag) { - tag = ((CompoundTag) tagTag); + final BinaryTag tagTag = tag.get("tag"); + if (tagTag instanceof CompoundBinaryTag) { + tag = ((CompoundBinaryTag) tagTag); } else { tag = null; } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeDataFixer.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeDataFixer.java index 7eebd7dc5b..0c5edd609c 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeDataFixer.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeDataFixer.java @@ -34,8 +34,8 @@ import com.mojang.datafixers.DataFixerBuilder; import com.mojang.datafixers.schemas.Schema; import com.mojang.serialization.Dynamic; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.forge.internal.NBTConverter; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import net.minecraft.item.DyeColor; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.FloatNBT; @@ -94,11 +94,11 @@ class ForgeDataFixer extends DataFixerBuilder implements com.sk89q.worldedit.wor @Override public T fixUp(FixType type, T original, int srcVer) { if (type == FixTypes.CHUNK) { - return (T) fixChunk((CompoundTag) original, srcVer); + return (T) fixChunk((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.BLOCK_ENTITY) { - return (T) fixBlockEntity((CompoundTag) original, srcVer); + return (T) fixBlockEntity((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.ENTITY) { - return (T) fixEntity((CompoundTag) original, srcVer); + return (T) fixEntity((CompoundBinaryTag) original, srcVer); } else if (type == FixTypes.BLOCK_STATE) { return (T) fixBlockState((String) original, srcVer); } else if (type == FixTypes.ITEM_TYPE) { @@ -109,19 +109,19 @@ public T fixUp(FixType type, T original, int srcVer) { return original; } - private CompoundTag fixChunk(CompoundTag originalChunk, int srcVer) { + private CompoundBinaryTag fixChunk(CompoundBinaryTag originalChunk, int srcVer) { CompoundNBT tag = NBTConverter.toNative(originalChunk); CompoundNBT fixed = convert(LegacyType.CHUNK, tag, srcVer); return NBTConverter.fromNative(fixed); } - private CompoundTag fixBlockEntity(CompoundTag origTileEnt, int srcVer) { + private CompoundBinaryTag fixBlockEntity(CompoundBinaryTag origTileEnt, int srcVer) { CompoundNBT tag = NBTConverter.toNative(origTileEnt); CompoundNBT fixed = convert(LegacyType.BLOCK_ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); } - private CompoundTag fixEntity(CompoundTag origEnt, int srcVer) { + private CompoundBinaryTag fixEntity(CompoundBinaryTag origEnt, int srcVer) { CompoundNBT tag = NBTConverter.toNative(origEnt); CompoundNBT fixed = convert(LegacyType.ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java index 2151d98454..41e08e9559 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlayer.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.forge; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.util.StringUtil; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; @@ -36,6 +35,7 @@ import com.sk89q.worldedit.util.formatting.component.TextUtils; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.serializer.gson.GsonComponentSerializer; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -244,7 +244,7 @@ public > void sendFakeBlock(BlockVector3 pos, B bl player.connection.sendPacket(packetOut); if (block instanceof BaseBlock && block.getBlockType().equals(BlockTypes.STRUCTURE_BLOCK)) { final BaseBlock baseBlock = (BaseBlock) block; - final CompoundTag nbtData = baseBlock.getNbtData(); + final CompoundBinaryTag nbtData = baseBlock.getNbt(); if (nbtData != null) { player.connection.sendPacket(new SUpdateTileEntityPacket( new BlockPos(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ()), diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index e54caa1a43..2eb64dede1 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -29,7 +29,6 @@ import com.google.common.util.concurrent.Futures; import com.mojang.serialization.Codec; import com.mojang.serialization.Dynamic; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItem; @@ -53,6 +52,7 @@ import com.sk89q.worldedit.util.SideEffectSet; import com.sk89q.worldedit.util.TreeGenerator.TreeType; import com.sk89q.worldedit.util.io.file.SafeFiles; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.AbstractWorld; import com.sk89q.worldedit.world.RegenOptions; import com.sk89q.worldedit.world.biome.BiomeType; @@ -253,7 +253,7 @@ public boolean setBiome(BlockVector3 position, BiomeType biome) { @Override public boolean useItem(BlockVector3 position, BaseItem item, Direction face) { - ItemStack stack = ForgeAdapter.adapt(new BaseItemStack(item.getType(), item.getNbtData(), 1)); + ItemStack stack = ForgeAdapter.adapt(new BaseItemStack(item.getType(), item.getNbt(), 1)); ServerWorld world = (ServerWorld) getWorld(); final WorldEditFakePlayer fakePlayer; try { @@ -677,9 +677,9 @@ public Entity createEntity(Location location, BaseEntity entity) { } net.minecraft.entity.Entity createdEntity = entityType.get().create(world); if (createdEntity != null) { - CompoundTag nativeTag = entity.getNbtData(); + CompoundBinaryTag nativeTag = entity.getNbt(); if (nativeTag != null) { - CompoundNBT tag = NBTConverter.toNative(entity.getNbtData()); + CompoundNBT tag = NBTConverter.toNative(nativeTag); for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) { tag.remove(name); } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeWorldNativeAccess.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeWorldNativeAccess.java index 94f491b9f0..1080994a89 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeWorldNativeAccess.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeWorldNativeAccess.java @@ -19,12 +19,12 @@ package com.sk89q.worldedit.forge.internal; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.forge.ForgeAdapter; import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.nbt.CompoundNBT; @@ -98,7 +98,7 @@ public void updateLightingForBlock(BlockPos position) { } @Override - public boolean updateTileEntity(BlockPos position, CompoundTag tag) { + public boolean updateTileEntity(BlockPos position, CompoundBinaryTag tag) { CompoundNBT nativeTag = NBTConverter.toNative(tag); return TileEntityUtils.setTileEntity(getWorld(), position, nativeTag); } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java index 64532b6fb0..4f76306bc3 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java @@ -19,20 +19,20 @@ package com.sk89q.worldedit.forge.internal; -import com.sk89q.jnbt.ByteArrayTag; -import com.sk89q.jnbt.ByteTag; -import com.sk89q.jnbt.CompoundTag; -import com.sk89q.jnbt.DoubleTag; -import com.sk89q.jnbt.EndTag; -import com.sk89q.jnbt.FloatTag; -import com.sk89q.jnbt.IntArrayTag; -import com.sk89q.jnbt.IntTag; -import com.sk89q.jnbt.ListTag; -import com.sk89q.jnbt.LongArrayTag; -import com.sk89q.jnbt.LongTag; -import com.sk89q.jnbt.ShortTag; -import com.sk89q.jnbt.StringTag; -import com.sk89q.jnbt.Tag; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.DoubleBinaryTag; +import com.sk89q.worldedit.util.nbt.EndBinaryTag; +import com.sk89q.worldedit.util.nbt.FloatBinaryTag; +import com.sk89q.worldedit.util.nbt.IntArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.LongBinaryTag; +import com.sk89q.worldedit.util.nbt.ShortBinaryTag; +import com.sk89q.worldedit.util.nbt.StringBinaryTag; import net.minecraft.nbt.ByteArrayNBT; import net.minecraft.nbt.ByteNBT; import net.minecraft.nbt.CompoundNBT; @@ -48,12 +48,7 @@ import net.minecraft.nbt.ShortNBT; import net.minecraft.nbt.StringNBT; -import java.util.ArrayList; import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; import java.util.Set; /** @@ -64,56 +59,56 @@ public final class NBTConverter { private NBTConverter() { } - public static INBT toNative(Tag tag) { - if (tag instanceof IntArrayTag) { - return toNative((IntArrayTag) tag); + public static INBT toNative(BinaryTag tag) { + if (tag instanceof IntArrayBinaryTag) { + return toNative((IntArrayBinaryTag) tag); - } else if (tag instanceof ListTag) { - return toNative((ListTag) tag); + } else if (tag instanceof ListBinaryTag) { + return toNative((ListBinaryTag) tag); - } else if (tag instanceof LongTag) { - return toNative((LongTag) tag); + } else if (tag instanceof LongBinaryTag) { + return toNative((LongBinaryTag) tag); - } else if (tag instanceof LongArrayTag) { - return toNative((LongArrayTag) tag); + } else if (tag instanceof LongArrayBinaryTag) { + return toNative((LongArrayBinaryTag) tag); - } else if (tag instanceof StringTag) { - return toNative((StringTag) tag); + } else if (tag instanceof StringBinaryTag) { + return toNative((StringBinaryTag) tag); - } else if (tag instanceof IntTag) { - return toNative((IntTag) tag); + } else if (tag instanceof IntBinaryTag) { + return toNative((IntBinaryTag) tag); - } else if (tag instanceof ByteTag) { - return toNative((ByteTag) tag); + } else if (tag instanceof ByteBinaryTag) { + return toNative((ByteBinaryTag) tag); - } else if (tag instanceof ByteArrayTag) { - return toNative((ByteArrayTag) tag); + } else if (tag instanceof ByteArrayBinaryTag) { + return toNative((ByteArrayBinaryTag) tag); - } else if (tag instanceof CompoundTag) { - return toNative((CompoundTag) tag); + } else if (tag instanceof CompoundBinaryTag) { + return toNative((CompoundBinaryTag) tag); - } else if (tag instanceof FloatTag) { - return toNative((FloatTag) tag); + } else if (tag instanceof FloatBinaryTag) { + return toNative((FloatBinaryTag) tag); - } else if (tag instanceof ShortTag) { - return toNative((ShortTag) tag); + } else if (tag instanceof ShortBinaryTag) { + return toNative((ShortBinaryTag) tag); - } else if (tag instanceof DoubleTag) { - return toNative((DoubleTag) tag); + } else if (tag instanceof DoubleBinaryTag) { + return toNative((DoubleBinaryTag) tag); } else { throw new IllegalArgumentException("Can't convert tag of type " + tag.getClass().getCanonicalName()); } } - public static IntArrayNBT toNative(IntArrayTag tag) { - int[] value = tag.getValue(); + public static IntArrayNBT toNative(IntArrayBinaryTag tag) { + int[] value = tag.value(); return new IntArrayNBT(Arrays.copyOf(value, value.length)); } - public static ListNBT toNative(ListTag tag) { + public static ListNBT toNative(ListBinaryTag tag) { ListNBT list = new ListNBT(); - for (Tag child : tag.getValue()) { - if (child instanceof EndTag) { + for (BinaryTag child : tag) { + if (child instanceof EndBinaryTag) { continue; } list.add(toNative(child)); @@ -121,51 +116,51 @@ public static ListNBT toNative(ListTag tag) { return list; } - public static LongNBT toNative(LongTag tag) { - return LongNBT.valueOf(tag.getValue()); + public static LongNBT toNative(LongBinaryTag tag) { + return LongNBT.valueOf(tag.value()); } - public static LongArrayNBT toNative(LongArrayTag tag) { - return new LongArrayNBT(tag.getValue().clone()); + public static LongArrayNBT toNative(LongArrayBinaryTag tag) { + return new LongArrayNBT(tag.value().clone()); } - public static StringNBT toNative(StringTag tag) { - return StringNBT.valueOf(tag.getValue()); + public static StringNBT toNative(StringBinaryTag tag) { + return StringNBT.valueOf(tag.value()); } - public static IntNBT toNative(IntTag tag) { - return IntNBT.valueOf(tag.getValue()); + public static IntNBT toNative(IntBinaryTag tag) { + return IntNBT.valueOf(tag.value()); } - public static ByteNBT toNative(ByteTag tag) { - return ByteNBT.valueOf(tag.getValue()); + public static ByteNBT toNative(ByteBinaryTag tag) { + return ByteNBT.valueOf(tag.value()); } - public static ByteArrayNBT toNative(ByteArrayTag tag) { - return new ByteArrayNBT(tag.getValue().clone()); + public static ByteArrayNBT toNative(ByteArrayBinaryTag tag) { + return new ByteArrayNBT(tag.value().clone()); } - public static CompoundNBT toNative(CompoundTag tag) { + public static CompoundNBT toNative(CompoundBinaryTag tag) { CompoundNBT compound = new CompoundNBT(); - for (Entry child : tag.getValue().entrySet()) { - compound.put(child.getKey(), toNative(child.getValue())); + for (String key : tag.keySet()) { + compound.put(key, toNative(tag.get(key))); } return compound; } - public static FloatNBT toNative(FloatTag tag) { - return FloatNBT.valueOf(tag.getValue()); + public static FloatNBT toNative(FloatBinaryTag tag) { + return FloatNBT.valueOf(tag.value()); } - public static ShortNBT toNative(ShortTag tag) { - return ShortNBT.valueOf(tag.getValue()); + public static ShortNBT toNative(ShortBinaryTag tag) { + return ShortNBT.valueOf(tag.value()); } - public static DoubleNBT toNative(DoubleTag tag) { - return DoubleNBT.valueOf(tag.getValue()); + public static DoubleNBT toNative(DoubleBinaryTag tag) { + return DoubleNBT.valueOf(tag.value()); } - public static Tag fromNative(INBT other) { + public static BinaryTag fromNative(INBT other) { if (other instanceof IntArrayNBT) { return fromNative((IntArrayNBT) other); @@ -209,71 +204,69 @@ public static Tag fromNative(INBT other) { } } - public static IntArrayTag fromNative(IntArrayNBT other) { + public static IntArrayBinaryTag fromNative(IntArrayNBT other) { int[] value = other.getIntArray(); - return new IntArrayTag(Arrays.copyOf(value, value.length)); + return IntArrayBinaryTag.of(Arrays.copyOf(value, value.length)); } - public static ListTag fromNative(ListNBT other) { + public static ListBinaryTag fromNative(ListNBT other) { other = other.copy(); - List list = new ArrayList<>(); - Class listClass = StringTag.class; + ListBinaryTag.Builder list = ListBinaryTag.builder(); int tags = other.size(); for (int i = 0; i < tags; i++) { - Tag child = fromNative(other.remove(0)); + BinaryTag child = fromNative(other.remove(0)); list.add(child); - listClass = child.getClass(); } - return new ListTag(listClass, list); + return list.build(); } - public static EndTag fromNative(EndNBT other) { - return new EndTag(); + public static EndBinaryTag fromNative(EndNBT other) { + return EndBinaryTag.get(); } - public static LongTag fromNative(LongNBT other) { - return new LongTag(other.getLong()); + public static LongBinaryTag fromNative(LongNBT other) { + return LongBinaryTag.of(other.getLong()); } - public static LongArrayTag fromNative(LongArrayNBT other) { - return new LongArrayTag(other.getAsLongArray().clone()); + public static LongArrayBinaryTag fromNative(LongArrayNBT other) { + return LongArrayBinaryTag.of(other.getAsLongArray().clone()); } - public static StringTag fromNative(StringNBT other) { - return new StringTag(other.getString()); + public static StringBinaryTag fromNative(StringNBT other) { + return StringBinaryTag.of(other.getString()); } - public static IntTag fromNative(IntNBT other) { - return new IntTag(other.getInt()); + public static IntBinaryTag fromNative(IntNBT other) { + return IntBinaryTag.of(other.getInt()); } - public static ByteTag fromNative(ByteNBT other) { - return new ByteTag(other.getByte()); + public static ByteBinaryTag fromNative(ByteNBT other) { + return ByteBinaryTag.of(other.getByte()); } - public static ByteArrayTag fromNative(ByteArrayNBT other) { - return new ByteArrayTag(other.getByteArray().clone()); + public static ByteArrayBinaryTag fromNative(ByteArrayNBT other) { + return ByteArrayBinaryTag.of(other.getByteArray().clone()); } - public static CompoundTag fromNative(CompoundNBT other) { + public static CompoundBinaryTag fromNative(CompoundNBT other) { Set tags = other.keySet(); - Map map = new HashMap<>(); + CompoundBinaryTag.Builder map = CompoundBinaryTag.builder(); for (String tagName : tags) { map.put(tagName, fromNative(other.get(tagName))); } - return new CompoundTag(map); + return map.build(); } - public static FloatTag fromNative(FloatNBT other) { - return new FloatTag(other.getFloat()); + public static FloatBinaryTag fromNative(FloatNBT other) { + return FloatBinaryTag.of(other.getFloat()); } - public static ShortTag fromNative(ShortNBT other) { - return new ShortTag(other.getShort()); + public static ShortBinaryTag fromNative(ShortNBT other) { + return ShortBinaryTag.of(other.getShort()); } - public static DoubleTag fromNative(DoubleNBT other) { - return new DoubleTag(other.getDouble()); + public static DoubleBinaryTag fromNative(DoubleNBT other) { + return DoubleBinaryTag.of(other.getDouble()); } } From 628c3f2ca17c3810e028986250c48bb2c884acae Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 9 Feb 2021 20:41:47 +1000 Subject: [PATCH 042/813] Fix a few issues (and pretend 4.5.0 exists) --- .../java/com/sk89q/worldedit/LocalSession.java | 1 - .../worldedit/world/block/BlockStateHolder.java | 14 ++++++++++++-- worldedit-libs/core/build.gradle.kts | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index f83815225f..3b865ad80a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -23,7 +23,6 @@ import com.sk89q.jchronic.Options; import com.sk89q.jchronic.utils.Span; import com.sk89q.jchronic.utils.Time; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.worldedit.command.tool.BlockTool; import com.sk89q.worldedit.command.tool.BrushTool; import com.sk89q.worldedit.command.tool.InvalidToolBindException; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index 875da7895d..cd908e1e6e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -22,6 +22,8 @@ import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.function.pattern.Pattern; +import com.sk89q.worldedit.internal.util.DeprecationUtil; +import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; @@ -93,7 +95,9 @@ public interface BlockStateHolder> extends Pattern * @deprecated Use {@link BlockStateHolder#toBaseBlock(CompoundBinaryTag)}. */ @Deprecated - BaseBlock toBaseBlock(CompoundTag compoundTag); + default BaseBlock toBaseBlock(CompoundTag compoundTag) { + return toBaseBlock(compoundTag == null ? null : compoundTag.asBinaryTag()); + } /** * Gets a {@link BaseBlock} from this BlockStateHolder. @@ -101,8 +105,14 @@ public interface BlockStateHolder> extends Pattern * @param compoundTag The NBT Data to apply * @return The BaseBlock */ + @NonAbstractForCompatibility( + delegateName = "toBaseBlock", + delegateParams = { CompoundTag.class } + ) default BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { - return toBaseBlock(AdventureNBTConverter.fromAdventure(compoundTag)); + DeprecationUtil.checkDelegatingOverride(getClass()); + + return toBaseBlock(compoundTag == null ? null : AdventureNBTConverter.fromAdventure(compoundTag)); } @Override diff --git a/worldedit-libs/core/build.gradle.kts b/worldedit-libs/core/build.gradle.kts index 26fdba8be4..84714e5eb7 100644 --- a/worldedit-libs/core/build.gradle.kts +++ b/worldedit-libs/core/build.gradle.kts @@ -13,5 +13,5 @@ dependencies { "shade"("org.enginehub.piston:core:${Versions.PISTON}") "shade"("org.enginehub.piston.core-ap:runtime:${Versions.PISTON}") "shade"("org.enginehub.piston:default-impl:${Versions.PISTON}") - "shade"("net.kyori:adventure-nbt:4.4.0") + "shade"("net.kyori:adventure-nbt:4.5.0") } From 3b25230f191b5b7ba6fd6b34877f08ff92c5c7ac Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 14 Feb 2021 21:31:04 -0800 Subject: [PATCH 043/813] Finish reimplementing everything in adventure-nbt --- .../com/sk89q/jnbt/AdventureNBTConverter.java | 153 ++++----- .../java/com/sk89q/jnbt/ByteArrayTag.java | 2 +- .../src/main/java/com/sk89q/jnbt/ByteTag.java | 2 +- .../main/java/com/sk89q/jnbt/CompoundTag.java | 209 +++---------- .../com/sk89q/jnbt/CompoundTagBuilder.java | 53 ++-- .../main/java/com/sk89q/jnbt/DoubleTag.java | 2 +- .../main/java/com/sk89q/jnbt/FloatTag.java | 2 +- .../main/java/com/sk89q/jnbt/IntArrayTag.java | 2 +- .../src/main/java/com/sk89q/jnbt/IntTag.java | 2 +- .../src/main/java/com/sk89q/jnbt/ListTag.java | 292 +++++++----------- .../java/com/sk89q/jnbt/ListTagBuilder.java | 22 +- .../java/com/sk89q/jnbt/LongArrayTag.java | 2 +- .../src/main/java/com/sk89q/jnbt/LongTag.java | 2 +- .../java/com/sk89q/jnbt/NBTConstants.java | 5 - .../main/java/com/sk89q/jnbt/NBTUtils.java | 31 +- .../main/java/com/sk89q/jnbt/ShortTag.java | 2 +- .../main/java/com/sk89q/jnbt/StringTag.java | 2 +- .../com/sk89q/worldedit/world/NbtValued.java | 12 +- .../world/block/BlockStateHolder.java | 4 +- 19 files changed, 292 insertions(+), 509 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java index 407bcb0099..13c58e6931 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/AdventureNBTConverter.java @@ -19,20 +19,18 @@ package com.sk89q.jnbt; +import com.google.common.collect.BiMap; +import com.google.common.collect.ImmutableBiMap; +import com.google.common.collect.ImmutableMap; import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; -import com.sk89q.worldedit.util.nbt.ByteBinaryTag; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.DoubleBinaryTag; -import com.sk89q.worldedit.util.nbt.EndBinaryTag; -import com.sk89q.worldedit.util.nbt.FloatBinaryTag; -import com.sk89q.worldedit.util.nbt.IntArrayBinaryTag; -import com.sk89q.worldedit.util.nbt.IntBinaryTag; -import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; -import com.sk89q.worldedit.util.nbt.LongBinaryTag; -import com.sk89q.worldedit.util.nbt.ShortBinaryTag; -import com.sk89q.worldedit.util.nbt.StringBinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagType; +import com.sk89q.worldedit.util.nbt.BinaryTagTypes; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; /** * Converts between JNBT and Adventure-NBT classes. @@ -41,92 +39,67 @@ */ @Deprecated public class AdventureNBTConverter { - - private AdventureNBTConverter() { - - } - - public static Tag fromAdventure(BinaryTag other) { - if (other instanceof IntArrayBinaryTag) { - return fromAdventure((IntArrayBinaryTag) other); - } else if (other instanceof ListBinaryTag) { - return fromAdventure((ListBinaryTag) other); - } else if (other instanceof EndBinaryTag) { - return fromAdventure(); - } else if (other instanceof LongBinaryTag) { - return fromAdventure((LongBinaryTag) other); - } else if (other instanceof LongArrayBinaryTag) { - return fromAdventure((LongArrayBinaryTag) other); - } else if (other instanceof StringBinaryTag) { - return fromAdventure((StringBinaryTag) other); - } else if (other instanceof IntBinaryTag) { - return fromAdventure((IntBinaryTag) other); - } else if (other instanceof ByteBinaryTag) { - return fromAdventure((ByteBinaryTag) other); - } else if (other instanceof ByteArrayBinaryTag) { - return fromAdventure((ByteArrayBinaryTag) other); - } else if (other instanceof CompoundBinaryTag) { - return fromAdventure((CompoundBinaryTag) other); - } else if (other instanceof FloatBinaryTag) { - return fromAdventure((FloatBinaryTag) other); - } else if (other instanceof ShortBinaryTag) { - return fromAdventure((ShortBinaryTag) other); - } else if (other instanceof DoubleBinaryTag) { - return fromAdventure((DoubleBinaryTag) other); - } else { - throw new IllegalArgumentException("Can't convert other of type " + other.getClass().getCanonicalName()); + private static final BiMap, BinaryTagType> TAG_TYPES = + new ImmutableBiMap.Builder, BinaryTagType>() + .put(ByteArrayTag.class, BinaryTagTypes.BYTE_ARRAY) + .put(ByteTag.class, BinaryTagTypes.BYTE) + .put(CompoundTag.class, BinaryTagTypes.COMPOUND) + .put(DoubleTag.class, BinaryTagTypes.DOUBLE) + .put(EndTag.class, BinaryTagTypes.END) + .put(FloatTag.class, BinaryTagTypes.FLOAT) + .put(IntArrayTag.class, BinaryTagTypes.INT_ARRAY) + .put(IntTag.class, BinaryTagTypes.INT) + .put(ListTag.class, BinaryTagTypes.LIST) + .put(LongArrayTag.class, BinaryTagTypes.LONG_ARRAY) + .put(LongTag.class, BinaryTagTypes.LONG) + .put(ShortTag.class, BinaryTagTypes.SHORT) + .put(StringTag.class, BinaryTagTypes.STRING) + .build(); + + private static final Map, Function> CONVERSION; + + static { + ImmutableMap.Builder, Function> conversion = + ImmutableMap.builder(); + + for (Map.Entry, BinaryTagType> tag : TAG_TYPES.entrySet()) { + Constructor[] constructors = tag.getKey().getConstructors(); + for (Constructor c : constructors) { + if (c.getParameterCount() == 1 && BinaryTag.class.isAssignableFrom(c.getParameterTypes()[0])) { + conversion.put(tag.getValue(), binaryTag -> { + try { + return (Tag) c.newInstance(binaryTag); + } catch (InstantiationException | IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + // I assume this is always a RuntimeException since we control the ctor + throw (RuntimeException) e.getCause(); + } + }); + break; + } + } } - } - - public static DoubleTag fromAdventure(DoubleBinaryTag other) { - return new DoubleTag(other); - } - - public static ShortTag fromAdventure(ShortBinaryTag other) { - return new ShortTag(other); - } - - public static FloatTag fromAdventure(FloatBinaryTag other) { - return new FloatTag(other); - } - public static CompoundTag fromAdventure(CompoundBinaryTag other) { - return new CompoundTag(other); + CONVERSION = conversion.build(); } - public static ByteArrayTag fromAdventure(ByteArrayBinaryTag other) { - return new ByteArrayTag(other); + public static BinaryTagType getAdventureType(Class type) { + return Objects.requireNonNull(TAG_TYPES.get(type), () -> "Missing entry for " + type); } - public static ByteTag fromAdventure(ByteBinaryTag other) { - return new ByteTag(other); + public static Class getJNBTType(BinaryTagType type) { + return Objects.requireNonNull(TAG_TYPES.inverse().get(type), () -> "Missing entry for " + type); } - public static IntTag fromAdventure(IntBinaryTag other) { - return new IntTag(other); - } - - public static StringTag fromAdventure(StringBinaryTag other) { - return new StringTag(other); - } - - public static LongArrayTag fromAdventure(LongArrayBinaryTag other) { - return new LongArrayTag(other); - } - - public static LongTag fromAdventure(LongBinaryTag other) { - return new LongTag(other); - } - - public static EndTag fromAdventure() { - return new EndTag(); - } - - public static ListTag fromAdventure(ListBinaryTag other) { - return new ListTag(other); + private AdventureNBTConverter() { } - public static IntArrayTag fromAdventure(IntArrayBinaryTag other) { - return new IntArrayTag(other); + public static Tag fromAdventure(BinaryTag other) { + Function conversion = CONVERSION.get(other.type()); + if (conversion == null) { + throw new IllegalArgumentException("Can't convert other of type " + other.getClass().getCanonicalName()); + } + return conversion.apply(other); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java index 6c511e63c3..279e7a71a7 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteArrayTag.java @@ -43,7 +43,7 @@ public ByteArrayTag(byte[] value) { this.innerTag = ByteArrayBinaryTag.of(value); } - ByteArrayTag(ByteArrayBinaryTag adventureTag) { + public ByteArrayTag(ByteArrayBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java index 834f1ba7e4..2a804a1f24 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ByteTag.java @@ -41,7 +41,7 @@ public ByteTag(byte value) { this.innerTag = ByteBinaryTag.of(value); } - ByteTag(ByteBinaryTag adventureTag) { + public ByteTag(ByteBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java index c2e02b3585..247d6eaee8 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTag.java @@ -19,13 +19,16 @@ package com.sk89q.jnbt; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Maps; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagLike; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.nbt.NumberBinaryTag; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; /** * The {@code TAG_Compound} tag. @@ -35,7 +38,7 @@ @Deprecated public final class CompoundTag extends Tag { - private final Map value; + private final CompoundBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -43,17 +46,13 @@ public final class CompoundTag extends Tag { * @param value the value of the tag */ public CompoundTag(Map value) { - super(); - this.value = Collections.unmodifiableMap(value); + this(CompoundBinaryTag.builder() + .put(Maps.transformValues(value, BinaryTagLike::asBinaryTag)) + .build()); } - CompoundTag(CompoundBinaryTag adventureTag) { - Set tags = adventureTag.keySet(); - Map map = new HashMap<>(); - for (String tagName : tags) { - map.put(tagName, AdventureNBTConverter.fromAdventure(adventureTag.get(tagName))); - } - this.value = Collections.unmodifiableMap(map); + public CompoundTag(CompoundBinaryTag adventureTag) { + this.innerTag = adventureTag; } /** @@ -63,12 +62,16 @@ public CompoundTag(Map value) { * @return true if the tag contains the given key */ public boolean containsKey(String key) { - return value.containsKey(key); + return innerTag.keySet().contains(key); } @Override public Map getValue() { - return value; + ImmutableMap.Builder map = ImmutableMap.builder(); + for (String key : innerTag.keySet()) { + map.put(key, AdventureNBTConverter.fromAdventure(innerTag.get(key))); + } + return map.build(); } /** @@ -87,7 +90,7 @@ public CompoundTag setValue(Map value) { * @return the builder */ public CompoundTagBuilder createBuilder() { - return new CompoundTagBuilder(new HashMap<>(value)); + return new CompoundTagBuilder(innerTag); } /** @@ -100,12 +103,7 @@ public CompoundTagBuilder createBuilder() { * @return a byte array */ public byte[] getByteArray(String key) { - Tag tag = value.get(key); - if (tag instanceof ByteArrayTag) { - return ((ByteArrayTag) tag).getValue(); - } else { - return new byte[0]; - } + return this.innerTag.getByteArray(key); } /** @@ -118,12 +116,7 @@ public byte[] getByteArray(String key) { * @return a byte */ public byte getByte(String key) { - Tag tag = value.get(key); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - } else { - return (byte) 0; - } + return this.innerTag.getByte(key); } /** @@ -136,12 +129,7 @@ public byte getByte(String key) { * @return a double */ public double getDouble(String key) { - Tag tag = value.get(key); - if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue(); - } else { - return 0; - } + return this.innerTag.getDouble(key); } /** @@ -155,28 +143,11 @@ public double getDouble(String key) { * @return a double */ public double asDouble(String key) { - Tag tag = value.get(key); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue(); - - } else { - return 0; + BinaryTag tag = this.innerTag.get(key); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).doubleValue(); } + return 0; } /** @@ -189,12 +160,7 @@ public double asDouble(String key) { * @return a float */ public float getFloat(String key) { - Tag tag = value.get(key); - if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue(); - } else { - return 0; - } + return this.innerTag.getFloat(key); } /** @@ -207,12 +173,7 @@ public float getFloat(String key) { * @return an int array */ public int[] getIntArray(String key) { - Tag tag = value.get(key); - if (tag instanceof IntArrayTag) { - return ((IntArrayTag) tag).getValue(); - } else { - return new int[0]; - } + return this.innerTag.getIntArray(key); } /** @@ -225,12 +186,7 @@ public int[] getIntArray(String key) { * @return an int */ public int getInt(String key) { - Tag tag = value.get(key); - if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - } else { - return 0; - } + return this.innerTag.getInt(key); } /** @@ -244,28 +200,11 @@ public int getInt(String key) { * @return an int */ public int asInt(String key) { - Tag tag = value.get(key); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue().intValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue().intValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue().intValue(); - - } else { - return 0; + BinaryTag tag = this.innerTag.get(key); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).intValue(); } + return 0; } /** @@ -278,12 +217,7 @@ public int asInt(String key) { * @return a list of tags */ public List getList(String key) { - Tag tag = value.get(key); - if (tag instanceof ListTag) { - return ((ListTag) tag).getValue(); - } else { - return Collections.emptyList(); - } + return getListTag(key).getValue(); } /** @@ -296,12 +230,7 @@ public List getList(String key) { * @return a tag list instance */ public ListTag getListTag(String key) { - Tag tag = value.get(key); - if (tag instanceof ListTag) { - return (ListTag) tag; - } else { - return new ListTag(StringTag.class, Collections.emptyList()); - } + return new ListTag(this.innerTag.getList(key)); } /** @@ -319,14 +248,9 @@ public ListTag getListTag(String key) { */ @SuppressWarnings("unchecked") public List getList(String key, Class listType) { - Tag tag = value.get(key); - if (tag instanceof ListTag) { - ListTag listTag = (ListTag) tag; - if (listTag.getType().equals(listType)) { - return (List) listTag.getValue(); - } else { - return Collections.emptyList(); - } + ListTag listTag = getListTag(key); + if (listTag.getType().equals(listType)) { + return (List) listTag.getValue(); } else { return Collections.emptyList(); } @@ -342,12 +266,7 @@ public List getList(String key, Class listType) { * @return an int array */ public long[] getLongArray(String key) { - Tag tag = value.get(key); - if (tag instanceof LongArrayTag) { - return ((LongArrayTag) tag).getValue(); - } else { - return new long[0]; - } + return this.innerTag.getLongArray(key); } /** @@ -360,12 +279,7 @@ public long[] getLongArray(String key) { * @return a long */ public long getLong(String key) { - Tag tag = value.get(key); - if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - } else { - return 0L; - } + return this.innerTag.getLong(key); } /** @@ -379,28 +293,11 @@ public long getLong(String key) { * @return a long */ public long asLong(String key) { - Tag tag = value.get(key); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue().longValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue().longValue(); - - } else { - return 0L; + BinaryTag tag = this.innerTag.get(key); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).longValue(); } + return 0; } /** @@ -413,12 +310,7 @@ public long asLong(String key) { * @return a short */ public short getShort(String key) { - Tag tag = value.get(key); - if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - } else { - return 0; - } + return this.innerTag.getShort(key); } /** @@ -431,20 +323,11 @@ public short getShort(String key) { * @return a string */ public String getString(String key) { - Tag tag = value.get(key); - if (tag instanceof StringTag) { - return ((StringTag) tag).getValue(); - } else { - return ""; - } + return this.innerTag.getString(key); } @Override public CompoundBinaryTag asBinaryTag() { - CompoundBinaryTag.Builder builder = CompoundBinaryTag.builder(); - for (Map.Entry child : getValue().entrySet()) { - builder.put(child.getKey(), child.getValue().asBinaryTag()); - } - return builder.build(); + return this.innerTag; } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java index 941fe9fa71..198176916b 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/CompoundTagBuilder.java @@ -19,8 +19,10 @@ package com.sk89q.jnbt; -import java.util.HashMap; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; + import java.util.Map; +import java.util.Objects; import static com.google.common.base.Preconditions.checkNotNull; @@ -32,23 +34,24 @@ @Deprecated public class CompoundTagBuilder { - private final Map entries; + private final CompoundBinaryTag.Builder builder = CompoundBinaryTag.builder(); /** * Create a new instance. */ CompoundTagBuilder() { - this.entries = new HashMap<>(); } /** * Create a new instance and use the given map (which will be modified). * - * @param value the value + * @param source the value */ - CompoundTagBuilder(Map value) { - checkNotNull(value); - this.entries = value; + CompoundTagBuilder(CompoundBinaryTag source) { + checkNotNull(source); + for (String key : source.keySet()) { + this.builder.put(key, Objects.requireNonNull(source.get(key))); + } } /** @@ -61,7 +64,7 @@ public class CompoundTagBuilder { public CompoundTagBuilder put(String key, Tag value) { checkNotNull(key); checkNotNull(value); - entries.put(key, value); + this.builder.put(key, value.asBinaryTag()); return this; } @@ -74,7 +77,8 @@ public CompoundTagBuilder put(String key, Tag value) { * @return this object */ public CompoundTagBuilder putByteArray(String key, byte[] value) { - return put(key, new ByteArrayTag(value)); + this.builder.putByteArray(key, value); + return this; } /** @@ -86,7 +90,8 @@ public CompoundTagBuilder putByteArray(String key, byte[] value) { * @return this object */ public CompoundTagBuilder putByte(String key, byte value) { - return put(key, new ByteTag(value)); + this.builder.putByte(key, value); + return this; } /** @@ -98,7 +103,8 @@ public CompoundTagBuilder putByte(String key, byte value) { * @return this object */ public CompoundTagBuilder putDouble(String key, double value) { - return put(key, new DoubleTag(value)); + this.builder.putDouble(key, value); + return this; } /** @@ -110,7 +116,8 @@ public CompoundTagBuilder putDouble(String key, double value) { * @return this object */ public CompoundTagBuilder putFloat(String key, float value) { - return put(key, new FloatTag(value)); + this.builder.putFloat(key, value); + return this; } /** @@ -122,7 +129,8 @@ public CompoundTagBuilder putFloat(String key, float value) { * @return this object */ public CompoundTagBuilder putIntArray(String key, int[] value) { - return put(key, new IntArrayTag(value)); + this.builder.putIntArray(key, value); + return this; } /** @@ -133,7 +141,8 @@ public CompoundTagBuilder putIntArray(String key, int[] value) { * @return this object */ public CompoundTagBuilder putInt(String key, int value) { - return put(key, new IntTag(value)); + this.builder.putInt(key, value); + return this; } /** @@ -145,7 +154,8 @@ public CompoundTagBuilder putInt(String key, int value) { * @return this object */ public CompoundTagBuilder putLongArray(String key, long[] value) { - return put(key, new LongArrayTag(value)); + this.builder.putLongArray(key, value); + return this; } /** @@ -157,7 +167,8 @@ public CompoundTagBuilder putLongArray(String key, long[] value) { * @return this object */ public CompoundTagBuilder putLong(String key, long value) { - return put(key, new LongTag(value)); + this.builder.putLong(key, value); + return this; } /** @@ -169,7 +180,8 @@ public CompoundTagBuilder putLong(String key, long value) { * @return this object */ public CompoundTagBuilder putShort(String key, short value) { - return put(key, new ShortTag(value)); + this.builder.putShort(key, value); + return this; } /** @@ -181,7 +193,8 @@ public CompoundTagBuilder putShort(String key, short value) { * @return this object */ public CompoundTagBuilder putString(String key, String value) { - return put(key, new StringTag(value)); + this.builder.putString(key, value); + return this; } /** @@ -192,7 +205,7 @@ public CompoundTagBuilder putString(String key, String value) { */ public CompoundTagBuilder remove(String key) { checkNotNull(key); - entries.remove(key); + this.builder.remove(key); return this; } @@ -216,7 +229,7 @@ public CompoundTagBuilder putAll(Map value) { * @return the new compound tag */ public CompoundTag build() { - return new CompoundTag(new HashMap<>(entries)); + return new CompoundTag(this.builder.build()); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java index 769cee761b..12cc99f1c4 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/DoubleTag.java @@ -41,7 +41,7 @@ public DoubleTag(double value) { this.innerTag = DoubleBinaryTag.of(value); } - DoubleTag(DoubleBinaryTag adventureTag) { + public DoubleTag(DoubleBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java index 2477caa93d..80ebbd7cd3 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/FloatTag.java @@ -41,7 +41,7 @@ public FloatTag(float value) { this.innerTag = FloatBinaryTag.of(value); } - FloatTag(FloatBinaryTag adventureTag) { + public FloatTag(FloatBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java index 1146ac1e66..86bb182a9b 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/IntArrayTag.java @@ -44,7 +44,7 @@ public IntArrayTag(int[] value) { this.innerTag = IntArrayBinaryTag.of(value); } - IntArrayTag(IntArrayBinaryTag adventureTag) { + public IntArrayTag(IntArrayBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java index 8583579c03..fd7076eb27 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/IntTag.java @@ -41,7 +41,7 @@ public IntTag(int value) { this.innerTag = IntBinaryTag.of(value); } - IntTag(IntBinaryTag adventureTag) { + public IntTag(IntBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java index 39023d0226..15bc76afb7 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTag.java @@ -20,15 +20,17 @@ package com.sk89q.jnbt; import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagLike; import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.NumberBinaryTag; -import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.function.IntFunction; +import java.util.function.Supplier; +import java.util.stream.Collectors; import javax.annotation.Nullable; -import static com.google.common.base.Preconditions.checkNotNull; - /** * The {@code TAG_List} tag. * @@ -37,8 +39,7 @@ @Deprecated public final class ListTag extends Tag { - private final Class type; - private final List value; + private final ListBinaryTag innerTag; /** * Creates the tag with an empty name. @@ -47,37 +48,19 @@ public final class ListTag extends Tag { * @param value the value of the tag */ public ListTag(Class type, List value) { - super(); - checkNotNull(value); - this.type = type; - this.value = Collections.unmodifiableList(value); + this(ListBinaryTag.of( + AdventureNBTConverter.getAdventureType(type), + value.stream().map(BinaryTagLike::asBinaryTag).collect(Collectors.toList()) + )); } - ListTag(ListBinaryTag adventureTag) { - super(); - List list = new ArrayList<>(); - Class listClass = StringTag.class; - int tags = adventureTag.size(); - for (int i = 0; i < tags; i++) { - Tag child = AdventureNBTConverter.fromAdventure(adventureTag.get(0)); - list.add(child); - listClass = child.getClass(); - } - - this.type = listClass; - this.value = Collections.unmodifiableList(list); + public ListTag(ListBinaryTag adventureTag) { + this.innerTag = adventureTag; } @Override public ListBinaryTag asBinaryTag() { - ListBinaryTag.Builder builder = ListBinaryTag.builder(); - for (Tag child : getValue()) { - if (child instanceof EndTag) { - continue; - } - builder.add(child.asBinaryTag()); - } - return builder.build(); + return this.innerTag; } /** @@ -86,12 +69,14 @@ public ListBinaryTag asBinaryTag() { * @return The type of item in this list. */ public Class getType() { - return type; + return AdventureNBTConverter.getJNBTType(this.innerTag.elementType()); } @Override public List getValue() { - return value; + return this.innerTag.stream() + .map(AdventureNBTConverter::fromAdventure) + .collect(Collectors.toList()); } /** @@ -104,6 +89,13 @@ public ListTag setValue(List list) { return new ListTag(getType(), list); } + private T accessIfExists(int index, Supplier defaultValue, IntFunction accessor) { + if (index >= this.innerTag.size()) { + return defaultValue.get(); + } + return accessor.apply(index); + } + /** * Get the tag if it exists at the given index. * @@ -112,10 +104,11 @@ public ListTag setValue(List list) { */ @Nullable public Tag getIfExists(int index) { - if (index >= value.size()) { - return null; - } - return value.get(index); + return accessIfExists( + index, + () -> null, + i -> AdventureNBTConverter.fromAdventure(this.innerTag.get(i)) + ); } /** @@ -128,12 +121,11 @@ public Tag getIfExists(int index) { * @return a byte array */ public byte[] getByteArray(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ByteArrayTag) { - return ((ByteArrayTag) tag).getValue(); - } else { - return new byte[0]; - } + return accessIfExists( + index, + () -> new byte[0], + this.innerTag::getByteArray + ); } /** @@ -146,12 +138,11 @@ public byte[] getByteArray(int index) { * @return a byte */ public byte getByte(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - } else { - return (byte) 0; - } + return accessIfExists( + index, + () -> (byte) 0, + this.innerTag::getByte + ); } /** @@ -164,12 +155,11 @@ public byte getByte(int index) { * @return a double */ public double getDouble(int index) { - Tag tag = getIfExists(index); - if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue(); - } else { - return 0; - } + return accessIfExists( + index, + () -> 0.0, + this.innerTag::getDouble + ); } /** @@ -183,28 +173,17 @@ public double getDouble(int index) { * @return a double */ public double asDouble(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue(); - - } else { - return 0; - } + return accessIfExists( + index, + () -> 0.0, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).doubleValue(); + } + return 0.0; + } + ); } /** @@ -217,12 +196,11 @@ public double asDouble(int index) { * @return a float */ public float getFloat(int index) { - Tag tag = getIfExists(index); - if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue(); - } else { - return 0; - } + return accessIfExists( + index, + () -> 0.0f, + this.innerTag::getFloat + ); } /** @@ -235,12 +213,11 @@ public float getFloat(int index) { * @return an int array */ public int[] getIntArray(int index) { - Tag tag = getIfExists(index); - if (tag instanceof IntArrayTag) { - return ((IntArrayTag) tag).getValue(); - } else { - return new int[0]; - } + return accessIfExists( + index, + () -> new int[0], + this.innerTag::getIntArray + ); } /** @@ -253,12 +230,11 @@ public int[] getIntArray(int index) { * @return an int */ public int getInt(int index) { - Tag tag = getIfExists(index); - if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - } else { - return 0; - } + return accessIfExists( + index, + () -> 0, + this.innerTag::getInt + ); } /** @@ -272,28 +248,17 @@ public int getInt(int index) { * @return an int */ public int asInt(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue().intValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue().intValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue().intValue(); - - } else { - return 0; - } + return accessIfExists( + index, + () -> 0, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).intValue(); + } + return 0; + } + ); } /** @@ -306,12 +271,7 @@ public int asInt(int index) { * @return a list of tags */ public List getList(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ListTag) { - return ((ListTag) tag).getValue(); - } else { - return Collections.emptyList(); - } + return getListTag(index).getValue(); } /** @@ -324,12 +284,11 @@ public List getList(int index) { * @return a tag list instance */ public ListTag getListTag(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ListTag) { - return (ListTag) tag; - } else { - return new ListTag(StringTag.class, Collections.emptyList()); - } + return new ListTag(accessIfExists( + index, + ListBinaryTag::empty, + this.innerTag::getList + )); } /** @@ -347,14 +306,9 @@ public ListTag getListTag(int index) { */ @SuppressWarnings("unchecked") public List getList(int index, Class listType) { - Tag tag = getIfExists(index); - if (tag instanceof ListTag) { - ListTag listTag = (ListTag) tag; - if (listTag.getType().equals(listType)) { - return (List) listTag.getValue(); - } else { - return Collections.emptyList(); - } + ListTag listTag = getListTag(index); + if (listTag.getType().equals(listType)) { + return (List) listTag.getValue(); } else { return Collections.emptyList(); } @@ -370,12 +324,11 @@ public List getList(int index, Class listType) { * @return a long */ public long getLong(int index) { - Tag tag = getIfExists(index); - if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - } else { - return 0L; - } + return accessIfExists( + index, + () -> 0L, + this.innerTag::getLong + ); } /** @@ -389,28 +342,17 @@ public long getLong(int index) { * @return a long */ public long asLong(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ByteTag) { - return ((ByteTag) tag).getValue(); - - } else if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - - } else if (tag instanceof IntTag) { - return ((IntTag) tag).getValue(); - - } else if (tag instanceof LongTag) { - return ((LongTag) tag).getValue(); - - } else if (tag instanceof FloatTag) { - return ((FloatTag) tag).getValue().longValue(); - - } else if (tag instanceof DoubleTag) { - return ((DoubleTag) tag).getValue().longValue(); - - } else { - return 0; - } + return accessIfExists( + index, + () -> 0L, + i -> { + BinaryTag tag = this.innerTag.get(i); + if (tag instanceof NumberBinaryTag) { + return ((NumberBinaryTag) tag).longValue(); + } + return 0L; + } + ); } /** @@ -423,12 +365,11 @@ public long asLong(int index) { * @return a short */ public short getShort(int index) { - Tag tag = getIfExists(index); - if (tag instanceof ShortTag) { - return ((ShortTag) tag).getValue(); - } else { - return 0; - } + return accessIfExists( + index, + () -> (short) 0, + this.innerTag::getShort + ); } /** @@ -441,12 +382,11 @@ public short getShort(int index) { * @return a string */ public String getString(int index) { - Tag tag = getIfExists(index); - if (tag instanceof StringTag) { - return ((StringTag) tag).getValue(); - } else { - return ""; - } + return accessIfExists( + index, + () -> "", + this.innerTag::getString + ); } } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java index ad3a6e25cf..df19227036 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ListTagBuilder.java @@ -19,10 +19,12 @@ package com.sk89q.jnbt; -import java.util.ArrayList; +import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagType; +import com.sk89q.worldedit.util.nbt.ListBinaryTag; + import java.util.Arrays; import java.util.Collection; -import java.util.List; import static com.google.common.base.Preconditions.checkNotNull; @@ -34,18 +36,19 @@ @Deprecated public class ListTagBuilder { - private final Class type; - private final List entries; + private final ListBinaryTag.Builder builder; /** * Create a new instance. * * @param type of tag contained in this list */ + @SuppressWarnings("unchecked") ListTagBuilder(Class type) { checkNotNull(type); - this.type = type; - this.entries = new ArrayList<>(); + this.builder = type != EndTag.class + ? ListBinaryTag.builder((BinaryTagType) AdventureNBTConverter.getAdventureType(type)) + : ListBinaryTag.builder(); } /** @@ -56,10 +59,7 @@ public class ListTagBuilder { */ public ListTagBuilder add(Tag value) { checkNotNull(value); - if (!type.isInstance(value)) { - throw new IllegalArgumentException(value.getClass().getCanonicalName() + " is not of expected type " + type.getCanonicalName()); - } - entries.add(value); + builder.add(value.asBinaryTag()); return this; } @@ -83,7 +83,7 @@ public ListTagBuilder addAll(Collection value) { * @return the new list tag */ public ListTag build() { - return new ListTag(type, new ArrayList<>(entries)); + return new ListTag(this.builder.build()); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java index 7ca5df0dc2..cd177c8601 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/LongArrayTag.java @@ -44,7 +44,7 @@ public LongArrayTag(long[] value) { this.innerTag = LongArrayBinaryTag.of(value); } - LongArrayTag(LongArrayBinaryTag adventureTag) { + public LongArrayTag(LongArrayBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java index aa7e74f10d..35c6b0fe58 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/LongTag.java @@ -41,7 +41,7 @@ public LongTag(long value) { this.innerTag = LongBinaryTag.of(value); } - LongTag(LongBinaryTag adventureTag) { + public LongTag(LongBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java index 9d65f5e79d..dc6a7125f9 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTConstants.java @@ -19,9 +19,6 @@ package com.sk89q.jnbt; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; - /** * A class which holds constant values. * @@ -30,8 +27,6 @@ @Deprecated public final class NBTConstants { - public static final Charset CHARSET = StandardCharsets.UTF_8; - public static final int TYPE_END = 0; public static final int TYPE_BYTE = 1; public static final int TYPE_SHORT = 2; diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java index 52d21ca451..46a11ee202 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/NBTUtils.java @@ -87,36 +87,7 @@ public static String getTypeName(Class clazz) { * @throws IllegalArgumentException if the tag class is invalid. */ public static int getTypeCode(Class clazz) { - if (clazz.equals(ByteArrayTag.class)) { - return NBTConstants.TYPE_BYTE_ARRAY; - } else if (clazz.equals(ByteTag.class)) { - return NBTConstants.TYPE_BYTE; - } else if (clazz.equals(CompoundTag.class)) { - return NBTConstants.TYPE_COMPOUND; - } else if (clazz.equals(DoubleTag.class)) { - return NBTConstants.TYPE_DOUBLE; - } else if (clazz.equals(EndTag.class)) { - return NBTConstants.TYPE_END; - } else if (clazz.equals(FloatTag.class)) { - return NBTConstants.TYPE_FLOAT; - } else if (clazz.equals(IntTag.class)) { - return NBTConstants.TYPE_INT; - } else if (clazz.equals(ListTag.class)) { - return NBTConstants.TYPE_LIST; - } else if (clazz.equals(LongTag.class)) { - return NBTConstants.TYPE_LONG; - } else if (clazz.equals(ShortTag.class)) { - return NBTConstants.TYPE_SHORT; - } else if (clazz.equals(StringTag.class)) { - return NBTConstants.TYPE_STRING; - } else if (clazz.equals(IntArrayTag.class)) { - return NBTConstants.TYPE_INT_ARRAY; - } else if (clazz.equals(LongArrayTag.class)) { - return NBTConstants.TYPE_LONG_ARRAY; - } else { - throw new IllegalArgumentException("Invalid tag classs (" - + clazz.getName() + ")."); - } + return AdventureNBTConverter.getAdventureType(clazz).id(); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java index 486ae69a67..b045f231b0 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/ShortTag.java @@ -41,7 +41,7 @@ public ShortTag(short value) { this.innerTag = ShortBinaryTag.of(value); } - ShortTag(ShortBinaryTag adventureTag) { + public ShortTag(ShortBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java b/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java index 124f72f48b..7c5bb3aa52 100644 --- a/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java +++ b/worldedit-core/src/main/java/com/sk89q/jnbt/StringTag.java @@ -44,7 +44,7 @@ public StringTag(String value) { this.innerTag = StringBinaryTag.of(value); } - StringTag(StringBinaryTag adventureTag) { + public StringTag(StringBinaryTag adventureTag) { super(); this.innerTag = adventureTag; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java index a26632e718..c07d23e1bb 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java @@ -63,7 +63,7 @@ default boolean hasNbtData() { @Nullable default CompoundTag getNbtData() { CompoundBinaryTag tag = getNbt(); - return tag == null ? null : AdventureNBTConverter.fromAdventure(tag); + return tag == null ? null : new CompoundTag(tag); } /** @@ -78,10 +78,12 @@ default void setNbtData(@Nullable CompoundTag nbtData) { } /** - * Returns whether the block contains NBT data. {@link #getNbt()} ()} + * Returns whether the block contains NBT data. {@link #getNbt()} * must not return null if this method returns true. * * @return true if there is NBT data + * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} + * for details */ @NonAbstractForCompatibility( delegateName = "hasNbtData", @@ -104,6 +106,8 @@ default boolean hasNbt() { * not return null.

* * @return compound tag, or null + * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} + * for details */ @NonAbstractForCompatibility( delegateName = "getNbtData", @@ -121,6 +125,8 @@ default CompoundBinaryTag getNbt() { * Set the object's NBT data (tile entity data). * * @param nbtData NBT data, or null if no data + * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} + * for details */ @NonAbstractForCompatibility( delegateName = "setNbtData", @@ -129,7 +135,7 @@ default CompoundBinaryTag getNbt() { default void setNbt(@Nullable CompoundBinaryTag nbtData) { DeprecationUtil.checkDelegatingOverride(getClass()); - setNbtData(nbtData == null ? null : AdventureNBTConverter.fromAdventure(nbtData)); + setNbtData(nbtData == null ? null : new CompoundTag(nbtData)); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index cd908e1e6e..0c11bb8331 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -104,6 +104,8 @@ default BaseBlock toBaseBlock(CompoundTag compoundTag) { * * @param compoundTag The NBT Data to apply * @return The BaseBlock + * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} + * for details */ @NonAbstractForCompatibility( delegateName = "toBaseBlock", @@ -112,7 +114,7 @@ default BaseBlock toBaseBlock(CompoundTag compoundTag) { default BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { DeprecationUtil.checkDelegatingOverride(getClass()); - return toBaseBlock(compoundTag == null ? null : AdventureNBTConverter.fromAdventure(compoundTag)); + return toBaseBlock(compoundTag == null ? null : new CompoundTag(compoundTag)); } @Override From e1cc6bc9485a9af71fd5c1b69a0b1fad8fa5779b Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 14 Feb 2021 22:32:51 -0800 Subject: [PATCH 044/813] Revert changes to legacy files, deprecate --- .../worldedit/blocks/MobSpawnerBlock.java | 124 +++++++++--------- .../com/sk89q/worldedit/blocks/SignBlock.java | 23 ++-- .../sk89q/worldedit/blocks/SkullBlock.java | 22 ++-- .../com/sk89q/worldedit/util/NbtUtils.java | 12 +- 4 files changed, 97 insertions(+), 84 deletions(-) diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java index d88852f8ac..eadad40842 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/MobSpawnerBlock.java @@ -21,21 +21,27 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.sk89q.worldedit.util.NbtUtils; -import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.BinaryTagTypes; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.IntBinaryTag; -import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.sk89q.worldedit.util.nbt.ShortBinaryTag; -import com.sk89q.worldedit.util.nbt.StringBinaryTag; +import com.sk89q.jnbt.CompoundTag; +import com.sk89q.jnbt.IntTag; +import com.sk89q.jnbt.ListTag; +import com.sk89q.jnbt.NBTUtils; +import com.sk89q.jnbt.ShortTag; +import com.sk89q.jnbt.StringTag; +import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.storage.InvalidFormatException; +import java.util.HashMap; +import java.util.Map; + /** * A mob spawner block. + * + * @deprecated WorldEdit does not handle interpreting NBT, + * deprecated for removal without replacement */ +@Deprecated public class MobSpawnerBlock extends BaseBlock { private String mobType; @@ -44,8 +50,8 @@ public class MobSpawnerBlock extends BaseBlock { // advanced mob spawner features private short spawnCount = 4; private short spawnRange = 4; - private CompoundBinaryTag spawnData; - private ListBinaryTag spawnPotentials; + private CompoundTag spawnData; + private ListTag spawnPotentials; private short minSpawnDelay = 200; private short maxSpawnDelay = 800; private short maxNearbyEntities = 6; @@ -108,7 +114,7 @@ public void setDelay(short delay) { } @Override - public boolean hasNbt() { + public boolean hasNbtData() { return true; } @@ -118,52 +124,50 @@ public String getNbtId() { } @Override - public CompoundBinaryTag getNbt() { - CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); - values.put("Delay", ShortBinaryTag.of(delay)); - values.put("SpawnCount", ShortBinaryTag.of(spawnCount)); - values.put("SpawnRange", ShortBinaryTag.of(spawnRange)); - values.put("MinSpawnDelay", ShortBinaryTag.of(minSpawnDelay)); - values.put("MaxSpawnDelay", ShortBinaryTag.of(maxSpawnDelay)); - values.put("MaxNearbyEntities", ShortBinaryTag.of(maxNearbyEntities)); - values.put("RequiredPlayerRange", ShortBinaryTag.of(requiredPlayerRange)); + public CompoundTag getNbtData() { + Map values = new HashMap<>(); + values.put("Delay", new ShortTag(delay)); + values.put("SpawnCount", new ShortTag(spawnCount)); + values.put("SpawnRange", new ShortTag(spawnRange)); + values.put("MinSpawnDelay", new ShortTag(minSpawnDelay)); + values.put("MaxSpawnDelay", new ShortTag(maxSpawnDelay)); + values.put("MaxNearbyEntities", new ShortTag(maxNearbyEntities)); + values.put("RequiredPlayerRange", new ShortTag(requiredPlayerRange)); if (spawnData == null) { - values.put("SpawnData", CompoundBinaryTag.builder().put("id", StringBinaryTag.of(mobType)).build()); + values.put("SpawnData", new CompoundTag(ImmutableMap.of("id", new StringTag(mobType)))); } else { - values.put("SpawnData", spawnData); + values.put("SpawnData", new CompoundTag(spawnData.getValue())); } if (spawnPotentials == null) { - values.put("SpawnPotentials", ListBinaryTag.of( - BinaryTagTypes.COMPOUND, - ImmutableList.of(CompoundBinaryTag.from(ImmutableMap.of( - "Weight", IntBinaryTag.of(1), - "Entity", CompoundBinaryTag.from(ImmutableMap.of("id", StringBinaryTag.of(mobType))) - ))) - )); + values.put("SpawnPotentials", new ListTag(CompoundTag.class, ImmutableList.of( + new CompoundTag(ImmutableMap.of("Weight", new IntTag(1), "Entity", + new CompoundTag(ImmutableMap.of("id", new StringTag(mobType)))))))); } else { - values.put("SpawnPotentials", spawnPotentials); + values.put("SpawnPotentials", new ListTag(CompoundTag.class, spawnPotentials.getValue())); } - return values.build(); + return new CompoundTag(values); } @Override - public void setNbt(CompoundBinaryTag rootTag) { + public void setNbtData(CompoundTag rootTag) { if (rootTag == null) { return; } - BinaryTag t = rootTag.get("id"); - if (!(t instanceof StringBinaryTag) || !((StringBinaryTag) t).value().equals(getNbtId())) { + Map values = rootTag.getValue(); + + Tag t = values.get("id"); + if (!(t instanceof StringTag) || !((StringTag) t).getValue().equals(getNbtId())) { throw new RuntimeException(String.format("'%s' tile entity expected", getNbtId())); } - CompoundBinaryTag spawnDataTag; + CompoundTag spawnDataTag; String mobType; - ShortBinaryTag delayTag; + ShortTag delayTag; try { - spawnDataTag = NbtUtils.getChildTag(rootTag, "SpawnData", CompoundBinaryTag.class); + spawnDataTag = NBTUtils.getChildTag(values, "SpawnData", CompoundTag.class); mobType = spawnDataTag.getString("id"); if (mobType.equals("")) { throw new InvalidFormatException("No spawn id."); @@ -174,68 +178,68 @@ public void setNbt(CompoundBinaryTag rootTag) { throw new RuntimeException("Invalid mob spawner data: no SpawnData and/or no Delay"); } try { - delayTag = NbtUtils.getChildTag(rootTag, "Delay", ShortBinaryTag.class); - this.delay = delayTag.value(); + delayTag = NBTUtils.getChildTag(values, "Delay", ShortTag.class); + this.delay = delayTag.getValue(); } catch (InvalidFormatException ignored) { this.delay = -1; } - ShortBinaryTag spawnCountTag = null; - ShortBinaryTag spawnRangeTag = null; - ShortBinaryTag minSpawnDelayTag = null; - ShortBinaryTag maxSpawnDelayTag = null; - ShortBinaryTag maxNearbyEntitiesTag = null; - ShortBinaryTag requiredPlayerRangeTag = null; - ListBinaryTag spawnPotentialsTag = null; + ShortTag spawnCountTag = null; + ShortTag spawnRangeTag = null; + ShortTag minSpawnDelayTag = null; + ShortTag maxSpawnDelayTag = null; + ShortTag maxNearbyEntitiesTag = null; + ShortTag requiredPlayerRangeTag = null; + ListTag spawnPotentialsTag = null; try { - spawnCountTag = NbtUtils.getChildTag(rootTag, "SpawnCount", ShortBinaryTag.class); + spawnCountTag = NBTUtils.getChildTag(values, "SpawnCount", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - spawnRangeTag = NbtUtils.getChildTag(rootTag, "SpawnRange", ShortBinaryTag.class); + spawnRangeTag = NBTUtils.getChildTag(values, "SpawnRange", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - minSpawnDelayTag = NbtUtils.getChildTag(rootTag, "MinSpawnDelay", ShortBinaryTag.class); + minSpawnDelayTag = NBTUtils.getChildTag(values, "MinSpawnDelay", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - maxSpawnDelayTag = NbtUtils.getChildTag(rootTag, "MaxSpawnDelay", ShortBinaryTag.class); + maxSpawnDelayTag = NBTUtils.getChildTag(values, "MaxSpawnDelay", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - maxNearbyEntitiesTag = NbtUtils.getChildTag(rootTag, "MaxNearbyEntities", ShortBinaryTag.class); + maxNearbyEntitiesTag = NBTUtils.getChildTag(values, "MaxNearbyEntities", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - requiredPlayerRangeTag = NbtUtils.getChildTag(rootTag, "RequiredPlayerRange", ShortBinaryTag.class); + requiredPlayerRangeTag = NBTUtils.getChildTag(values, "RequiredPlayerRange", ShortTag.class); } catch (InvalidFormatException ignored) { } try { - spawnPotentialsTag = NbtUtils.getChildTag(rootTag, "SpawnPotentials", ListBinaryTag.class); + spawnPotentialsTag = NBTUtils.getChildTag(values, "SpawnPotentials", ListTag.class); } catch (InvalidFormatException ignored) { } if (spawnCountTag != null) { - this.spawnCount = spawnCountTag.value(); + this.spawnCount = spawnCountTag.getValue(); } if (spawnRangeTag != null) { - this.spawnRange = spawnRangeTag.value(); + this.spawnRange = spawnRangeTag.getValue(); } if (minSpawnDelayTag != null) { - this.minSpawnDelay = minSpawnDelayTag.value(); + this.minSpawnDelay = minSpawnDelayTag.getValue(); } if (maxSpawnDelayTag != null) { - this.maxSpawnDelay = maxSpawnDelayTag.value(); + this.maxSpawnDelay = maxSpawnDelayTag.getValue(); } if (maxNearbyEntitiesTag != null) { - this.maxNearbyEntities = maxNearbyEntitiesTag.value(); + this.maxNearbyEntities = maxNearbyEntitiesTag.getValue(); } if (requiredPlayerRangeTag != null) { - this.requiredPlayerRange = requiredPlayerRangeTag.value(); + this.requiredPlayerRange = requiredPlayerRangeTag.getValue(); } if (spawnPotentialsTag != null) { - this.spawnPotentials = spawnPotentialsTag; + this.spawnPotentials = new ListTag(CompoundTag.class, spawnPotentialsTag.getValue()); } } diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java index a52442285e..070df964ff 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SignBlock.java @@ -23,16 +23,19 @@ import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.util.gson.GsonUtil; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; +import java.util.HashMap; import java.util.Map; /** * Represents a sign block. + * + * @deprecated WorldEdit does not handle interpreting NBT, + * deprecated for removal without replacement */ +@Deprecated public class SignBlock extends BaseBlock { private String[] text; @@ -83,7 +86,7 @@ public void setText(String[] text) { } @Override - public boolean hasNbt() { + public boolean hasNbtData() { return true; } @@ -93,13 +96,13 @@ public String getNbtId() { } @Override - public CompoundBinaryTag getNbt() { - CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); - values.put("Text1", StringBinaryTag.of(text[0])); - values.put("Text2", StringBinaryTag.of(text[1])); - values.put("Text3", StringBinaryTag.of(text[2])); - values.put("Text4", StringBinaryTag.of(text[3])); - return values.build(); + public CompoundTag getNbtData() { + Map values = new HashMap<>(); + values.put("Text1", new StringTag(text[0])); + values.put("Text2", new StringTag(text[1])); + values.put("Text3", new StringTag(text[2])); + values.put("Text4", new StringTag(text[3])); + return new CompoundTag(values); } @Override diff --git a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java index e33b7fe830..88d0fe593a 100644 --- a/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java +++ b/worldedit-core/src/legacy/java/com/sk89q/worldedit/blocks/SkullBlock.java @@ -19,21 +19,23 @@ package com.sk89q.worldedit.blocks; -import com.google.common.collect.ImmutableMap; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.StringTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.internal.util.DeprecationUtil; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; +import java.util.HashMap; import java.util.Map; /** * A skull block. + * + * @deprecated WorldEdit does not handle interpreting NBT, + * deprecated for removal without replacement */ +@Deprecated public class SkullBlock extends BaseBlock { private String owner = ""; // notchian @@ -83,7 +85,7 @@ public String getOwner() { } @Override - public boolean hasNbt() { + public boolean hasNbtData() { return true; } @@ -93,12 +95,12 @@ public String getNbtId() { } @Override - public CompoundBinaryTag getNbt() { - CompoundBinaryTag.Builder values = CompoundBinaryTag.builder(); - values.put(DeprecationUtil.getHeadOwnerKey(), CompoundBinaryTag.from( - ImmutableMap.of("Name", StringBinaryTag.of(owner)) - )); - return values.build(); + public CompoundTag getNbtData() { + Map values = new HashMap<>(); + Map inner = new HashMap<>(); + inner.put("Name", new StringTag(owner)); + values.put(DeprecationUtil.getHeadOwnerKey(), new CompoundTag(inner)); + return new CompoundTag(values); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java index 17be01289b..190526bed1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.util; import com.sk89q.worldedit.util.nbt.BinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagType; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.storage.InvalidFormatException; @@ -34,16 +35,19 @@ public class NbtUtils { * @return child tag * @throws InvalidFormatException if the format of the items is invalid */ - public static T getChildTag(CompoundBinaryTag tag, String key, Class expected) throws InvalidFormatException { + public static T getChildTag(CompoundBinaryTag tag, String key, BinaryTagType expected) throws InvalidFormatException { BinaryTag childTag = tag.get(key); if (childTag == null) { throw new InvalidFormatException("Missing a \"" + key + "\" tag"); } - if (!expected.isInstance(childTag)) { - throw new InvalidFormatException(key + " tag is not of tag type " + expected.getName()); + if (childTag.type().id() != expected.id()) { + throw new InvalidFormatException(key + " tag is not of tag type " + expected.toString()); } - return expected.cast(childTag); + // SAFETY: same binary tag type checked above + @SuppressWarnings("unchecked") + T childTagCast = (T) childTag; + return childTagCast; } } From 23a4e2d6fd8936aeeb3fa4e6ec3f8549f2402e27 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 15 Feb 2021 01:49:49 -0800 Subject: [PATCH 045/813] Lazily compute NBT --- .../sk89q/worldedit/bukkit/BukkitPlayer.java | 12 ++-- .../com/sk89q/worldedit/LocalSession.java | 9 ++- .../com/sk89q/worldedit/blocks/BaseItem.java | 23 ++++--- .../sk89q/worldedit/blocks/BaseItemStack.java | 5 +- .../sk89q/worldedit/entity/BaseEntity.java | 20 +++---- .../factory/parser/DefaultItemParser.java | 3 +- .../internal/cui/ServerCUIHandler.java | 1 + .../util/collection/Int2BaseBlockMap.java | 2 +- .../util/concurrency/LazyReference.java | 15 +++++ .../worldedit/util/{ => nbt}/NbtUtils.java | 5 +- .../com/sk89q/worldedit/world/NbtValued.java | 60 ++++++++++--------- .../worldedit/world/block/BaseBlock.java | 50 ++++++---------- .../worldedit/world/block/BlockState.java | 13 +--- .../world/block/BlockStateHolder.java | 20 +++++-- .../worldedit/world/chunk/AnvilChunk.java | 21 ++++--- .../worldedit/world/chunk/AnvilChunk13.java | 18 +++--- .../sk89q/worldedit/world/chunk/OldChunk.java | 14 ++--- .../sk89q/worldedit/fabric/FabricAdapter.java | 19 ++++-- .../sk89q/worldedit/fabric/FabricEntity.java | 3 +- .../sk89q/worldedit/fabric/FabricWorld.java | 2 +- .../sk89q/worldedit/forge/ForgeAdapter.java | 19 +++--- .../sk89q/worldedit/forge/ForgeEntity.java | 6 +- .../com/sk89q/worldedit/forge/ForgeWorld.java | 2 +- .../forge/internal/NBTConverter.java | 2 +- .../sk89q/worldedit/sponge/SpongeWorld.java | 12 ++-- 25 files changed, 187 insertions(+), 169 deletions(-) rename worldedit-core/src/main/java/com/sk89q/worldedit/util/{ => nbt}/NbtUtils.java (90%) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index 487dfb804a..95dd3216ff 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -39,6 +39,7 @@ import com.sk89q.worldedit.util.formatting.text.adapter.bukkit.TextAdapter; import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; import com.sk89q.worldedit.util.formatting.text.format.TextColor; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockStateHolder; @@ -295,11 +296,12 @@ public > void sendFakeBlock(BlockVector3 pos, B bl player.sendBlockChange(loc, player.getWorld().getBlockAt(loc).getBlockData()); } else { player.sendBlockChange(loc, BukkitAdapter.adapt(block)); - if (block instanceof BaseBlock && ((BaseBlock) block).hasNbt()) { - BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); - if (adapter != null) { - if (block.getBlockType() == BlockTypes.STRUCTURE_BLOCK) { - adapter.sendFakeNBT(player, pos, ((BaseBlock) block).getNbt()); + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + if (adapter != null) { + if (block.getBlockType() == BlockTypes.STRUCTURE_BLOCK && block instanceof BaseBlock) { + CompoundBinaryTag nbt = ((BaseBlock) block).getNbt(); + if (nbt != null) { + adapter.sendFakeNBT(player, pos, nbt); adapter.sendFakeOP(player); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index 3b865ad80a..aeda2d98d7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -48,6 +48,7 @@ import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.util.Countable; import com.sk89q.worldedit.util.SideEffectSet; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; @@ -802,14 +803,16 @@ public void updateServerCUI(Actor actor) { } BaseBlock block = ServerCUIHandler.createStructureBlock(player); - if (block != null && block.hasNbt()) { - // If it's null, we don't need to do anything. The old was already removed. - CompoundBinaryTag tags = block.getNbt(); + if (block != null) { + CompoundBinaryTag tags = Objects.requireNonNull( + block.getNbt(), "createStructureBlock should return nbt" + ); BlockVector3 tempCuiTemporaryBlock = BlockVector3.at( tags.getInt("x"), tags.getInt("y"), tags.getInt("z") ); + // If it's null, we don't need to do anything. The old was already removed. if (cuiTemporaryBlock != null && !tempCuiTemporaryBlock.equals(cuiTemporaryBlock)) { // Update the existing block if it's the same location player.sendFakeBlock(cuiTemporaryBlock, null); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java index 180e80c903..16b979725b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItem.java @@ -21,6 +21,7 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.TagStringIO; import com.sk89q.worldedit.world.NbtValued; @@ -41,7 +42,7 @@ public class BaseItem implements NbtValued { private ItemType itemType; @Nullable - private CompoundBinaryTag nbtData; + private LazyReference nbtData; /** * Construct the object. @@ -61,7 +62,7 @@ public BaseItem(ItemType itemType) { */ @Deprecated public BaseItem(ItemType itemType, @Nullable CompoundTag nbtData) { - this(itemType, nbtData == null ? null : nbtData.asBinaryTag()); + this(itemType, nbtData == null ? null : LazyReference.from(nbtData::asBinaryTag)); } /** @@ -70,7 +71,7 @@ public BaseItem(ItemType itemType, @Nullable CompoundTag nbtData) { * @param itemType Type of the item * @param tag NBT Compound tag */ - public BaseItem(ItemType itemType, @Nullable CompoundBinaryTag tag) { + public BaseItem(ItemType itemType, @Nullable LazyReference tag) { checkNotNull(itemType); this.itemType = itemType; this.nbtData = tag; @@ -94,30 +95,26 @@ public void setType(ItemType itemType) { this.itemType = itemType; } - @Override - public boolean hasNbt() { - return this.nbtData != null; - } - @Nullable @Override - public CompoundBinaryTag getNbt() { + public LazyReference getNbtReference() { return this.nbtData; } @Override - public void setNbt(@Nullable CompoundBinaryTag nbtData) { + public void setNbtReference(@Nullable LazyReference nbtData) { this.nbtData = nbtData; } @Override public String toString() { String nbtString = ""; - if (hasNbt()) { + LazyReference nbtData = this.nbtData; + if (nbtData != null) { try { - nbtString = TagStringIO.get().asString(nbtData); + nbtString = TagStringIO.get().asString(nbtData.getValue()); } catch (IOException e) { - WorldEdit.logger.error("Failed to parse NBT of Item", e); + WorldEdit.logger.error("Failed to serialize NBT of Item", e); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java index 461dc31dfc..8d9e4ab07d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/blocks/BaseItemStack.java @@ -22,6 +22,7 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.item.ItemType; @@ -61,7 +62,7 @@ public BaseItemStack(ItemType itemType, int amount) { * @param id The item type * @param tag Tag value * @param amount amount in the stack - * @deprecated Use {@link #BaseItemStack(ItemType, CompoundBinaryTag, int)} + * @deprecated Use {@link #BaseItemStack(ItemType, LazyReference, int)} */ @Deprecated public BaseItemStack(ItemType id, CompoundTag tag, int amount) { @@ -76,7 +77,7 @@ public BaseItemStack(ItemType id, CompoundTag tag, int amount) { * @param tag Tag value * @param amount amount in the stack */ - public BaseItemStack(ItemType id, CompoundBinaryTag tag, int amount) { + public BaseItemStack(ItemType id, LazyReference tag, int amount) { super(id, tag); this.amount = amount; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java index ef26da7b80..ae6d856686 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/entity/BaseEntity.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.entity; import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.NbtValued; import com.sk89q.worldedit.world.entity.EntityType; @@ -45,14 +46,14 @@ public class BaseEntity implements NbtValued { private final EntityType type; @Nullable - private CompoundBinaryTag nbtData; + private LazyReference nbtData; /** * Create a new base entity. * * @param type the entity type * @param nbtData NBT data - * @deprecated Use {@link BaseEntity#BaseEntity(EntityType, CompoundBinaryTag)} + * @deprecated Use {@link BaseEntity#BaseEntity(EntityType, LazyReference)} */ @Deprecated public BaseEntity(EntityType type, CompoundTag nbtData) { @@ -66,9 +67,9 @@ public BaseEntity(EntityType type, CompoundTag nbtData) { * @param type the entity type * @param nbtData NBT data */ - public BaseEntity(EntityType type, CompoundBinaryTag nbtData) { + public BaseEntity(EntityType type, LazyReference nbtData) { this(type); - setNbt(nbtData); + setNbtReference(nbtData); } /** @@ -88,22 +89,17 @@ public BaseEntity(EntityType type) { public BaseEntity(BaseEntity other) { checkNotNull(other); this.type = other.getType(); - setNbt(other.getNbt()); - } - - @Override - public boolean hasNbt() { - return true; + setNbtReference(other.getNbtReference()); } @Nullable @Override - public CompoundBinaryTag getNbt() { + public LazyReference getNbtReference() { return nbtData; } @Override - public void setNbt(@Nullable CompoundBinaryTag nbtData) { + public void setNbtReference(@Nullable LazyReference nbtData) { this.nbtData = nbtData; } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java index 2a9d3bf8fc..fb7616394f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/factory/parser/DefaultItemParser.java @@ -30,6 +30,7 @@ import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.registry.InputParser; import com.sk89q.worldedit.util.HandSide; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; @@ -132,7 +133,7 @@ public BaseItem parseFromInput(String input, ParserContext context) throws Input } } - item = new BaseItem(itemType, itemNbtData); + item = new BaseItem(itemType, itemNbtData == null ? null : LazyReference.computed(itemNbtData)); } return item; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java index 1624254215..20d52e013b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.ByteBinaryTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java index 21d480d692..e3203d28cc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/collection/Int2BaseBlockMap.java @@ -50,7 +50,7 @@ class Int2BaseBlockMap extends AbstractInt2ObjectMap { * @return the internal ID, or {@link BlockStateIdAccess#invalidId()} if not useful */ private static int optimizedInternalId(BaseBlock block) { - if (block.hasNbt()) { + if (block.getNbtReference() != null) { return BlockStateIdAccess.invalidId(); } return BlockStateIdAccess.getBlockStateId(block.toImmutableState()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java index f755b3fa02..8463cac91e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/concurrency/LazyReference.java @@ -32,6 +32,17 @@ public static LazyReference from(Supplier valueComputation) { return new LazyReference<>(valueComputation); } + /** + * Pre-computed reference, for setting a lazy reference field with a known value. + * + * @param value the value of the reference + * @param the type of the value + * @return the new reference + */ + public static LazyReference computed(T value) { + return new LazyReference<>(value); + } + // Memory saving technique: hold the computation info in the same reference field that we'll // put the value into, so the memory possibly retained by those parts is GC'able as soon as // it's no longer needed. @@ -51,6 +62,10 @@ private LazyReference(Supplier valueComputation) { this.value = new RefInfo<>(valueComputation); } + private LazyReference(T value) { + this.value = value; + } + // casts are safe, value is either RefInfo or T @SuppressWarnings("unchecked") public T getValue() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/nbt/NbtUtils.java similarity index 90% rename from worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java rename to worldedit-core/src/main/java/com/sk89q/worldedit/util/nbt/NbtUtils.java index 190526bed1..2c032e8bce 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/NbtUtils.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/nbt/NbtUtils.java @@ -17,11 +17,8 @@ * along with this program. If not, see . */ -package com.sk89q.worldedit.util; +package com.sk89q.worldedit.util.nbt; -import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.BinaryTagType; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.storage.InvalidFormatException; public class NbtUtils { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java index c07d23e1bb..198a786308 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/NbtValued.java @@ -19,10 +19,10 @@ package com.sk89q.worldedit.world; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import javax.annotation.Nullable; @@ -39,11 +39,11 @@ public interface NbtValued { * must not return null if this method returns true. * * @return true if there is NBT data - * @deprecated See {@link #hasNbt()} + * @deprecated See {@link #getNbt()} */ @Deprecated default boolean hasNbtData() { - return hasNbt(); + return getNbt() != null; } /** @@ -70,55 +70,48 @@ default CompoundTag getNbtData() { * Set the object's NBT data (tile entity data). * * @param nbtData NBT data, or null if no data - * @deprecated See {@link #setNbt(CompoundBinaryTag)} + * @deprecated See {@link #setNbtReference(LazyReference)} */ @Deprecated default void setNbtData(@Nullable CompoundTag nbtData) { - setNbt(nbtData == null ? null : nbtData.asBinaryTag()); + setNbtReference(nbtData == null ? null : LazyReference.from(nbtData::asBinaryTag)); } /** - * Returns whether the block contains NBT data. {@link #getNbt()} - * must not return null if this method returns true. + * Get the object's NBT data (tile entity data). * - * @return true if there is NBT data + *

+ * This only needs to be used if you don't want to immediately resolve the data. + * Otherwise, you probably want {@link #getNbt()}. + *

+ * + * @return compound tag, or null * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} * for details */ @NonAbstractForCompatibility( - delegateName = "hasNbtData", + delegateName = "getNbtData", delegateParams = { } ) - default boolean hasNbt() { + @Nullable + default LazyReference getNbtReference() { DeprecationUtil.checkDelegatingOverride(getClass()); - return hasNbtData(); + CompoundTag nbtData = getNbtData(); + return nbtData == null ? null : LazyReference.from(nbtData::asBinaryTag); } /** - * Get the object's NBT data (tile entity data). The returned tag, if - * modified in any way, should be sent to {@link #setNbt(CompoundBinaryTag)} - * so that the instance knows of the changes. Making changes without - * calling {@link #setNbt(CompoundBinaryTag)} could have unintended - * consequences. - * - *

{@link #hasNbt()} must return true if and only if method does - * not return null.

+ * Get the object's NBT data (tile entity data). * * @return compound tag, or null * @apiNote This must be overridden by new subclasses. See {@link NonAbstractForCompatibility} * for details */ - @NonAbstractForCompatibility( - delegateName = "getNbtData", - delegateParams = { } - ) @Nullable default CompoundBinaryTag getNbt() { - DeprecationUtil.checkDelegatingOverride(getClass()); - - CompoundTag nbtData = getNbtData(); - return nbtData == null ? null : nbtData.asBinaryTag(); + LazyReference ref = getNbtReference(); + return ref == null ? null : ref.getValue(); } /** @@ -132,10 +125,19 @@ default CompoundBinaryTag getNbt() { delegateName = "setNbtData", delegateParams = { CompoundTag.class } ) - default void setNbt(@Nullable CompoundBinaryTag nbtData) { + default void setNbtReference(@Nullable LazyReference nbtData) { DeprecationUtil.checkDelegatingOverride(getClass()); - setNbtData(nbtData == null ? null : new CompoundTag(nbtData)); + setNbtData(nbtData == null ? null : new CompoundTag(nbtData.getValue())); + } + + /** + * Set the object's NBT data (tile entity data). + * + * @param nbtData NBT data, or null if no data + */ + default void setNbt(@Nullable CompoundBinaryTag nbtData) { + setNbtReference(nbtData == null ? null : LazyReference.computed(nbtData)); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java index a488f59057..f0d2adee68 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java @@ -23,6 +23,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.blocks.TileEntityBlock; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.TagStringIO; @@ -46,7 +47,7 @@ public class BaseBlock implements BlockStateHolder, TileEntityBlock { private final BlockState blockState; @Nullable - private final CompoundBinaryTag nbtData; + private final LazyReference nbtData; /** * Construct a block with a state. @@ -66,7 +67,7 @@ protected BaseBlock(BlockState blockState) { */ @Deprecated protected BaseBlock(BlockState state, CompoundTag nbtData) { - this(state, checkNotNull(nbtData).asBinaryTag()); + this(state, LazyReference.from(checkNotNull(nbtData)::asBinaryTag)); } @@ -76,7 +77,7 @@ protected BaseBlock(BlockState state, CompoundTag nbtData) { * @param state The block state * @param nbtData NBT data, which must be provided */ - protected BaseBlock(BlockState state, CompoundBinaryTag nbtData) { + protected BaseBlock(BlockState state, LazyReference nbtData) { checkNotNull(nbtData); this.blockState = state; this.nbtData = nbtData; @@ -115,26 +116,21 @@ public V getState(Property property) { @Override public String getNbtId() { - CompoundBinaryTag nbtData = this.nbtData; + LazyReference nbtData = this.nbtData; if (nbtData == null) { return ""; } - return nbtData.getString("id"); - } - - @Override - public boolean hasNbt() { - return this.nbtData != null; + return nbtData.getValue().getString("id"); } @Nullable @Override - public CompoundBinaryTag getNbt() { + public LazyReference getNbtReference() { return this.nbtData; } @Override - public void setNbt(@Nullable CompoundBinaryTag nbtData) { + public void setNbtReference(@Nullable LazyReference nbtData) { throw new UnsupportedOperationException("This class is immutable."); } @@ -144,7 +140,7 @@ public void setNbt(@Nullable CompoundBinaryTag nbtData) { @Override public boolean equals(Object o) { if (!(o instanceof BaseBlock)) { - if (!hasNbt() && o instanceof BlockStateHolder) { + if (nbtData == null && o instanceof BlockStateHolder) { return Objects.equals(toImmutableState(), ((BlockStateHolder) o).toImmutableState()); } return false; @@ -176,22 +172,8 @@ public BaseBlock toBaseBlock() { return this; } - @Deprecated - @Override - public BaseBlock toBaseBlock(CompoundTag compoundTag) { - if (compoundTag == null) { - return this.blockState.toBaseBlock(); - } else if (compoundTag.asBinaryTag() == this.nbtData) { - // The above reference equality check is fine, as JNBT classes contain an internal - // Adventure reference. - return this; - } else { - return new BaseBlock(this.blockState, compoundTag); - } - } - @Override - public BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { + public BaseBlock toBaseBlock(LazyReference compoundTag) { if (compoundTag == null) { return this.blockState.toBaseBlock(); } else if (compoundTag == this.nbtData) { @@ -204,8 +186,9 @@ public BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { @Override public int hashCode() { int ret = toImmutableState().hashCode() << 3; - if (hasNbt()) { - ret += getNbt().hashCode(); + CompoundBinaryTag nbtData = getNbt(); + if (nbtData != null) { + ret += nbtData.hashCode(); } return ret; } @@ -213,11 +196,12 @@ public int hashCode() { @Override public String toString() { String nbtString = ""; - if (hasNbt()) { + CompoundBinaryTag nbtData = getNbt(); + if (nbtData != null) { try { - nbtString = TagStringIO.get().asString(getNbt()); + nbtString = TagStringIO.get().asString(nbtData); } catch (IOException e) { - WorldEdit.logger.error("Failed to parse NBT of Block", e); + WorldEdit.logger.error("Failed to serialize NBT of Block", e); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java index be4584b03b..61ece44397 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java @@ -24,10 +24,10 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Table; -import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import java.util.Collections; @@ -211,17 +211,8 @@ public BaseBlock toBaseBlock() { return this.emptyBaseBlock; } - @Deprecated @Override - public BaseBlock toBaseBlock(CompoundTag compoundTag) { - if (compoundTag == null) { - return toBaseBlock(); - } - return new BaseBlock(this, compoundTag); - } - - @Override - public BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { + public BaseBlock toBaseBlock(LazyReference compoundTag) { if (compoundTag == null) { return toBaseBlock(); } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index 0c11bb8331..e45544101f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -19,13 +19,13 @@ package com.sk89q.worldedit.world.block; -import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.util.DeprecationUtil; import com.sk89q.worldedit.internal.util.NonAbstractForCompatibility; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import java.util.Locale; @@ -92,11 +92,11 @@ public interface BlockStateHolder> extends Pattern * * @param compoundTag The NBT Data to apply * @return The BaseBlock - * @deprecated Use {@link BlockStateHolder#toBaseBlock(CompoundBinaryTag)}. + * @deprecated Use {@link BlockStateHolder#toBaseBlock(LazyReference)}. */ @Deprecated default BaseBlock toBaseBlock(CompoundTag compoundTag) { - return toBaseBlock(compoundTag == null ? null : compoundTag.asBinaryTag()); + return toBaseBlock(compoundTag == null ? null : LazyReference.from(compoundTag::asBinaryTag)); } /** @@ -111,10 +111,22 @@ default BaseBlock toBaseBlock(CompoundTag compoundTag) { delegateName = "toBaseBlock", delegateParams = { CompoundTag.class } ) + default BaseBlock toBaseBlock(LazyReference compoundTag) { + DeprecationUtil.checkDelegatingOverride(getClass()); + + return toBaseBlock(compoundTag == null ? null : new CompoundTag(compoundTag.getValue())); + } + + /** + * Gets a {@link BaseBlock} from this BlockStateHolder. + * + * @param compoundTag The NBT Data to apply + * @return The BaseBlock + */ default BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { DeprecationUtil.checkDelegatingOverride(getClass()); - return toBaseBlock(compoundTag == null ? null : new CompoundTag(compoundTag)); + return toBaseBlock(compoundTag == null ? null : LazyReference.computed(compoundTag)); } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java index 8ecd71034d..f45f0eb91d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk.java @@ -22,13 +22,12 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; -import com.sk89q.worldedit.util.NbtUtils; import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; -import com.sk89q.worldedit.util.nbt.ByteBinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagTypes; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -72,14 +71,14 @@ public AnvilChunk(CompoundTag tag) throws DataException { public AnvilChunk(CompoundBinaryTag tag) throws DataException { rootTag = tag; - rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); - rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", BinaryTagTypes.INT).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", BinaryTagTypes.INT).value(); blocks = new byte[16][16 * 16 * 16]; blocksAdd = new byte[16][16 * 16 * 8]; data = new byte[16][16 * 16 * 8]; - ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", ListBinaryTag.class); + ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", BinaryTagTypes.LIST); for (BinaryTag rawSectionTag : sections) { if (!(rawSectionTag instanceof CompoundBinaryTag)) { @@ -91,20 +90,20 @@ public AnvilChunk(CompoundBinaryTag tag) throws DataException { continue; // Empty section. } - int y = NbtUtils.getChildTag(sectionTag, "Y", ByteBinaryTag.class).value(); + int y = NbtUtils.getChildTag(sectionTag, "Y", BinaryTagTypes.BYTE).value(); if (y < 0 || y >= 16) { continue; } blocks[y] = NbtUtils.getChildTag(sectionTag, - "Blocks", ByteArrayBinaryTag.class).value(); + "Blocks", BinaryTagTypes.BYTE_ARRAY).value(); data[y] = NbtUtils.getChildTag(sectionTag, "Data", - ByteArrayBinaryTag.class).value(); + BinaryTagTypes.BYTE_ARRAY).value(); // 4096 ID block support if (sectionTag.get("Add") != null) { blocksAdd[y] = NbtUtils.getChildTag(sectionTag, - "Add", ByteArrayBinaryTag.class).value(); + "Add", BinaryTagTypes.BYTE_ARRAY).value(); } } @@ -191,7 +190,7 @@ private int getBlockData(BlockVector3 position) throws DataException { * Used to load the tile entities. */ private void populateTileEntities() throws DataException { - ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", BinaryTagTypes.LIST); tileEntities = new HashMap<>(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java index dd3bfdbe6d..cb94791350 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/AnvilChunk13.java @@ -22,14 +22,12 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.state.Property; -import com.sk89q.worldedit.util.NbtUtils; import com.sk89q.worldedit.util.nbt.BinaryTag; import com.sk89q.worldedit.util.nbt.BinaryTagTypes; -import com.sk89q.worldedit.util.nbt.ByteBinaryTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; -import com.sk89q.worldedit.util.nbt.LongArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -75,12 +73,12 @@ public AnvilChunk13(CompoundTag tag) throws DataException { public AnvilChunk13(CompoundBinaryTag tag) throws DataException { rootTag = tag; - rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); - rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", BinaryTagTypes.INT).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", BinaryTagTypes.INT).value(); blocks = new BlockState[16][]; - ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", ListBinaryTag.class); + ListBinaryTag sections = NbtUtils.getChildTag(rootTag, "Sections", BinaryTagTypes.LIST); for (BinaryTag rawSectionTag : sections) { if (!(rawSectionTag instanceof CompoundBinaryTag)) { @@ -92,7 +90,7 @@ public AnvilChunk13(CompoundBinaryTag tag) throws DataException { continue; // Empty section. } - int y = NbtUtils.getChildTag(sectionTag, "Y", ByteBinaryTag.class).value(); + int y = NbtUtils.getChildTag(sectionTag, "Y", BinaryTagTypes.BYTE).value(); if (y < 0 || y >= 16) { continue; } @@ -112,7 +110,7 @@ public AnvilChunk13(CompoundBinaryTag tag) throws DataException { } BlockState blockState = type.getDefaultState(); if (paletteEntry.get("Properties") != null) { - CompoundBinaryTag properties = NbtUtils.getChildTag(paletteEntry, "Properties", CompoundBinaryTag.class); + CompoundBinaryTag properties = NbtUtils.getChildTag(paletteEntry, "Properties", BinaryTagTypes.COMPOUND); for (Property property : blockState.getStates().keySet()) { if (properties.get(property.getName()) != null) { String value = properties.getString(property.getName()); @@ -128,7 +126,7 @@ public AnvilChunk13(CompoundBinaryTag tag) throws DataException { } // parse block states - long[] blockStatesSerialized = NbtUtils.getChildTag(sectionTag, "BlockStates", LongArrayBinaryTag.class).value(); + long[] blockStatesSerialized = NbtUtils.getChildTag(sectionTag, "BlockStates", BinaryTagTypes.LONG_ARRAY).value(); BlockState[] chunkSectionBlocks = new BlockState[16 * 16 * 16]; blocks[y] = chunkSectionBlocks; @@ -183,7 +181,7 @@ private void populateTileEntities() throws DataException { if (rootTag.get("TileEntities") == null) { return; } - ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", BinaryTagTypes.LIST); for (BinaryTag tag : tags) { if (!(tag instanceof CompoundBinaryTag)) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java index fa4288885b..83f695ed15 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/chunk/OldChunk.java @@ -22,12 +22,12 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.math.BlockVector3; -import com.sk89q.worldedit.util.NbtUtils; import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.ByteArrayBinaryTag; +import com.sk89q.worldedit.util.nbt.BinaryTagTypes; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.util.nbt.IntBinaryTag; import com.sk89q.worldedit.util.nbt.ListBinaryTag; +import com.sk89q.worldedit.util.nbt.NbtUtils; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockState; @@ -73,10 +73,10 @@ public OldChunk(CompoundTag tag) throws DataException { public OldChunk(CompoundBinaryTag tag) throws DataException { rootTag = tag; - blocks = NbtUtils.getChildTag(rootTag, "Blocks", ByteArrayBinaryTag.class).value(); - data = NbtUtils.getChildTag(rootTag, "Data", ByteArrayBinaryTag.class).value(); - rootX = NbtUtils.getChildTag(rootTag, "xPos", IntBinaryTag.class).value(); - rootZ = NbtUtils.getChildTag(rootTag, "zPos", IntBinaryTag.class).value(); + blocks = NbtUtils.getChildTag(rootTag, "Blocks", BinaryTagTypes.BYTE_ARRAY).value(); + data = NbtUtils.getChildTag(rootTag, "Data", BinaryTagTypes.BYTE_ARRAY).value(); + rootX = NbtUtils.getChildTag(rootTag, "xPos", BinaryTagTypes.INT).value(); + rootZ = NbtUtils.getChildTag(rootTag, "zPos", BinaryTagTypes.INT).value(); int size = 16 * 16 * 128; if (blocks.length != size) { @@ -96,7 +96,7 @@ public OldChunk(CompoundBinaryTag tag) throws DataException { * @throws DataException if there is an error getting the chunk data */ private void populateTileEntities() throws DataException { - ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", ListBinaryTag.class); + ListBinaryTag tags = NbtUtils.getChildTag(rootTag, "TileEntities", BinaryTagTypes.LIST); tileEntities = new HashMap<>(); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java index 21d050b26a..4823eb8062 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java @@ -30,6 +30,7 @@ import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.nbt.BinaryTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.World; @@ -43,6 +44,8 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.state.StateManager; @@ -237,18 +240,22 @@ public static ItemStack adapt(BaseItemStack baseItemStack) { } public static BaseItemStack adapt(ItemStack itemStack) { - CompoundBinaryTag tag = NBTConverter.fromNative(itemStack.toTag(new net.minecraft.nbt.CompoundTag())); - if (tag.keySet().isEmpty()) { + CompoundTag tag = itemStack.toTag(new CompoundTag()); + if (tag.isEmpty()) { tag = null; } else { - final BinaryTag tagTag = tag.get("tag"); - if (tagTag instanceof CompoundBinaryTag) { - tag = ((CompoundBinaryTag) tagTag); + final Tag tagTag = tag.get("tag"); + if (tagTag instanceof CompoundTag) { + tag = ((CompoundTag) tagTag); } else { tag = null; } } - return new BaseItemStack(adapt(itemStack.getItem()), tag, itemStack.getCount()); + CompoundTag finalTag = tag; + return new BaseItemStack( + adapt(itemStack.getItem()), + finalTag == null ? null : LazyReference.from(() -> NBTConverter.fromNative(finalTag)), + itemStack.getCount()); } /** diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java index 02ac3a4a8d..cd88c721dd 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java @@ -26,6 +26,7 @@ import com.sk89q.worldedit.fabric.internal.NBTConverter; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.world.NullWorld; import com.sk89q.worldedit.world.entity.EntityTypes; import net.minecraft.nbt.CompoundTag; @@ -53,7 +54,7 @@ public BaseEntity getState() { Identifier id = Registry.ENTITY_TYPE.getId(entity.getType()); CompoundTag tag = new CompoundTag(); entity.toTag(tag); - return new BaseEntity(EntityTypes.get(id.toString()), NBTConverter.fromNative(tag)); + return new BaseEntity(EntityTypes.get(id.toString()), LazyReference.from(() -> NBTConverter.fromNative(tag))); } else { return null; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index 5bf412edc9..f2958f3258 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -248,7 +248,7 @@ public boolean setBiome(BlockVector3 position, BiomeType biome) { @Override public boolean useItem(BlockVector3 position, BaseItem item, Direction face) { - ItemStack stack = FabricAdapter.adapt(new BaseItemStack(item.getType(), item.getNbt(), 1)); + ItemStack stack = FabricAdapter.adapt(new BaseItemStack(item.getType(), item.getNbtReference(), 1)); ServerWorld world = (ServerWorld) getWorld(); final WorldEditFakePlayer fakePlayer; try { diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java index ba02cfa1a0..c18a39202c 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java @@ -30,8 +30,7 @@ import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; -import com.sk89q.worldedit.util.nbt.BinaryTag; -import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.biome.BiomeTypes; @@ -45,6 +44,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.INBT; import net.minecraft.state.DirectionProperty; import net.minecraft.state.StateContainer; import net.minecraft.util.IStringSerializable; @@ -233,18 +233,23 @@ public static ItemStack adapt(BaseItemStack baseItemStack) { } public static BaseItemStack adapt(ItemStack itemStack) { - CompoundBinaryTag tag = NBTConverter.fromNative(itemStack.serializeNBT()); + CompoundNBT tag = itemStack.serializeNBT(); if (tag.keySet().isEmpty()) { tag = null; } else { - final BinaryTag tagTag = tag.get("tag"); - if (tagTag instanceof CompoundBinaryTag) { - tag = ((CompoundBinaryTag) tagTag); + final INBT tagTag = tag.get("tag"); + if (tagTag instanceof CompoundNBT) { + tag = ((CompoundNBT) tagTag); } else { tag = null; } } - return new BaseItemStack(adapt(itemStack.getItem()), tag, itemStack.getCount()); + CompoundNBT finalTag = tag; + return new BaseItemStack( + adapt(itemStack.getItem()), + finalTag == null ? null : LazyReference.from(() -> NBTConverter.fromNative(finalTag)), + itemStack.getCount() + ); } /** diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java index 521835dcc4..623e5a30d3 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeEntity.java @@ -26,6 +26,7 @@ import com.sk89q.worldedit.forge.internal.NBTConverter; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.world.NullWorld; import com.sk89q.worldedit.world.entity.EntityTypes; import net.minecraft.nbt.CompoundNBT; @@ -53,7 +54,10 @@ public BaseEntity getState() { if (id != null) { CompoundNBT tag = new CompoundNBT(); entity.writeWithoutTypeId(tag); - return new BaseEntity(EntityTypes.get(id.toString()), NBTConverter.fromNative(tag)); + return new BaseEntity( + EntityTypes.get(id.toString()), + LazyReference.from(() -> NBTConverter.fromNative(tag)) + ); } else { return null; } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index 2eb64dede1..ccdc813a3a 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -253,7 +253,7 @@ public boolean setBiome(BlockVector3 position, BiomeType biome) { @Override public boolean useItem(BlockVector3 position, BaseItem item, Direction face) { - ItemStack stack = ForgeAdapter.adapt(new BaseItemStack(item.getType(), item.getNbt(), 1)); + ItemStack stack = ForgeAdapter.adapt(new BaseItemStack(item.getType(), item.getNbtReference(), 1)); ServerWorld world = (ServerWorld) getWorld(); final WorldEditFakePlayer fakePlayer; try { diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java index 4f76306bc3..693369a71f 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/NBTConverter.java @@ -211,7 +211,7 @@ public static IntArrayBinaryTag fromNative(IntArrayNBT other) { public static ListBinaryTag fromNative(ListNBT other) { other = other.copy(); - ListBinaryTag.Builder list = ListBinaryTag.builder(); + ListBinaryTag.Builder list = ListBinaryTag.builder(); int tags = other.size(); for (int i = 0; i < tags; i++) { BinaryTag child = fromNative(other.remove(0)); diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java index 540808475d..8aead8e81e 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorld.java @@ -21,7 +21,6 @@ import com.flowpowered.math.vector.Vector3d; import com.flowpowered.math.vector.Vector3i; -import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItemStack; import com.sk89q.worldedit.entity.BaseEntity; @@ -168,9 +167,12 @@ public > boolean setBlock(BlockVector3 position, B snapshot.restore(true, notifyAndLight ? BlockChangeFlags.ALL : BlockChangeFlags.NONE); // Create the TileEntity - if (block instanceof BaseBlock && ((BaseBlock) block).hasNbt()) { - // Kill the old TileEntity - world.getTileEntity(pos).ifPresent(tileEntity -> applyTileEntityData(tileEntity, (BaseBlock) block)); + if (block instanceof BaseBlock) { + BaseBlock baseBlock = (BaseBlock) block; + if (baseBlock.getNbtReference() != null) { + // Kill the old TileEntity + world.getTileEntity(pos).ifPresent(tileEntity -> applyTileEntityData(tileEntity, baseBlock)); + } } return true; @@ -301,7 +303,7 @@ public Entity createEntity(Location location, BaseEntity entity) { Vector3d pos = new Vector3d(location.getX(), location.getY(), location.getZ()); org.spongepowered.api.entity.Entity newEnt = world.createEntity(entityType, pos); - if (entity.hasNbt()) { + if (entity.getNbtReference() != null) { applyEntityData(newEnt, entity); } From fb5d7f8af5b89a23826b2bfeb72fd6bff035aa37 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 15 Feb 2021 01:53:45 -0800 Subject: [PATCH 046/813] Revert to old behavior of coercing --- .../com/sk89q/worldedit/function/block/ExtentBlockCopy.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java index 56ae3ed10e..cfa2445447 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/block/ExtentBlockCopy.java @@ -30,7 +30,7 @@ import com.sk89q.worldedit.util.Direction.Flag; import com.sk89q.worldedit.util.nbt.BinaryTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.IntBinaryTag; +import com.sk89q.worldedit.util.nbt.NumberBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import static com.google.common.base.Preconditions.checkNotNull; @@ -93,8 +93,8 @@ private BaseBlock transformNbtData(BaseBlock state) { if (tag != null) { // Handle blocks which store their rotation in NBT BinaryTag rotTag = tag.get("Rot"); - if (rotTag instanceof IntBinaryTag) { - int rot = ((IntBinaryTag) rotTag).value(); + if (rotTag instanceof NumberBinaryTag) { + int rot = ((NumberBinaryTag) rotTag).intValue(); Direction direction = MCDirections.fromRotation(rot); From b67fff66621c3b9bc183eafe0b803f4e6be692bd Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 15 Feb 2021 01:56:06 -0800 Subject: [PATCH 047/813] Use the convience methods for assembly --- .../internal/cui/ServerCUIHandler.java | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java index 20d52e013b..c979bf0dcc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/cui/ServerCUIHandler.java @@ -28,11 +28,7 @@ import com.sk89q.worldedit.regions.RegionSelector; import com.sk89q.worldedit.regions.selector.CuboidRegionSelector; import com.sk89q.worldedit.util.Location; -import com.sk89q.worldedit.util.concurrency.LazyReference; -import com.sk89q.worldedit.util.nbt.ByteBinaryTag; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; -import com.sk89q.worldedit.util.nbt.IntBinaryTag; -import com.sk89q.worldedit.util.nbt.StringBinaryTag; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockTypes; @@ -135,24 +131,24 @@ public static BaseBlock createStructureBlock(Player player) { return null; } - structureTag.put("name", StringBinaryTag.of("worldedit:" + player.getName())); - structureTag.put("author", StringBinaryTag.of(player.getName())); - structureTag.put("metadata", StringBinaryTag.of("")); - structureTag.put("x", IntBinaryTag.of(x)); - structureTag.put("y", IntBinaryTag.of(y)); - structureTag.put("z", IntBinaryTag.of(z)); - structureTag.put("posX", IntBinaryTag.of(posX)); - structureTag.put("posY", IntBinaryTag.of(posY)); - structureTag.put("posZ", IntBinaryTag.of(posZ)); - structureTag.put("sizeX", IntBinaryTag.of(width)); - structureTag.put("sizeY", IntBinaryTag.of(height)); - structureTag.put("sizeZ", IntBinaryTag.of(length)); - structureTag.put("rotation", StringBinaryTag.of("NONE")); - structureTag.put("mirror", StringBinaryTag.of("NONE")); - structureTag.put("mode", StringBinaryTag.of("SAVE")); - structureTag.put("ignoreEntities", ByteBinaryTag.of((byte) 1)); - structureTag.put("showboundingbox", ByteBinaryTag.of((byte) 1)); - structureTag.put("id", StringBinaryTag.of(BlockTypes.STRUCTURE_BLOCK.getId())); + structureTag.putString("name", "worldedit:" + player.getName()); + structureTag.putString("author", player.getName()); + structureTag.putString("metadata", ""); + structureTag.putInt("x", x); + structureTag.putInt("y", y); + structureTag.putInt("z", z); + structureTag.putInt("posX", posX); + structureTag.putInt("posY", posY); + structureTag.putInt("posZ", posZ); + structureTag.putInt("sizeX", width); + structureTag.putInt("sizeY", height); + structureTag.putInt("sizeZ", length); + structureTag.putString("rotation", "NONE"); + structureTag.putString("mirror", "NONE"); + structureTag.putString("mode", "SAVE"); + structureTag.putByte("ignoreEntities", (byte) 1); + structureTag.putByte("showboundingbox", (byte) 1); + structureTag.putString("id", BlockTypes.STRUCTURE_BLOCK.getId()); return BlockTypes.STRUCTURE_BLOCK.getDefaultState().toBaseBlock(structureTag.build()); } From b7880c2f4a0b7bb5df3b6076a956f7fe40dbff42 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 15 Feb 2021 02:02:14 -0800 Subject: [PATCH 048/813] Lazify some more conversions --- .../java/com/sk89q/worldedit/world/block/BaseBlock.java | 2 +- .../main/java/com/sk89q/worldedit/fabric/FabricWorld.java | 5 +++-- .../main/java/com/sk89q/worldedit/forge/ForgeWorld.java | 8 ++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java index f0d2adee68..f7f79a66e5 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BaseBlock.java @@ -100,7 +100,7 @@ public BlockType getBlockType() { @Override public BaseBlock with(Property property, V value) { - return this.blockState.with(property, value).toBaseBlock(getNbt()); + return this.blockState.with(property, value).toBaseBlock(getNbtReference()); } /** diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index f2958f3258..07e1a3e1c0 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -51,6 +51,7 @@ import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; import com.sk89q.worldedit.util.TreeGenerator.TreeType; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.io.file.SafeFiles; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.AbstractWorld; @@ -426,7 +427,7 @@ private void regenForWorld(Region region, Extent extent, ServerWorld serverWorld if (blockEntity != null) { net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag(); blockEntity.toTag(tag); - state = state.toBaseBlock(NBTConverter.fromNative(tag)); + state = state.toBaseBlock(LazyReference.from(() -> NBTConverter.fromNative(tag))); } extent.setBlock(vec, state.toBaseBlock()); @@ -602,7 +603,7 @@ public BaseBlock getFullBlock(BlockVector3 position) { if (tile != null) { net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag(); tile.toTag(tag); - return getBlock(position).toBaseBlock(NBTConverter.fromNative(tag)); + return getBlock(position).toBaseBlock(LazyReference.from(() -> NBTConverter.fromNative(tag))); } else { return getBlock(position).toBaseBlock(); } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index ccdc813a3a..fdef1811da 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -51,6 +51,7 @@ import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.SideEffectSet; import com.sk89q.worldedit.util.TreeGenerator.TreeType; +import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.io.file.SafeFiles; import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; import com.sk89q.worldedit.world.AbstractWorld; @@ -437,7 +438,7 @@ private void regenForWorld(Region region, Extent extent, ServerWorld serverWorld if (blockEntity != null) { CompoundNBT tag = new CompoundNBT(); blockEntity.write(tag); - state = state.toBaseBlock(NBTConverter.fromNative(tag)); + state = state.toBaseBlock(LazyReference.from(() -> NBTConverter.fromNative(tag))); } extent.setBlock(vec, state.toBaseBlock()); @@ -610,7 +611,10 @@ public BaseBlock getFullBlock(BlockVector3 position) { TileEntity tile = getWorld().getChunk(pos).getTileEntity(pos); if (tile != null) { - return getBlock(position).toBaseBlock(NBTConverter.fromNative(TileEntityUtils.copyNbtData(tile))); + CompoundNBT tag = TileEntityUtils.copyNbtData(tile); + return getBlock(position).toBaseBlock( + LazyReference.from(() -> NBTConverter.fromNative(tag)) + ); } else { return getBlock(position).toBaseBlock(); } From 3e07d723fb02813c4730177a12d457f2b4676416 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 16 Feb 2021 20:25:13 -0800 Subject: [PATCH 049/813] Fix SLF4J binding loading Fixes #1676 --- worldedit-bukkit/build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 8568f9be2c..fd4bf5b7ab 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -52,11 +52,10 @@ tasks.named("shadowJar") { }) dependencies { relocate("org.slf4j", "com.sk89q.worldedit.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.log4jbridge") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency(":worldedit-core")) include(dependency("org.slf4j:slf4j-api")) - include(dependency("org.apache.logging.log4j:log4j-slf4j-impl")) + include(dependency("org.slf4j:slf4j-jdk14")) include(dependency("org.antlr:antlr4-runtime")) relocate("org.bstats", "com.sk89q.worldedit.bstats") { include(dependency("org.bstats:")) From 4193daaf694c5d5b9c91118e89edc2f32f6d0a26 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Wed, 17 Feb 2021 17:42:13 +1000 Subject: [PATCH 050/813] Update adapters for LazyReference change. Fixes #1677 --- .../src/main/resources/worldedit-adapters.jar | Bin 440499 -> 441157 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 5f9fa5a89b84b266e88a53e9f2cccf18e3ff502a..165813d55ca8d40225edf99b76386b0b41c0b2a7 100644 GIT binary patch delta 86015 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�Gu<5o!k9wJZ^f&-!q4D%zXx z$mAZuZouxkXy+nNzyP&!=<8LFoG}Mo#rU{>+Z+obiYNL6*sN z-bzVcX~OQalF4#7J~J0woxxA@PJVxghkOF&;y`tyj8O$^3z)p*Ou56N;+ujbUm4z2 ziNhk5Co5VXoPz9y35B8?HtJWoBIf{I-nEHE1%3}a#mg*A)uc0gSZjO2@dbl}=xa6dkE0LYlIALioenCQ} zN=QafB}u=8*bDY5`SgS~pgnM=O5-p($=8LqEo7#u;O1DZHG8JY#$r+R2{Fl+OhbH> zKJ|^ctwdpVWodlg2TIdYYVgF>YQlbt+0vNmTsjIEEr;Z&xIR6rQDn) zB6`6-))&)~AP6sM)bw>cJ2dYRz8a-%=aXw&(Ix2j*EhJYy$0e`2Va`AyO6vd@UW>n zV5_d1wp33FI{T3J1YZc8LpIDPfw5-Bn+cPGhHQ`L+9>aF1i)@VV~Q7KTb%b)f?h!* z`4?485emUT;6UT`A)}*~&cf zsUrfS)BE&jl)1m&1JE}j92~BFM%elAz93HKM!cNRgQda&qO*;H_?@50%}WjcJu_A5kW9?hROMM|<#ruJH%aCHr}voa2KG>8ej zXiO<2&X*)X=lNWl`?=?2g5xf|(osLmKXLEZ?|RA!eTs}nAIeX>Ak%6uFWo;z#r*^~lUssT+U$^3h+Νc5F|snzMHGG3|cnnkDP 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 VezJjYPVoEVM35>muq`Ia{{j8dKQRCR delta 85340 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%0ACsfHL`H$bJMhcauyqa8O8lDE6 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 From 8a466703272d89b8a1f5d932bb483d2606956859 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 17 Feb 2021 01:17:42 -0800 Subject: [PATCH 051/813] Disable Fabric UPDATE mixin if quickcarpet too Fixes #1662, though I really hate doing this. --- .../fabric/internal/MixinConfigPlugin.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java index 48f933c36e..c7d53967c9 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java @@ -20,15 +20,18 @@ package com.sk89q.worldedit.fabric.internal; import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.ModContainer; import org.objectweb.asm.tree.ClassNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.spongepowered.asm.mixin.Mixins; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; import java.util.List; +import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; public class MixinConfigPlugin implements IMixinConfigPlugin { private static final Logger LOGGER = LoggerFactory.getLogger(MixinConfigPlugin.class); @@ -45,11 +48,18 @@ public String getRefMapperConfig() { @Override public boolean shouldApplyMixin(String targetClassName, String mixinClassName) { if (mixinClassName.equals("com.sk89q.worldedit.fabric.mixin.MixinWorldChunkSetBlockHook")) { - boolean carpet = FabricLoader.getInstance().getModContainer("carpet").isPresent(); - if (carpet) { - LOGGER.warn("Carpet detected, disabling UPDATE mixin " + mixinClassName); + List conflictingContainers = Stream.of("carpet", "quickcarpet") + .map(FabricLoader.getInstance()::getModContainer) + .filter(Optional::isPresent) + .map(Optional::get) + .collect(Collectors.toList()); + if (!conflictingContainers.isEmpty()) { + List conflictingIds = conflictingContainers.stream() + .map(mc -> mc.getMetadata().getId()) + .collect(Collectors.toList()); + LOGGER.warn("{} detected, disabling UPDATE mixin {}", conflictingIds, mixinClassName); } - return !carpet; + return conflictingContainers.isEmpty(); } return true; } From e94f082b0711ece2d9845ae2d18ffeced08aec47 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 17 Feb 2021 11:22:35 -0800 Subject: [PATCH 052/813] Improve speed of BlockState init, tick watchdog (#1680) --- .../worldedit/world/block/BlockState.java | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java index fdbdd92d42..ef20718306 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockState.java @@ -19,13 +19,15 @@ package com.sk89q.worldedit.world.block; -import com.google.common.collect.ArrayTable; -import com.google.common.collect.HashBasedTable; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableTable; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Table; import com.sk89q.jnbt.CompoundTag; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.extension.platform.Watchdog; import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.registry.state.Property; @@ -78,7 +80,7 @@ public void setInternalId(BlockState blockState, int internalId) { } static Map, Object>, BlockState> generateStateMap(BlockType blockType) { - Map, Object>, BlockState> stateMap = new LinkedHashMap<>(); + ImmutableMap.Builder, Object>, BlockState> stateMapBuilder = ImmutableMap.builder(); List> properties = blockType.getProperties(); if (!properties.isEmpty()) { @@ -98,29 +100,38 @@ static Map, Object>, BlockState> generateStateMap(BlockType bloc valueMap.put(property, value); stateMaker.setState(property, value); } - stateMap.put(valueMap, stateMaker); + stateMapBuilder.put(ImmutableMap.copyOf(valueMap), stateMaker); } } + ImmutableMap, Object>, BlockState> stateMap = stateMapBuilder.build(); + if (stateMap.isEmpty()) { // No properties. - stateMap.put(new LinkedHashMap<>(), new BlockState(blockType)); + stateMap = ImmutableMap.of(ImmutableMap.of(), new BlockState(blockType)); } for (BlockState state : stateMap.values()) { state.populate(stateMap); } + // Sometimes loading can take a while. This is the perfect spot to let MC know we're working. + Watchdog watchdog = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS) + .getWatchdog(); + if (watchdog != null) { + watchdog.tick(); + } + return stateMap; } private void populate(Map, Object>, BlockState> stateMap) { - final Table, Object, BlockState> states = HashBasedTable.create(); + final ImmutableTable.Builder, Object, BlockState> states = ImmutableTable.builder(); for (final Map.Entry, Object> entry : this.values.entrySet()) { final Property property = (Property) entry.getKey(); - property.getValues().forEach(value -> { + for (Object value : property.getValues()) { if (value != entry.getValue()) { BlockState modifiedState = stateMap.get(this.withValue(property, value)); if (modifiedState != null) { @@ -130,16 +141,22 @@ private void populate(Map, Object>, BlockState> stateMap) { WorldEdit.logger.warn("Found a null state at " + this.withValue(property, value)); } } - }); + } } - this.states = states.isEmpty() ? states : ArrayTable.create(states); + this.states = states.build(); } private Map, Object> withValue(final Property property, final V value) { - final Map, Object> values = Maps.newHashMap(this.values); - values.put(property, value); - return values; + final ImmutableMap.Builder, Object> values = ImmutableMap.builder(); + for (Map.Entry, Object> entry : this.values.entrySet()) { + if (entry.getKey().equals(property)) { + values.put(entry.getKey(), value); + } else { + values.put(entry); + } + } + return values.build(); } @Override From 913d4d67aac69fa7e05b6692b1be7d81fed65c4c Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Thu, 18 Feb 2021 21:39:43 +1000 Subject: [PATCH 053/813] Fix erroneous deprecation check --- .../java/com/sk89q/worldedit/world/block/BlockStateHolder.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java index e45544101f..7059400f64 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockStateHolder.java @@ -124,8 +124,6 @@ default BaseBlock toBaseBlock(LazyReference compoundTag) { * @return The BaseBlock */ default BaseBlock toBaseBlock(CompoundBinaryTag compoundTag) { - DeprecationUtil.checkDelegatingOverride(getClass()); - return toBaseBlock(compoundTag == null ? null : LazyReference.computed(compoundTag)); } From 3c161db9a409dd1ee38301eaa32987f24b69b5e2 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Thu, 18 Feb 2021 21:50:03 -0800 Subject: [PATCH 054/813] Move slower translation to *Transmogrifiers (#1679) * Move slower translation to *Transmogrifiers Adapters now use the fast method for adapting if available. Un-cached accessors are stored in *Transmogrifier classes. * Fix warnings and licenses. --- .../sk89q/worldedit/fabric/FabricAdapter.java | 72 ++++------- .../worldedit/fabric/FabricBlockRegistry.java | 3 +- .../sk89q/worldedit/fabric/FabricWorld.java | 5 - .../fabric/internal/FabricTransmogrifier.java | 119 +++++++++++++++++ .../{ => internal}/PropertyAdapter.java | 2 +- .../sk89q/worldedit/forge/ForgeAdapter.java | 79 ++++-------- .../worldedit/forge/ForgeBlockRegistry.java | 3 +- .../com/sk89q/worldedit/forge/ForgeWorld.java | 5 - .../forge/internal/ForgeTransmogrifier.java | 120 ++++++++++++++++++ .../{ => internal}/IPropertyAdapter.java | 2 +- 10 files changed, 293 insertions(+), 117 deletions(-) create mode 100644 worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricTransmogrifier.java rename worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/{ => internal}/PropertyAdapter.java (97%) create mode 100644 worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeTransmogrifier.java rename worldedit-forge/src/main/java/com/sk89q/worldedit/forge/{ => internal}/IPropertyAdapter.java (97%) diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java index 53b74c3f73..bab3f859cd 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java @@ -23,7 +23,9 @@ import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.fabric.internal.FabricTransmogrifier; import com.sk89q.worldedit.fabric.internal.NBTConverter; +import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.registry.state.BooleanProperty; @@ -45,7 +47,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.state.StateManager; import net.minecraft.state.property.DirectionProperty; import net.minecraft.util.Identifier; import net.minecraft.util.StringIdentifiable; @@ -140,28 +141,20 @@ public static BlockPos toBlockPos(BlockVector3 vector) { return new BlockPos(vector.getBlockX(), vector.getBlockY(), vector.getBlockZ()); } + /** + * Adapts property. + * @deprecated without replacement, use the block adapter methods + */ + @Deprecated public static Property adaptProperty(net.minecraft.state.property.Property property) { - if (property instanceof net.minecraft.state.property.BooleanProperty) { - return new BooleanProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.property.BooleanProperty) property).getValues())); - } - if (property instanceof net.minecraft.state.property.IntProperty) { - return new IntegerProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.property.IntProperty) property).getValues())); - } - if (property instanceof DirectionProperty) { - return new DirectionalProperty(property.getName(), ((DirectionProperty) property).getValues().stream() - .map(FabricAdapter::adaptEnumFacing) - .collect(Collectors.toList())); - } - if (property instanceof net.minecraft.state.property.EnumProperty) { - // Note: do not make x.asString a method reference. - // It will cause runtime bootstrap exceptions. - return new EnumProperty(property.getName(), ((net.minecraft.state.property.EnumProperty) property).getValues().stream() - .map(x -> x.asString()) - .collect(Collectors.toList())); - } - return new PropertyAdapter<>(property); + return FabricTransmogrifier.transmogToWorldEditProperty(property); } + /** + * Adapts properties. + * @deprecated without replacement, use the block adapter methods + */ + @Deprecated public static Map, Object> adaptProperties(BlockType block, Map, Comparable> mcProps) { Map, Object> props = new TreeMap<>(Comparator.comparing(Property::getName)); for (Map.Entry, Comparable> prop : mcProps.entrySet()) { @@ -176,38 +169,21 @@ public static Map, Object> adaptProperties(BlockType block, Map stateContainer, - net.minecraft.block.BlockState newState, Map, Object> states) { - for (Map.Entry, Object> state : states.entrySet()) { - net.minecraft.state.property.Property property = stateContainer.getProperty(state.getKey().getName()); - Comparable value = (Comparable) state.getValue(); - // we may need to adapt this value, depending on the source prop - if (property instanceof DirectionProperty) { - Direction dir = (Direction) value; - value = adapt(dir); - } else if (property instanceof net.minecraft.state.property.EnumProperty) { - String enumName = (String) value; - value = ((net.minecraft.state.property.EnumProperty) property).parse((String) value).orElseGet(() -> { - throw new IllegalStateException("Enum property " + property.getName() + " does not contain " + enumName); - }); - } - - newState = newState.with(property, value); - } - return newState; - } - public static net.minecraft.block.BlockState adapt(BlockState blockState) { - Block mcBlock = adapt(blockState.getBlockType()); - net.minecraft.block.BlockState newState = mcBlock.getDefaultState(); - Map, Object> states = blockState.getStates(); - return applyProperties(mcBlock.getStateManager(), newState, states); + int blockStateId = BlockStateIdAccess.getBlockStateId(blockState); + if (!BlockStateIdAccess.isValidInternalId(blockStateId)) { + return FabricTransmogrifier.transmogToMinecraft(blockState); + } + return Block.getStateFromRawId(blockStateId); } public static BlockState adapt(net.minecraft.block.BlockState blockState) { - BlockType blockType = adapt(blockState.getBlock()); - return blockType.getState(adaptProperties(blockType, blockState.getEntries())); + int blockStateId = Block.getRawIdFromState(blockState); + BlockState worldEdit = BlockStateIdAccess.getBlockStateById(blockStateId); + if (worldEdit == null) { + return FabricTransmogrifier.transmogToWorldEdit(blockState); + } + return worldEdit; } public static Block adapt(BlockType blockType) { diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricBlockRegistry.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricBlockRegistry.java index 0c1ff52eb8..ef28a94cc3 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricBlockRegistry.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricBlockRegistry.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.fabric; +import com.sk89q.worldedit.fabric.internal.FabricTransmogrifier; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; @@ -60,7 +61,7 @@ public BlockMaterial getMaterial(BlockType blockType) { .getDefaultState() .getProperties(); for (net.minecraft.state.property.Property key : propertyKeys) { - map.put(key.getName(), FabricAdapter.adaptProperty(key)); + map.put(key.getName(), FabricTransmogrifier.transmogToWorldEditProperty(key)); } return map; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index 5692a71818..b651465fb0 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -589,11 +589,6 @@ public BlockState getBlock(BlockVector3 position) { .getChunk(position.getBlockX() >> 4, position.getBlockZ() >> 4) .getBlockState(FabricAdapter.toBlockPos(position)); - BlockState matchingBlock = BlockStateIdAccess.getBlockStateById(Block.getRawIdFromState(mcState)); - if (matchingBlock != null) { - return matchingBlock; - } - return FabricAdapter.adapt(mcState); } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricTransmogrifier.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricTransmogrifier.java new file mode 100644 index 0000000000..9b758d7ee0 --- /dev/null +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricTransmogrifier.java @@ -0,0 +1,119 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.fabric.internal; + +import com.google.common.collect.ImmutableList; +import com.sk89q.worldedit.fabric.FabricAdapter; +import com.sk89q.worldedit.registry.state.BooleanProperty; +import com.sk89q.worldedit.registry.state.DirectionalProperty; +import com.sk89q.worldedit.registry.state.EnumProperty; +import com.sk89q.worldedit.registry.state.IntegerProperty; +import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.world.block.BlockType; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.util.StringIdentifiable; + +import java.util.Comparator; +import java.util.Map; +import java.util.TreeMap; +import java.util.stream.Collectors; + +/** + * Raw, un-cached transformations. + */ +public class FabricTransmogrifier { + + public static Property transmogToWorldEditProperty(net.minecraft.state.property.Property property) { + if (property instanceof net.minecraft.state.property.BooleanProperty) { + return new BooleanProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.property.BooleanProperty) property).getValues())); + } + if (property instanceof net.minecraft.state.property.IntProperty) { + return new IntegerProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.property.IntProperty) property).getValues())); + } + if (property instanceof DirectionProperty) { + return new DirectionalProperty(property.getName(), ((DirectionProperty) property).getValues().stream() + .map(FabricAdapter::adaptEnumFacing) + .collect(Collectors.toList())); + } + if (property instanceof net.minecraft.state.property.EnumProperty) { + // Note: do not make x.asString a method reference. + // It will cause runtime bootstrap exceptions. + return new EnumProperty(property.getName(), ((net.minecraft.state.property.EnumProperty) property).getValues().stream() + .map(x -> x.asString()) + .collect(Collectors.toList())); + } + return new PropertyAdapter<>(property); + } + + private static Map, Object> transmogToWorldEditProperties(BlockType block, Map, Comparable> mcProps) { + Map, Object> props = new TreeMap<>(Comparator.comparing(Property::getName)); + for (Map.Entry, Comparable> prop : mcProps.entrySet()) { + Object value = prop.getValue(); + if (prop.getKey() instanceof DirectionProperty) { + value = FabricAdapter.adaptEnumFacing((net.minecraft.util.math.Direction) value); + } else if (prop.getKey() instanceof net.minecraft.state.property.EnumProperty) { + value = ((StringIdentifiable) value).asString(); + } + props.put(block.getProperty(prop.getKey().getName()), value); + } + return props; + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private static net.minecraft.block.BlockState transmogToMinecraftProperties(StateManager stateContainer, + net.minecraft.block.BlockState newState, Map, Object> states) { + for (Map.Entry, Object> state : states.entrySet()) { + net.minecraft.state.property.Property property = stateContainer.getProperty(state.getKey().getName()); + Comparable value = (Comparable) state.getValue(); + // we may need to adapt this value, depending on the source prop + if (property instanceof DirectionProperty) { + Direction dir = (Direction) value; + value = FabricAdapter.adapt(dir); + } else if (property instanceof net.minecraft.state.property.EnumProperty) { + String enumName = (String) value; + value = ((net.minecraft.state.property.EnumProperty) property).parse((String) value).orElseGet(() -> { + throw new IllegalStateException("Enum property " + property.getName() + " does not contain " + enumName); + }); + } + + newState = newState.with(property, value); + } + return newState; + } + + public static net.minecraft.block.BlockState transmogToMinecraft(com.sk89q.worldedit.world.block.BlockState blockState) { + Block mcBlock = FabricAdapter.adapt(blockState.getBlockType()); + net.minecraft.block.BlockState newState = mcBlock.getDefaultState(); + Map, Object> states = blockState.getStates(); + return transmogToMinecraftProperties(mcBlock.getStateManager(), newState, states); + } + + public static com.sk89q.worldedit.world.block.BlockState transmogToWorldEdit(net.minecraft.block.BlockState blockState) { + BlockType blockType = FabricAdapter.adapt(blockState.getBlock()); + return blockType.getState(transmogToWorldEditProperties(blockType, blockState.getEntries())); + } + + private FabricTransmogrifier() { + } +} diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/PropertyAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/PropertyAdapter.java similarity index 97% rename from worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/PropertyAdapter.java rename to worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/PropertyAdapter.java index b7c11f7bd3..34d40e4e37 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/PropertyAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/PropertyAdapter.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package com.sk89q.worldedit.fabric; +package com.sk89q.worldedit.fabric.internal; import com.google.common.collect.ImmutableList; import com.sk89q.worldedit.registry.state.Property; diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java index 840eb04547..e9a6baf54f 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeAdapter.java @@ -19,17 +19,14 @@ package com.sk89q.worldedit.forge; -import com.google.common.collect.ImmutableList; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.forge.internal.ForgeTransmogrifier; import com.sk89q.worldedit.forge.internal.NBTConverter; +import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; -import com.sk89q.worldedit.registry.state.BooleanProperty; -import com.sk89q.worldedit.registry.state.DirectionalProperty; -import com.sk89q.worldedit.registry.state.EnumProperty; -import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.World; @@ -46,7 +43,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.state.DirectionProperty; -import net.minecraft.state.StateContainer; import net.minecraft.util.IStringSerializable; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; @@ -60,7 +56,6 @@ import java.util.Map; import java.util.Objects; import java.util.TreeMap; -import java.util.stream.Collectors; import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; @@ -135,30 +130,20 @@ public static BlockPos toBlockPos(BlockVector3 vector) { return new BlockPos(vector.getBlockX(), vector.getBlockY(), vector.getBlockZ()); } + /** + * Adapts property. + * @deprecated without replacement, use the block adapter methods + */ + @Deprecated public static Property adaptProperty(net.minecraft.state.Property property) { - if (property instanceof net.minecraft.state.BooleanProperty) { - return new BooleanProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.BooleanProperty) property).getAllowedValues())); - } - if (property instanceof net.minecraft.state.IntegerProperty) { - return new IntegerProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.IntegerProperty) property).getAllowedValues())); - } - if (property instanceof DirectionProperty) { - return new DirectionalProperty(property.getName(), ((DirectionProperty) property).getAllowedValues().stream() - .map(ForgeAdapter::adaptEnumFacing) - .collect(Collectors.toList())); - } - if (property instanceof net.minecraft.state.EnumProperty) { - // Note: do not make x.getName a method reference. - // It will cause runtime bootstrap exceptions. - // Temporary: func_176610_l == getName - //noinspection Convert2MethodRef - return new EnumProperty(property.getName(), ((net.minecraft.state.EnumProperty) property).getAllowedValues().stream() - .map(x -> x.func_176610_l()) - .collect(Collectors.toList())); - } - return new IPropertyAdapter<>(property); + return ForgeTransmogrifier.transmogToWorldEditProperty(property); } + /** + * Adapts properties. + * @deprecated without replacement, use the block adapter methods + */ + @Deprecated public static Map, Object> adaptProperties(BlockType block, Map, Comparable> mcProps) { Map, Object> props = new TreeMap<>(Comparator.comparing(Property::getName)); for (Map.Entry, Comparable> prop : mcProps.entrySet()) { @@ -173,37 +158,21 @@ public static Map, Object> adaptProperties(BlockType block, Map stateContainer, net.minecraft.block.BlockState newState, Map, Object> states) { - for (Map.Entry, Object> state : states.entrySet()) { - net.minecraft.state.Property property = stateContainer.getProperty(state.getKey().getName()); - Comparable value = (Comparable) state.getValue(); - // we may need to adapt this value, depending on the source prop - if (property instanceof DirectionProperty) { - Direction dir = (Direction) value; - value = adapt(dir); - } else if (property instanceof net.minecraft.state.EnumProperty) { - String enumName = (String) value; - value = ((net.minecraft.state.EnumProperty) property).parseValue((String) value).orElseGet(() -> { - throw new IllegalStateException("Enum property " + property.getName() + " does not contain " + enumName); - }); - } - - newState = newState.with(property, value); - } - return newState; - } - public static net.minecraft.block.BlockState adapt(BlockState blockState) { - Block mcBlock = adapt(blockState.getBlockType()); - net.minecraft.block.BlockState newState = mcBlock.getDefaultState(); - Map, Object> states = blockState.getStates(); - return applyProperties(mcBlock.getStateContainer(), newState, states); + int blockStateId = BlockStateIdAccess.getBlockStateId(blockState); + if (!BlockStateIdAccess.isValidInternalId(blockStateId)) { + return ForgeTransmogrifier.transmogToMinecraft(blockState); + } + return Block.getStateById(blockStateId); } public static BlockState adapt(net.minecraft.block.BlockState blockState) { - BlockType blockType = adapt(blockState.getBlock()); - return blockType.getState(adaptProperties(blockType, blockState.getValues())); + int blockStateId = Block.getStateId(blockState); + BlockState worldEdit = BlockStateIdAccess.getBlockStateById(blockStateId); + if (worldEdit == null) { + return ForgeTransmogrifier.transmogToWorldEdit(blockState); + } + return worldEdit; } public static Block adapt(BlockType blockType) { diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBlockRegistry.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBlockRegistry.java index 8b755d5577..5e9d0c5219 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBlockRegistry.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeBlockRegistry.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.forge; +import com.sk89q.worldedit.forge.internal.ForgeTransmogrifier; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; @@ -64,7 +65,7 @@ public BlockMaterial getMaterial(BlockType blockType) { // func_235904_r_ == getProperties .func_235904_r_(); for (net.minecraft.state.Property key : propertyKeys) { - map.put(key.getName(), ForgeAdapter.adaptProperty(key)); + map.put(key.getName(), ForgeTransmogrifier.transmogToWorldEditProperty(key)); } return map; } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java index 0fa0a9ba0b..7362ad310f 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorld.java @@ -600,11 +600,6 @@ public BlockState getBlock(BlockVector3 position) { .getChunk(position.getBlockX() >> 4, position.getBlockZ() >> 4) .getBlockState(ForgeAdapter.toBlockPos(position)); - BlockState matchingBlock = BlockStateIdAccess.getBlockStateById(Block.getStateId(mcState)); - if (matchingBlock != null) { - return matchingBlock; - } - return ForgeAdapter.adapt(mcState); } diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeTransmogrifier.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeTransmogrifier.java new file mode 100644 index 0000000000..c35d1f591d --- /dev/null +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/ForgeTransmogrifier.java @@ -0,0 +1,120 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.forge.internal; + +import com.google.common.collect.ImmutableList; +import com.sk89q.worldedit.forge.ForgeAdapter; +import com.sk89q.worldedit.registry.state.BooleanProperty; +import com.sk89q.worldedit.registry.state.DirectionalProperty; +import com.sk89q.worldedit.registry.state.EnumProperty; +import com.sk89q.worldedit.registry.state.IntegerProperty; +import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.Direction; +import com.sk89q.worldedit.world.block.BlockType; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.state.DirectionProperty; +import net.minecraft.state.StateContainer; +import net.minecraft.util.IStringSerializable; + +import java.util.Comparator; +import java.util.Map; +import java.util.TreeMap; +import java.util.stream.Collectors; + +/** + * Raw, un-cached transformations. + */ +public class ForgeTransmogrifier { + + public static Property transmogToWorldEditProperty(net.minecraft.state.Property property) { + if (property instanceof net.minecraft.state.BooleanProperty) { + return new BooleanProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.BooleanProperty) property).getAllowedValues())); + } + if (property instanceof net.minecraft.state.IntegerProperty) { + return new IntegerProperty(property.getName(), ImmutableList.copyOf(((net.minecraft.state.IntegerProperty) property).getAllowedValues())); + } + if (property instanceof DirectionProperty) { + return new DirectionalProperty(property.getName(), ((DirectionProperty) property).getAllowedValues().stream() + .map(ForgeAdapter::adaptEnumFacing) + .collect(Collectors.toList())); + } + if (property instanceof net.minecraft.state.EnumProperty) { + // Note: do not make x.getName a method reference. + // It will cause runtime bootstrap exceptions. + // Temporary: func_176610_l == getName + //noinspection Convert2MethodRef + return new EnumProperty(property.getName(), ((net.minecraft.state.EnumProperty) property).getAllowedValues().stream() + .map(x -> x.func_176610_l()) + .collect(Collectors.toList())); + } + return new IPropertyAdapter<>(property); + } + + public static Map, Object> transmogToWorldEditProperties(BlockType block, Map, Comparable> mcProps) { + Map, Object> props = new TreeMap<>(Comparator.comparing(Property::getName)); + for (Map.Entry, Comparable> prop : mcProps.entrySet()) { + Object value = prop.getValue(); + if (prop.getKey() instanceof DirectionProperty) { + value = ForgeAdapter.adaptEnumFacing((net.minecraft.util.Direction) value); + } else if (prop.getKey() instanceof net.minecraft.state.EnumProperty) { + value = ((IStringSerializable) value).func_176610_l(); + } + props.put(block.getProperty(prop.getKey().getName()), value); + } + return props; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private static net.minecraft.block.BlockState transmogToMinecraftProperties(StateContainer stateContainer, net.minecraft.block.BlockState newState, Map, Object> states) { + for (Map.Entry, Object> state : states.entrySet()) { + net.minecraft.state.Property property = stateContainer.getProperty(state.getKey().getName()); + Comparable value = (Comparable) state.getValue(); + // we may need to adapt this value, depending on the source prop + if (property instanceof DirectionProperty) { + Direction dir = (Direction) value; + value = ForgeAdapter.adapt(dir); + } else if (property instanceof net.minecraft.state.EnumProperty) { + String enumName = (String) value; + value = ((net.minecraft.state.EnumProperty) property).parseValue((String) value).orElseGet(() -> { + throw new IllegalStateException("Enum property " + property.getName() + " does not contain " + enumName); + }); + } + + newState = newState.with(property, value); + } + return newState; + } + + public static net.minecraft.block.BlockState transmogToMinecraft(com.sk89q.worldedit.world.block.BlockState blockState) { + Block mcBlock = ForgeAdapter.adapt(blockState.getBlockType()); + net.minecraft.block.BlockState newState = mcBlock.getDefaultState(); + Map, Object> states = blockState.getStates(); + return transmogToMinecraftProperties(mcBlock.getStateContainer(), newState, states); + } + + public static com.sk89q.worldedit.world.block.BlockState transmogToWorldEdit(net.minecraft.block.BlockState blockState) { + BlockType blockType = ForgeAdapter.adapt(blockState.getBlock()); + return blockType.getState(transmogToWorldEditProperties(blockType, blockState.getValues())); + } + + private ForgeTransmogrifier() { + } +} diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/IPropertyAdapter.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/IPropertyAdapter.java similarity index 97% rename from worldedit-forge/src/main/java/com/sk89q/worldedit/forge/IPropertyAdapter.java rename to worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/IPropertyAdapter.java index bd0d98a876..cfe98ea757 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/IPropertyAdapter.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/internal/IPropertyAdapter.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package com.sk89q.worldedit.forge; +package com.sk89q.worldedit.forge.internal; import com.google.common.collect.ImmutableList; import com.sk89q.worldedit.registry.state.Property; From 135941e3a9d278ed8be5af3233d6b485c11d6473 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Fri, 19 Feb 2021 19:34:43 +1000 Subject: [PATCH 055/813] Release 7.2.3 --- CHANGELOG.txt | 8 ++++++++ gradle.properties | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 5a366ece05..fda0bbdeff 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,11 @@ +7.2.3 +- [Forge/Fabric] Added -mod jar file containing both Fabric and Forge +- [Forge/Fabric] Speed up WorldEdit<->Native block translation layer in some cases +- [Fabric] Disable support for the UPDATE side effect when Carpet or QuickCarpet are available, due to conflict +- Improve performance when working with tile entities +- [Bukkit] Further tile entity performance improvements when using Paper (not Spigot) +- Speed up initialisation from registries at startup, especially when many mods are in use + 7.2.2 - [Bukkit] Add support for MC 1.16.5. - [Fabric] Add support for Lucko's Fabric Permissions API. diff --git a/gradle.properties b/gradle.properties index a9be536143..d0662d501a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.3-SNAPSHOT +version=7.2.3 org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 6cad9a035bf9fdbed05f3e77300b93db3f3e6c4b Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Fri, 19 Feb 2021 19:44:19 +1000 Subject: [PATCH 056/813] Back to snapshot for future development --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d0662d501a..3851e28f98 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.3 +version=7.2.4-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 3e819df4df16eaaf8ccc7a4303e006e4ac771e3b Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 21 Feb 2021 15:40:06 -0800 Subject: [PATCH 057/813] Fix gitattributes (#1681) * Try to fix git attributes * More attempts to fix gitattrs --- .gitattributes | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitattributes b/.gitattributes index 874030150c..2df98e026f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,6 @@ -* text=lf +* text=auto eol=lf # Force Batch files to CRLF -*.bat text=crlf +*.bat eol=crlf -text # Java sources *.java text diff=java From d3810865c80f17fb34381694b29b6ca1417bb9a6 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Tue, 23 Feb 2021 16:05:23 +1000 Subject: [PATCH 058/813] Show a message with install instructions when running the jar file (#1682) * Show a message with install instructions when running the jar file * Typo * Fixed checkstyle issue * Slightly modify message to adapt to the type of install * Clean up the display code a lot * Allow line breaks before semi Co-authored-by: Octavia Togami --- buildSrc/src/main/kotlin/PlatformConfig.kt | 20 +++-- config/checkstyle/checkstyle.xml | 8 +- worldedit-bukkit/build.gradle.kts | 2 +- worldedit-cli/build.gradle.kts | 10 +-- .../sk89q/worldedit/WorldEditManifest.java | 31 ++++++- .../internal/util/InfoEntryPoint.java | 90 +++++++++++++++++++ worldedit-fabric/build.gradle.kts | 2 +- worldedit-forge/build.gradle.kts | 2 +- worldedit-sponge/build.gradle.kts | 2 +- 9 files changed, 146 insertions(+), 21 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index ddb588bc26..9cbbeda987 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -1,8 +1,5 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar -import net.minecrell.gradle.licenser.LicenseExtension -import org.gradle.api.JavaVersion import org.gradle.api.Project -import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.plugins.quality.CheckstyleExtension import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.compile.JavaCompile @@ -40,6 +37,7 @@ fun Project.applyPlatformAndCoreConfiguration() { options.compilerArgs.addAll(listOf("-Xlint:all") + disabledLint.map { "-Xlint:-$it" }) options.isDeprecation = true options.encoding = "UTF-8" + options.compilerArgs.add("-parameters") } configure { @@ -130,12 +128,24 @@ private val CLASSPATH = listOf("truezip", "truevfs", "js") .flatMap { listOf(it, "WorldEdit/$it") } .joinToString(separator = " ") -fun Project.addJarManifest(includeClasspath: Boolean = false) { +sealed class WorldEditKind( + val name: String, + val mainClass: String = "com.sk89q.worldedit.internal.util.InfoEntryPoint" +) { + class Standalone(mainClass: String) : WorldEditKind("STANDALONE", mainClass) + object Mod : WorldEditKind("MOD") + object Plugin : WorldEditKind("PLUGIN") +} + +fun Project.addJarManifest(kind: WorldEditKind, includeClasspath: Boolean = false) { tasks.named("jar") { val version = project(":worldedit-core").version inputs.property("version", version) val attributes = mutableMapOf( - "WorldEdit-Version" to version + "Implementation-Version" to version, + "WorldEdit-Version" to version, + "WorldEdit-Kind" to kind.name, + "Main-Class" to kind.mainClass ) if (includeClasspath) { attributes["Class-Path"] = CLASSPATH diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index fee4fdc7d8..1a53714503 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -60,7 +60,13 @@ Checks based on Google Checks, modified for EngineHub. - + + + + + + + diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index fd4bf5b7ab..afc6199ad5 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -44,7 +44,7 @@ tasks.named("processResources") { exclude("**/worldedit-adapters.jar") } -addJarManifest(includeClasspath = true) +addJarManifest(WorldEditKind.Plugin, includeClasspath = true) tasks.named("shadowJar") { from(zipTree("src/main/resources/worldedit-adapters.jar").matching { diff --git a/worldedit-cli/build.gradle.kts b/worldedit-cli/build.gradle.kts index 43a537a440..9960242553 100644 --- a/worldedit-cli/build.gradle.kts +++ b/worldedit-cli/build.gradle.kts @@ -6,6 +6,7 @@ plugins { applyPlatformAndCoreConfiguration() applyShadowConfiguration() +addJarManifest(WorldEditKind.Standalone("com.sk89q.worldedit.cli.CLIWorldEdit")) dependencies { "api"(project(":worldedit-core")) @@ -17,15 +18,6 @@ dependencies { "implementation"("com.google.code.gson:gson") } -tasks.named("jar") { - manifest { - attributes( - "Implementation-Version" to project.version, - "Main-Class" to "com.sk89q.worldedit.cli.CLIWorldEdit" - ) - } -} - tasks.named("shadowJar") { dependencies { include { true } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java index 757a58d13c..8d8de2af7b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEditManifest.java @@ -34,11 +34,32 @@ public class WorldEditManifest { public static final String WORLD_EDIT_VERSION = "WorldEdit-Version"; + public static final String WORLD_EDIT_KIND = "WorldEdit-Kind"; + + public enum Kind { + MOD("mods"), + PLUGIN("plugins"), + UNKNOWN("mods/plugins"), + ; + + public final String folderName; + + Kind(String folderName) { + this.folderName = folderName; + } + } public static WorldEditManifest load() { Attributes attributes = readAttributes(); + Kind kind; + try { + kind = Kind.valueOf(readAttribute(attributes, WORLD_EDIT_KIND, () -> "UNKNOWN")); + } catch (IllegalArgumentException e) { + kind = Kind.UNKNOWN; + } return new WorldEditManifest( - readAttribute(attributes, WORLD_EDIT_VERSION, () -> "(unknown)") + readAttribute(attributes, WORLD_EDIT_VERSION, () -> "(unknown)"), + kind ); } @@ -70,12 +91,18 @@ private static String readAttribute(@Nullable Attributes attributes, String name } private final String worldEditVersion; + private final Kind worldEditKind; - private WorldEditManifest(String worldEditVersion) { + private WorldEditManifest(String worldEditVersion, Kind worldEditKind) { this.worldEditVersion = worldEditVersion; + this.worldEditKind = worldEditKind; } public String getWorldEditVersion() { return worldEditVersion; } + + public Kind getWorldEditKind() { + return worldEditKind; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java new file mode 100644 index 0000000000..23b70a34c6 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/InfoEntryPoint.java @@ -0,0 +1,90 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.internal.util; + +import com.sk89q.worldedit.WorldEditManifest; + +import java.awt.Desktop; +import java.io.IOException; +import java.net.URISyntaxException; +import javax.swing.JOptionPane; +import javax.swing.JTextPane; +import javax.swing.UIManager; +import javax.swing.event.HyperlinkEvent; +import javax.swing.text.html.HTMLDocument; +import javax.swing.text.html.HTMLEditorKit; + +public class InfoEntryPoint { + + private static final String INSTALL_URL = "https://worldedit.enginehub.org/en/latest/install/"; + private static final String SUPPORT_URL = "https://discord.gg/enginehub"; + + private static String getMessage(boolean html) { + WorldEditManifest manifest = WorldEditManifest.load(); + + return "To install WorldEdit, place it in the " + + manifest.getWorldEditKind().folderName + " folder.\n" + + "For more detailed instructions, see " + formatLink(INSTALL_URL, html) + "\n" + + "For further help, check out our support Discord at " + + formatLink(SUPPORT_URL, html) + "\n" + + "\n" + + "Version: " + manifest.getWorldEditVersion() + "\n"; + } + + private static String formatLink(String url, boolean html) { + return html ? String.format("%1$s", url) : url; + } + + public static void main(String[] args) { + if (System.console() != null) { + System.err.println(getMessage(false)); + } else { + System.setProperty("awt.useSystemAAFontSettings", "lcd"); + JOptionPane.showMessageDialog( + null, + new NavigableEditorPane(getMessage(true)), + "WorldEdit", + JOptionPane.INFORMATION_MESSAGE + ); + } + System.exit(1); + } + + private static class NavigableEditorPane extends JTextPane { + public NavigableEditorPane(String htmlBody) { + super(new HTMLDocument()); + setEditorKit(new HTMLEditorKit()); + setText(htmlBody.replace("\n", "
")); + setBackground(UIManager.getColor("Panel.background")); + + addHyperlinkListener(e -> { + if (e.getEventType().equals(HyperlinkEvent.EventType.ACTIVATED)) { + try { + Desktop.getDesktop().browse(e.getURL().toURI()); + } catch (IOException | URISyntaxException ex) { + ex.printStackTrace(); + } + } + }); + setEditable(false); + setBorder(null); + } + } +} diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 647a20dbda..66f6348142 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -130,7 +130,7 @@ tasks.named("processResources") { } } -addJarManifest(includeClasspath = true) +addJarManifest(WorldEditKind.Mod, includeClasspath = true) tasks.named("shadowJar") { archiveClassifier.set("dist-dev") diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index b1de4dd6fe..b56180c2fe 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -91,7 +91,7 @@ tasks.named("processResources") { from(project(":worldedit-core").tasks.named("processResources")) } -addJarManifest(includeClasspath = false) +addJarManifest(WorldEditKind.Mod, includeClasspath = false) tasks.named("shadowJar") { dependencies { diff --git a/worldedit-sponge/build.gradle.kts b/worldedit-sponge/build.gradle.kts index 1bff90e437..2ce396cce7 100644 --- a/worldedit-sponge/build.gradle.kts +++ b/worldedit-sponge/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { testImplementation("org.mockito:mockito-core:1.9.0-rc1") } -addJarManifest(includeClasspath = true) +addJarManifest(WorldEditKind.Mod, includeClasspath = true) tasks.named("shadowJar") { dependencies { From a40965f8b094ee5510ba860c8d3e1909a82d77de Mon Sep 17 00:00:00 2001 From: wizjany Date: Thu, 25 Feb 2021 12:09:06 -0500 Subject: [PATCH 059/813] Fix #1686 --- .../src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index 4fa4d831b4..f423f697d7 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -245,7 +245,7 @@ private Inventory getBlockInventory(Chest chest) { @Override public boolean clearContainerBlockContents(BlockVector3 pt) { checkNotNull(pt); - if (getBlock(pt).getBlockType().getMaterial().hasContainer()) { + if (!getBlock(pt).getBlockType().getMaterial().hasContainer()) { return false; } From 0b2d992a5d30fa1efc35c7fca5421a28f03502be Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 8 Mar 2021 11:10:55 -0800 Subject: [PATCH 060/813] Patch some gradle issues, update loom --- build.gradle.kts | 31 ++++++++++++++++++++----------- gradle.properties | 4 ++-- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5a278dda8d..bd4ac223eb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,6 +5,26 @@ plugins { jacoco } +if (!project.hasProperty("gitCommitHash")) { + apply(plugin = "org.ajoberstar.grgit") + ext["gitCommitHash"] = try { + extensions.getByName("grgit").head()?.abbreviatedId + } catch (e: Exception) { + logger.warn("Error getting commit hash", e) + + "no.git.id" + } +} + +// Work around https://github.com/gradle/gradle/issues/4823 +subprojects { + if (buildscript.sourceFile?.extension?.toLowerCase() == "kts" + && parent != rootProject) { + generateSequence(parent) { project -> project.parent.takeIf { it != rootProject } } + .forEach { evaluationDependsOn(it.path) } + } +} + logger.lifecycle(""" ******************************************* You are building WorldEdit! @@ -53,14 +73,3 @@ afterEvaluate { codecov { reportTask.set(totalReport) } - -if (!project.hasProperty("gitCommitHash")) { - apply(plugin = "org.ajoberstar.grgit") - ext["gitCommitHash"] = try { - extensions.getByName("grgit").head()?.abbreviatedId - } catch (e: Exception) { - logger.warn("Error getting commit hash", e) - - "no.git.id" - } -} diff --git a/gradle.properties b/gradle.properties index 3851e28f98..8f87dfbe78 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=7.2.4-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true -loom.version=0.5.43 -mixin.version=0.8.1+build.21 +loom.version=0.6.50 +mixin.version=0.9.2+mixin.0.8.2 From 161242d0400051799bca0fd2a070a511b5a940bf Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 9 Mar 2021 00:13:23 -0800 Subject: [PATCH 061/813] testing in production is :( --- .github/ISSUE_TEMPLATE/bug_report.yml | 60 +++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..36fb4ac704 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,60 @@ +name: Bug report +description: Report a way in which WorldEdit is not working as intended +title: '' +labels: [type:bug, status:pending] +assignees: [] +issue_body: true + +body: +- type: markdown + attributes: + value: | + Please note that this is only for bugs, help with installation or other types of support should + be taken to the Discord Guild instead. + +- type: input + attributes: + label: WorldEdit Version + description: The full version of WorldEdit, can be found by using `/we version`. + placeholder: e.g. 7.2.3 or 7.3.0-SNAPSHOT + validations: + required: true + +- type: input + attributes: + label: Platform Version + description: | + The version of the platform you are on, i.e. Spigot, Paper, Fabric, or Forge. + Please ensure you are running up to date software before making a bug report. + Old versions will receive little to no support. + placeholder: e.g. git-Spigot-21fe707-e1ebe52, git-Paper-463, Fabric 0.7.1, Forge 35.1.37 + validations: + required: true + +- type: textarea + attributes: + label: Bug Description + description: A clear and concise description of what the bug is. + validations: + required: true + +- type: textarea + attributes: + label: Expected Behavior + description: The behavior that you expected, instead of the bugged behavior that occurs. + validations: + required: true + +- type: textarea + attributes: + label: Reproduction Steps + description: Steps to reproduce the behavior. + value: | + 1. ... + 2. ... + validations: + required: true + +- type: markdown + attributes: + value: Add any additional context you can provide below. From ff4e447530c63149f00b7c14978e9f467447576d Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 9 Mar 2021 00:14:52 -0800 Subject: [PATCH 062/813] testing in prod --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 36fb4ac704..468cb79d80 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: Bug report description: Report a way in which WorldEdit is not working as intended title: '' -labels: [type:bug, status:pending] +labels: ['type:bug', 'status:pending'] assignees: [] issue_body: true From 8496b410426e8eb7db9dea095cf2639137f13dc8 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 9 Mar 2021 00:15:08 -0800 Subject: [PATCH 063/813] testing in prod! --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 468cb79d80..1a78eac213 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,4 @@ -name: Bug report +name: Bug report !YAML description: Report a way in which WorldEdit is not working as intended title: '' labels: ['type:bug', 'status:pending'] From 1bdd8cb910c991aba9f2438682cfb608db7e40c2 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 9 Mar 2021 00:42:20 -0800 Subject: [PATCH 064/813] Sub out for new issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 30 --------------- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 20 ---------- .github/ISSUE_TEMPLATE/feature_request.yml | 44 ++++++++++++++++++++++ 4 files changed, 45 insertions(+), 51 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index f07d5afe41..0000000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -name: Bug report -about: Report a way in which WorldEdit is not working as intended -title: '' -labels: type:bug, status:pending -assignees: '' - ---- - -**Versions** - -WorldEdit version: -Platform version: - -**Describe the bug** - - -**To Reproduce** - -1. ... -2. ... - -**Expected behavior** - - -**Screenshots** - - -**Additional context** - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 1a78eac213..468cb79d80 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,4 @@ -name: Bug report !YAML +name: Bug report description: Report a way in which WorldEdit is not working as intended title: '' labels: ['type:bug', 'status:pending'] diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index b66ba95d75..0000000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for WorldEdit -title: '' -labels: type:feature-request, status:pending -assignees: '' - ---- - -**Is your feature request related to a problem? Please describe.** - - -**Describe the solution you'd like** - - -**Describe alternatives you've considered** - - -**Additional context** - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..4b75348d6c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,44 @@ +name: Feature request +description: Suggest an idea for WorldEdit +title: '' +labels: ['type:feature-request', 'status:pending'] +assignees: [] +issue_body: true + +body: +- type: markdown + attributes: + value: | + Please note: we are currently not accepting feature requests designed to make it + easier to give WorldEdit to all players on a server. WorldEdit is intended for + admin use only. + +- type: textarea + attributes: + label: The Problem + description: | + What is making your WorldEdit experience sub-optimal? This should be something that + cannot be easily solved by existing WorldEdit features. + placeholder: It's hard to ... ; I'm unable to ... + validations: + required: true + +- type: textarea + attributes: + label: A Solution + description: What is your proposed solution to the above problem? + validations: + required: true + +- type: textarea + attributes: + label: Alternatives + description: | + Alternative solutions or workarounds to the problem. + You should also describe why these are not preferable to the given solution. + validations: + required: false + +- type: markdown + attributes: + value: Add any additional context you can provide below. From 64c2be7007fbe121038b9dc6df28fe422ce5ceef Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 9 Mar 2021 00:44:49 -0800 Subject: [PATCH 065/813] Fix line wrapping in feat. req yaml --- .github/ISSUE_TEMPLATE/feature_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 4b75348d6c..f73a6b0889 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -8,7 +8,7 @@ issue_body: true body: - type: markdown attributes: - value: | + value: > Please note: we are currently not accepting feature requests designed to make it easier to give WorldEdit to all players on a server. WorldEdit is intended for admin use only. @@ -16,7 +16,7 @@ body: - type: textarea attributes: label: The Problem - description: | + description: > What is making your WorldEdit experience sub-optimal? This should be something that cannot be easily solved by existing WorldEdit features. placeholder: It's hard to ... ; I'm unable to ... From 22406ebd25e869bafff538bcaa16d4b09472ced5 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 01:35:07 -0800 Subject: [PATCH 066/813] Test out using actions to build --- .github/workflows/gradle.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/gradle.yml diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000000..744560cd9a --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,15 @@ +name: Gradle Build +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: ./gradlew build From 5b2c4fd105f581737354eea20824c420c8bf5405 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 01:39:55 -0800 Subject: [PATCH 067/813] Make it build on Windows too --- .github/workflows/gradle.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 744560cd9a..58a114a8ca 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -2,9 +2,22 @@ name: Gradle Build on: [push, pull_request] jobs: - build: + build-ubuntu: + name: Build WorldEdit on Ubuntu (Latest) runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: ./gradlew build + build-windows: + name: Build WorldEdit on Windows (Latest) + runs-on: windows-latest + steps: - uses: actions/checkout@v2 - name: Set up JDK 1.8 From 98826d649c83c6be0d2d9efabd77e4aa4e4accb9 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 02:00:02 -0800 Subject: [PATCH 068/813] Update gradle to 6.8.3 --- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 31 ++++++++++------------- gradlew.bat | 25 +++++------------- 4 files changed, 22 insertions(+), 36 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 23334 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 WDWbsF$p{Gi@ZUasP|4|kdH)CXgbPdn delta 19998 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 28ff446a21..442d9132ea 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 83f2acfdc3..4f906e0c81 100755 --- a/gradlew +++ b/gradlew @@ -82,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -154,19 +156,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 24467a141f..ac1b06f938 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -51,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -61,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From 09c55cbd038498431c28f7d77a3ea81889ef0da4 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 02:00:02 -0800 Subject: [PATCH 069/813] Update gradle to 6.8.3 --- gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 31 ++++++++++------------- gradlew.bat | 25 +++++------------- 4 files changed, 22 insertions(+), 36 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f 100644 GIT binary patch delta 23334 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 WDWbsF$p{Gi@ZUasP|4|kdH)CXgbPdn delta 19998 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 28ff446a21..442d9132ea 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 83f2acfdc3..4f906e0c81 100755 --- a/gradlew +++ b/gradlew @@ -82,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -129,6 +130,7 @@ fi if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -154,19 +156,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -175,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 24467a141f..ac1b06f938 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -51,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -61,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From 3479f169637c04b8c9957622c730e80791f27909 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 02:04:12 -0800 Subject: [PATCH 070/813] Yeet travis CI into the abyss --- .travis.yml | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index df4f54894f..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -dist: trusty -language: java -notifications: - email: false -before_install: chmod +x gradlew -script: ./gradlew build -s -jdk: - - oraclejdk8 -# Caching for Gradle files, prevents hitting Maven too much. -before_cache: - - find $HOME/.gradle/ -name '*.lock' -print -exec rm -f {} \; -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ - -# Faster builds without sudo. -sudo: false From fad85716416963e245d9ea83e9d10ceda818fbf1 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 02:31:20 -0800 Subject: [PATCH 071/813] Use matrix mode for GH actions --- .github/workflows/gradle.yml | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index 58a114a8ca..c3c80c9acf 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -2,9 +2,13 @@ name: Gradle Build on: [push, pull_request] jobs: - build-ubuntu: - name: Build WorldEdit on Ubuntu (Latest) - runs-on: ubuntu-latest + build: + name: Build WorldEdit on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v2 @@ -13,16 +17,10 @@ jobs: with: java-version: 1.8 - name: Build with Gradle - run: ./gradlew build - build-windows: - name: Build WorldEdit on Windows (Latest) - runs-on: windows-latest - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 1.8 - uses: actions/setup-java@v1 + run: ./gradlew build -s + - uses: actions/upload-artifact@v2 + name: Archive Reports + if: always() with: - java-version: 1.8 - - name: Build with Gradle - run: ./gradlew build + name: reports for ${{ matrix.os }} + path: '**/build/reports/**' From 3919dcc7fc097d21df54a60c7d4f987ac2a40162 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 02:48:12 -0800 Subject: [PATCH 072/813] Take master's changes to meta files --- .github/ISSUE_TEMPLATE/bug_report.yml | 60 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/feature_request.yml | 44 ++++++++++++++++ .github/stale.yml | 16 ++++++ .github/workflows/gradle.yml | 26 ++++++++++ .travis.yml | 18 ------- 5 files changed, 146 insertions(+), 18 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/stale.yml create mode 100644 .github/workflows/gradle.yml delete mode 100644 .travis.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000000..468cb79d80 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,60 @@ +name: Bug report +description: Report a way in which WorldEdit is not working as intended +title: '' +labels: ['type:bug', 'status:pending'] +assignees: [] +issue_body: true + +body: +- type: markdown + attributes: + value: | + Please note that this is only for bugs, help with installation or other types of support should + be taken to the Discord Guild instead. + +- type: input + attributes: + label: WorldEdit Version + description: The full version of WorldEdit, can be found by using `/we version`. + placeholder: e.g. 7.2.3 or 7.3.0-SNAPSHOT + validations: + required: true + +- type: input + attributes: + label: Platform Version + description: | + The version of the platform you are on, i.e. Spigot, Paper, Fabric, or Forge. + Please ensure you are running up to date software before making a bug report. + Old versions will receive little to no support. + placeholder: e.g. git-Spigot-21fe707-e1ebe52, git-Paper-463, Fabric 0.7.1, Forge 35.1.37 + validations: + required: true + +- type: textarea + attributes: + label: Bug Description + description: A clear and concise description of what the bug is. + validations: + required: true + +- type: textarea + attributes: + label: Expected Behavior + description: The behavior that you expected, instead of the bugged behavior that occurs. + validations: + required: true + +- type: textarea + attributes: + label: Reproduction Steps + description: Steps to reproduce the behavior. + value: | + 1. ... + 2. ... + validations: + required: true + +- type: markdown + attributes: + value: Add any additional context you can provide below. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000000..f73a6b0889 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,44 @@ +name: Feature request +description: Suggest an idea for WorldEdit +title: '' +labels: ['type:feature-request', 'status:pending'] +assignees: [] +issue_body: true + +body: +- type: markdown + attributes: + value: > + Please note: we are currently not accepting feature requests designed to make it + easier to give WorldEdit to all players on a server. WorldEdit is intended for + admin use only. + +- type: textarea + attributes: + label: The Problem + description: > + What is making your WorldEdit experience sub-optimal? This should be something that + cannot be easily solved by existing WorldEdit features. + placeholder: It's hard to ... ; I'm unable to ... + validations: + required: true + +- type: textarea + attributes: + label: A Solution + description: What is your proposed solution to the above problem? + validations: + required: true + +- type: textarea + attributes: + label: Alternatives + description: | + Alternative solutions or workarounds to the problem. + You should also describe why these are not preferable to the given solution. + validations: + required: false + +- type: markdown + attributes: + value: Add any additional context you can provide below. diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 0000000000..f4c0060997 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 7 +# Only close pending bugs +onlyLabels: + - status:pending + - type:bug +# Label to use when marking an issue as stale +staleLabel: status:stale +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + This issue has been automatically marked as stale because it has not been fully confirmed. + It will be closed if no further activity occurs. Thank you for your contributions. +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000000..c3c80c9acf --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,26 @@ +name: Gradle Build +on: [push, pull_request] + +jobs: + build: + name: Build WorldEdit on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build with Gradle + run: ./gradlew build -s + - uses: actions/upload-artifact@v2 + name: Archive Reports + if: always() + with: + name: reports for ${{ matrix.os }} + path: '**/build/reports/**' diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index df4f54894f..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -dist: trusty -language: java -notifications: - email: false -before_install: chmod +x gradlew -script: ./gradlew build -s -jdk: - - oraclejdk8 -# Caching for Gradle files, prevents hitting Maven too much. -before_cache: - - find $HOME/.gradle/ -name '*.lock' -print -exec rm -f {} \; -cache: - directories: - - $HOME/.gradle/caches/ - - $HOME/.gradle/wrapper/ - -# Faster builds without sudo. -sudo: false From 7d062792493f0866c0d1c4c31ebbe0c42e3e0595 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 10 Mar 2021 12:35:35 -0800 Subject: [PATCH 073/813] Attempt to fix FSSD test with weird win paths (#1699) --- .../experimental/fs/FileSystemSnapshotDatabaseTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java index 1efedf81e1..2181ca367a 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java @@ -108,7 +108,7 @@ static void setUpStatic() throws IOException, DataException { reader.close(); } - TEMP_DIR = Files.createTempDirectory("worldedit-fs-snap-dbs"); + TEMP_DIR = Files.createTempDirectory("worldedit-fs-snap-dbs").toRealPath(); } @AfterAll From 9a5ef70858e5de18de9b3330cdcce0f86c6ebfa8 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Thu, 11 Mar 2021 10:04:00 +1000 Subject: [PATCH 074/813] Attempted fix for NBT Data Fixer error (#1689) --- .../extent/clipboard/io/MCEditSchematicReader.java | 5 +++-- .../extent/clipboard/io/SpongeSchematicReader.java | 5 +++-- .../main/java/com/sk89q/worldedit/world/DataFixer.java | 8 ++++---- .../sk89q/worldedit/world/storage/ChunkStoreHelper.java | 3 ++- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java index 55cc98d770..124bb43630 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.google.common.collect.ImmutableList; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntTag; @@ -219,7 +220,7 @@ public Clipboard read() throws IOException { } if (fixer != null && t != null) { - t = fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, t, -1); + t = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, t.asBinaryTag(), -1)); } BlockVector3 vec = BlockVector3.at(x, y, z); @@ -274,7 +275,7 @@ public Clipboard read() throws IOException { if (tag instanceof CompoundTag) { CompoundTag compound = (CompoundTag) tag; if (fixer != null) { - compound = fixer.fixUp(DataFixer.FixTypes.ENTITY, compound, -1); + compound = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.ENTITY, compound.asBinaryTag(), -1)); } String id = convertEntityId(compound.getString("id")); Location location = NBTConversions.toLocation(clipboard, compound.getListTag("Pos"), compound.getListTag("Rotation")); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java index 3923751330..8e675c3f23 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit.extent.clipboard.io; import com.google.common.collect.Maps; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.ByteArrayTag; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.IntArrayTag; @@ -247,7 +248,7 @@ private BlockArrayClipboard readVersion1(CompoundTag schematicTag) throws IOExce values.remove("Id"); values.remove("Pos"); if (fixer != null) { - tileEntity = fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, new CompoundTag(values), dataVersion).getValue(); + tileEntity = ((CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.BLOCK_ENTITY, new CompoundTag(values).asBinaryTag(), dataVersion))).getValue(); } else { tileEntity = values; } @@ -385,7 +386,7 @@ private void readEntities(BlockArrayClipboard clipboard, Map schema entityTag = entityTag.createBuilder().putString("id", id).remove("Id").build(); if (fixer != null) { - entityTag = fixer.fixUp(DataFixer.FixTypes.ENTITY, entityTag, dataVersion); + entityTag = (CompoundTag) AdventureNBTConverter.fromAdventure(fixer.fixUp(DataFixer.FixTypes.ENTITY, entityTag.asBinaryTag(), dataVersion)); } EntityType entityType = EntityTypes.get(id); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java index 92176abbda..f548d26878 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/DataFixer.java @@ -20,7 +20,7 @@ package com.sk89q.worldedit.world; import com.google.common.annotations.Beta; -import com.sk89q.jnbt.CompoundTag; +import com.sk89q.worldedit.util.nbt.CompoundBinaryTag; /** * This entire class is subject to heavy changes. Do not use this as API. @@ -37,9 +37,9 @@ final class FixTypes { private FixTypes() { } - public static FixType CHUNK = new FixType<>(); - public static FixType BLOCK_ENTITY = new FixType<>(); - public static FixType ENTITY = new FixType<>(); + public static FixType CHUNK = new FixType<>(); + public static FixType BLOCK_ENTITY = new FixType<>(); + public static FixType ENTITY = new FixType<>(); public static FixType BLOCK_STATE = new FixType<>(); public static FixType BIOME = new FixType<>(); public static FixType ITEM_TYPE = new FixType<>(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java index 70f189f6f2..76a1c82b55 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/storage/ChunkStoreHelper.java @@ -19,6 +19,7 @@ package com.sk89q.worldedit.world.storage; +import com.sk89q.jnbt.AdventureNBTConverter; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.jnbt.Tag; @@ -96,7 +97,7 @@ public static Chunk getChunk(CompoundTag rootTag) throws DataException { if (tag.getValue().containsKey("Sections") && dataVersion < currentDataVersion) { // only fix up MCA format, DFU doesn't support MCR chunks final DataFixer dataFixer = platform.getDataFixer(); if (dataFixer != null) { - tag = (CompoundTag) dataFixer.fixUp(DataFixer.FixTypes.CHUNK, rootTag, dataVersion).getValue().get("Level"); + tag = (CompoundTag) ((CompoundTag) AdventureNBTConverter.fromAdventure(dataFixer.fixUp(DataFixer.FixTypes.CHUNK, rootTag.asBinaryTag(), dataVersion))).getValue().get("Level"); dataVersion = currentDataVersion; } } From 36f23bd29f7750c3cb4ebc12f52e444f46555e2f Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 12 Mar 2021 20:31:31 -0800 Subject: [PATCH 075/813] Fix Forge in -mod at the expense of size Fixes #1398 --- worldedit-fabric/build.gradle.kts | 4 ++-- worldedit-forge/build.gradle.kts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 66f6348142..a4714512e9 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -135,8 +135,8 @@ addJarManifest(WorldEditKind.Mod, includeClasspath = true) tasks.named("shadowJar") { archiveClassifier.set("dist-dev") dependencies { - relocate("org.slf4j", "com.sk89q.worldedit.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.l4j") + relocate("org.slf4j", "com.sk89q.worldedit-fabric.slf4j") + relocate("org.apache.logging.slf4j", "com.sk89q.worldedit-fabric.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency("org.slf4j:slf4j-api")) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index b56180c2fe..fecb44d1de 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -95,8 +95,8 @@ addJarManifest(WorldEditKind.Mod, includeClasspath = false) tasks.named("shadowJar") { dependencies { - relocate("org.slf4j", "com.sk89q.worldedit.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit.l4j") + relocate("org.slf4j", "com.sk89q.worldedit-forge.slf4j") + relocate("org.apache.logging.slf4j", "com.sk89q.worldedit-forge.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency("org.slf4j:slf4j-api")) From 3d95a481eb1a360e07d01bbf748f3a8f58f2f41b Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 13 Mar 2021 15:16:58 +1000 Subject: [PATCH 076/813] [Bukkit] Update adapters to work around Spigot watchdog startup bug --- .../src/main/resources/worldedit-adapters.jar | Bin 669759 -> 673302 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 31237d7c4686f7f1921bfd6b84402a310e708ab7..e3bea5812c2918937c4519bd3d76c754acbd6c4b 100644 GIT binary patch delta 138254 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¬>E+R?3{$ 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 From 4cd7dc4bcdfaddf4efc5261a917068022c9b1658 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 13 Mar 2021 15:57:03 +1000 Subject: [PATCH 077/813] Ignore suggestions when uppercase characters are used in props (#1705) --- .../com/sk89q/worldedit/command/util/SuggestionHelper.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java index 87ea41d68e..70375f2cb2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/SuggestionHelper.java @@ -70,6 +70,9 @@ public static Stream getBlockPropertySuggestions(String blockType, Strin if (type == null) { return Stream.empty(); } + if (!props.toLowerCase(Locale.ROOT).equals(props)) { + return Stream.empty(); + } final Map> propertyMap = type.getPropertyMap(); Set matchedProperties = new HashSet<>(); String[] propParts = props.split(",", -1); From e3bfc6416c9f30ed53b87646a889c24823397e07 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 13 Mar 2021 16:00:51 +1000 Subject: [PATCH 078/813] Release 7.2.4 --- CHANGELOG.txt | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fda0bbdeff..9fe9bebfa0 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,10 @@ +7.2.4 +- [Bukkit] Fixed an issue where chest contents may not be erased +- [Bukkit] Worked around a Spigot bug causing potential watchdog timeouts on startup +- [Forge] Fixed some potential issues with the merged -mod file on Forge +- Added a message with install instructions when incorrectly trying to run the jar file +- Fixed a problem where capital characters in block properties could cause suggestion errors + 7.2.3 - [Forge/Fabric] Added -mod jar file containing both Fabric and Forge - [Forge/Fabric] Speed up WorldEdit<->Native block translation layer in some cases diff --git a/gradle.properties b/gradle.properties index 8f87dfbe78..28a0c31c13 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.4-SNAPSHOT +version=7.2.4 org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 6941d955bd96a36e3fe713231a32d99c5af2c2b7 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sat, 13 Mar 2021 16:13:43 +1000 Subject: [PATCH 079/813] Back to snapshot for future development --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 28a0c31c13..c81da93066 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.4 +version=7.2.5-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From acd63daddf7b45ce2b7699bc85ae88e0aa4433e9 Mon Sep 17 00:00:00 2001 From: wizjany Date: Thu, 25 Mar 2021 00:06:05 -0400 Subject: [PATCH 080/813] Slightly improve usability of LocalSession#getSelection. (#1714) Allow the World param to be null, throwing IncompleteRegionException. This allows calling `getSelection(getSelectionWorld())` without having to separately null-check the World. Also, add a convenience overload which does so: `getSelection()`. --- .../com/sk89q/worldedit/LocalSession.java | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java index c32e496140..f6761082f3 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalSession.java @@ -391,17 +391,34 @@ public boolean isSelectionDefined(World world) { /** * Get the selection region. If you change the region, you should - * call learnRegionChanges(). If the selection is defined in - * a different world, the {@code IncompleteRegionException} - * exception will be thrown. + * call learnRegionChanges(). If the selection is not fully defined, + * the {@code IncompleteRegionException} exception will be thrown. + * + *

Note that this method will return a region in the current selection world, + * which is not guaranteed to be the player's world or even the current world + * override. If you require a specific world, use the + * {@link LocalSession#getSelection(World)} overload instead. + * + * @return the selected region + * @throws IncompleteRegionException if the region is not fully defined + */ + public Region getSelection() throws IncompleteRegionException { + return getSelection(getSelectionWorld()); + } + + /** + * Get the selection region. If you change the region, you should + * call learnRegionChanges(). If the selection is defined in + * a different world, or the selection isn't fully defined, + * the {@code IncompleteRegionException} exception will be thrown. * * @param world the world * @return a region - * @throws IncompleteRegionException if no region is selected + * @throws IncompleteRegionException if no region is selected, or the provided world is null */ - public Region getSelection(World world) throws IncompleteRegionException { - checkNotNull(world); - if (selector.getIncompleteRegion().getWorld() == null || !selector.getIncompleteRegion().getWorld().equals(world)) { + public Region getSelection(@Nullable World world) throws IncompleteRegionException { + if (world == null || selector.getIncompleteRegion().getWorld() == null + || !selector.getIncompleteRegion().getWorld().equals(world)) { throw new IncompleteRegionException(); } return selector.getRegion(); @@ -412,6 +429,7 @@ public Region getSelection(World world) throws IncompleteRegionException { * * @return the the world of the selection */ + @Nullable public World getSelectionWorld() { return selector.getIncompleteRegion().getWorld(); } From 386656ffb4bc9d5c2bf5cb1d13d74e97dbcd5a1f Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 27 Mar 2021 23:30:10 -0700 Subject: [PATCH 081/813] Update extractor, see if that fixes anything --- buildSrc/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 3c9f55afc3..ca782587d1 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -41,7 +41,7 @@ dependencies { implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") implementation("net.ltgt.apt-eclipse:net.ltgt.apt-eclipse.gradle.plugin:0.21") implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21") - implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.19.0") + implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0") implementation("org.spongepowered:SpongeGradle:0.11.5") implementation("net.minecraftforge.gradle:ForgeGradle:4.0.9") implementation("net.fabricmc:fabric-loom:$loomVersion") From 609c7b8cc4ccc69ae1feee8f8ff7938c75e63750 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 28 Mar 2021 20:35:48 -0700 Subject: [PATCH 082/813] Scrapped Logging Framework 4 Java (#1715) * The scramble is complete * Fix version decl for Bukkit Log4J * Swap out to a compatibility layer for LogManager Slightly slower, but compatible across all Java versions * Piston released with SL4JF removal * Clean up declarations a bit --- buildSrc/src/main/kotlin/CommonConfig.kt | 9 +++ buildSrc/src/main/kotlin/LibsConfig.kt | 2 +- buildSrc/src/main/kotlin/Versions.kt | 3 +- worldedit-bukkit/build.gradle.kts | 20 +++-- .../bukkit/util/ClassSourceValidator.java | 6 +- .../wepif/FlatFilePermissionsResolver.java | 10 +-- .../sk89q/wepif/NijiPermissionsResolver.java | 14 ++-- .../wepif/PermissionsResolverManager.java | 22 +++--- .../bukkit/BukkitCommandInspector.java | 12 +-- .../worldedit/bukkit/BukkitConfiguration.java | 4 +- .../sk89q/worldedit/bukkit/BukkitWorld.java | 17 +++-- .../worldedit/bukkit/WorldEditPlugin.java | 16 ++-- .../bukkit/adapter/BukkitImplLoader.java | 14 ++-- worldedit-cli/build.gradle.kts | 6 +- .../sk89q/worldedit/cli/CLICommandSender.java | 2 +- .../com/sk89q/worldedit/cli/CLIWorldEdit.java | 7 +- worldedit-core/build.gradle.kts | 7 +- .../util/commands/CommandsManager.java | 11 ++- .../util/commands/SimpleInjector.java | 8 +- .../java/com/sk89q/worldedit/EditSession.java | 10 +-- .../sk89q/worldedit/LocalConfiguration.java | 6 +- .../java/com/sk89q/worldedit/WorldEdit.java | 10 ++- .../worldedit/command/SchematicCommands.java | 14 ++-- .../command/util/AsyncCommandBuilder.java | 8 +- .../platform/PlatformCommandManager.java | 16 ++-- .../extension/platform/PlatformManager.java | 12 +-- .../clipboard/io/MCEditSchematicReader.java | 10 +-- .../clipboard/io/SpongeSchematicReader.java | 20 ++--- .../internal/SchematicsEventListener.java | 6 +- .../internal/anvil/ChunkDeleter.java | 26 +++---- .../internal/util/LogManagerCompat.java | 44 +++++++++++ .../ReparametrisingInterpolation.java | 8 +- .../MinecraftHidingClassShutter.java | 5 -- .../worldedit/session/SessionManager.java | 14 ++-- .../session/storage/JsonFileSessionStore.java | 16 ++-- .../util/PropertiesConfiguration.java | 10 +-- .../worldedit/util/YAMLConfiguration.java | 2 +- .../worldedit/util/asset/AssetLoaders.java | 12 +-- .../worldedit/util/eventbus/EventBus.java | 8 +- .../com/sk89q/worldedit/util/io/Closer.java | 8 +- .../util/io/file/ArchiveNioSupports.java | 5 -- .../io/file/TrueVfsArchiveNioSupport.java | 73 ------------------- .../util/report/ShallowObjectReport.java | 8 +- .../util/translation/TranslationManager.java | 6 +- .../world/registry/BundledBlockData.java | 10 +-- .../world/registry/BundledItemData.java | 10 +-- .../world/registry/LegacyMapper.java | 12 +-- .../worldedit/world/snapshot/Snapshot.java | 10 +-- .../util/commands/CommandContextTest.java | 22 +++--- .../fs/FileSystemSnapshotDatabaseTest.java | 3 +- worldedit-fabric/build.gradle.kts | 7 +- .../worldedit/fabric/FabricWorldEdit.java | 4 +- .../fabric/internal/MixinConfigPlugin.java | 6 +- worldedit-forge/build.gradle.kts | 11 +-- .../sk89q/worldedit/forge/ForgeWorldEdit.java | 4 +- worldedit-sponge/build.gradle.kts | 8 +- .../worldedit/sponge/SpongeWorldEdit.java | 4 +- .../sponge/adapter/SpongeImplLoader.java | 16 ++-- .../config/ConfigurateConfiguration.java | 2 +- .../sponge/config/SpongeConfiguration.java | 2 +- 60 files changed, 330 insertions(+), 348 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java delete mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/TrueVfsArchiveNioSupport.java diff --git a/buildSrc/src/main/kotlin/CommonConfig.kt b/buildSrc/src/main/kotlin/CommonConfig.kt index 35baff48cb..782ce8ef8d 100644 --- a/buildSrc/src/main/kotlin/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/CommonConfig.kt @@ -5,6 +5,7 @@ import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.repositories import org.gradle.kotlin.dsl.the @@ -24,6 +25,14 @@ fun Project.applyCommonConfiguration() { } } + configurations.findByName("compileClasspath")?.apply { + resolutionStrategy.componentSelection { + withModule("org.slf4j:slf4j-api") { + reject("No SLF4J allowed on compile classpath") + } + } + } + plugins.withId("java") { the().toolchain { languageVersion.set(JavaLanguageVersion.of(8)) diff --git a/buildSrc/src/main/kotlin/LibsConfig.kt b/buildSrc/src/main/kotlin/LibsConfig.kt index 29c5bfa3a8..bea18c5f65 100644 --- a/buildSrc/src/main/kotlin/LibsConfig.kt +++ b/buildSrc/src/main/kotlin/LibsConfig.kt @@ -39,7 +39,7 @@ fun Project.applyLibrariesConfiguration() { exclude(dependency("com.google.guava:guava")) exclude(dependency("com.google.code.gson:gson")) exclude(dependency("org.checkerframework:checker-qual")) - exclude(dependency("org.slf4j:slf4j-api")) + exclude(dependency("org.apache.logging.log4j:log4j-api")) } relocations.forEach { (from, to) -> diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 279a0c8ff8..61f367f60e 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -3,11 +3,10 @@ import org.gradle.api.Project object Versions { const val TEXT = "3.0.4" const val TEXT_EXTRAS = "3.0.6" - const val PISTON = "0.5.6" + const val PISTON = "0.5.7" const val AUTO_VALUE = "1.7.4" const val JUNIT = "5.7.0" const val MOCKITO = "3.7.7" - const val SLF4J = "1.7.30" const val LOGBACK = "1.2.3" const val FAST_UTIL = "8.2.1" const val GUAVA = "21.0" diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index afc6199ad5..dc53ed53e1 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -24,11 +24,19 @@ dependencies { "api"("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") { exclude("junit", "junit") } + + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { + // Note: Paper will bump to 2.11.2, but we should only depend on 2.8 APIs for compatibility. + because("Spigot provides Log4J (sort of, not in API, implicitly part of server)") + }) + "implementation"("org.apache.logging.log4j:log4j-api") + "compileOnly"("org.jetbrains:annotations:20.1.0") - "compileOnly"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") + "compileOnly"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") { + exclude(group = "org.slf4j", module = "slf4j-api") + } "implementation"("io.papermc:paperlib:1.0.6") "compileOnly"("com.sk89q:dummypermscompat:1.10") - "implementation"("org.slf4j:slf4j-jdk14:${Versions.SLF4J}") "implementation"("org.bstats:bstats-bukkit:2.1.0") "implementation"("it.unimi.dsi:fastutil") "testImplementation"("org.mockito:mockito-core:1.9.0-rc1") @@ -51,11 +59,13 @@ tasks.named("shadowJar") { exclude("META-INF/") }) dependencies { - relocate("org.slf4j", "com.sk89q.worldedit.slf4j") + // In tandem with not bundling log4j, we shouldn't relocate base package here. + // relocate("org.apache.logging", "com.sk89q.worldedit.log4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") include(dependency(":worldedit-core")) - include(dependency("org.slf4j:slf4j-api")) - include(dependency("org.slf4j:slf4j-jdk14")) + // Purposefully not included, we assume (even though no API exposes it) that Log4J will be present at runtime + // If it turns out not to be true for Spigot/Paper, our only two official platforms, this can be uncommented. + // include(dependency("org.apache.logging.log4j:log4j-api")) include(dependency("org.antlr:antlr4-runtime")) relocate("org.bstats", "com.sk89q.worldedit.bstats") { include(dependency("org.bstats:")) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java index 6c3d586d30..e0789e3e7a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/bukkit/util/ClassSourceValidator.java @@ -21,9 +21,9 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableMap; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.bukkit.plugin.Plugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.security.CodeSource; import java.util.HashMap; @@ -40,7 +40,7 @@ */ public class ClassSourceValidator { - private static final Logger LOGGER = LoggerFactory.getLogger(ClassSourceValidator.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final String SEPARATOR_LINE = Strings.repeat("*", 46); private final Plugin plugin; diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java index 8938ae0184..9bc432ed1a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/FlatFilePermissionsResolver.java @@ -20,10 +20,10 @@ package com.sk89q.wepif; import com.sk89q.util.yaml.YAMLProcessor; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.bukkit.OfflinePlayer; import org.bukkit.Server; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.BufferedReader; import java.io.File; @@ -38,7 +38,7 @@ public class FlatFilePermissionsResolver implements PermissionsResolver { - private static final Logger log = LoggerFactory.getLogger(FlatFilePermissionsResolver.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private Map> userPermissionsCache; private Set defaultPermissionsCache; @@ -99,7 +99,7 @@ public Map> loadGroupPermissions() { } } } catch (IOException e) { - log.warn("Failed to load permissions", e); + LOGGER.warn("Failed to load permissions", e); } finally { try { if (buff != null) { @@ -165,7 +165,7 @@ public void load() { } } } catch (IOException e) { - log.warn("Failed to load permissions", e); + LOGGER.warn("Failed to load permissions", e); } finally { try { if (buff != null) { diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java index 67490740f7..bf5a15d81a 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/NijiPermissionsResolver.java @@ -21,6 +21,8 @@ import com.nijikokun.bukkit.Permissions.Permissions; import com.sk89q.util.yaml.YAMLProcessor; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.bukkit.Bukkit; import org.bukkit.OfflinePlayer; import org.bukkit.Server; @@ -28,12 +30,10 @@ import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class NijiPermissionsResolver implements PermissionsResolver { - private static final Logger log = LoggerFactory.getLogger(NijiPermissionsResolver.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final Server server; private final Permissions api; @@ -84,7 +84,7 @@ public boolean hasPermission(String name, String permission) { return Permissions.Security.permission(player, permission); } } catch (Throwable t) { - log.warn("Failed to check permissions", t); + LOGGER.warn("Failed to check permissions", t); return false; } } @@ -98,7 +98,7 @@ public boolean hasPermission(String worldName, String name, String permission) { return api.getHandler().has(server.getPlayerExact(name), permission); } } catch (Throwable t) { - log.warn("Failed to check permissions", t); + LOGGER.warn("Failed to check permissions", t); return false; } } @@ -116,7 +116,7 @@ public boolean inGroup(String name, String group) { return Permissions.Security.inGroup(name, group); } } catch (Throwable t) { - log.warn("Failed to check groups", t); + LOGGER.warn("Failed to check groups", t); return false; } } @@ -143,7 +143,7 @@ public String[] getGroups(String name) { return groups; } } catch (Throwable t) { - log.warn("Failed to get groups", t); + LOGGER.warn("Failed to get groups", t); return new String[0]; } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java index d5ffdd8aa3..23a1311f24 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/wepif/PermissionsResolverManager.java @@ -21,14 +21,14 @@ import com.sk89q.util.yaml.YAMLFormat; import com.sk89q.util.yaml.YAMLProcessor; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.bukkit.OfflinePlayer; import org.bukkit.Server; import org.bukkit.event.EventHandler; import org.bukkit.event.server.PluginDisableEvent; import org.bukkit.event.server.PluginEnableEvent; import org.bukkit.plugin.Plugin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -58,6 +58,7 @@ public class PermissionsResolverManager implements PermissionsResolver { + "# and see if it gives \"ERROR:\".\r\n" + "# - Lines starting with # are comments and so they are ignored.\r\n" + "\r\n"; + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static PermissionsResolverManager instance; @@ -81,7 +82,6 @@ public static PermissionsResolverManager getInstance() { private final Server server; private PermissionsResolver permissionResolver; private YAMLProcessor config; - private final Logger logger = LoggerFactory.getLogger(getClass()); private final List> enabledResolvers = new ArrayList<>(); @SuppressWarnings({ "unchecked", "rawtypes" }) @@ -115,7 +115,7 @@ public void findResolver() { break; } } catch (Throwable e) { - logger.warn("Error in factory method for " + resolverClass.getSimpleName(), e); + LOGGER.warn("Error in factory method for " + resolverClass.getSimpleName(), e); continue; } } @@ -123,7 +123,7 @@ public void findResolver() { permissionResolver = new ConfigurationPermissionsResolver(config); } permissionResolver.load(); - logger.info("WEPIF: " + permissionResolver.getDetectionMessage()); + LOGGER.info("WEPIF: " + permissionResolver.getDetectionMessage()); } public void setPluginPermissionsResolver(Plugin plugin) { @@ -132,7 +132,7 @@ public void setPluginPermissionsResolver(Plugin plugin) { } permissionResolver = new PluginPermissionsResolver((PermissionsProvider) plugin, plugin); - logger.info("WEPIF: " + permissionResolver.getDetectionMessage()); + LOGGER.info("WEPIF: " + permissionResolver.getDetectionMessage()); } @Override @@ -191,14 +191,14 @@ private boolean loadConfig(File file) { try { file.createNewFile(); } catch (IOException e) { - logger.warn("Failed to create new configuration file", e); + LOGGER.warn("Failed to create new configuration file", e); } } config = new YAMLProcessor(file, false, YAMLFormat.EXTENDED); try { config.load(); } catch (IOException e) { - logger.warn("Error loading WEPIF configuration", e); + LOGGER.warn("Error loading WEPIF configuration", e); } List keys = config.getKeys(null); config.setHeader(CONFIG_HEADER); @@ -229,7 +229,7 @@ private boolean loadConfig(File file) { } if (next == null || !PermissionsResolver.class.isAssignableFrom(next)) { - logger.warn("WEPIF: Invalid or unknown class found in enabled resolvers: " + LOGGER.warn("WEPIF: Invalid or unknown class found in enabled resolvers: " + nextName + ". Moving to disabled resolvers list."); i.remove(); disabledResolvers.add(nextName); @@ -243,7 +243,7 @@ private boolean loadConfig(File file) { if (!stagedEnabled.contains(clazz.getSimpleName()) && !disabledResolvers.contains(clazz.getSimpleName())) { disabledResolvers.add(clazz.getSimpleName()); - logger.info("New permissions resolver: " + LOGGER.info("New permissions resolver: " + clazz.getSimpleName() + " detected. " + "Added to disabled resolvers list."); isUpdated = true; @@ -264,7 +264,7 @@ private boolean loadConfig(File file) { isUpdated = true; } if (isUpdated) { - logger.info("WEPIF: Updated config file"); + LOGGER.info("WEPIF: Updated config file"); config.save(); } return isUpdated; diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java index 8fbdbea5e9..b192b3ac0d 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitCommandInspector.java @@ -22,14 +22,14 @@ import com.sk89q.bukkit.util.CommandInspector; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Actor; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.enginehub.piston.CommandManager; import org.enginehub.piston.inject.InjectedValueStore; import org.enginehub.piston.inject.Key; import org.enginehub.piston.inject.MapBackedValueStore; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.Optional; @@ -38,7 +38,7 @@ class BukkitCommandInspector implements CommandInspector { - private static final Logger logger = LoggerFactory.getLogger(BukkitCommandInspector.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final WorldEditPlugin plugin; private final CommandManager dispatcher; @@ -55,7 +55,7 @@ public String getShortText(Command command) { if (mapping.isPresent()) { return reduceToText(mapping.get().getDescription(), WorldEdit.getInstance().getConfiguration().defaultLocale); } else { - logger.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); + LOGGER.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); return "Help text not available"; } } @@ -66,7 +66,7 @@ public String getFullText(Command command) { if (mapping.isPresent()) { return reduceToText(mapping.get().getFullHelp(), WorldEdit.getInstance().getConfiguration().defaultLocale); } else { - logger.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); + LOGGER.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); return "Help text not available"; } } @@ -80,7 +80,7 @@ public boolean testPermission(CommandSender sender, Command command) { Optional.of(plugin.wrapCommandSender(sender))); return mapping.get().getCondition().satisfied(store); } else { - logger.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); + LOGGER.warn("BukkitCommandInspector doesn't know how about the command '" + command + "'"); return false; } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java index cbca361b05..58ed576cbd 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitConfiguration.java @@ -22,7 +22,7 @@ import com.sk89q.util.yaml.YAMLProcessor; import com.sk89q.worldedit.util.YAMLConfiguration; import com.sk89q.worldedit.util.report.Unreported; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.LogManager; import java.io.File; import java.nio.file.Path; @@ -37,7 +37,7 @@ public class BukkitConfiguration extends YAMLConfiguration { @Unreported private final WorldEditPlugin plugin; public BukkitConfiguration(YAMLProcessor config, WorldEditPlugin plugin) { - super(config, LoggerFactory.getLogger(plugin.getLogger().getName())); + super(config, LogManager.getLogger(plugin.getLogger().getName())); this.plugin = plugin; } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index f423f697d7..b0790a0845 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; import com.sk89q.worldedit.entity.BaseEntity; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.internal.wna.WorldNativeAccess; import com.sk89q.worldedit.math.BlockVector2; import com.sk89q.worldedit.math.BlockVector3; @@ -45,6 +46,7 @@ import com.sk89q.worldedit.world.weather.WeatherType; import com.sk89q.worldedit.world.weather.WeatherTypes; import io.papermc.lib.PaperLib; +import org.apache.logging.log4j.Logger; import org.bukkit.Effect; import org.bukkit.TreeType; import org.bukkit.World; @@ -55,7 +57,6 @@ import org.bukkit.inventory.DoubleChestInventory; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; -import org.slf4j.Logger; import java.lang.ref.WeakReference; import java.nio.file.Path; @@ -72,7 +73,7 @@ public class BukkitWorld extends AbstractWorld { - private static final Logger logger = WorldEdit.logger; + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final boolean HAS_3D_BIOMES; @@ -149,9 +150,9 @@ public com.sk89q.worldedit.entity.Entity createEntity(com.sk89q.worldedit.util.L return null; } } catch (Exception e) { - logger.warn("Corrupt entity found when creating: " + entity.getType().getId()); + LOGGER.warn("Corrupt entity found when creating: " + entity.getType().getId()); if (entity.getNbtData() != null) { - logger.warn(entity.getNbtData().toString()); + LOGGER.warn(entity.getNbtData().toString()); } e.printStackTrace(); return null; @@ -209,7 +210,7 @@ public boolean regenerate(Region region, Extent extent, RegenOptions options) { throw new UnsupportedOperationException("Missing BukkitImplAdapater for this version."); } } catch (Exception e) { - logger.warn("Regeneration via adapter failed.", e); + LOGGER.warn("Regeneration via adapter failed.", e); return false; } } @@ -448,7 +449,7 @@ public com.sk89q.worldedit.world.block.BlockState getBlock(BlockVector3 position } catch (Exception e) { if (!hasWarnedImplError) { hasWarnedImplError = true; - logger.warn("Unable to retrieve block via impl adapter", e); + LOGGER.warn("Unable to retrieve block via impl adapter", e); } } } @@ -464,10 +465,10 @@ public > boolean setBlock(BlockVector3 position, B return worldNativeAccess.setBlock(position, block, sideEffects); } catch (Exception e) { if (block instanceof BaseBlock && ((BaseBlock) block).getNbtData() != null) { - logger.warn("Tried to set a corrupt tile entity at " + position.toString() + LOGGER.warn("Tried to set a corrupt tile entity at " + position.toString() + ": " + ((BaseBlock) block).getNbtData(), e); } else { - logger.warn("Failed to set block via adapter, falling back to generic", e); + LOGGER.warn("Failed to set block via adapter, falling back to generic", e); } } } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index ffde6d11d6..996929e2dd 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -41,6 +41,7 @@ import com.sk89q.worldedit.extent.inventory.BlockBag; import com.sk89q.worldedit.internal.anvil.ChunkDeleter; import com.sk89q.worldedit.internal.command.CommandUtil; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; @@ -54,6 +55,7 @@ import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.weather.WeatherTypes; import io.papermc.lib.PaperLib; +import org.apache.logging.log4j.Logger; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -71,8 +73,6 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.enginehub.piston.CommandManager; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.FileNotFoundException; @@ -110,7 +110,7 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter { } } - private static final Logger log = LoggerFactory.getLogger(WorldEditPlugin.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public static final String CUI_PLUGIN_CHANNEL = "worldedit:cui"; private static WorldEditPlugin INSTANCE; private static final int BSTATS_PLUGIN_ID = 3328; @@ -273,23 +273,23 @@ private void loadAdapter() { try { adapterLoader.addFromPath(getClass().getClassLoader()); } catch (IOException e) { - log.warn("Failed to search path for Bukkit adapters"); + LOGGER.warn("Failed to search path for Bukkit adapters"); } try { adapterLoader.addFromJar(getFile()); } catch (IOException e) { - log.warn("Failed to search " + getFile() + " for Bukkit adapters", e); + LOGGER.warn("Failed to search " + getFile() + " for Bukkit adapters", e); } try { bukkitAdapter = adapterLoader.loadAdapter(); - log.info("Using " + bukkitAdapter.getClass().getCanonicalName() + " as the Bukkit adapter"); + LOGGER.info("Using " + bukkitAdapter.getClass().getCanonicalName() + " as the Bukkit adapter"); } catch (AdapterLoadException e) { Platform platform = worldEdit.getPlatformManager().queryCapability(Capability.WORLD_EDITING); if (platform instanceof BukkitServerInterface) { - log.warn(e.getMessage()); + LOGGER.warn(e.getMessage()); } else { - log.info("WorldEdit could not find a Bukkit adapter for this MC version, " + LOGGER.info("WorldEdit could not find a Bukkit adapter for this MC version, " + "but it seems that you have another implementation of WorldEdit installed (" + platform.getPlatformName() + ") " + "that handles the world editing."); } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java index 10c9a544d7..63422225c2 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/adapter/BukkitImplLoader.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.bukkit.adapter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.io.Closer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -37,7 +37,7 @@ */ public class BukkitImplLoader { - private static final Logger log = LoggerFactory.getLogger(BukkitImplLoader.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final List adapterCandidates = new ArrayList<>(); private String customCandidate; @@ -72,7 +72,7 @@ private void addDefaults() { if (className != null) { customCandidate = className; adapterCandidates.add(className); - log.info("-Dworldedit.bukkit.adapter used to add " + className + " to the list of available Bukkit adapters"); + LOGGER.info("-Dworldedit.bukkit.adapter used to add " + className + " to the list of available Bukkit adapters"); } } @@ -161,14 +161,14 @@ public BukkitImplAdapter loadAdapter() throws AdapterLoadException { return (BukkitImplAdapter) cls.newInstance(); } } catch (ClassNotFoundException e) { - log.warn("Failed to load the Bukkit adapter class '" + className + LOGGER.warn("Failed to load the Bukkit adapter class '" + className + "' that is not supposed to be missing", e); } catch (IllegalAccessException e) { - log.warn("Failed to load the Bukkit adapter class '" + className + LOGGER.warn("Failed to load the Bukkit adapter class '" + className + "' that is not supposed to be raising this error", e); } catch (Throwable e) { if (className.equals(customCandidate)) { - log.warn("Failed to load the Bukkit adapter class '" + className + "'", e); + LOGGER.warn("Failed to load the Bukkit adapter class '" + className + "'", e); } } } diff --git a/worldedit-cli/build.gradle.kts b/worldedit-cli/build.gradle.kts index 9960242553..306b589633 100644 --- a/worldedit-cli/build.gradle.kts +++ b/worldedit-cli/build.gradle.kts @@ -10,9 +10,11 @@ addJarManifest(WorldEditKind.Standalone("com.sk89q.worldedit.cli.CLIWorldEdit")) dependencies { "api"(project(":worldedit-core")) - "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.0")) + "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { + because("We control Log4J on this platform") + }) + "implementation"("org.apache.logging.log4j:log4j-api") "implementation"("org.apache.logging.log4j:log4j-core") - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "implementation"("commons-cli:commons-cli:1.4") "implementation"("com.google.guava:guava") "implementation"("com.google.code.gson:gson") diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java index 499e3b5929..e7205b9d96 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLICommandSender.java @@ -28,7 +28,7 @@ import com.sk89q.worldedit.util.formatting.WorldEditText; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.serializer.plain.PlainComponentSerializer; -import org.slf4j.Logger; +import org.apache.logging.log4j.Logger; import java.io.File; import java.util.Locale; diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java index 452d42ff99..b1b39e7a43 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; import com.sk89q.worldedit.world.biome.BiomeType; @@ -44,8 +45,8 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.ByteArrayInputStream; import java.io.File; @@ -67,7 +68,7 @@ */ public class CLIWorldEdit { - private static final Logger LOGGER = LoggerFactory.getLogger(CLIWorldEdit.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public static CLIWorldEdit inst; diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 5cea27b135..217c5a0547 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -38,13 +38,16 @@ dependencies { "api"(project(":worldedit-libs:core")) "implementation"("de.schlichtherle:truezip:6.8.4") - "implementation"("net.java.truevfs:truevfs-profile-default_2.13:0.12.1") "implementation"("org.mozilla:rhino-runtime:1.7.13") "implementation"("org.yaml:snakeyaml") "implementation"("com.google.guava:guava") "implementation"("com.google.code.findbugs:jsr305:1.3.9") "implementation"("com.google.code.gson:gson") - "implementation"("org.slf4j:slf4j-api:${Versions.SLF4J}") + + "implementation"("org.apache.logging.log4j:log4j-api:2.8.1") { + because("Mojang provides Log4J 2.8.1") + } + "implementation"("it.unimi.dsi:fastutil") val antlrVersion = "4.9.1" diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java index 1abb91e18d..faf6b3938e 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/CommandsManager.java @@ -20,8 +20,8 @@ package com.sk89q.minecraft.util.commands; import com.sk89q.util.StringUtil; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -64,8 +64,7 @@ @Deprecated public abstract class CommandsManager { - protected static final Logger logger = - LoggerFactory.getLogger(CommandsManager.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); /** * Mapping of commands (including aliases) with a description. Root @@ -144,7 +143,7 @@ public List registerMethods(Class cls, Method parent) { return registerMethods(cls, parent, obj); } } catch (InvocationTargetException | InstantiationException | IllegalAccessException e) { - logger.error("Failed to register commands", e); + LOGGER.error("Failed to register commands", e); } return null; } @@ -525,7 +524,7 @@ public void invokeMethod(Method parent, String[] args, T player, Method method, try { method.invoke(instance, methodArgs); } catch (IllegalArgumentException | IllegalAccessException e) { - logger.error("Failed to execute command", e); + LOGGER.error("Failed to execute command", e); } catch (InvocationTargetException e) { if (e.getCause() instanceof CommandException) { throw (CommandException) e.getCause(); diff --git a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java index e04858176b..dab1edd8d0 100644 --- a/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java +++ b/worldedit-core/src/main/java/com/sk89q/minecraft/util/commands/SimpleInjector.java @@ -19,15 +19,15 @@ package com.sk89q.minecraft.util.commands; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class SimpleInjector implements Injector { - private static final Logger log = LoggerFactory.getLogger(SimpleInjector.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final Object[] args; private final Class[] argClasses; @@ -46,7 +46,7 @@ public Object getInstance(Class clazz) { ctr.setAccessible(true); return ctr.newInstance(args); } catch (NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { - log.error("Error initializing commands class " + clazz, e); + LOGGER.error("Error initializing commands class " + clazz, e); return null; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java index 1547bc2e96..a6397ffb49 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/EditSession.java @@ -85,6 +85,7 @@ import com.sk89q.worldedit.internal.expression.ExpressionException; import com.sk89q.worldedit.internal.expression.ExpressionTimeoutException; import com.sk89q.worldedit.internal.expression.LocalSlot.Variable; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.MathUtils; import com.sk89q.worldedit.math.Vector2; @@ -123,8 +124,7 @@ import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.Collections; @@ -156,7 +156,7 @@ @SuppressWarnings({"FieldCanBeLocal"}) public class EditSession implements Extent, AutoCloseable { - private static final Logger log = LoggerFactory.getLogger(EditSession.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); /** * Used by {@link EditSession#setBlock(BlockVector3, BlockStateHolder, Stage)} to @@ -2241,7 +2241,7 @@ protected BaseBlock getMaterial(int x, int y, int z, BaseBlock defaultMaterial) timedOut[0] = timedOut[0] + 1; return null; } catch (Exception e) { - log.warn("Failed to create shape", e); + LOGGER.warn("Failed to create shape", e); return null; } } @@ -2674,7 +2674,7 @@ protected BiomeType getBiome(int x, int y, int z, BiomeType defaultBiomeType) { timedOut.getAndIncrement(); return null; } catch (Exception e) { - log.warn("Failed to create shape", e); + LOGGER.warn("Failed to create shape", e); return null; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java index 967a6f1d96..a0911080ed 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/LocalConfiguration.java @@ -20,6 +20,7 @@ package com.sk89q.worldedit; import com.google.common.collect.Lists; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.formatting.component.TextUtils; import com.sk89q.worldedit.util.io.file.ArchiveNioSupports; import com.sk89q.worldedit.util.logging.LogFormat; @@ -29,8 +30,7 @@ import com.sk89q.worldedit.world.snapshot.SnapshotRepository; import com.sk89q.worldedit.world.snapshot.experimental.SnapshotDatabase; import com.sk89q.worldedit.world.snapshot.experimental.fs.FileSystemSnapshotDatabase; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -47,7 +47,7 @@ */ public abstract class LocalConfiguration { - private static final Logger LOGGER = LoggerFactory.getLogger(LocalConfiguration.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public boolean profile = false; public boolean traceUnflushedSessions = false; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java index 10767c2206..44938f8c4b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/WorldEdit.java @@ -46,6 +46,7 @@ import com.sk89q.worldedit.function.pattern.Pattern; import com.sk89q.worldedit.internal.SchematicsEventListener; import com.sk89q.worldedit.internal.expression.invoke.ReturnException; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.scripting.CraftScriptContext; import com.sk89q.worldedit.scripting.CraftScriptEngine; @@ -55,7 +56,6 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.asset.AssetLoaders; import com.sk89q.worldedit.util.concurrency.EvenMoreExecutors; -import com.sk89q.worldedit.util.concurrency.LazyReference; import com.sk89q.worldedit.util.eventbus.EventBus; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.TranslatableComponent; @@ -73,8 +73,7 @@ import com.sk89q.worldedit.world.registry.BundledBlockData; import com.sk89q.worldedit.world.registry.BundledItemData; import com.sk89q.worldedit.world.registry.LegacyMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.DataInputStream; import java.io.File; @@ -110,7 +109,10 @@ */ public final class WorldEdit { - public static final Logger logger = LoggerFactory.getLogger(WorldEdit.class); + /** + * This is for internal use only. + */ + public static final Logger logger = LogManagerCompat.getLogger(); private static final WorldEdit instance = new WorldEdit(); private static String version; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index aa1188d425..55d9945251 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -39,6 +39,7 @@ import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter; import com.sk89q.worldedit.function.operation.Operations; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.session.ClipboardHolder; import com.sk89q.worldedit.util.formatting.component.CodeFormat; @@ -54,6 +55,7 @@ import com.sk89q.worldedit.util.io.Closer; import com.sk89q.worldedit.util.io.file.FilenameException; import com.sk89q.worldedit.util.io.file.MorePaths; +import org.apache.logging.log4j.Logger; import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; import org.enginehub.piston.annotation.param.Arg; @@ -61,8 +63,6 @@ import org.enginehub.piston.annotation.param.Switch; import org.enginehub.piston.exception.CommandException; import org.enginehub.piston.exception.StopExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -87,7 +87,7 @@ @CommandContainer(superTypes = CommandPermissionsConditionGenerator.Registration.class) public class SchematicCommands { - private static final Logger log = LoggerFactory.getLogger(SchematicCommands.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final WorldEdit worldEdit; /** @@ -232,9 +232,9 @@ public void delete(Actor actor, actor.printInfo(TranslatableComponent.of("worldedit.schematic.delete.deleted", TextComponent.of(filename))); try { - log.info(actor.getName() + " deleted " + f.getCanonicalPath()); + LOGGER.info(actor.getName() + " deleted " + f.getCanonicalPath()); } catch (IOException e) { - log.info(actor.getName() + " deleted " + f.getAbsolutePath()); + LOGGER.info(actor.getName() + " deleted " + f.getAbsolutePath()); } } @@ -320,7 +320,7 @@ public ClipboardHolder call() throws Exception { ClipboardReader reader = closer.register(format.getReader(bis)); Clipboard clipboard = reader.read(); - log.info(actor.getName() + " loaded " + file.getCanonicalPath()); + LOGGER.info(actor.getName() + " loaded " + file.getCanonicalPath()); return new ClipboardHolder(clipboard); } } @@ -363,7 +363,7 @@ public Void call() throws Exception { ClipboardWriter writer = closer.register(format.getWriter(bos)); writer.write(target); - log.info(actor.getName() + " saved " + file.getCanonicalPath() + (overwrite ? " (overwriting previous file)" : "")); + LOGGER.info(actor.getName() + " saved " + file.getCanonicalPath() + (overwrite ? " (overwriting previous file)" : "")); } catch (IOException e) { file.delete(); throw new CommandException(TextComponent.of(e.getMessage()), e, ImmutableList.of()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java index 82d6595243..3a5fb6bea6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/util/AsyncCommandBuilder.java @@ -25,16 +25,16 @@ import com.google.common.util.concurrent.ListeningExecutorService; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.internal.command.exception.ExceptionConverter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.formatting.component.ErrorFormat; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.TextComponent; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.task.FutureForwardingTask; import com.sk89q.worldedit.util.task.Supervisor; +import org.apache.logging.log4j.Logger; import org.enginehub.piston.exception.CommandException; import org.enginehub.piston.exception.CommandExecutionException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.concurrent.Callable; import java.util.function.Consumer; @@ -45,7 +45,7 @@ public final class AsyncCommandBuilder { - private static final Logger logger = LoggerFactory.getLogger(AsyncCommandBuilder.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final Callable callable; private final Actor sender; @@ -192,7 +192,7 @@ private T runTask() { } } catch (Throwable unknown) { sender.printError(failure.append(TextComponent.of(": Unknown error. Please see console."))); - logger.error("Uncaught exception occurred in task: " + description, orig); + LOGGER.error("Uncaught exception occurred in task: " + description, orig); } } return result; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java index b2dc9d4298..abb6ba69f9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java @@ -98,6 +98,7 @@ import com.sk89q.worldedit.internal.command.CommandRegistrationHandler; import com.sk89q.worldedit.internal.command.exception.ExceptionConverter; import com.sk89q.worldedit.internal.command.exception.WorldEditExceptionConverter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.internal.util.Substring; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldedit.session.request.Request; @@ -108,6 +109,7 @@ import com.sk89q.worldedit.util.logging.DynamicStreamHandler; import com.sk89q.worldedit.util.logging.LogFormat; import com.sk89q.worldedit.world.World; +import org.apache.logging.log4j.Logger; import org.enginehub.piston.Command; import org.enginehub.piston.CommandManager; import org.enginehub.piston.converter.ArgumentConverters; @@ -126,8 +128,6 @@ import org.enginehub.piston.suggestion.Suggestion; import org.enginehub.piston.util.HelpGenerator; import org.enginehub.piston.util.ValueProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -151,7 +151,7 @@ public final class PlatformCommandManager { public static final Pattern COMMAND_CLEAN_PATTERN = Pattern.compile("^[/]+"); - private static final Logger log = LoggerFactory.getLogger(PlatformCommandManager.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final java.util.logging.Logger COMMAND_LOG = java.util.logging.Logger.getLogger("com.sk89q.worldedit.CommandLog"); @@ -421,7 +421,7 @@ public ExceptionConverter getExceptionConverter() { } void registerCommandsWith(Platform platform) { - log.info("Registering commands with " + platform.getClass().getCanonicalName()); + LOGGER.info("Registering commands with " + platform.getClass().getCanonicalName()); LocalConfiguration config = platform.getConfiguration(); boolean logging = config.logCommands; @@ -435,12 +435,12 @@ void registerCommandsWith(Platform platform) { File file = new File(config.getWorkingDirectory(), path); COMMAND_LOG.setLevel(Level.ALL); - log.info("Logging WorldEdit commands to " + file.getAbsolutePath()); + LOGGER.info("Logging WorldEdit commands to " + file.getAbsolutePath()); try { dynamicHandler.setHandler(new FileHandler(file.getAbsolutePath(), true)); } catch (IOException e) { - log.warn("Could not use command log file " + path + ": " + e.getMessage()); + LOGGER.warn("Could not use command log file " + path + ": " + e.getMessage()); } dynamicHandler.setFormatter(new LogFormat(config.logFormat)); @@ -584,7 +584,7 @@ private MemoizingValueAccess initializeInjectedValues(Arguments arguments, Actor private void handleUnknownException(Actor actor, Throwable t) { actor.printError(TranslatableComponent.of("worldedit.command.error.report")); actor.print(TextComponent.of(t.getClass().getName() + ": " + t.getMessage())); - log.error("An unexpected error while handling a WorldEdit command", t); + LOGGER.error("An unexpected error while handling a WorldEdit command", t); } @Subscribe @@ -601,7 +601,7 @@ public void handleCommandSuggestion(CommandSuggestionEvent event) { suggestions = commandManager.getSuggestions(access, argStrings); } catch (Throwable t) { // catch errors which are *not* command exceptions generated by parsers/suggesters if (!(t instanceof CommandException)) { - log.debug("Unexpected error occurred while generating suggestions for input: " + arguments, t); + LOGGER.debug("Unexpected error occurred while generating suggestions for input: " + arguments, t); return; } throw t; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java index ca32648132..ae9fa1ad3e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java @@ -34,14 +34,14 @@ import com.sk89q.worldedit.event.platform.PlatformInitializeEvent; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; import com.sk89q.worldedit.event.platform.PlayerInputEvent; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.util.HandSide; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.util.SideEffect; import com.sk89q.worldedit.util.eventbus.Subscribe; import com.sk89q.worldedit.world.World; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.util.ArrayList; import java.util.Collection; @@ -63,7 +63,7 @@ */ public class PlatformManager { - private static final Logger logger = LoggerFactory.getLogger(PlatformManager.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final WorldEdit worldEdit; private final PlatformCommandManager platformCommandManager; @@ -95,7 +95,7 @@ public PlatformManager(WorldEdit worldEdit) { public synchronized void register(Platform platform) { checkNotNull(platform); - logger.info("Got request to register " + platform.getClass() + " with WorldEdit [" + super.toString() + "]"); + LOGGER.info("Got request to register " + platform.getClass() + " with WorldEdit [" + super.toString() + "]"); // Just add the platform to the list of platforms: we'll pick favorites // once all the platforms have been loaded @@ -104,7 +104,7 @@ public synchronized void register(Platform platform) { // Make sure that versions are in sync if (firstSeenVersion != null) { if (!firstSeenVersion.equals(platform.getVersion())) { - logger.warn("Multiple ports of WorldEdit are installed but they report different versions ({} and {}). " + LOGGER.warn("Multiple ports of WorldEdit are installed but they report different versions ({} and {}). " + "If these two versions are truly different, then you may run into unexpected crashes and errors.", firstSeenVersion, platform.getVersion()); } @@ -127,7 +127,7 @@ public synchronized boolean unregister(Platform platform) { boolean removed = platforms.remove(platform); if (removed) { - logger.info("Unregistering " + platform.getClass().getCanonicalName() + " from WorldEdit"); + LOGGER.info("Unregistering " + platform.getClass().getCanonicalName() + " from WorldEdit"); boolean choosePreferred = false; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java index 55cc98d770..c05cfc0a7f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/MCEditSchematicReader.java @@ -42,6 +42,7 @@ import com.sk89q.worldedit.extent.clipboard.io.legacycompat.Pre13HangingCompatibilityHandler; import com.sk89q.worldedit.extent.clipboard.io.legacycompat.SignCompatibilityHandler; import com.sk89q.worldedit.extent.clipboard.io.legacycompat.SkullBlockCompatibilityHandler; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; @@ -52,8 +53,7 @@ import com.sk89q.worldedit.world.entity.EntityTypes; import com.sk89q.worldedit.world.registry.LegacyMapper; import com.sk89q.worldedit.world.storage.NBTConversions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.util.ArrayList; @@ -71,7 +71,7 @@ */ public class MCEditSchematicReader extends NBTSchematicReader { - private static final Logger log = LoggerFactory.getLogger(MCEditSchematicReader.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final NBTInputStream inputStream; private final DataFixer fixer; private static final ImmutableList COMPATIBILITY_HANDLERS @@ -253,7 +253,7 @@ public Clipboard read() throws IOException { byte data = blockData[index]; int combined = block << 8 | data; if (unknownBlocks.add(combined)) { - log.warn("Unknown block when loading schematic: " + LOGGER.warn("Unknown block when loading schematic: " + block + ":" + data + ". This is most likely a bad schematic."); } } @@ -289,7 +289,7 @@ public Clipboard read() throws IOException { BaseEntity state = new BaseEntity(entityType, compound); clipboard.createEntity(location, state); } else { - log.warn("Unknown entity when pasting schematic: " + id.toLowerCase(Locale.ROOT)); + LOGGER.warn("Unknown entity when pasting schematic: " + id.toLowerCase(Locale.ROOT)); } } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java index 3923751330..89c70db101 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/SpongeSchematicReader.java @@ -40,6 +40,7 @@ import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.regions.Region; @@ -52,8 +53,7 @@ import com.sk89q.worldedit.world.entity.EntityType; import com.sk89q.worldedit.world.entity.EntityTypes; import com.sk89q.worldedit.world.storage.NBTConversions; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.util.HashMap; @@ -70,7 +70,7 @@ */ public class SpongeSchematicReader extends NBTSchematicReader { - private static final Logger log = LoggerFactory.getLogger(SpongeSchematicReader.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final NBTInputStream inputStream; private DataFixer fixer = null; private int schematicVersion = -1; @@ -102,21 +102,21 @@ public Clipboard read() throws IOException { } else if (schematicVersion == 2) { dataVersion = requireTag(schematic, "DataVersion", IntTag.class).getValue(); if (dataVersion < 0) { - log.warn("Schematic has an unknown data version ({}). Data may be incompatible.", + LOGGER.warn("Schematic has an unknown data version ({}). Data may be incompatible.", dataVersion); // Do not DFU unknown data dataVersion = liveDataVersion; } if (dataVersion > liveDataVersion) { - log.warn("Schematic was made in a newer Minecraft version ({} > {}). Data may be incompatible.", + LOGGER.warn("Schematic was made in a newer Minecraft version ({} > {}). Data may be incompatible.", dataVersion, liveDataVersion); } else if (dataVersion < liveDataVersion) { fixer = platform.getDataFixer(); if (fixer != null) { - log.debug("Schematic was made in an older Minecraft version ({} < {}), will attempt DFU.", + LOGGER.debug("Schematic was made in an older Minecraft version ({} < {}), will attempt DFU.", dataVersion, liveDataVersion); } else { - log.info("Schematic was made in an older Minecraft version ({} < {}), but DFU is not available. Data may be incompatible.", + LOGGER.info("Schematic was made in an older Minecraft version ({} < {}), but DFU is not available. Data may be incompatible.", dataVersion, liveDataVersion); } } @@ -217,7 +217,7 @@ private BlockArrayClipboard readVersion1(CompoundTag schematicTag) throws IOExce try { state = WorldEdit.getInstance().getBlockFactory().parseFromInput(palettePart, parserContext).toImmutableState(); } catch (InputParseException e) { - log.warn("Invalid BlockState in palette: " + palettePart + ". Block will be replaced with air."); + LOGGER.warn("Invalid BlockState in palette: " + palettePart + ". Block will be replaced with air."); state = BlockTypes.AIR.getDefaultState(); } palette.put(id, state); @@ -327,7 +327,7 @@ private void readBiomes(BlockArrayClipboard clipboard, Map schemati } BiomeType biome = BiomeTypes.get(key); if (biome == null) { - log.warn("Unknown biome type :" + key + LOGGER.warn("Unknown biome type :" + key + " in palette. Are you missing a mod or using a schematic made in a newer version of Minecraft?"); } Tag idTag = palettePart.getValue(); @@ -396,7 +396,7 @@ private void readEntities(BlockArrayClipboard clipboard, Map schema BaseEntity state = new BaseEntity(entityType, entityTag); clipboard.createEntity(location, state); } else { - log.warn("Unknown entity when pasting schematic: " + id); + LOGGER.warn("Unknown entity when pasting schematic: " + id); } } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java index b3f89128fa..388953dc05 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/SchematicsEventListener.java @@ -20,9 +20,9 @@ package com.sk89q.worldedit.internal; import com.sk89q.worldedit.event.platform.ConfigurationLoadEvent; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.eventbus.Subscribe; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.nio.file.FileAlreadyExistsException; @@ -31,7 +31,7 @@ public class SchematicsEventListener { - private static final Logger LOGGER = LoggerFactory.getLogger(SchematicsEventListener.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); @Subscribe public void onConfigLoad(ConfigurationLoadEvent event) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java index 8e3bde30b9..a2f81f0dea 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/anvil/ChunkDeleter.java @@ -27,9 +27,9 @@ import com.google.gson.reflect.TypeToken; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.BlockVector2; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.BufferedWriter; import java.io.IOException; @@ -52,7 +52,7 @@ public final class ChunkDeleter { public static final String DELCHUNKS_FILE_NAME = "delete_chunks.json"; - private static final Logger logger = LoggerFactory.getLogger(ChunkDeleter.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final Comparator chunkSorter = Comparator.comparing( pos -> (pos.getBlockX() & 31) + (pos.getBlockZ() & 31) * 32 @@ -80,13 +80,13 @@ public static void runFromFile(Path chunkFile, boolean deleteOnSuccess) { try { chunkDeleter = createFromFile(chunkFile); } catch (JsonSyntaxException | IOException e) { - logger.error("Could not parse chunk deletion file. Invalid file?", e); + LOGGER.error("Could not parse chunk deletion file. Invalid file?", e); return; } - logger.info("Found chunk deletions. Proceeding with deletion..."); + LOGGER.info("Found chunk deletions. Proceeding with deletion..."); long start = System.currentTimeMillis(); if (chunkDeleter.runDeleter()) { - logger.info("Successfully deleted {} matching chunks (out of {}, taking {} ms).", + LOGGER.info("Successfully deleted {} matching chunks (out of {}, taking {} ms).", chunkDeleter.getDeletedChunkCount(), chunkDeleter.getDeletionsRequested(), System.currentTimeMillis() - start); if (deleteOnSuccess) { @@ -96,12 +96,12 @@ public static void runFromFile(Path chunkFile, boolean deleteOnSuccess) { } catch (IOException ignored) { } if (!deletedFile) { - logger.warn("Chunk deletion file could not be cleaned up. This may have unintended consequences" + LOGGER.warn("Chunk deletion file could not be cleaned up. This may have unintended consequences" + " on next startup, or if /delchunks is used again."); } } } else { - logger.error("Error occurred while deleting chunks. " + LOGGER.error("Error occurred while deleting chunks. " + "If world errors occur, stop the server and restore the *.bak backup files."); } } @@ -131,7 +131,7 @@ private boolean runDeleter() { private boolean runBatch(ChunkDeletionInfo.ChunkBatch chunkBatch) { int chunkCount = chunkBatch.getChunkCount(); - logger.debug("Processing deletion batch with {} chunks.", chunkCount); + LOGGER.debug("Processing deletion batch with {} chunks.", chunkCount); final Map> regionToChunkList = groupChunks(chunkBatch); BiPredicate predicate = createPredicates(chunkBatch.deletionPredicates); shouldPreload = chunkBatch.chunks == null; @@ -147,7 +147,7 @@ private boolean runBatch(ChunkDeletionInfo.ChunkBatch chunkBatch) { try { backupRegion(regionPath); } catch (IOException e) { - logger.warn("Error backing up region file: " + regionPath + ". Aborting the process.", e); + LOGGER.warn("Error backing up region file: " + regionPath + ". Aborting the process.", e); return false; } } @@ -263,15 +263,15 @@ private boolean deleteChunks(Path regionFile, Stream chunks, region.deleteChunk(chunk); totalChunksDeleted++; if (debugRate != 0 && totalChunksDeleted % debugRate == 0) { - logger.debug("Deleted {} chunks so far.", totalChunksDeleted); + LOGGER.debug("Deleted {} chunks so far.", totalChunksDeleted); } } else { - logger.debug("Chunk did not match predicates: " + chunk); + LOGGER.debug("Chunk did not match predicates: " + chunk); } } return true; } catch (IOException e) { - logger.warn("Error deleting chunks from region: " + regionFile + ". Aborting the process.", e); + LOGGER.warn("Error deleting chunks from region: " + regionFile + ". Aborting the process.", e); return false; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java new file mode 100644 index 0000000000..e2a80b49e2 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/LogManagerCompat.java @@ -0,0 +1,44 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.internal.util; + +import com.google.common.base.Throwables; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.List; + +public class LogManagerCompat { + + public static Logger getLogger() { + return LogManager.getLogger(getCallerCallerClassName()); + } + + private static String getCallerCallerClassName() { + List lazyStack = Throwables.lazyStackTrace(new Throwable()); + // 0 - this method + // 1 - caller + // 2 - caller caller + return lazyStack.get(2).getClassName(); + } + + private LogManagerCompat() { + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java index be299b2490..8620934d67 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/interpolation/ReparametrisingInterpolation.java @@ -21,9 +21,9 @@ package com.sk89q.worldedit.math.interpolation; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.Vector3; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.util.List; import java.util.Map.Entry; @@ -39,7 +39,7 @@ */ public class ReparametrisingInterpolation implements Interpolation { - private static final Logger log = LoggerFactory.getLogger(ReparametrisingInterpolation.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final Interpolation baseInterpolation; private double totalArcLength; @@ -108,7 +108,7 @@ private double arcToParameter(double arc) { Entry ceilingEntry = cache.ceilingEntry(arc); if (ceilingEntry == null) { - log.warn("Error in arcToParameter: no ceiling entry for " + arc + " found!"); + LOGGER.warn("Error in arcToParameter: no ceiling entry for " + arc + " found!"); return 0; } final double rightArc = ceilingEntry.getKey(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java index e9c6c5a690..923d21a03c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/scripting/MinecraftHidingClassShutter.java @@ -20,16 +20,11 @@ package com.sk89q.worldedit.scripting; import org.mozilla.javascript.ClassShutter; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * Hides Minecraft's obfuscated & de-obfuscated names from scripts. */ class MinecraftHidingClassShutter implements ClassShutter { - - private static final Logger LOGGER = LoggerFactory.getLogger(MinecraftHidingClassShutter.class); - @Override public boolean visibleToScripts(String fullClassName) { if (!fullClassName.contains(".")) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java index 3d40970092..c1931a50ae 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/SessionManager.java @@ -34,6 +34,7 @@ import com.sk89q.worldedit.event.platform.ConfigurationLoadEvent; import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Locatable; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.session.request.Request; import com.sk89q.worldedit.session.storage.JsonFileSessionStore; import com.sk89q.worldedit.session.storage.SessionStore; @@ -43,8 +44,7 @@ import com.sk89q.worldedit.world.gamemode.GameModes; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -75,7 +75,7 @@ public class SessionManager { private static final int FLUSH_PERIOD = 1000 * 30; private static final ListeningExecutorService executorService = MoreExecutors.listeningDecorator( EvenMoreExecutors.newBoundedCachedThreadPool(0, 1, 5, "WorldEdit Session Saver - %s")); - private static final Logger log = LoggerFactory.getLogger(SessionManager.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final Set warnedInvalidTool = Collections.newSetFromMap(new ConcurrentHashMap<>()); private final Timer timer = new Timer("WorldEdit Session Manager"); @@ -166,7 +166,7 @@ public synchronized LocalSession get(SessionOwner owner) { session = store.load(getKey(sessionKey)); session.postLoad(); } catch (IOException e) { - log.warn("Failed to load saved session", e); + LOGGER.warn("Failed to load saved session", e); session = new LocalSession(); } Request.request().setSession(session); @@ -179,7 +179,7 @@ public synchronized LocalSession get(SessionOwner owner) { setDefaultWand(sessionItem, config.wandItem, session, new SelectionWand()); } catch (InvalidToolBindException e) { if (warnedInvalidTool.add("selwand")) { - log.warn("Invalid selection wand tool set in config. Tool will not be assigned: " + e.getItemType()); + LOGGER.warn("Invalid selection wand tool set in config. Tool will not be assigned: " + e.getItemType()); } } try { @@ -187,7 +187,7 @@ public synchronized LocalSession get(SessionOwner owner) { setDefaultWand(sessionItem, config.navigationWand, session, new NavigationWand()); } catch (InvalidToolBindException e) { if (warnedInvalidTool.add("navwand")) { - log.warn("Invalid navigation wand tool set in config. Tool will not be assigned: " + e.getItemType()); + LOGGER.warn("Invalid navigation wand tool set in config. Tool will not be assigned: " + e.getItemType()); } } session.compareAndResetDirty(); @@ -263,7 +263,7 @@ private ListenableFuture commit(final Map sessions) try { store.save(getKey(key), entry.getValue()); } catch (IOException e) { - log.warn("Failed to write session for UUID " + getKey(key), e); + LOGGER.warn("Failed to write session for UUID " + getKey(key), e); exception = e; } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java index b4f105c2ba..b383bda211 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/session/storage/JsonFileSessionStore.java @@ -24,10 +24,10 @@ import com.google.gson.JsonIOException; import com.google.gson.JsonParseException; import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.gson.GsonUtil; import com.sk89q.worldedit.util.io.Closer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.BufferedReader; import java.io.BufferedWriter; @@ -47,7 +47,7 @@ */ public class JsonFileSessionStore implements SessionStore { - private static final Logger log = LoggerFactory.getLogger(JsonFileSessionStore.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final Gson gson; private final File dir; @@ -61,7 +61,7 @@ public JsonFileSessionStore(File dir) { if (!dir.isDirectory()) { if (!dir.mkdirs()) { - log.warn("Failed to create directory '" + dir.getPath() + "' for sessions"); + LOGGER.warn("Failed to create directory '" + dir.getPath() + "' for sessions"); } } @@ -90,9 +90,9 @@ public LocalSession load(UUID id) throws IOException { BufferedReader br = closer.register(new BufferedReader(fr)); LocalSession session = gson.fromJson(br, LocalSession.class); if (session == null) { - log.warn("Loaded a null session from {}, creating new session", file); + LOGGER.warn("Loaded a null session from {}, creating new session", file); if (!file.delete()) { - log.warn("Failed to delete corrupted session {}", file); + LOGGER.warn("Failed to delete corrupted session {}", file); } session = new LocalSession(); } @@ -120,7 +120,7 @@ public void save(UUID id, LocalSession session) throws IOException { if (finalFile.exists()) { if (!finalFile.delete()) { - log.warn("Failed to delete " + finalFile.getPath() + " so the .tmp file can replace it"); + LOGGER.warn("Failed to delete " + finalFile.getPath() + " so the .tmp file can replace it"); } } @@ -129,7 +129,7 @@ public void save(UUID id, LocalSession session) throws IOException { } if (!tempFile.renameTo(finalFile)) { - log.warn("Failed to rename temporary session file to " + finalFile.getPath()); + LOGGER.warn("Failed to rename temporary session file to " + finalFile.getPath()); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java index cbf6b31904..218832d60a 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/PropertiesConfiguration.java @@ -24,10 +24,10 @@ import com.sk89q.util.StringUtil; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.LocalSession; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.report.Unreported; import com.sk89q.worldedit.world.registry.LegacyMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.FileInputStream; @@ -49,7 +49,7 @@ */ public class PropertiesConfiguration extends LocalConfiguration { - @Unreported private static final Logger log = LoggerFactory.getLogger(PropertiesConfiguration.class); + @Unreported private static final Logger LOGGER = LogManagerCompat.getLogger(); @Unreported protected Properties properties; @Unreported protected File path; @@ -82,7 +82,7 @@ public void load() { properties.load(stream); } catch (FileNotFoundException ignored) { } catch (IOException e) { - log.warn("Failed to read configuration", e); + LOGGER.warn("Failed to read configuration", e); } loadExtra(); @@ -144,7 +144,7 @@ public void load() { try (OutputStream output = new FileOutputStream(path)) { properties.store(output, "Don't put comments; they get removed"); } catch (IOException e) { - log.warn("Failed to write configuration", e); + LOGGER.warn("Failed to write configuration", e); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java index 504de1e48b..f013cc4885 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/YAMLConfiguration.java @@ -25,7 +25,7 @@ import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.session.SessionManager; import com.sk89q.worldedit.util.report.Unreported; -import org.slf4j.Logger; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.util.HashSet; diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java index 6fac269c64..947eefa8c1 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java @@ -26,9 +26,9 @@ import com.google.common.collect.Table; import com.google.common.io.MoreFiles; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.asset.holder.ImageHeightmap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.nio.file.DirectoryStream; @@ -46,7 +46,7 @@ @Beta public class AssetLoaders { - protected final Logger logger = LoggerFactory.getLogger(getClass()); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final List> assetLoaders = Lists.newArrayList(); private final Table, String, AssetLoader> assetLoaderRegistration = HashBasedTable.create(); @@ -69,7 +69,7 @@ public void init() { try { Files.createDirectories(this.assetsDir); } catch (IOException e) { - logger.warn("Failed to create asset directory", e); + LOGGER.warn("Failed to create asset directory", e); } registerAssetLoader(new ImageHeightmapLoader(worldEdit, this.assetsDir), ImageHeightmap.class); @@ -79,7 +79,7 @@ public void registerAssetLoader(AssetLoader loader, Class assetClass) assetLoaders.add(loader); for (String extension : loader.getAllowedExtensions()) { if (assetLoaderRegistration.contains(assetClass, extension)) { - logger.warn(String.format( + LOGGER.warn(String.format( "Tried to register asset loader '%s' with extension '%s' and asset class '%s', but it is already registered to '%s'", loader.getClass().getName(), extension, @@ -152,7 +152,7 @@ public List getFilesForAsset(Class assetClass) { try (DirectoryStream stream = Files.newDirectoryStream(this.assetsDir, entry -> extensions.contains(MoreFiles.getFileExtension(entry)))) { return ImmutableList.copyOf(stream); } catch (IOException e) { - logger.warn("Failed to get files for asset type " + assetClass.getName(), e); + LOGGER.warn("Failed to get files for asset type " + assetClass.getName(), e); return ImmutableList.of(); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java index 95145f4c7d..34286db839 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/eventbus/EventBus.java @@ -22,8 +22,8 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import com.google.common.collect.SetMultimap; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; @@ -47,7 +47,7 @@ */ public final class EventBus { - private final Logger logger = LoggerFactory.getLogger(EventBus.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final ReadWriteLock lock = new ReentrantReadWriteLock(); @@ -192,7 +192,7 @@ private void dispatch(Object event, EventHandler handler) { try { handler.handleEvent(event); } catch (InvocationTargetException e) { - logger.error("Could not dispatch event: " + event + " to handler " + handler, e); + LOGGER.error("Could not dispatch event: " + event + " to handler " + handler, e); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java index 001c60f3f2..b9600ca041 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/Closer.java @@ -21,8 +21,8 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Throwables; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import java.io.Closeable; import java.io.IOException; @@ -35,7 +35,7 @@ public final class Closer implements Closeable { - private static final Logger logger = LoggerFactory.getLogger(Closer.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); /** * The suppressor implementation to use for the current Java version. @@ -239,7 +239,7 @@ public void close() throws IOException { @Override public void suppress(Object closeable, Throwable thrown, Throwable suppressed) { // log to the same place as Closeables - logger.warn("Suppressing exception thrown when closing " + closeable, suppressed); + LOGGER.warn("Suppressing exception thrown when closing " + closeable, suppressed); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java index c1370dac0c..512f887eb0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/ArchiveNioSupports.java @@ -35,11 +35,6 @@ public class ArchiveNioSupports { static { ImmutableList.Builder builder = ImmutableList.builder(); - try { - builder.add(TrueVfsArchiveNioSupport.getInstance()); - } catch (NoClassDefFoundError ignore) { - // No TrueVFS available. That's OK. - } SUPPORTS = builder.add(ZipArchiveNioSupport.getInstance()) .addAll(ServiceLoader.load(ArchiveNioSupport.class)) .build(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/TrueVfsArchiveNioSupport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/TrueVfsArchiveNioSupport.java deleted file mode 100644 index fc174dd11e..0000000000 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/io/file/TrueVfsArchiveNioSupport.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * WorldEdit, a Minecraft world manipulation toolkit - * Copyright (C) sk89q - * Copyright (C) WorldEdit team and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldedit.util.io.file; - -import com.google.common.base.Splitter; -import com.google.common.collect.ImmutableSet; -import net.java.truevfs.access.TArchiveDetector; -import net.java.truevfs.access.TFileSystem; -import net.java.truevfs.access.TPath; - -import java.io.IOException; -import java.nio.file.Path; -import java.util.Optional; -import java.util.Set; - -public final class TrueVfsArchiveNioSupport implements ArchiveNioSupport { - - private static final TrueVfsArchiveNioSupport INSTANCE = new TrueVfsArchiveNioSupport(); - - public static TrueVfsArchiveNioSupport getInstance() { - return INSTANCE; - } - - private static final Set ALLOWED_EXTENSIONS = ImmutableSet.copyOf( - Splitter.on('|').split(TArchiveDetector.ALL.getExtensions()) - ); - - private TrueVfsArchiveNioSupport() { - } - - @Override - public Optional tryOpenAsDir(Path archive) throws IOException { - String fileName = archive.getFileName().toString(); - int dot = fileName.indexOf('.'); - if (dot < 0 || dot >= fileName.length() || !ALLOWED_EXTENSIONS - .contains(fileName.substring(dot + 1))) { - return Optional.empty(); - } - TFileSystem fileSystem = new TPath(archive).getFileSystem(); - TPath root = fileSystem.getPath("/"); - Path realRoot = ArchiveNioSupports.skipRootSameName( - root, fileName.substring(0, dot) - ); - return Optional.of(new ArchiveDir() { - @Override - public Path getPath() { - return realRoot; - } - - @Override - public void close() throws IOException { - fileSystem.close(); - } - }); - } -} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java index c5413d787e..7f6bc27151 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/report/ShallowObjectReport.java @@ -19,8 +19,8 @@ package com.sk89q.worldedit.util.report; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import java.lang.reflect.Field; import java.lang.reflect.Modifier; @@ -29,7 +29,7 @@ public class ShallowObjectReport extends DataReport { - private static final Logger log = LoggerFactory.getLogger(ShallowObjectReport.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public ShallowObjectReport(String title, Object object) { super(title); @@ -53,7 +53,7 @@ void scanClass(Object object, Class type) { Object value = field.get(object); append(field.getName(), String.valueOf(value)); } catch (IllegalAccessException e) { - log.warn("Failed to get value of '" + field.getName() + "' on " + type); + LOGGER.warn("Failed to get value of '" + field.getName() + "' on " + type); } } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java index f2541b09b5..ddeecbcced 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/translation/TranslationManager.java @@ -26,12 +26,12 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.renderer.TranslatableComponentRenderer; import com.sk89q.worldedit.util.io.ResourceLoader; import com.sk89q.worldedit.util.io.file.ArchiveUnpacker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.io.InputStream; @@ -75,7 +75,7 @@ */ public class TranslationManager { - private static final Logger LOGGER = LoggerFactory.getLogger(TranslationManager.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final Gson GSON = new GsonBuilder().create(); private static final Type STRING_MAP_TYPE = new TypeToken>() { }.getType(); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java index 06c66ed716..f325e4455f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java @@ -26,11 +26,11 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.net.URL; @@ -53,7 +53,7 @@ */ public final class BundledBlockData { - private static final Logger log = LoggerFactory.getLogger(BundledBlockData.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static BundledBlockData INSTANCE; private final ResourceLoader resourceLoader; @@ -68,7 +68,7 @@ private BundledBlockData() { try { loadFromResource(); } catch (Throwable e) { - log.warn("Failed to load the built-in block registry", e); + LOGGER.warn("Failed to load the built-in block registry", e); } } @@ -96,7 +96,7 @@ private void loadFromResource() throws IOException { if (url == null) { throw new IOException("Could not find blocks.json"); } - log.debug("Using {} for bundled block data.", url); + LOGGER.debug("Using {} for bundled block data.", url); String data = Resources.toString(url, Charset.defaultCharset()); List entries = gson.fromJson(data, new TypeToken>() {}.getType()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java index ef34bb6501..9e5c6c0048 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java @@ -26,11 +26,11 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.net.URL; @@ -53,7 +53,7 @@ */ public final class BundledItemData { - private static final Logger log = LoggerFactory.getLogger(BundledItemData.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static BundledItemData INSTANCE; private final ResourceLoader resourceLoader; @@ -68,7 +68,7 @@ private BundledItemData() { try { loadFromResource(); } catch (Throwable e) { - log.warn("Failed to load the built-in item registry", e); + LOGGER.warn("Failed to load the built-in item registry", e); } } @@ -96,7 +96,7 @@ private void loadFromResource() throws IOException { if (url == null) { throw new IOException("Could not find items.json"); } - log.debug("Using {} for bundled item data.", url); + LOGGER.debug("Using {} for bundled item data.", url); String data = Resources.toString(url, Charset.defaultCharset()); List entries = gson.fromJson(data, new TypeToken>() {}.getType()); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java index 13985b931b..e6e20f1aa9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/LegacyMapper.java @@ -31,6 +31,7 @@ import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.util.gson.VectorAdapter; import com.sk89q.worldedit.util.io.ResourceLoader; @@ -38,8 +39,7 @@ import com.sk89q.worldedit.world.block.BlockState; import com.sk89q.worldedit.world.item.ItemType; import com.sk89q.worldedit.world.item.ItemTypes; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.net.URL; @@ -51,7 +51,7 @@ public final class LegacyMapper { - private static final Logger log = LoggerFactory.getLogger(LegacyMapper.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static LegacyMapper INSTANCE; private final ResourceLoader resourceLoader; @@ -69,7 +69,7 @@ private LegacyMapper() { try { loadFromResource(); } catch (Throwable e) { - log.warn("Failed to load the built-in legacy id registry", e); + LOGGER.warn("Failed to load the built-in legacy id registry", e); } } @@ -121,7 +121,7 @@ private void loadFromResource() throws IOException { // if it's still null, both fixer and default failed if (state == null) { - log.debug("Unknown block: " + value); + LOGGER.debug("Unknown block: " + value); } else { // it's not null so one of them succeeded, now use it blockToStringMap.put(state, id); @@ -138,7 +138,7 @@ private void loadFromResource() throws IOException { type = ItemTypes.get(value); } if (type == null) { - log.debug("Unknown item: " + value); + LOGGER.debug("Unknown item: " + value); } else { itemToStringMap.put(type, id); stringToItemMap.put(id, type); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java index c3cee3b6e4..a157197b52 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/snapshot/Snapshot.java @@ -21,6 +21,7 @@ package com.sk89q.worldedit.world.snapshot; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.storage.ChunkStore; import com.sk89q.worldedit.world.storage.FileLegacyChunkStore; @@ -29,8 +30,7 @@ import com.sk89q.worldedit.world.storage.TrueZipMcRegionChunkStore; import com.sk89q.worldedit.world.storage.ZippedLegacyChunkStore; import com.sk89q.worldedit.world.storage.ZippedMcRegionChunkStore; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -43,7 +43,7 @@ */ public class Snapshot implements Comparable { - protected static Logger logger = LoggerFactory.getLogger(Snapshot.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); protected File file; protected String name; @@ -70,7 +70,7 @@ public Snapshot(SnapshotRepository repo, String snapshot) { public ChunkStore getChunkStore() throws IOException, DataException { ChunkStore chunkStore = internalGetChunkStore(); - logger.info("WorldEdit: Using " + chunkStore.getClass().getCanonicalName() + LOGGER.info("WorldEdit: Using " + chunkStore.getClass().getCanonicalName() + " for loading snapshot '" + file.getAbsolutePath() + "'"); return chunkStore; @@ -156,7 +156,7 @@ public boolean containsWorld(String worldname) { } } catch (IOException ex) { // Skip the file, but print an error - logger.info("Could not load snapshot: " + LOGGER.info("Could not load snapshot: " + file.getPath()); } catch (DataException ex) { // No truezip, so tar file not supported. diff --git a/worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java b/worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java index e8b405961f..838e743d11 100644 --- a/worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java +++ b/worldedit-core/src/test/java/com/sk89q/minecraft/util/commands/CommandContextTest.java @@ -19,10 +19,10 @@ package com.sk89q.minecraft.util.commands; +import com.sk89q.worldedit.internal.util.LogManagerCompat; +import org.apache.logging.log4j.Logger; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.util.Arrays; import java.util.HashSet; @@ -36,7 +36,7 @@ public class CommandContextTest { - private static final Logger log = LoggerFactory.getLogger(CommandContextTest.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final String firstCmdString = "herpderp -opw testers \"mani world\" 'another thing' because something"; CommandContext firstCommand; @@ -45,7 +45,7 @@ public void setUpTest() { try { firstCommand = new CommandContext(firstCmdString, new HashSet<>(Arrays.asList('o', 'w'))); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Unexpected exception when creating CommandContext"); } } @@ -86,7 +86,7 @@ public void testOnlyQuotedString() { new CommandContext(cmd); new CommandContext(cmd2); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -97,7 +97,7 @@ public void testUnmatchedQuote() { try { new CommandContext(cmd); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -108,7 +108,7 @@ public void testMultipleSpaces() { try { new CommandContext(cmd); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -122,7 +122,7 @@ public void testFlagsAnywhere() { CommandContext context2 = new CommandContext("r hello -f world"); assertTrue(context2.hasFlag('f')); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -138,7 +138,7 @@ public void testExactJoinedStrings() { CommandContext context2 = new CommandContext("pm name \"hello world\" foo bar"); assertEquals("\"hello world\" foo bar", context2.getJoinedStrings(1)); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -150,7 +150,7 @@ public void testSlice() { assertArrayEquals(new String[] { "foo", "bar", "baz" }, context.getSlice(0)); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } @@ -161,7 +161,7 @@ public void testEmptyQuote() { CommandContext context = new CommandContext("region flag xmas blocked-cmds \"\""); assertEquals(context.argsLength(), 3); } catch (CommandException e) { - log.warn("Error", e); + LOGGER.warn("Error", e); fail("Error creating CommandContext"); } } diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java index 2181ca367a..a899948645 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/world/snapshot/experimental/fs/FileSystemSnapshotDatabaseTest.java @@ -26,7 +26,6 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.util.io.file.ArchiveNioSupport; import com.sk89q.worldedit.util.io.file.ArchiveNioSupports; -import com.sk89q.worldedit.util.io.file.TrueVfsArchiveNioSupport; import com.sk89q.worldedit.util.io.file.ZipArchiveNioSupport; import com.sk89q.worldedit.world.DataException; import com.sk89q.worldedit.world.storage.ChunkStoreHelper; @@ -161,7 +160,7 @@ void rootIsAbsoluteDir() throws IOException { @TestFactory Stream withSpecificNioSupport() { return Stream.of( - ZipArchiveNioSupport.getInstance(), TrueVfsArchiveNioSupport.getInstance() + ZipArchiveNioSupport.getInstance() ) .map(nioSupport -> { Stream nodes = Stream.of(FSSDTestType.values()) diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index a4714512e9..970e43e1df 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -47,9 +47,8 @@ repositories { dependencies { "api"(project(":worldedit-core")) "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { - because("Mojang provides Log4J, we bump to match Forge") + because("Mojang provides Log4J at 2.8.1") }) - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "minecraft"("com.mojang:minecraft:$minecraftVersion") "mappings"("net.fabricmc:yarn:$yarnMappings") @@ -135,12 +134,8 @@ addJarManifest(WorldEditKind.Mod, includeClasspath = true) tasks.named("shadowJar") { archiveClassifier.set("dist-dev") dependencies { - relocate("org.slf4j", "com.sk89q.worldedit-fabric.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit-fabric.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") - include(dependency("org.slf4j:slf4j-api")) - include(dependency("org.apache.logging.log4j:log4j-slf4j-impl")) include(dependency("org.antlr:antlr4-runtime")) } } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java index 755ee118e2..04b8ee5524 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java @@ -29,6 +29,7 @@ import com.sk89q.worldedit.extension.platform.PlatformManager; import com.sk89q.worldedit.fabric.net.handler.WECUIPacketHandler; import com.sk89q.worldedit.internal.anvil.ChunkDeleter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockCategory; @@ -63,7 +64,6 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; -import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.IOException; @@ -80,7 +80,7 @@ */ public class FabricWorldEdit implements ModInitializer { - private static final Logger LOGGER = LogManager.getLogger(); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public static final String MOD_ID = "worldedit"; public static final String CUI_PLUGIN_CHANNEL = "cui"; diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java index c7d53967c9..8366952f33 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/MixinConfigPlugin.java @@ -19,11 +19,11 @@ package com.sk89q.worldedit.fabric.internal; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.ModContainer; +import org.apache.logging.log4j.Logger; import org.objectweb.asm.tree.ClassNode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; @@ -34,7 +34,7 @@ import java.util.stream.Stream; public class MixinConfigPlugin implements IMixinConfigPlugin { - private static final Logger LOGGER = LoggerFactory.getLogger(MixinConfigPlugin.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); @Override public void onLoad(String mixinPackage) { diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index fecb44d1de..3f5bd761d0 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -27,10 +27,9 @@ configurations.all { dependencies { "api"(project(":worldedit-core")) - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { - because("Forge provides Log4J (Mojang provides a lower version, but Forge bumps)") + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.11.2") { + because("Forge provides Log4J at 2.11.2 (Mojang provides 2.8.1, but Forge bumps)") }) - "implementation"("org.apache.logging.log4j:log4j-slf4j-impl") "minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion") } @@ -95,15 +94,9 @@ addJarManifest(WorldEditKind.Mod, includeClasspath = false) tasks.named("shadowJar") { dependencies { - relocate("org.slf4j", "com.sk89q.worldedit-forge.slf4j") - relocate("org.apache.logging.slf4j", "com.sk89q.worldedit-forge.l4j") relocate("org.antlr.v4", "com.sk89q.worldedit.antlr4") - include(dependency("org.slf4j:slf4j-api")) - include(dependency("org.apache.logging.log4j:log4j-slf4j-impl")) include(dependency("org.antlr:antlr4-runtime")) - include(dependency("de.schlichtherle:truezip")) - include(dependency("net.java.truevfs:truevfs-profile-default_2.13")) include(dependency("org.mozilla:rhino-runtime")) } minimize { diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java index 5746537f2e..9ee5e55898 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java @@ -30,6 +30,7 @@ import com.sk89q.worldedit.forge.net.handler.WECUIPacketHandler; import com.sk89q.worldedit.forge.net.packet.LeftClickAirEventMessage; import com.sk89q.worldedit.internal.anvil.ChunkDeleter; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.biome.BiomeType; @@ -68,7 +69,6 @@ import net.minecraftforge.fml.network.FMLNetworkConstants; import net.minecraftforge.registries.ForgeRegistries; import org.apache.commons.lang3.tuple.Pair; -import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.IOException; @@ -86,7 +86,7 @@ @Mod(ForgeWorldEdit.MOD_ID) public class ForgeWorldEdit { - private static final Logger LOGGER = LogManager.getLogger(); + private static final Logger LOGGER = LogManagerCompat.getLogger(); public static final String MOD_ID = "worldedit"; public static final String CUI_PLUGIN_CHANNEL = "cui"; diff --git a/worldedit-sponge/build.gradle.kts b/worldedit-sponge/build.gradle.kts index 2ce396cce7..c7ae15fc15 100644 --- a/worldedit-sponge/build.gradle.kts +++ b/worldedit-sponge/build.gradle.kts @@ -20,7 +20,13 @@ repositories { dependencies { api(project(":worldedit-core")) api(project(":worldedit-libs:sponge")) - api("org.spongepowered:spongeapi:7.1.0") + api("org.spongepowered:spongeapi:7.1.0") { + exclude(group = "org.slf4j", module = "slf4j-api") + } + implementation(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { + because("Sponge 8 provides Log4J at 2.8.1") + }) + api("org.apache.logging.log4j:log4j-api") api("org.bstats:bstats-sponge:1.7") testImplementation("org.mockito:mockito-core:1.9.0-rc1") } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java index 889a9cf83a..54e46fcf1f 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java @@ -33,8 +33,8 @@ import com.sk89q.worldedit.sponge.adapter.SpongeImplAdapter; import com.sk89q.worldedit.sponge.adapter.SpongeImplLoader; import com.sk89q.worldedit.sponge.config.SpongeConfiguration; +import org.apache.logging.log4j.Logger; import org.bstats.sponge.Metrics2; -import org.slf4j.Logger; import org.spongepowered.api.Sponge; import org.spongepowered.api.block.BlockSnapshot; import org.spongepowered.api.block.BlockType; @@ -79,6 +79,8 @@ url = "https://enginehub.org/worldedit/") public class SpongeWorldEdit { + // I think this breaks right now b/c SpongeAPI 7 injects an slf4j logger + // But it should be fine in 8, where they're also Log4j @Inject private Logger logger; diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/adapter/SpongeImplLoader.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/adapter/SpongeImplLoader.java index 9b8e377566..47303b9d1f 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/adapter/SpongeImplLoader.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/adapter/SpongeImplLoader.java @@ -20,9 +20,9 @@ package com.sk89q.worldedit.sponge.adapter; import com.google.common.collect.Lists; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.io.Closer; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -38,7 +38,7 @@ */ public class SpongeImplLoader { - private static final Logger log = LoggerFactory.getLogger(SpongeImplLoader.class); + private static final Logger LOGGER = LogManagerCompat.getLogger(); private final List adapterCandidates = new ArrayList<>(); private String customCandidate; @@ -71,7 +71,7 @@ private void addDefaults() { if (className != null) { customCandidate = className; adapterCandidates.add(className); - log.info("-Dworldedit.sponge.adapter used to add " + className + " to the list of available Sponge adapters"); + LOGGER.info("-Dworldedit.sponge.adapter used to add " + className + " to the list of available Sponge adapters"); } } @@ -159,18 +159,18 @@ public SpongeImplAdapter loadAdapter() throws AdapterLoadException { if (SpongeImplAdapter.class.isAssignableFrom(cls)) { suitableAdapters.add((SpongeImplAdapter) cls.newInstance()); } else { - log.warn("Failed to load the Sponge adapter class '" + className + LOGGER.warn("Failed to load the Sponge adapter class '" + className + "' because it does not implement " + SpongeImplAdapter.class.getCanonicalName()); } } catch (ClassNotFoundException e) { - log.warn("Failed to load the Sponge adapter class '" + className + LOGGER.warn("Failed to load the Sponge adapter class '" + className + "' that is not supposed to be missing", e); } catch (IllegalAccessException e) { - log.warn("Failed to load the Sponge adapter class '" + className + LOGGER.warn("Failed to load the Sponge adapter class '" + className + "' that is not supposed to be raising this error", e); } catch (Throwable e) { if (className.equals(customCandidate)) { - log.warn("Failed to load the Sponge adapter class '" + className + "'", e); + LOGGER.warn("Failed to load the Sponge adapter class '" + className + "'", e); } } } diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java index b5cdd330fa..7435d69887 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/ConfigurateConfiguration.java @@ -29,7 +29,7 @@ import ninja.leaping.configurate.commented.CommentedConfigurationNode; import ninja.leaping.configurate.loader.ConfigurationLoader; import ninja.leaping.configurate.objectmapping.ObjectMappingException; -import org.slf4j.Logger; +import org.apache.logging.log4j.Logger; import java.io.IOException; import java.util.HashSet; diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/SpongeConfiguration.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/SpongeConfiguration.java index 333575b32a..05e9cd2e17 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/SpongeConfiguration.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/config/SpongeConfiguration.java @@ -23,7 +23,7 @@ import com.sk89q.worldedit.sponge.SpongeWorldEdit; import ninja.leaping.configurate.commented.CommentedConfigurationNode; import ninja.leaping.configurate.loader.ConfigurationLoader; -import org.slf4j.Logger; +import org.apache.logging.log4j.Logger; import org.spongepowered.api.config.DefaultConfig; import java.io.IOException; From acf9c3b2e1153e3b4dc8808d6f01907c2905f6c9 Mon Sep 17 00:00:00 2001 From: wizjany Date: Mon, 5 Apr 2021 09:22:51 -0400 Subject: [PATCH 083/813] Change oak stair shape to straight in legacy.json. --- .../resources/com/sk89q/worldedit/world/registry/legacy.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json index 545fa43797..82c2bdd990 100644 --- a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/legacy.json @@ -1 +1 @@ -{"blocks":{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block[snowy=false]","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol[snowy=false]","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling[stage=0]","6:1":"minecraft:spruce_sapling[stage=0]","6:2":"minecraft:birch_sapling[stage=0]","6:3":"minecraft:jungle_sapling[stage=0]","6:4":"minecraft:acacia_sapling[stage=0]","6:5":"minecraft:dark_oak_sapling[stage=0]","6:8":"minecraft:oak_sapling[stage=1]","6:9":"minecraft:spruce_sapling[stage=1]","6:10":"minecraft:birch_sapling[stage=1]","6:11":"minecraft:jungle_sapling[stage=1]","6:12":"minecraft:acacia_sapling[stage=1]","6:13":"minecraft:dark_oak_sapling[stage=1]","7:0":"minecraft:bedrock","8:0":"minecraft:water[level=0]","8:1":"minecraft:water[level=1]","8:2":"minecraft:water[level=2]","8:3":"minecraft:water[level=3]","8:4":"minecraft:water[level=4]","8:5":"minecraft:water[level=5]","8:6":"minecraft:water[level=6]","8:7":"minecraft:water[level=7]","8:8":"minecraft:water[level=8]","8:9":"minecraft:water[level=9]","8:10":"minecraft:water[level=10]","8:11":"minecraft:water[level=11]","8:12":"minecraft:water[level=12]","8:13":"minecraft:water[level=13]","8:14":"minecraft:water[level=14]","8:15":"minecraft:water[level=15]","9:0":"minecraft:water[level=0]","9:1":"minecraft:water[level=1]","9:2":"minecraft:water[level=2]","9:3":"minecraft:water[level=3]","9:4":"minecraft:water[level=4]","9:5":"minecraft:water[level=5]","9:6":"minecraft:water[level=6]","9:7":"minecraft:water[level=7]","9:8":"minecraft:water[level=8]","9:9":"minecraft:water[level=9]","9:10":"minecraft:water[level=10]","9:11":"minecraft:water[level=11]","9:12":"minecraft:water[level=12]","9:13":"minecraft:water[level=13]","9:14":"minecraft:water[level=14]","9:15":"minecraft:water[level=15]","10:0":"minecraft:lava[level=0]","10:1":"minecraft:lava[level=1]","10:2":"minecraft:lava[level=2]","10:3":"minecraft:lava[level=3]","10:4":"minecraft:lava[level=4]","10:5":"minecraft:lava[level=5]","10:6":"minecraft:lava[level=6]","10:7":"minecraft:lava[level=7]","10:8":"minecraft:lava[level=8]","10:9":"minecraft:lava[level=9]","10:10":"minecraft:lava[level=10]","10:11":"minecraft:lava[level=11]","10:12":"minecraft:lava[level=12]","10:13":"minecraft:lava[level=13]","10:14":"minecraft:lava[level=14]","10:15":"minecraft:lava[level=15]","11:0":"minecraft:lava[level=0]","11:1":"minecraft:lava[level=1]","11:2":"minecraft:lava[level=2]","11:3":"minecraft:lava[level=3]","11:4":"minecraft:lava[level=4]","11:5":"minecraft:lava[level=5]","11:6":"minecraft:lava[level=6]","11:7":"minecraft:lava[level=7]","11:8":"minecraft:lava[level=8]","11:9":"minecraft:lava[level=9]","11:10":"minecraft:lava[level=10]","11:11":"minecraft:lava[level=11]","11:12":"minecraft:lava[level=12]","11:13":"minecraft:lava[level=13]","11:14":"minecraft:lava[level=14]","11:15":"minecraft:lava[level=15]","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log[axis=y]","17:1":"minecraft:spruce_log[axis=y]","17:2":"minecraft:birch_log[axis=y]","17:3":"minecraft:jungle_log[axis=y]","17:4":"minecraft:oak_log[axis=x]","17:5":"minecraft:spruce_log[axis=x]","17:6":"minecraft:birch_log[axis=x]","17:7":"minecraft:jungle_log[axis=x]","17:8":"minecraft:oak_log[axis=z]","17:9":"minecraft:spruce_log[axis=z]","17:10":"minecraft:birch_log[axis=z]","17:11":"minecraft:jungle_log[axis=z]","17:12":"minecraft:oak_wood","17:13":"minecraft:spruce_wood","17:14":"minecraft:birch_wood","17:15":"minecraft:jungle_wood","18:0":"minecraft:oak_leaves[persistent=false,distance=1]","18:1":"minecraft:spruce_leaves[persistent=false,distance=1]","18:2":"minecraft:birch_leaves[persistent=false,distance=1]","18:3":"minecraft:jungle_leaves[persistent=false,distance=1]","18:4":"minecraft:oak_leaves[persistent=true,distance=1]","18:5":"minecraft:spruce_leaves[persistent=true,distance=1]","18:6":"minecraft:birch_leaves[persistent=true,distance=1]","18:7":"minecraft:jungle_leaves[persistent=true,distance=1]","18:8":"minecraft:oak_leaves[persistent=false,distance=1]","18:9":"minecraft:spruce_leaves[persistent=false,distance=1]","18:10":"minecraft:birch_leaves[persistent=false,distance=1]","18:11":"minecraft:jungle_leaves[persistent=false,distance=1]","18:12":"minecraft:oak_leaves[persistent=true,distance=1]","18:13":"minecraft:spruce_leaves[persistent=true,distance=1]","18:14":"minecraft:birch_leaves[persistent=true,distance=1]","18:15":"minecraft:jungle_leaves[persistent=true,distance=1]","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser[triggered=false,facing=down]","23:1":"minecraft:dispenser[triggered=false,facing=up]","23:2":"minecraft:dispenser[triggered=false,facing=north]","23:3":"minecraft:dispenser[triggered=false,facing=south]","23:4":"minecraft:dispenser[triggered=false,facing=west]","23:5":"minecraft:dispenser[triggered=false,facing=east]","23:8":"minecraft:dispenser[triggered=true,facing=down]","23:9":"minecraft:dispenser[triggered=true,facing=up]","23:10":"minecraft:dispenser[triggered=true,facing=north]","23:11":"minecraft:dispenser[triggered=true,facing=south]","23:12":"minecraft:dispenser[triggered=true,facing=west]","23:13":"minecraft:dispenser[triggered=true,facing=east]","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","26:0":"minecraft:red_bed[part=foot,facing=south,occupied=false]","26:1":"minecraft:red_bed[part=foot,facing=west,occupied=false]","26:2":"minecraft:red_bed[part=foot,facing=north,occupied=false]","26:3":"minecraft:red_bed[part=foot,facing=east,occupied=false]","26:4":"minecraft:red_bed[part=foot,facing=south,occupied=true]","26:5":"minecraft:red_bed[part=foot,facing=west,occupied=true]","26:6":"minecraft:red_bed[part=foot,facing=north,occupied=true]","26:7":"minecraft:red_bed[part=foot,facing=east,occupied=true]","26:8":"minecraft:red_bed[part=head,facing=south,occupied=false]","26:9":"minecraft:red_bed[part=head,facing=west,occupied=false]","26:10":"minecraft:red_bed[part=head,facing=north,occupied=false]","26:11":"minecraft:red_bed[part=head,facing=east,occupied=false]","26:12":"minecraft:red_bed[part=head,facing=south,occupied=true]","26:13":"minecraft:red_bed[part=head,facing=west,occupied=true]","26:14":"minecraft:red_bed[part=head,facing=north,occupied=true]","26:15":"minecraft:red_bed[part=head,facing=east,occupied=true]","27:0":"minecraft:powered_rail[shape=north_south,powered=false]","27:1":"minecraft:powered_rail[shape=east_west,powered=false]","27:2":"minecraft:powered_rail[shape=ascending_east,powered=false]","27:3":"minecraft:powered_rail[shape=ascending_west,powered=false]","27:4":"minecraft:powered_rail[shape=ascending_north,powered=false]","27:5":"minecraft:powered_rail[shape=ascending_south,powered=false]","27:8":"minecraft:powered_rail[shape=north_south,powered=true]","27:9":"minecraft:powered_rail[shape=east_west,powered=true]","27:10":"minecraft:powered_rail[shape=ascending_east,powered=true]","27:11":"minecraft:powered_rail[shape=ascending_west,powered=true]","27:12":"minecraft:powered_rail[shape=ascending_north,powered=true]","27:13":"minecraft:powered_rail[shape=ascending_south,powered=true]","28:0":"minecraft:detector_rail[shape=north_south,powered=false]","28:1":"minecraft:detector_rail[shape=east_west,powered=false]","28:2":"minecraft:detector_rail[shape=ascending_east,powered=false]","28:3":"minecraft:detector_rail[shape=ascending_west,powered=false]","28:4":"minecraft:detector_rail[shape=ascending_north,powered=false]","28:5":"minecraft:detector_rail[shape=ascending_south,powered=false]","28:8":"minecraft:detector_rail[shape=north_south,powered=true]","28:9":"minecraft:detector_rail[shape=east_west,powered=true]","28:10":"minecraft:detector_rail[shape=ascending_east,powered=true]","28:11":"minecraft:detector_rail[shape=ascending_west,powered=true]","28:12":"minecraft:detector_rail[shape=ascending_north,powered=true]","28:13":"minecraft:detector_rail[shape=ascending_south,powered=true]","29:0":"minecraft:sticky_piston[facing=down,extended=false]","29:1":"minecraft:sticky_piston[facing=up,extended=false]","29:2":"minecraft:sticky_piston[facing=north,extended=false]","29:3":"minecraft:sticky_piston[facing=south,extended=false]","29:4":"minecraft:sticky_piston[facing=west,extended=false]","29:5":"minecraft:sticky_piston[facing=east,extended=false]","29:8":"minecraft:sticky_piston[facing=down,extended=true]","29:9":"minecraft:sticky_piston[facing=up,extended=true]","29:10":"minecraft:sticky_piston[facing=north,extended=true]","29:11":"minecraft:sticky_piston[facing=south,extended=true]","29:12":"minecraft:sticky_piston[facing=west,extended=true]","29:13":"minecraft:sticky_piston[facing=east,extended=true]","30:0":"minecraft:cobweb","31:0":"minecraft:dead_bush","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston[facing=down,extended=false]","33:1":"minecraft:piston[facing=up,extended=false]","33:2":"minecraft:piston[facing=north,extended=false]","33:3":"minecraft:piston[facing=south,extended=false]","33:4":"minecraft:piston[facing=west,extended=false]","33:5":"minecraft:piston[facing=east,extended=false]","33:8":"minecraft:piston[facing=down,extended=true]","33:9":"minecraft:piston[facing=up,extended=true]","33:10":"minecraft:piston[facing=north,extended=true]","33:11":"minecraft:piston[facing=south,extended=true]","33:12":"minecraft:piston[facing=west,extended=true]","33:13":"minecraft:piston[facing=east,extended=true]","34:0":"minecraft:piston_head[short=false,facing=down,type=normal]","34:1":"minecraft:piston_head[short=false,facing=up,type=normal]","34:2":"minecraft:piston_head[short=false,facing=north,type=normal]","34:3":"minecraft:piston_head[short=false,facing=south,type=normal]","34:4":"minecraft:piston_head[short=false,facing=west,type=normal]","34:5":"minecraft:piston_head[short=false,facing=east,type=normal]","34:8":"minecraft:piston_head[short=false,facing=down,type=sticky]","34:9":"minecraft:piston_head[short=false,facing=up,type=sticky]","34:10":"minecraft:piston_head[short=false,facing=north,type=sticky]","34:11":"minecraft:piston_head[short=false,facing=south,type=sticky]","34:12":"minecraft:piston_head[short=false,facing=west,type=sticky]","34:13":"minecraft:piston_head[short=false,facing=east,type=sticky]","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","36:0":"minecraft:moving_piston[facing=down,type=normal]","36:1":"minecraft:moving_piston[facing=up,type=normal]","36:2":"minecraft:moving_piston[facing=north,type=normal]","36:3":"minecraft:moving_piston[facing=south,type=normal]","36:4":"minecraft:moving_piston[facing=west,type=normal]","36:5":"minecraft:moving_piston[facing=east,type=normal]","36:8":"minecraft:moving_piston[facing=down,type=sticky]","36:9":"minecraft:moving_piston[facing=up,type=sticky]","36:10":"minecraft:moving_piston[facing=north,type=sticky]","36:11":"minecraft:moving_piston[facing=south,type=sticky]","36:12":"minecraft:moving_piston[facing=west,type=sticky]","36:13":"minecraft:moving_piston[facing=east,type=sticky]","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","43:0":"minecraft:stone_slab[type=double]","43:1":"minecraft:sandstone_slab[type=double]","43:2":"minecraft:petrified_oak_slab[type=double]","43:3":"minecraft:cobblestone_slab[type=double]","43:4":"minecraft:brick_slab[type=double]","43:5":"minecraft:stone_brick_slab[type=double]","43:6":"minecraft:nether_brick_slab[type=double]","43:7":"minecraft:quartz_slab[type=double]","43:8":"minecraft:smooth_stone","43:9":"minecraft:smooth_sandstone","43:10":"minecraft:petrified_oak_slab[type=double]","43:11":"minecraft:cobblestone_slab[type=double]","43:12":"minecraft:brick_slab[type=double]","43:13":"minecraft:stone_brick_slab[type=double]","43:14":"minecraft:nether_brick_slab[type=double]","43:15":"minecraft:smooth_quartz","44:0":"minecraft:stone_slab[type=bottom]","44:1":"minecraft:sandstone_slab[type=bottom]","44:2":"minecraft:petrified_oak_slab[type=bottom]","44:3":"minecraft:cobblestone_slab[type=bottom]","44:4":"minecraft:brick_slab[type=bottom]","44:5":"minecraft:stone_brick_slab[type=bottom]","44:6":"minecraft:nether_brick_slab[type=bottom]","44:7":"minecraft:quartz_slab[type=bottom]","44:8":"minecraft:stone_slab[type=top]","44:9":"minecraft:sandstone_slab[type=top]","44:10":"minecraft:petrified_oak_slab[type=top]","44:11":"minecraft:cobblestone_slab[type=top]","44:12":"minecraft:brick_slab[type=top]","44:13":"minecraft:stone_brick_slab[type=top]","44:14":"minecraft:nether_brick_slab[type=top]","44:15":"minecraft:quartz_slab[type=top]","45:0":"minecraft:bricks","46:0":"minecraft:tnt[unstable=false]","46:1":"minecraft:tnt[unstable=true]","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:1":"minecraft:wall_torch[facing=east]","50:2":"minecraft:wall_torch[facing=west]","50:3":"minecraft:wall_torch[facing=south]","50:4":"minecraft:wall_torch[facing=north]","50:5":"minecraft:torch","51:0":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=0]","51:1":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=1]","51:2":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=2]","51:3":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=3]","51:4":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=4]","51:5":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=5]","51:6":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=6]","51:7":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=7]","51:8":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=8]","51:9":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=9]","51:10":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=10]","51:11":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=11]","51:12":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=12]","51:13":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=13]","51:14":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=14]","51:15":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=15]","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs[half=bottom,shape=outer_right,facing=east]","53:1":"minecraft:oak_stairs[half=bottom,shape=outer_right,facing=west]","53:2":"minecraft:oak_stairs[half=bottom,shape=outer_right,facing=south]","53:3":"minecraft:oak_stairs[half=bottom,shape=outer_right,facing=north]","53:4":"minecraft:oak_stairs[half=top,shape=outer_right,facing=east]","53:5":"minecraft:oak_stairs[half=top,shape=outer_right,facing=west]","53:6":"minecraft:oak_stairs[half=top,shape=outer_right,facing=south]","53:7":"minecraft:oak_stairs[half=top,shape=outer_right,facing=north]","54:2":"minecraft:chest[facing=north,type=single]","54:3":"minecraft:chest[facing=south,type=single]","54:4":"minecraft:chest[facing=west,type=single]","54:5":"minecraft:chest[facing=east,type=single]","55:0":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=0]","55:1":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=1]","55:2":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=2]","55:3":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=3]","55:4":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=4]","55:5":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=5]","55:6":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=6]","55:7":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=7]","55:8":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=8]","55:9":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=9]","55:10":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=10]","55:11":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=11]","55:12":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=12]","55:13":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=13]","55:14":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=14]","55:15":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=15]","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","59:0":"minecraft:wheat[age=0]","59:1":"minecraft:wheat[age=1]","59:2":"minecraft:wheat[age=2]","59:3":"minecraft:wheat[age=3]","59:4":"minecraft:wheat[age=4]","59:5":"minecraft:wheat[age=5]","59:6":"minecraft:wheat[age=6]","59:7":"minecraft:wheat[age=7]","60:0":"minecraft:farmland[moisture=0]","60:1":"minecraft:farmland[moisture=1]","60:2":"minecraft:farmland[moisture=2]","60:3":"minecraft:farmland[moisture=3]","60:4":"minecraft:farmland[moisture=4]","60:5":"minecraft:farmland[moisture=5]","60:6":"minecraft:farmland[moisture=6]","60:7":"minecraft:farmland[moisture=7]","61:2":"minecraft:furnace[facing=north,lit=false]","61:3":"minecraft:furnace[facing=south,lit=false]","61:4":"minecraft:furnace[facing=west,lit=false]","61:5":"minecraft:furnace[facing=east,lit=false]","62:2":"minecraft:furnace[facing=north,lit=true]","62:3":"minecraft:furnace[facing=south,lit=true]","62:4":"minecraft:furnace[facing=west,lit=true]","62:5":"minecraft:furnace[facing=east,lit=true]","63:0":"minecraft:sign[rotation=0]","63:1":"minecraft:sign[rotation=1]","63:2":"minecraft:sign[rotation=2]","63:3":"minecraft:sign[rotation=3]","63:4":"minecraft:sign[rotation=4]","63:5":"minecraft:sign[rotation=5]","63:6":"minecraft:sign[rotation=6]","63:7":"minecraft:sign[rotation=7]","63:8":"minecraft:sign[rotation=8]","63:9":"minecraft:sign[rotation=9]","63:10":"minecraft:sign[rotation=10]","63:11":"minecraft:sign[rotation=11]","63:12":"minecraft:sign[rotation=12]","63:13":"minecraft:sign[rotation=13]","63:14":"minecraft:sign[rotation=14]","63:15":"minecraft:sign[rotation=15]","64:0":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","64:1":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","64:2":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","64:3":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","64:4":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","64:5":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","64:6":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","64:7":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","64:8":"minecraft:oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","64:9":"minecraft:oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","64:10":"minecraft:oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","64:11":"minecraft:oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","65:2":"minecraft:ladder[facing=north]","65:3":"minecraft:ladder[facing=south]","65:4":"minecraft:ladder[facing=west]","65:5":"minecraft:ladder[facing=east]","66:0":"minecraft:rail[shape=north_south]","66:1":"minecraft:rail[shape=east_west]","66:2":"minecraft:rail[shape=ascending_east]","66:3":"minecraft:rail[shape=ascending_west]","66:4":"minecraft:rail[shape=ascending_north]","66:5":"minecraft:rail[shape=ascending_south]","66:6":"minecraft:rail[shape=south_east]","66:7":"minecraft:rail[shape=south_west]","66:8":"minecraft:rail[shape=north_west]","66:9":"minecraft:rail[shape=north_east]","67:0":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=east]","67:1":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=west]","67:2":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=south]","67:3":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=north]","67:4":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=east]","67:5":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=west]","67:6":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=south]","67:7":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=north]","68:2":"minecraft:wall_sign[facing=north]","68:3":"minecraft:wall_sign[facing=south]","68:4":"minecraft:wall_sign[facing=west]","68:5":"minecraft:wall_sign[facing=east]","69:0":"minecraft:lever[powered=false,facing=north,face=ceiling]","69:1":"minecraft:lever[powered=false,facing=east,face=wall]","69:2":"minecraft:lever[powered=false,facing=west,face=wall]","69:3":"minecraft:lever[powered=false,facing=south,face=wall]","69:4":"minecraft:lever[powered=false,facing=north,face=wall]","69:5":"minecraft:lever[powered=false,facing=east,face=floor]","69:6":"minecraft:lever[powered=false,facing=north,face=floor]","69:7":"minecraft:lever[powered=false,facing=east,face=ceiling]","69:8":"minecraft:lever[powered=true,facing=north,face=ceiling]","69:9":"minecraft:lever[powered=true,facing=east,face=wall]","69:10":"minecraft:lever[powered=true,facing=west,face=wall]","69:11":"minecraft:lever[powered=true,facing=south,face=wall]","69:12":"minecraft:lever[powered=true,facing=north,face=wall]","69:13":"minecraft:lever[powered=true,facing=east,face=floor]","69:14":"minecraft:lever[powered=true,facing=north,face=floor]","69:15":"minecraft:lever[powered=true,facing=east,face=ceiling]","70:0":"minecraft:stone_pressure_plate[powered=false]","70:1":"minecraft:stone_pressure_plate[powered=true]","71:0":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=false]","71:1":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=false]","71:2":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=false]","71:3":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=false]","71:4":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=true]","71:5":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=true]","71:6":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=true]","71:7":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=true]","71:8":"minecraft:iron_door[hinge=left,half=upper,powered=false,facing=east,open=false]","71:9":"minecraft:iron_door[hinge=right,half=upper,powered=false,facing=east,open=false]","71:10":"minecraft:iron_door[hinge=left,half=upper,powered=true,facing=east,open=false]","71:11":"minecraft:iron_door[hinge=right,half=upper,powered=true,facing=east,open=false]","72:0":"minecraft:oak_pressure_plate[powered=false]","72:1":"minecraft:oak_pressure_plate[powered=true]","73:0":"minecraft:redstone_ore[lit=false]","74:0":"minecraft:redstone_ore[lit=true]","75:1":"minecraft:redstone_wall_torch[facing=east,lit=false]","75:2":"minecraft:redstone_wall_torch[facing=west,lit=false]","75:3":"minecraft:redstone_wall_torch[facing=south,lit=false]","75:4":"minecraft:redstone_wall_torch[facing=north,lit=false]","75:5":"minecraft:redstone_torch[lit=false]","76:1":"minecraft:redstone_wall_torch[facing=east,lit=true]","76:2":"minecraft:redstone_wall_torch[facing=west,lit=true]","76:3":"minecraft:redstone_wall_torch[facing=south,lit=true]","76:4":"minecraft:redstone_wall_torch[facing=north,lit=true]","76:5":"minecraft:redstone_torch[lit=true]","77:0":"minecraft:stone_button[powered=false,facing=east,face=ceiling]","77:1":"minecraft:stone_button[powered=false,facing=east,face=wall]","77:2":"minecraft:stone_button[powered=false,facing=west,face=wall]","77:3":"minecraft:stone_button[powered=false,facing=south,face=wall]","77:4":"minecraft:stone_button[powered=false,facing=north,face=wall]","77:5":"minecraft:stone_button[powered=false,facing=east,face=floor]","77:8":"minecraft:stone_button[powered=true,facing=south,face=ceiling]","77:9":"minecraft:stone_button[powered=true,facing=east,face=wall]","77:10":"minecraft:stone_button[powered=true,facing=west,face=wall]","77:11":"minecraft:stone_button[powered=true,facing=south,face=wall]","77:12":"minecraft:stone_button[powered=true,facing=north,face=wall]","77:13":"minecraft:stone_button[powered=true,facing=south,face=floor]","78:0":"minecraft:snow[layers=1]","78:1":"minecraft:snow[layers=2]","78:2":"minecraft:snow[layers=3]","78:3":"minecraft:snow[layers=4]","78:4":"minecraft:snow[layers=5]","78:5":"minecraft:snow[layers=6]","78:6":"minecraft:snow[layers=7]","78:7":"minecraft:snow[layers=8]","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus[age=0]","81:1":"minecraft:cactus[age=1]","81:2":"minecraft:cactus[age=2]","81:3":"minecraft:cactus[age=3]","81:4":"minecraft:cactus[age=4]","81:5":"minecraft:cactus[age=5]","81:6":"minecraft:cactus[age=6]","81:7":"minecraft:cactus[age=7]","81:8":"minecraft:cactus[age=8]","81:9":"minecraft:cactus[age=9]","81:10":"minecraft:cactus[age=10]","81:11":"minecraft:cactus[age=11]","81:12":"minecraft:cactus[age=12]","81:13":"minecraft:cactus[age=13]","81:14":"minecraft:cactus[age=14]","81:15":"minecraft:cactus[age=15]","82:0":"minecraft:clay","83:0":"minecraft:sugar_cane[age=0]","83:1":"minecraft:sugar_cane[age=1]","83:2":"minecraft:sugar_cane[age=2]","83:3":"minecraft:sugar_cane[age=3]","83:4":"minecraft:sugar_cane[age=4]","83:5":"minecraft:sugar_cane[age=5]","83:6":"minecraft:sugar_cane[age=6]","83:7":"minecraft:sugar_cane[age=7]","83:8":"minecraft:sugar_cane[age=8]","83:9":"minecraft:sugar_cane[age=9]","83:10":"minecraft:sugar_cane[age=10]","83:11":"minecraft:sugar_cane[age=11]","83:12":"minecraft:sugar_cane[age=12]","83:13":"minecraft:sugar_cane[age=13]","83:14":"minecraft:sugar_cane[age=14]","83:15":"minecraft:sugar_cane[age=15]","84:0":"minecraft:jukebox[has_record=false]","84:1":"minecraft:jukebox[has_record=true]","85:0":"minecraft:oak_fence[east=false,south=false,north=false,west=false]","86:0":"minecraft:carved_pumpkin[facing=south]","86:1":"minecraft:carved_pumpkin[facing=west]","86:2":"minecraft:carved_pumpkin[facing=north]","86:3":"minecraft:carved_pumpkin[facing=east]","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","90:1":"minecraft:nether_portal[axis=x]","90:2":"minecraft:nether_portal[axis=z]","91:0":"minecraft:jack_o_lantern[facing=south]","91:1":"minecraft:jack_o_lantern[facing=west]","91:2":"minecraft:jack_o_lantern[facing=north]","91:3":"minecraft:jack_o_lantern[facing=east]","92:0":"minecraft:cake[bites=0]","92:1":"minecraft:cake[bites=1]","92:2":"minecraft:cake[bites=2]","92:3":"minecraft:cake[bites=3]","92:4":"minecraft:cake[bites=4]","92:5":"minecraft:cake[bites=5]","92:6":"minecraft:cake[bites=6]","93:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=false]","93:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=false]","93:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","93:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=false]","93:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=false]","93:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=false]","93:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=false]","93:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=false]","93:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=false]","93:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=false]","93:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=false]","93:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=false]","93:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=false]","93:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=false]","93:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=false]","93:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=false]","94:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=true]","94:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=true]","94:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=true]","94:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=true]","94:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=true]","94:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=true]","94:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=true]","94:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=true]","94:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=true]","94:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=true]","94:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=true]","94:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=true]","94:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=true]","94:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=true]","94:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=true]","94:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=true]","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor[half=bottom,facing=north,open=false,powered=false]","96:1":"minecraft:oak_trapdoor[half=bottom,facing=south,open=false,powered=false]","96:2":"minecraft:oak_trapdoor[half=bottom,facing=west,open=false,powered=false]","96:3":"minecraft:oak_trapdoor[half=bottom,facing=east,open=false,powered=false]","96:4":"minecraft:oak_trapdoor[half=bottom,facing=north,open=true,powered=true]","96:5":"minecraft:oak_trapdoor[half=bottom,facing=south,open=true,powered=true]","96:6":"minecraft:oak_trapdoor[half=bottom,facing=west,open=true,powered=true]","96:7":"minecraft:oak_trapdoor[half=bottom,facing=east,open=true,powered=true]","96:8":"minecraft:oak_trapdoor[half=top,facing=north,open=false,powered=false]","96:9":"minecraft:oak_trapdoor[half=top,facing=south,open=false,powered=false]","96:10":"minecraft:oak_trapdoor[half=top,facing=west,open=false,powered=false]","96:11":"minecraft:oak_trapdoor[half=top,facing=east,open=false,powered=false]","96:12":"minecraft:oak_trapdoor[half=top,facing=north,open=true,powered=true]","96:13":"minecraft:oak_trapdoor[half=top,facing=south,open=true,powered=true]","96:14":"minecraft:oak_trapdoor[half=top,facing=west,open=true,powered=true]","96:15":"minecraft:oak_trapdoor[half=top,facing=east,open=true,powered=true]","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","99:1":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","99:2":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","99:3":"minecraft:brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","99:4":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","99:5":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","99:6":"minecraft:brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","99:7":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","99:8":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","99:9":"minecraft:brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","99:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","99:14":"minecraft:brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","99:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","100:0":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","100:1":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","100:2":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","100:3":"minecraft:red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","100:4":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","100:5":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","100:6":"minecraft:red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","100:7":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","100:8":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","100:9":"minecraft:red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","100:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","100:14":"minecraft:red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","100:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","101:0":"minecraft:iron_bars[east=false,south=false,north=false,west=false]","102:0":"minecraft:glass_pane[east=false,south=false,north=false,west=false]","103:0":"minecraft:melon","104:0":"minecraft:pumpkin_stem[age=0]","104:1":"minecraft:pumpkin_stem[age=1]","104:2":"minecraft:pumpkin_stem[age=2]","104:3":"minecraft:pumpkin_stem[age=3]","104:4":"minecraft:pumpkin_stem[age=4]","104:5":"minecraft:pumpkin_stem[age=5]","104:6":"minecraft:pumpkin_stem[age=6]","104:7":"minecraft:pumpkin_stem[age=7]","105:0":"minecraft:melon_stem[age=0]","105:1":"minecraft:melon_stem[age=1]","105:2":"minecraft:melon_stem[age=2]","105:3":"minecraft:melon_stem[age=3]","105:4":"minecraft:melon_stem[age=4]","105:5":"minecraft:melon_stem[age=5]","105:6":"minecraft:melon_stem[age=6]","105:7":"minecraft:melon_stem[age=7]","106:0":"minecraft:vine[east=false,south=false,north=false,west=false,up=false]","106:1":"minecraft:vine[east=false,south=true,north=false,west=false,up=false]","106:2":"minecraft:vine[east=false,south=false,north=false,west=true,up=false]","106:3":"minecraft:vine[east=false,south=true,north=false,west=true,up=false]","106:4":"minecraft:vine[east=false,south=false,north=true,west=false,up=false]","106:5":"minecraft:vine[east=false,south=true,north=true,west=false,up=false]","106:6":"minecraft:vine[east=false,south=false,north=true,west=true,up=false]","106:7":"minecraft:vine[east=false,south=true,north=true,west=true,up=false]","106:8":"minecraft:vine[east=true,south=false,north=false,west=false,up=false]","106:9":"minecraft:vine[east=true,south=true,north=false,west=false,up=false]","106:10":"minecraft:vine[east=true,south=false,north=false,west=true,up=false]","106:11":"minecraft:vine[east=true,south=true,north=false,west=true,up=false]","106:12":"minecraft:vine[east=true,south=false,north=true,west=false,up=false]","106:13":"minecraft:vine[east=true,south=true,north=true,west=false,up=false]","106:14":"minecraft:vine[east=true,south=false,north=true,west=true,up=false]","106:15":"minecraft:vine[east=true,south=true,north=true,west=true,up=false]","107:0":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","107:1":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","107:2":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","107:3":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","107:4":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","107:5":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","107:6":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","107:7":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","107:8":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","107:9":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","107:10":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","107:11":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","107:12":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","107:13":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","107:14":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","107:15":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","108:0":"minecraft:brick_stairs[half=bottom,shape=straight,facing=east]","108:1":"minecraft:brick_stairs[half=bottom,shape=straight,facing=west]","108:2":"minecraft:brick_stairs[half=bottom,shape=straight,facing=south]","108:3":"minecraft:brick_stairs[half=bottom,shape=straight,facing=north]","108:4":"minecraft:brick_stairs[half=top,shape=straight,facing=east]","108:5":"minecraft:brick_stairs[half=top,shape=straight,facing=west]","108:6":"minecraft:brick_stairs[half=top,shape=straight,facing=south]","108:7":"minecraft:brick_stairs[half=top,shape=straight,facing=north]","109:0":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=east]","109:1":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=west]","109:2":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=south]","109:3":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=north]","109:4":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=east]","109:5":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=west]","109:6":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=south]","109:7":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=north]","110:0":"minecraft:mycelium[snowy=false]","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence[east=false,south=false,north=false,west=false]","114:0":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=east]","114:1":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=west]","114:2":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=south]","114:3":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=north]","114:4":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=east]","114:5":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=west]","114:6":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=south]","114:7":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=north]","115:0":"minecraft:nether_wart[age=0]","115:1":"minecraft:nether_wart[age=1]","115:2":"minecraft:nether_wart[age=2]","115:3":"minecraft:nether_wart[age=3]","116:0":"minecraft:enchanting_table","117:0":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","117:1":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]","117:2":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]","117:3":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]","117:4":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]","117:5":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]","117:6":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]","117:7":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]","118:0":"minecraft:cauldron[level=0]","118:1":"minecraft:cauldron[level=1]","118:2":"minecraft:cauldron[level=2]","118:3":"minecraft:cauldron[level=3]","119:0":"minecraft:end_portal","120:0":"minecraft:end_portal_frame[eye=false,facing=south]","120:1":"minecraft:end_portal_frame[eye=false,facing=west]","120:2":"minecraft:end_portal_frame[eye=false,facing=north]","120:3":"minecraft:end_portal_frame[eye=false,facing=east]","120:4":"minecraft:end_portal_frame[eye=true,facing=south]","120:5":"minecraft:end_portal_frame[eye=true,facing=west]","120:6":"minecraft:end_portal_frame[eye=true,facing=north]","120:7":"minecraft:end_portal_frame[eye=true,facing=east]","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp[lit=false]","124:0":"minecraft:redstone_lamp[lit=true]","125:0":"minecraft:oak_slab[type=double]","125:1":"minecraft:spruce_slab[type=double]","125:2":"minecraft:birch_slab[type=double]","125:3":"minecraft:jungle_slab[type=double]","125:4":"minecraft:acacia_slab[type=double]","125:5":"minecraft:dark_oak_slab[type=double]","126:0":"minecraft:oak_slab[type=bottom]","126:1":"minecraft:spruce_slab[type=bottom]","126:2":"minecraft:birch_slab[type=bottom]","126:3":"minecraft:jungle_slab[type=bottom]","126:4":"minecraft:acacia_slab[type=bottom]","126:5":"minecraft:dark_oak_slab[type=bottom]","126:8":"minecraft:oak_slab[type=top]","126:9":"minecraft:spruce_slab[type=top]","126:10":"minecraft:birch_slab[type=top]","126:11":"minecraft:jungle_slab[type=top]","126:12":"minecraft:acacia_slab[type=top]","126:13":"minecraft:dark_oak_slab[type=top]","127:0":"minecraft:cocoa[facing=south,age=0]","127:1":"minecraft:cocoa[facing=west,age=0]","127:2":"minecraft:cocoa[facing=north,age=0]","127:3":"minecraft:cocoa[facing=east,age=0]","127:4":"minecraft:cocoa[facing=south,age=1]","127:5":"minecraft:cocoa[facing=west,age=1]","127:6":"minecraft:cocoa[facing=north,age=1]","127:7":"minecraft:cocoa[facing=east,age=1]","127:8":"minecraft:cocoa[facing=south,age=2]","127:9":"minecraft:cocoa[facing=west,age=2]","127:10":"minecraft:cocoa[facing=north,age=2]","127:11":"minecraft:cocoa[facing=east,age=2]","128:0":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=east]","128:1":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=west]","128:2":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=south]","128:3":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=north]","128:4":"minecraft:sandstone_stairs[half=top,shape=straight,facing=east]","128:5":"minecraft:sandstone_stairs[half=top,shape=straight,facing=west]","128:6":"minecraft:sandstone_stairs[half=top,shape=straight,facing=south]","128:7":"minecraft:sandstone_stairs[half=top,shape=straight,facing=north]","129:0":"minecraft:emerald_ore","130:2":"minecraft:ender_chest[facing=north]","130:3":"minecraft:ender_chest[facing=south]","130:4":"minecraft:ender_chest[facing=west]","130:5":"minecraft:ender_chest[facing=east]","131:0":"minecraft:tripwire_hook[powered=false,attached=false,facing=south]","131:1":"minecraft:tripwire_hook[powered=false,attached=false,facing=west]","131:2":"minecraft:tripwire_hook[powered=false,attached=false,facing=north]","131:3":"minecraft:tripwire_hook[powered=false,attached=false,facing=east]","131:4":"minecraft:tripwire_hook[powered=false,attached=true,facing=south]","131:5":"minecraft:tripwire_hook[powered=false,attached=true,facing=west]","131:6":"minecraft:tripwire_hook[powered=false,attached=true,facing=north]","131:7":"minecraft:tripwire_hook[powered=false,attached=true,facing=east]","131:8":"minecraft:tripwire_hook[powered=true,attached=false,facing=south]","131:9":"minecraft:tripwire_hook[powered=true,attached=false,facing=west]","131:10":"minecraft:tripwire_hook[powered=true,attached=false,facing=north]","131:11":"minecraft:tripwire_hook[powered=true,attached=false,facing=east]","131:12":"minecraft:tripwire_hook[powered=true,attached=true,facing=south]","131:13":"minecraft:tripwire_hook[powered=true,attached=true,facing=west]","131:14":"minecraft:tripwire_hook[powered=true,attached=true,facing=north]","131:15":"minecraft:tripwire_hook[powered=true,attached=true,facing=east]","132:0":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:1":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:4":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:5":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=true]","132:8":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:9":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:12":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:13":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=true]","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=east]","134:1":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=west]","134:2":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=south]","134:3":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=north]","134:4":"minecraft:spruce_stairs[half=top,shape=straight,facing=east]","134:5":"minecraft:spruce_stairs[half=top,shape=straight,facing=west]","134:6":"minecraft:spruce_stairs[half=top,shape=straight,facing=south]","134:7":"minecraft:spruce_stairs[half=top,shape=straight,facing=north]","135:0":"minecraft:birch_stairs[half=bottom,shape=straight,facing=east]","135:1":"minecraft:birch_stairs[half=bottom,shape=straight,facing=west]","135:2":"minecraft:birch_stairs[half=bottom,shape=straight,facing=south]","135:3":"minecraft:birch_stairs[half=bottom,shape=straight,facing=north]","135:4":"minecraft:birch_stairs[half=top,shape=straight,facing=east]","135:5":"minecraft:birch_stairs[half=top,shape=straight,facing=west]","135:6":"minecraft:birch_stairs[half=top,shape=straight,facing=south]","135:7":"minecraft:birch_stairs[half=top,shape=straight,facing=north]","136:0":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=east]","136:1":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=west]","136:2":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=south]","136:3":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=north]","136:4":"minecraft:jungle_stairs[half=top,shape=straight,facing=east]","136:5":"minecraft:jungle_stairs[half=top,shape=straight,facing=west]","136:6":"minecraft:jungle_stairs[half=top,shape=straight,facing=south]","136:7":"minecraft:jungle_stairs[half=top,shape=straight,facing=north]","137:0":"minecraft:command_block[conditional=false,facing=down]","137:1":"minecraft:command_block[conditional=false,facing=up]","137:2":"minecraft:command_block[conditional=false,facing=north]","137:3":"minecraft:command_block[conditional=false,facing=south]","137:4":"minecraft:command_block[conditional=false,facing=west]","137:5":"minecraft:command_block[conditional=false,facing=east]","137:8":"minecraft:command_block[conditional=true,facing=down]","137:9":"minecraft:command_block[conditional=true,facing=up]","137:10":"minecraft:command_block[conditional=true,facing=north]","137:11":"minecraft:command_block[conditional=true,facing=south]","137:12":"minecraft:command_block[conditional=true,facing=west]","137:13":"minecraft:command_block[conditional=true,facing=east]","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","139:1":"minecraft:mossy_cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","140:0":"minecraft:flower_pot","140:1":"minecraft:potted_poppy","140:2":"minecraft:potted_dandelion","140:3":"minecraft:potted_oak_sapling","140:4":"minecraft:potted_spruce_sapling","140:5":"minecraft:potted_birch_sapling","140:6":"minecraft:potted_jungle_sapling","140:7":"minecraft:potted_red_mushroom","140:8":"minecraft:potted_brown_mushroom","140:9":"minecraft:potted_cactus","140:10":"minecraft:potted_dead_bush","140:11":"minecraft:potted_fern","140:12":"minecraft:potted_acacia_sapling","140:13":"minecraft:potted_dark_oak_sapling","140:14":"minecraft:potted_blue_orchid","140:15":"minecraft:potted_allium","141:0":"minecraft:carrots[age=0]","141:1":"minecraft:carrots[age=1]","141:2":"minecraft:carrots[age=2]","141:3":"minecraft:carrots[age=3]","141:4":"minecraft:carrots[age=4]","141:5":"minecraft:carrots[age=5]","141:6":"minecraft:carrots[age=6]","141:7":"minecraft:carrots[age=7]","142:0":"minecraft:potatoes[age=0]","142:1":"minecraft:potatoes[age=1]","142:2":"minecraft:potatoes[age=2]","142:3":"minecraft:potatoes[age=3]","142:4":"minecraft:potatoes[age=4]","142:5":"minecraft:potatoes[age=5]","142:6":"minecraft:potatoes[age=6]","142:7":"minecraft:potatoes[age=7]","143:0":"minecraft:oak_button[powered=false,facing=east,face=ceiling]","143:1":"minecraft:oak_button[powered=false,facing=east,face=wall]","143:2":"minecraft:oak_button[powered=false,facing=west,face=wall]","143:3":"minecraft:oak_button[powered=false,facing=south,face=wall]","143:4":"minecraft:oak_button[powered=false,facing=north,face=wall]","143:5":"minecraft:oak_button[powered=false,facing=east,face=floor]","143:8":"minecraft:oak_button[powered=true,facing=south,face=ceiling]","143:9":"minecraft:oak_button[powered=true,facing=east,face=wall]","143:10":"minecraft:oak_button[powered=true,facing=west,face=wall]","143:11":"minecraft:oak_button[powered=true,facing=south,face=wall]","143:12":"minecraft:oak_button[powered=true,facing=north,face=wall]","143:13":"minecraft:oak_button[powered=true,facing=south,face=floor]","144:0":"minecraft:skeleton_skull[rotation=0]","144:1":"minecraft:skeleton_skull[rotation=4]","144:2":"minecraft:skeleton_wall_skull[facing=north]","144:3":"minecraft:skeleton_wall_skull[facing=south]","144:4":"minecraft:skeleton_wall_skull[facing=west]","144:5":"minecraft:skeleton_wall_skull[facing=east]","144:8":"minecraft:skeleton_skull[rotation=8]","144:9":"minecraft:skeleton_skull[rotation=12]","144:10":"minecraft:skeleton_wall_skull[facing=north]","144:11":"minecraft:skeleton_wall_skull[facing=south]","144:12":"minecraft:skeleton_wall_skull[facing=west]","144:13":"minecraft:skeleton_wall_skull[facing=east]","145:0":"minecraft:anvil[facing=south]","145:1":"minecraft:anvil[facing=west]","145:2":"minecraft:anvil[facing=north]","145:3":"minecraft:anvil[facing=east]","145:4":"minecraft:chipped_anvil[facing=south]","145:5":"minecraft:chipped_anvil[facing=west]","145:6":"minecraft:chipped_anvil[facing=north]","145:7":"minecraft:chipped_anvil[facing=east]","145:8":"minecraft:damaged_anvil[facing=south]","145:9":"minecraft:damaged_anvil[facing=west]","145:10":"minecraft:damaged_anvil[facing=north]","145:11":"minecraft:damaged_anvil[facing=east]","146:2":"minecraft:trapped_chest[facing=north,type=single]","146:3":"minecraft:trapped_chest[facing=south,type=single]","146:4":"minecraft:trapped_chest[facing=west,type=single]","146:5":"minecraft:trapped_chest[facing=east,type=single]","147:0":"minecraft:light_weighted_pressure_plate[power=0]","147:1":"minecraft:light_weighted_pressure_plate[power=1]","147:2":"minecraft:light_weighted_pressure_plate[power=2]","147:3":"minecraft:light_weighted_pressure_plate[power=3]","147:4":"minecraft:light_weighted_pressure_plate[power=4]","147:5":"minecraft:light_weighted_pressure_plate[power=5]","147:6":"minecraft:light_weighted_pressure_plate[power=6]","147:7":"minecraft:light_weighted_pressure_plate[power=7]","147:8":"minecraft:light_weighted_pressure_plate[power=8]","147:9":"minecraft:light_weighted_pressure_plate[power=9]","147:10":"minecraft:light_weighted_pressure_plate[power=10]","147:11":"minecraft:light_weighted_pressure_plate[power=11]","147:12":"minecraft:light_weighted_pressure_plate[power=12]","147:13":"minecraft:light_weighted_pressure_plate[power=13]","147:14":"minecraft:light_weighted_pressure_plate[power=14]","147:15":"minecraft:light_weighted_pressure_plate[power=15]","148:0":"minecraft:heavy_weighted_pressure_plate[power=0]","148:1":"minecraft:heavy_weighted_pressure_plate[power=1]","148:2":"minecraft:heavy_weighted_pressure_plate[power=2]","148:3":"minecraft:heavy_weighted_pressure_plate[power=3]","148:4":"minecraft:heavy_weighted_pressure_plate[power=4]","148:5":"minecraft:heavy_weighted_pressure_plate[power=5]","148:6":"minecraft:heavy_weighted_pressure_plate[power=6]","148:7":"minecraft:heavy_weighted_pressure_plate[power=7]","148:8":"minecraft:heavy_weighted_pressure_plate[power=8]","148:9":"minecraft:heavy_weighted_pressure_plate[power=9]","148:10":"minecraft:heavy_weighted_pressure_plate[power=10]","148:11":"minecraft:heavy_weighted_pressure_plate[power=11]","148:12":"minecraft:heavy_weighted_pressure_plate[power=12]","148:13":"minecraft:heavy_weighted_pressure_plate[power=13]","148:14":"minecraft:heavy_weighted_pressure_plate[power=14]","148:15":"minecraft:heavy_weighted_pressure_plate[power=15]","149:0":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:1":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:2":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:3":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:4":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:5":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:6":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:7":"minecraft:comparator[mode=subtract,powered=false,facing=east]","149:8":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:9":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:10":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:11":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:12":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:13":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:14":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:15":"minecraft:comparator[mode=subtract,powered=false,facing=east]","150:0":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:1":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:2":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:3":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:4":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:5":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:6":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:7":"minecraft:comparator[mode=subtract,powered=true,facing=east]","150:8":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:9":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:10":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:11":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:12":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:13":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:14":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:15":"minecraft:comparator[mode=subtract,powered=true,facing=east]","151:0":"minecraft:daylight_detector[inverted=false,power=0]","151:1":"minecraft:daylight_detector[inverted=false,power=1]","151:2":"minecraft:daylight_detector[inverted=false,power=2]","151:3":"minecraft:daylight_detector[inverted=false,power=3]","151:4":"minecraft:daylight_detector[inverted=false,power=4]","151:5":"minecraft:daylight_detector[inverted=false,power=5]","151:6":"minecraft:daylight_detector[inverted=false,power=6]","151:7":"minecraft:daylight_detector[inverted=false,power=7]","151:8":"minecraft:daylight_detector[inverted=false,power=8]","151:9":"minecraft:daylight_detector[inverted=false,power=9]","151:10":"minecraft:daylight_detector[inverted=false,power=10]","151:11":"minecraft:daylight_detector[inverted=false,power=11]","151:12":"minecraft:daylight_detector[inverted=false,power=12]","151:13":"minecraft:daylight_detector[inverted=false,power=13]","151:14":"minecraft:daylight_detector[inverted=false,power=14]","151:15":"minecraft:daylight_detector[inverted=false,power=15]","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper[facing=down,enabled=true]","154:2":"minecraft:hopper[facing=north,enabled=true]","154:3":"minecraft:hopper[facing=south,enabled=true]","154:4":"minecraft:hopper[facing=west,enabled=true]","154:5":"minecraft:hopper[facing=east,enabled=true]","154:8":"minecraft:hopper[facing=down,enabled=false]","154:10":"minecraft:hopper[facing=north,enabled=false]","154:11":"minecraft:hopper[facing=south,enabled=false]","154:12":"minecraft:hopper[facing=west,enabled=false]","154:13":"minecraft:hopper[facing=east,enabled=false]","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar[axis=y]","155:3":"minecraft:quartz_pillar[axis=x]","155:4":"minecraft:quartz_pillar[axis=z]","155:6":"minecraft:quartz_pillar[axis=x]","155:10":"minecraft:quartz_pillar[axis=z]","156:0":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=east]","156:1":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=west]","156:2":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=south]","156:3":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=north]","156:4":"minecraft:quartz_stairs[half=top,shape=straight,facing=east]","156:5":"minecraft:quartz_stairs[half=top,shape=straight,facing=west]","156:6":"minecraft:quartz_stairs[half=top,shape=straight,facing=south]","156:7":"minecraft:quartz_stairs[half=top,shape=straight,facing=north]","157:0":"minecraft:activator_rail[shape=north_south,powered=false]","157:1":"minecraft:activator_rail[shape=east_west,powered=false]","157:2":"minecraft:activator_rail[shape=ascending_east,powered=false]","157:3":"minecraft:activator_rail[shape=ascending_west,powered=false]","157:4":"minecraft:activator_rail[shape=ascending_north,powered=false]","157:5":"minecraft:activator_rail[shape=ascending_south,powered=false]","157:8":"minecraft:activator_rail[shape=north_south,powered=true]","157:9":"minecraft:activator_rail[shape=east_west,powered=true]","157:10":"minecraft:activator_rail[shape=ascending_east,powered=true]","157:11":"minecraft:activator_rail[shape=ascending_west,powered=true]","157:12":"minecraft:activator_rail[shape=ascending_north,powered=true]","157:13":"minecraft:activator_rail[shape=ascending_south,powered=true]","158:0":"minecraft:dropper[triggered=false,facing=down]","158:1":"minecraft:dropper[triggered=false,facing=up]","158:2":"minecraft:dropper[triggered=false,facing=north]","158:3":"minecraft:dropper[triggered=false,facing=south]","158:4":"minecraft:dropper[triggered=false,facing=west]","158:5":"minecraft:dropper[triggered=false,facing=east]","158:8":"minecraft:dropper[triggered=true,facing=down]","158:9":"minecraft:dropper[triggered=true,facing=up]","158:10":"minecraft:dropper[triggered=true,facing=north]","158:11":"minecraft:dropper[triggered=true,facing=south]","158:12":"minecraft:dropper[triggered=true,facing=west]","158:13":"minecraft:dropper[triggered=true,facing=east]","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]","160:1":"minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]","160:2":"minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]","160:3":"minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:4":"minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]","160:5":"minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]","160:6":"minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]","160:7":"minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:8":"minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:9":"minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]","160:10":"minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]","160:11":"minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:12":"minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]","160:13":"minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]","160:14":"minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]","160:15":"minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]","161:0":"minecraft:acacia_leaves[persistent=false,distance=1]","161:1":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:4":"minecraft:acacia_leaves[persistent=true,distance=1]","161:5":"minecraft:dark_oak_leaves[persistent=true,distance=1]","161:8":"minecraft:acacia_leaves[persistent=false,distance=1]","161:9":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:12":"minecraft:acacia_leaves[persistent=true,distance=1]","161:13":"minecraft:dark_oak_leaves[persistent=true,distance=1]","162:0":"minecraft:acacia_log[axis=y]","162:1":"minecraft:dark_oak_log[axis=y]","162:4":"minecraft:acacia_log[axis=x]","162:5":"minecraft:dark_oak_log[axis=x]","162:8":"minecraft:acacia_log[axis=z]","162:9":"minecraft:dark_oak_log[axis=z]","162:12":"minecraft:acacia_wood","162:13":"minecraft:dark_oak_wood","163:0":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=east]","163:1":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=west]","163:2":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=south]","163:3":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=north]","163:4":"minecraft:acacia_stairs[half=top,shape=straight,facing=east]","163:5":"minecraft:acacia_stairs[half=top,shape=straight,facing=west]","163:6":"minecraft:acacia_stairs[half=top,shape=straight,facing=south]","163:7":"minecraft:acacia_stairs[half=top,shape=straight,facing=north]","164:0":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=east]","164:1":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=west]","164:2":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=south]","164:3":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=north]","164:4":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=east]","164:5":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=west]","164:6":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=south]","164:7":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=north]","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor[half=bottom,facing=north,open=false]","167:1":"minecraft:iron_trapdoor[half=bottom,facing=south,open=false]","167:2":"minecraft:iron_trapdoor[half=bottom,facing=west,open=false]","167:3":"minecraft:iron_trapdoor[half=bottom,facing=east,open=false]","167:4":"minecraft:iron_trapdoor[half=bottom,facing=north,open=true]","167:5":"minecraft:iron_trapdoor[half=bottom,facing=south,open=true]","167:6":"minecraft:iron_trapdoor[half=bottom,facing=west,open=true]","167:7":"minecraft:iron_trapdoor[half=bottom,facing=east,open=true]","167:8":"minecraft:iron_trapdoor[half=top,facing=north,open=false]","167:9":"minecraft:iron_trapdoor[half=top,facing=south,open=false]","167:10":"minecraft:iron_trapdoor[half=top,facing=west,open=false]","167:11":"minecraft:iron_trapdoor[half=top,facing=east,open=false]","167:12":"minecraft:iron_trapdoor[half=top,facing=north,open=true]","167:13":"minecraft:iron_trapdoor[half=top,facing=south,open=true]","167:14":"minecraft:iron_trapdoor[half=top,facing=west,open=true]","167:15":"minecraft:iron_trapdoor[half=top,facing=east,open=true]","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block[axis=y]","170:4":"minecraft:hay_block[axis=x]","170:8":"minecraft:hay_block[axis=z]","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower[half=lower]","175:1":"minecraft:lilac[half=lower]","175:2":"minecraft:tall_grass[half=lower]","175:3":"minecraft:large_fern[half=lower]","175:4":"minecraft:rose_bush[half=lower]","175:5":"minecraft:peony[half=lower]","175:8":"minecraft:sunflower[half=upper]","175:9":"minecraft:lilac[half=upper]","175:10":"minecraft:tall_grass[half=upper]","175:11":"minecraft:large_fern[half=upper]","175:12":"minecraft:rose_bush[half=upper]","175:13":"minecraft:peony[half=upper]","176:0":"minecraft:white_banner[rotation=0]","176:1":"minecraft:white_banner[rotation=1]","176:2":"minecraft:white_banner[rotation=2]","176:3":"minecraft:white_banner[rotation=3]","176:4":"minecraft:white_banner[rotation=4]","176:5":"minecraft:white_banner[rotation=5]","176:6":"minecraft:white_banner[rotation=6]","176:7":"minecraft:white_banner[rotation=7]","176:8":"minecraft:white_banner[rotation=8]","176:9":"minecraft:white_banner[rotation=9]","176:10":"minecraft:white_banner[rotation=10]","176:11":"minecraft:white_banner[rotation=11]","176:12":"minecraft:white_banner[rotation=12]","176:13":"minecraft:white_banner[rotation=13]","176:14":"minecraft:white_banner[rotation=14]","176:15":"minecraft:white_banner[rotation=15]","177:2":"minecraft:white_wall_banner[facing=north]","177:3":"minecraft:white_wall_banner[facing=south]","177:4":"minecraft:white_wall_banner[facing=west]","177:5":"minecraft:white_wall_banner[facing=east]","178:0":"minecraft:daylight_detector[inverted=true,power=0]","178:1":"minecraft:daylight_detector[inverted=true,power=1]","178:2":"minecraft:daylight_detector[inverted=true,power=2]","178:3":"minecraft:daylight_detector[inverted=true,power=3]","178:4":"minecraft:daylight_detector[inverted=true,power=4]","178:5":"minecraft:daylight_detector[inverted=true,power=5]","178:6":"minecraft:daylight_detector[inverted=true,power=6]","178:7":"minecraft:daylight_detector[inverted=true,power=7]","178:8":"minecraft:daylight_detector[inverted=true,power=8]","178:9":"minecraft:daylight_detector[inverted=true,power=9]","178:10":"minecraft:daylight_detector[inverted=true,power=10]","178:11":"minecraft:daylight_detector[inverted=true,power=11]","178:12":"minecraft:daylight_detector[inverted=true,power=12]","178:13":"minecraft:daylight_detector[inverted=true,power=13]","178:14":"minecraft:daylight_detector[inverted=true,power=14]","178:15":"minecraft:daylight_detector[inverted=true,power=15]","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=east]","180:1":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=west]","180:2":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=south]","180:3":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=north]","180:4":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=east]","180:5":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=west]","180:6":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=south]","180:7":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=north]","181:0":"minecraft:red_sandstone_slab[type=double]","181:8":"minecraft:smooth_red_sandstone","182:0":"minecraft:red_sandstone_slab[type=bottom]","182:8":"minecraft:red_sandstone_slab[type=top]","183:0":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=false]","183:1":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=false]","183:2":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=false]","183:3":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=false]","183:4":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=true]","183:5":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=true]","183:6":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=true]","183:7":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=true]","183:8":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=false]","183:9":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=false]","183:10":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=false]","183:11":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=false]","183:12":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=true]","183:13":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=true]","183:14":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=true]","183:15":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=true]","184:0":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=false]","184:1":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=false]","184:2":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=false]","184:3":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=false]","184:4":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=true]","184:5":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=true]","184:6":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=true]","184:7":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=true]","184:8":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=false]","184:9":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=false]","184:10":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=false]","184:11":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=false]","184:12":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=true]","184:13":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=true]","184:14":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=true]","184:15":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=true]","185:0":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=false]","185:1":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=false]","185:2":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=false]","185:3":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=false]","185:4":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=true]","185:5":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=true]","185:6":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=true]","185:7":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=true]","185:8":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=false]","185:9":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=false]","185:10":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=false]","185:11":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=false]","185:12":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=true]","185:13":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=true]","185:14":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=true]","185:15":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=true]","186:0":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","186:1":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","186:2":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","186:3":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","186:4":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","186:5":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","186:6":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","186:7":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","186:8":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","186:9":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","186:10":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","186:11":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","186:12":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","186:13":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","186:14":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","186:15":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","187:0":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=false]","187:1":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=false]","187:2":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=false]","187:3":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=false]","187:4":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=true]","187:5":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=true]","187:6":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=true]","187:7":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=true]","187:8":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=false]","187:9":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=false]","187:10":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=false]","187:11":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=false]","187:12":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=true]","187:13":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=true]","187:14":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=true]","187:15":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=true]","188:0":"minecraft:spruce_fence[east=false,south=false,north=false,west=false]","189:0":"minecraft:birch_fence[east=false,south=false,north=false,west=false]","190:0":"minecraft:jungle_fence[east=false,south=false,north=false,west=false]","191:0":"minecraft:dark_oak_fence[east=false,south=false,north=false,west=false]","192:0":"minecraft:acacia_fence[east=false,south=false,north=false,west=false]","193:0":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=false]","193:1":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=false]","193:2":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=false]","193:3":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=false]","193:4":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=true]","193:5":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=true]","193:6":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=true]","193:7":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=true]","193:8":"minecraft:spruce_door[hinge=left,half=upper,powered=false,facing=east,open=false]","193:9":"minecraft:spruce_door[hinge=right,half=upper,powered=false,facing=east,open=false]","193:10":"minecraft:spruce_door[hinge=left,half=upper,powered=true,facing=east,open=false]","193:11":"minecraft:spruce_door[hinge=right,half=upper,powered=true,facing=east,open=false]","194:0":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=false]","194:1":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=false]","194:2":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=false]","194:3":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=false]","194:4":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=true]","194:5":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=true]","194:6":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=true]","194:7":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=true]","194:8":"minecraft:birch_door[hinge=left,half=upper,powered=false,facing=east,open=false]","194:9":"minecraft:birch_door[hinge=right,half=upper,powered=false,facing=east,open=false]","194:10":"minecraft:birch_door[hinge=left,half=upper,powered=true,facing=east,open=false]","194:11":"minecraft:birch_door[hinge=right,half=upper,powered=true,facing=east,open=false]","195:0":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=false]","195:1":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=false]","195:2":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=false]","195:3":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=false]","195:4":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=true]","195:5":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=true]","195:6":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=true]","195:7":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=true]","195:8":"minecraft:jungle_door[hinge=left,half=upper,powered=false,facing=east,open=false]","195:9":"minecraft:jungle_door[hinge=right,half=upper,powered=false,facing=east,open=false]","195:10":"minecraft:jungle_door[hinge=left,half=upper,powered=true,facing=east,open=false]","195:11":"minecraft:jungle_door[hinge=right,half=upper,powered=true,facing=east,open=false]","196:0":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=false]","196:1":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=false]","196:2":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=false]","196:3":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=false]","196:4":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=true]","196:5":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=true]","196:6":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=true]","196:7":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=true]","196:8":"minecraft:acacia_door[hinge=left,half=upper,powered=false,facing=east,open=false]","196:9":"minecraft:acacia_door[hinge=right,half=upper,powered=false,facing=east,open=false]","196:10":"minecraft:acacia_door[hinge=left,half=upper,powered=true,facing=east,open=false]","196:11":"minecraft:acacia_door[hinge=right,half=upper,powered=true,facing=east,open=false]","197:0":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","197:1":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","197:2":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","197:3":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","197:4":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","197:5":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","197:6":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","197:7":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","197:8":"minecraft:dark_oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","197:9":"minecraft:dark_oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","197:10":"minecraft:dark_oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","197:11":"minecraft:dark_oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","198:0":"minecraft:end_rod[facing=down]","198:1":"minecraft:end_rod[facing=up]","198:2":"minecraft:end_rod[facing=north]","198:3":"minecraft:end_rod[facing=south]","198:4":"minecraft:end_rod[facing=west]","198:5":"minecraft:end_rod[facing=east]","199:0":"minecraft:chorus_plant[east=false,south=false,north=false,west=false,up=false,down=false]","200:0":"minecraft:chorus_flower[age=0]","200:1":"minecraft:chorus_flower[age=1]","200:2":"minecraft:chorus_flower[age=2]","200:3":"minecraft:chorus_flower[age=3]","200:4":"minecraft:chorus_flower[age=4]","200:5":"minecraft:chorus_flower[age=5]","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar[axis=y]","202:4":"minecraft:purpur_pillar[axis=x]","202:8":"minecraft:purpur_pillar[axis=z]","203:0":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=east]","203:1":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=west]","203:2":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=south]","203:3":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=north]","203:4":"minecraft:purpur_stairs[half=top,shape=straight,facing=east]","203:5":"minecraft:purpur_stairs[half=top,shape=straight,facing=west]","203:6":"minecraft:purpur_stairs[half=top,shape=straight,facing=south]","203:7":"minecraft:purpur_stairs[half=top,shape=straight,facing=north]","204:0":"minecraft:purpur_slab[type=double]","205:0":"minecraft:purpur_slab[type=bottom]","205:8":"minecraft:purpur_slab[type=top]","206:0":"minecraft:end_stone_bricks","207:0":"minecraft:beetroots[age=0]","207:1":"minecraft:beetroots[age=1]","207:2":"minecraft:beetroots[age=2]","207:3":"minecraft:beetroots[age=3]","208:0":"minecraft:grass_path","209:0":"minecraft:end_gateway","210:0":"minecraft:repeating_command_block[conditional=false,facing=down]","210:1":"minecraft:repeating_command_block[conditional=false,facing=up]","210:2":"minecraft:repeating_command_block[conditional=false,facing=north]","210:3":"minecraft:repeating_command_block[conditional=false,facing=south]","210:4":"minecraft:repeating_command_block[conditional=false,facing=west]","210:5":"minecraft:repeating_command_block[conditional=false,facing=east]","210:8":"minecraft:repeating_command_block[conditional=true,facing=down]","210:9":"minecraft:repeating_command_block[conditional=true,facing=up]","210:10":"minecraft:repeating_command_block[conditional=true,facing=north]","210:11":"minecraft:repeating_command_block[conditional=true,facing=south]","210:12":"minecraft:repeating_command_block[conditional=true,facing=west]","210:13":"minecraft:repeating_command_block[conditional=true,facing=east]","211:0":"minecraft:chain_command_block[conditional=false,facing=down]","211:1":"minecraft:chain_command_block[conditional=false,facing=up]","211:2":"minecraft:chain_command_block[conditional=false,facing=north]","211:3":"minecraft:chain_command_block[conditional=false,facing=south]","211:4":"minecraft:chain_command_block[conditional=false,facing=west]","211:5":"minecraft:chain_command_block[conditional=false,facing=east]","211:8":"minecraft:chain_command_block[conditional=true,facing=down]","211:9":"minecraft:chain_command_block[conditional=true,facing=up]","211:10":"minecraft:chain_command_block[conditional=true,facing=north]","211:11":"minecraft:chain_command_block[conditional=true,facing=south]","211:12":"minecraft:chain_command_block[conditional=true,facing=west]","211:13":"minecraft:chain_command_block[conditional=true,facing=east]","212:0":"minecraft:frosted_ice[age=0]","212:1":"minecraft:frosted_ice[age=1]","212:2":"minecraft:frosted_ice[age=2]","212:3":"minecraft:frosted_ice[age=3]","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block[axis=y]","216:4":"minecraft:bone_block[axis=x]","216:8":"minecraft:bone_block[axis=z]","217:0":"minecraft:structure_void","218:0":"minecraft:observer[powered=false,facing=down]","218:1":"minecraft:observer[powered=false,facing=up]","218:2":"minecraft:observer[powered=false,facing=north]","218:3":"minecraft:observer[powered=false,facing=south]","218:4":"minecraft:observer[powered=false,facing=west]","218:5":"minecraft:observer[powered=false,facing=east]","218:8":"minecraft:observer[powered=true,facing=down]","218:9":"minecraft:observer[powered=true,facing=up]","218:10":"minecraft:observer[powered=true,facing=north]","218:11":"minecraft:observer[powered=true,facing=south]","218:12":"minecraft:observer[powered=true,facing=west]","218:13":"minecraft:observer[powered=true,facing=east]","219:0":"minecraft:white_shulker_box[facing=down]","219:1":"minecraft:white_shulker_box[facing=up]","219:2":"minecraft:white_shulker_box[facing=north]","219:3":"minecraft:white_shulker_box[facing=south]","219:4":"minecraft:white_shulker_box[facing=west]","219:5":"minecraft:white_shulker_box[facing=east]","220:0":"minecraft:orange_shulker_box[facing=down]","220:1":"minecraft:orange_shulker_box[facing=up]","220:2":"minecraft:orange_shulker_box[facing=north]","220:3":"minecraft:orange_shulker_box[facing=south]","220:4":"minecraft:orange_shulker_box[facing=west]","220:5":"minecraft:orange_shulker_box[facing=east]","221:0":"minecraft:magenta_shulker_box[facing=down]","221:1":"minecraft:magenta_shulker_box[facing=up]","221:2":"minecraft:magenta_shulker_box[facing=north]","221:3":"minecraft:magenta_shulker_box[facing=south]","221:4":"minecraft:magenta_shulker_box[facing=west]","221:5":"minecraft:magenta_shulker_box[facing=east]","222:0":"minecraft:light_blue_shulker_box[facing=down]","222:1":"minecraft:light_blue_shulker_box[facing=up]","222:2":"minecraft:light_blue_shulker_box[facing=north]","222:3":"minecraft:light_blue_shulker_box[facing=south]","222:4":"minecraft:light_blue_shulker_box[facing=west]","222:5":"minecraft:light_blue_shulker_box[facing=east]","223:0":"minecraft:yellow_shulker_box[facing=down]","223:1":"minecraft:yellow_shulker_box[facing=up]","223:2":"minecraft:yellow_shulker_box[facing=north]","223:3":"minecraft:yellow_shulker_box[facing=south]","223:4":"minecraft:yellow_shulker_box[facing=west]","223:5":"minecraft:yellow_shulker_box[facing=east]","224:0":"minecraft:lime_shulker_box[facing=down]","224:1":"minecraft:lime_shulker_box[facing=up]","224:2":"minecraft:lime_shulker_box[facing=north]","224:3":"minecraft:lime_shulker_box[facing=south]","224:4":"minecraft:lime_shulker_box[facing=west]","224:5":"minecraft:lime_shulker_box[facing=east]","225:0":"minecraft:pink_shulker_box[facing=down]","225:1":"minecraft:pink_shulker_box[facing=up]","225:2":"minecraft:pink_shulker_box[facing=north]","225:3":"minecraft:pink_shulker_box[facing=south]","225:4":"minecraft:pink_shulker_box[facing=west]","225:5":"minecraft:pink_shulker_box[facing=east]","226:0":"minecraft:gray_shulker_box[facing=down]","226:1":"minecraft:gray_shulker_box[facing=up]","226:2":"minecraft:gray_shulker_box[facing=north]","226:3":"minecraft:gray_shulker_box[facing=south]","226:4":"minecraft:gray_shulker_box[facing=west]","226:5":"minecraft:gray_shulker_box[facing=east]","227:0":"minecraft:light_gray_shulker_box[facing=down]","227:1":"minecraft:light_gray_shulker_box[facing=up]","227:2":"minecraft:light_gray_shulker_box[facing=north]","227:3":"minecraft:light_gray_shulker_box[facing=south]","227:4":"minecraft:light_gray_shulker_box[facing=west]","227:5":"minecraft:light_gray_shulker_box[facing=east]","228:0":"minecraft:cyan_shulker_box[facing=down]","228:1":"minecraft:cyan_shulker_box[facing=up]","228:2":"minecraft:cyan_shulker_box[facing=north]","228:3":"minecraft:cyan_shulker_box[facing=south]","228:4":"minecraft:cyan_shulker_box[facing=west]","228:5":"minecraft:cyan_shulker_box[facing=east]","229:0":"minecraft:purple_shulker_box[facing=down]","229:1":"minecraft:purple_shulker_box[facing=up]","229:2":"minecraft:purple_shulker_box[facing=north]","229:3":"minecraft:purple_shulker_box[facing=south]","229:4":"minecraft:purple_shulker_box[facing=west]","229:5":"minecraft:purple_shulker_box[facing=east]","230:0":"minecraft:blue_shulker_box[facing=down]","230:1":"minecraft:blue_shulker_box[facing=up]","230:2":"minecraft:blue_shulker_box[facing=north]","230:3":"minecraft:blue_shulker_box[facing=south]","230:4":"minecraft:blue_shulker_box[facing=west]","230:5":"minecraft:blue_shulker_box[facing=east]","231:0":"minecraft:brown_shulker_box[facing=down]","231:1":"minecraft:brown_shulker_box[facing=up]","231:2":"minecraft:brown_shulker_box[facing=north]","231:3":"minecraft:brown_shulker_box[facing=south]","231:4":"minecraft:brown_shulker_box[facing=west]","231:5":"minecraft:brown_shulker_box[facing=east]","232:0":"minecraft:green_shulker_box[facing=down]","232:1":"minecraft:green_shulker_box[facing=up]","232:2":"minecraft:green_shulker_box[facing=north]","232:3":"minecraft:green_shulker_box[facing=south]","232:4":"minecraft:green_shulker_box[facing=west]","232:5":"minecraft:green_shulker_box[facing=east]","233:0":"minecraft:red_shulker_box[facing=down]","233:1":"minecraft:red_shulker_box[facing=up]","233:2":"minecraft:red_shulker_box[facing=north]","233:3":"minecraft:red_shulker_box[facing=south]","233:4":"minecraft:red_shulker_box[facing=west]","233:5":"minecraft:red_shulker_box[facing=east]","234:0":"minecraft:black_shulker_box[facing=down]","234:1":"minecraft:black_shulker_box[facing=up]","234:2":"minecraft:black_shulker_box[facing=north]","234:3":"minecraft:black_shulker_box[facing=south]","234:4":"minecraft:black_shulker_box[facing=west]","234:5":"minecraft:black_shulker_box[facing=east]","235:0":"minecraft:white_glazed_terracotta[facing=south]","235:1":"minecraft:white_glazed_terracotta[facing=west]","235:2":"minecraft:white_glazed_terracotta[facing=north]","235:3":"minecraft:white_glazed_terracotta[facing=east]","236:0":"minecraft:orange_glazed_terracotta[facing=south]","236:1":"minecraft:orange_glazed_terracotta[facing=west]","236:2":"minecraft:orange_glazed_terracotta[facing=north]","236:3":"minecraft:orange_glazed_terracotta[facing=east]","237:0":"minecraft:magenta_glazed_terracotta[facing=south]","237:1":"minecraft:magenta_glazed_terracotta[facing=west]","237:2":"minecraft:magenta_glazed_terracotta[facing=north]","237:3":"minecraft:magenta_glazed_terracotta[facing=east]","238:0":"minecraft:light_blue_glazed_terracotta[facing=south]","238:1":"minecraft:light_blue_glazed_terracotta[facing=west]","238:2":"minecraft:light_blue_glazed_terracotta[facing=north]","238:3":"minecraft:light_blue_glazed_terracotta[facing=east]","239:0":"minecraft:yellow_glazed_terracotta[facing=south]","239:1":"minecraft:yellow_glazed_terracotta[facing=west]","239:2":"minecraft:yellow_glazed_terracotta[facing=north]","239:3":"minecraft:yellow_glazed_terracotta[facing=east]","240:0":"minecraft:lime_glazed_terracotta[facing=south]","240:1":"minecraft:lime_glazed_terracotta[facing=west]","240:2":"minecraft:lime_glazed_terracotta[facing=north]","240:3":"minecraft:lime_glazed_terracotta[facing=east]","241:0":"minecraft:pink_glazed_terracotta[facing=south]","241:1":"minecraft:pink_glazed_terracotta[facing=west]","241:2":"minecraft:pink_glazed_terracotta[facing=north]","241:3":"minecraft:pink_glazed_terracotta[facing=east]","242:0":"minecraft:gray_glazed_terracotta[facing=south]","242:1":"minecraft:gray_glazed_terracotta[facing=west]","242:2":"minecraft:gray_glazed_terracotta[facing=north]","242:3":"minecraft:gray_glazed_terracotta[facing=east]","243:0":"minecraft:light_gray_glazed_terracotta[facing=south]","243:1":"minecraft:light_gray_glazed_terracotta[facing=west]","243:2":"minecraft:light_gray_glazed_terracotta[facing=north]","243:3":"minecraft:light_gray_glazed_terracotta[facing=east]","244:0":"minecraft:cyan_glazed_terracotta[facing=south]","244:1":"minecraft:cyan_glazed_terracotta[facing=west]","244:2":"minecraft:cyan_glazed_terracotta[facing=north]","244:3":"minecraft:cyan_glazed_terracotta[facing=east]","245:0":"minecraft:purple_glazed_terracotta[facing=south]","245:1":"minecraft:purple_glazed_terracotta[facing=west]","245:2":"minecraft:purple_glazed_terracotta[facing=north]","245:3":"minecraft:purple_glazed_terracotta[facing=east]","246:0":"minecraft:blue_glazed_terracotta[facing=south]","246:1":"minecraft:blue_glazed_terracotta[facing=west]","246:2":"minecraft:blue_glazed_terracotta[facing=north]","246:3":"minecraft:blue_glazed_terracotta[facing=east]","247:0":"minecraft:brown_glazed_terracotta[facing=south]","247:1":"minecraft:brown_glazed_terracotta[facing=west]","247:2":"minecraft:brown_glazed_terracotta[facing=north]","247:3":"minecraft:brown_glazed_terracotta[facing=east]","248:0":"minecraft:green_glazed_terracotta[facing=south]","248:1":"minecraft:green_glazed_terracotta[facing=west]","248:2":"minecraft:green_glazed_terracotta[facing=north]","248:3":"minecraft:green_glazed_terracotta[facing=east]","249:0":"minecraft:red_glazed_terracotta[facing=south]","249:1":"minecraft:red_glazed_terracotta[facing=west]","249:2":"minecraft:red_glazed_terracotta[facing=north]","249:3":"minecraft:red_glazed_terracotta[facing=east]","250:0":"minecraft:black_glazed_terracotta[facing=south]","250:1":"minecraft:black_glazed_terracotta[facing=west]","250:2":"minecraft:black_glazed_terracotta[facing=north]","250:3":"minecraft:black_glazed_terracotta[facing=east]","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block[mode=save]","255:1":"minecraft:structure_block[mode=load]","255:2":"minecraft:structure_block[mode=corner]","255:3":"minecraft:structure_block[mode=data]"},"items":{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling","6:1":"minecraft:spruce_sapling","6:2":"minecraft:birch_sapling","6:3":"minecraft:jungle_sapling","6:4":"minecraft:acacia_sapling","6:5":"minecraft:dark_oak_sapling","7:0":"minecraft:bedrock","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log","17:1":"minecraft:spruce_log","17:2":"minecraft:birch_log","17:3":"minecraft:jungle_log","18:0":"minecraft:oak_leaves","18:1":"minecraft:spruce_leaves","18:2":"minecraft:birch_leaves","18:3":"minecraft:jungle_leaves","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","27:0":"minecraft:powered_rail","28:0":"minecraft:detector_rail","29:0":"minecraft:sticky_piston","30:0":"minecraft:cobweb","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","44:0":"minecraft:stone_slab","44:1":"minecraft:sandstone_slab","44:3":"minecraft:cobblestone_slab","44:4":"minecraft:brick_slab","44:5":"minecraft:stone_brick_slab","44:6":"minecraft:nether_brick_slab","44:7":"minecraft:quartz_slab","45:0":"minecraft:bricks","46:0":"minecraft:tnt","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:0":"minecraft:torch","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs","54:0":"minecraft:chest","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","60:0":"minecraft:farmland","61:0":"minecraft:furnace","65:0":"minecraft:ladder","66:0":"minecraft:rail","67:0":"minecraft:cobblestone_stairs","69:0":"minecraft:lever","70:0":"minecraft:stone_pressure_plate","72:0":"minecraft:oak_pressure_plate","73:0":"minecraft:redstone_ore","76:0":"minecraft:redstone_torch","77:0":"minecraft:stone_button","78:0":"minecraft:snow","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus","82:0":"minecraft:clay","84:0":"minecraft:jukebox","85:0":"minecraft:oak_fence","86:0":"minecraft:carved_pumpkin","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","91:0":"minecraft:jack_o_lantern","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block","100:0":"minecraft:red_mushroom_block","101:0":"minecraft:iron_bars","102:0":"minecraft:glass_pane","103:0":"minecraft:melon","106:0":"minecraft:vine","107:0":"minecraft:oak_fence_gate","108:0":"minecraft:brick_stairs","109:0":"minecraft:stone_brick_stairs","110:0":"minecraft:mycelium","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence","114:0":"minecraft:nether_brick_stairs","116:0":"minecraft:enchanting_table","120:0":"minecraft:end_portal_frame","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp","126:0":"minecraft:oak_slab","126:1":"minecraft:spruce_slab","126:2":"minecraft:birch_slab","126:3":"minecraft:jungle_slab","126:4":"minecraft:acacia_slab","126:5":"minecraft:dark_oak_slab","128:0":"minecraft:sandstone_stairs","129:0":"minecraft:emerald_ore","130:0":"minecraft:ender_chest","131:0":"minecraft:tripwire_hook","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs","135:0":"minecraft:birch_stairs","136:0":"minecraft:jungle_stairs","137:0":"minecraft:command_block","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall","139:1":"minecraft:mossy_cobblestone_wall","143:0":"minecraft:oak_button","145:0":"minecraft:anvil","145:1":"minecraft:chipped_anvil","145:2":"minecraft:damaged_anvil","146:0":"minecraft:trapped_chest","147:0":"minecraft:light_weighted_pressure_plate","148:0":"minecraft:heavy_weighted_pressure_plate","151:0":"minecraft:daylight_detector","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar","156:0":"minecraft:quartz_stairs","157:0":"minecraft:activator_rail","158:0":"minecraft:dropper","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane","160:1":"minecraft:orange_stained_glass_pane","160:2":"minecraft:magenta_stained_glass_pane","160:3":"minecraft:light_blue_stained_glass_pane","160:4":"minecraft:yellow_stained_glass_pane","160:5":"minecraft:lime_stained_glass_pane","160:6":"minecraft:pink_stained_glass_pane","160:7":"minecraft:gray_stained_glass_pane","160:8":"minecraft:light_gray_stained_glass_pane","160:9":"minecraft:cyan_stained_glass_pane","160:10":"minecraft:purple_stained_glass_pane","160:11":"minecraft:blue_stained_glass_pane","160:12":"minecraft:brown_stained_glass_pane","160:13":"minecraft:green_stained_glass_pane","160:14":"minecraft:red_stained_glass_pane","160:15":"minecraft:black_stained_glass_pane","161:0":"minecraft:acacia_leaves","161:1":"minecraft:dark_oak_leaves","162:0":"minecraft:acacia_log","162:1":"minecraft:dark_oak_log","163:0":"minecraft:acacia_stairs","164:0":"minecraft:dark_oak_stairs","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower","175:1":"minecraft:lilac","175:2":"minecraft:tall_grass","175:3":"minecraft:large_fern","175:4":"minecraft:rose_bush","175:5":"minecraft:peony","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs","182:0":"minecraft:red_sandstone_slab","183:0":"minecraft:spruce_fence_gate","184:0":"minecraft:birch_fence_gate","185:0":"minecraft:jungle_fence_gate","186:0":"minecraft:dark_oak_fence_gate","187:0":"minecraft:acacia_fence_gate","188:0":"minecraft:spruce_fence","189:0":"minecraft:birch_fence","190:0":"minecraft:jungle_fence","191:0":"minecraft:dark_oak_fence","192:0":"minecraft:acacia_fence","198:0":"minecraft:end_rod","199:0":"minecraft:chorus_plant","200:0":"minecraft:chorus_flower","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar","203:0":"minecraft:purpur_stairs","205:0":"minecraft:purpur_slab","206:0":"minecraft:end_stone_bricks","208:0":"minecraft:grass_path","210:0":"minecraft:repeating_command_block","211:0":"minecraft:chain_command_block","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block","217:0":"minecraft:structure_void","218:0":"minecraft:observer","219:0":"minecraft:white_shulker_box","220:0":"minecraft:orange_shulker_box","221:0":"minecraft:magenta_shulker_box","222:0":"minecraft:light_blue_shulker_box","223:0":"minecraft:yellow_shulker_box","224:0":"minecraft:lime_shulker_box","225:0":"minecraft:pink_shulker_box","226:0":"minecraft:gray_shulker_box","227:0":"minecraft:light_gray_shulker_box","228:0":"minecraft:cyan_shulker_box","229:0":"minecraft:purple_shulker_box","230:0":"minecraft:blue_shulker_box","231:0":"minecraft:brown_shulker_box","232:0":"minecraft:green_shulker_box","233:0":"minecraft:red_shulker_box","234:0":"minecraft:black_shulker_box","235:0":"minecraft:white_glazed_terracotta","236:0":"minecraft:orange_glazed_terracotta","237:0":"minecraft:magenta_glazed_terracotta","238:0":"minecraft:light_blue_glazed_terracotta","239:0":"minecraft:yellow_glazed_terracotta","240:0":"minecraft:lime_glazed_terracotta","241:0":"minecraft:pink_glazed_terracotta","242:0":"minecraft:gray_glazed_terracotta","243:0":"minecraft:light_gray_glazed_terracotta","244:0":"minecraft:cyan_glazed_terracotta","245:0":"minecraft:purple_glazed_terracotta","246:0":"minecraft:blue_glazed_terracotta","247:0":"minecraft:brown_glazed_terracotta","248:0":"minecraft:green_glazed_terracotta","249:0":"minecraft:red_glazed_terracotta","250:0":"minecraft:black_glazed_terracotta","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block","256:0":"minecraft:iron_shovel","257:0":"minecraft:iron_pickaxe","258:0":"minecraft:iron_axe","259:0":"minecraft:flint_and_steel","260:0":"minecraft:apple","261:0":"minecraft:bow","262:0":"minecraft:arrow","263:0":"minecraft:coal","263:1":"minecraft:charcoal","264:0":"minecraft:diamond","265:0":"minecraft:iron_ingot","266:0":"minecraft:gold_ingot","267:0":"minecraft:iron_sword","268:0":"minecraft:wooden_sword","269:0":"minecraft:wooden_shovel","270:0":"minecraft:wooden_pickaxe","271:0":"minecraft:wooden_axe","272:0":"minecraft:stone_sword","273:0":"minecraft:stone_shovel","274:0":"minecraft:stone_pickaxe","275:0":"minecraft:stone_axe","276:0":"minecraft:diamond_sword","277:0":"minecraft:diamond_shovel","278:0":"minecraft:diamond_pickaxe","279:0":"minecraft:diamond_axe","280:0":"minecraft:stick","281:0":"minecraft:bowl","282:0":"minecraft:mushroom_stew","283:0":"minecraft:golden_sword","284:0":"minecraft:golden_shovel","285:0":"minecraft:golden_pickaxe","286:0":"minecraft:golden_axe","287:0":"minecraft:string","288:0":"minecraft:feather","289:0":"minecraft:gunpowder","290:0":"minecraft:wooden_hoe","291:0":"minecraft:stone_hoe","292:0":"minecraft:iron_hoe","293:0":"minecraft:diamond_hoe","294:0":"minecraft:golden_hoe","295:0":"minecraft:wheat_seeds","296:0":"minecraft:wheat","297:0":"minecraft:bread","298:0":"minecraft:leather_helmet","299:0":"minecraft:leather_chestplate","300:0":"minecraft:leather_leggings","301:0":"minecraft:leather_boots","302:0":"minecraft:chainmail_helmet","303:0":"minecraft:chainmail_chestplate","304:0":"minecraft:chainmail_leggings","305:0":"minecraft:chainmail_boots","306:0":"minecraft:iron_helmet","307:0":"minecraft:iron_chestplate","308:0":"minecraft:iron_leggings","309:0":"minecraft:iron_boots","310:0":"minecraft:diamond_helmet","311:0":"minecraft:diamond_chestplate","312:0":"minecraft:diamond_leggings","313:0":"minecraft:diamond_boots","314:0":"minecraft:golden_helmet","315:0":"minecraft:golden_chestplate","316:0":"minecraft:golden_leggings","317:0":"minecraft:golden_boots","318:0":"minecraft:flint","319:0":"minecraft:porkchop","320:0":"minecraft:cooked_porkchop","321:0":"minecraft:painting","322:0":"minecraft:golden_apple","322:1":"minecraft:enchanted_golden_apple","323:0":"minecraft:sign","324:0":"minecraft:oak_door","325:0":"minecraft:bucket","326:0":"minecraft:water_bucket","327:0":"minecraft:lava_bucket","328:0":"minecraft:minecart","329:0":"minecraft:saddle","330:0":"minecraft:iron_door","331:0":"minecraft:redstone","332:0":"minecraft:snowball","333:0":"minecraft:oak_boat","334:0":"minecraft:leather","335:0":"minecraft:milk_bucket","336:0":"minecraft:brick","337:0":"minecraft:clay_ball","338:0":"minecraft:sugar_cane","339:0":"minecraft:paper","340:0":"minecraft:book","341:0":"minecraft:slime_ball","342:0":"minecraft:chest_minecart","343:0":"minecraft:furnace_minecart","344:0":"minecraft:egg","345:0":"minecraft:compass","346:0":"minecraft:fishing_rod","347:0":"minecraft:clock","348:0":"minecraft:glowstone_dust","349:0":"minecraft:cod","349:1":"minecraft:salmon","349:2":"minecraft:tropical_fish","349:3":"minecraft:pufferfish","350:0":"minecraft:cooked_cod","350:1":"minecraft:cooked_salmon","351:0":"minecraft:ink_sac","351:1":"minecraft:rose_red","351:2":"minecraft:cactus_green","351:3":"minecraft:cocoa_beans","351:4":"minecraft:lapis_lazuli","351:5":"minecraft:purple_dye","351:6":"minecraft:cyan_dye","351:7":"minecraft:light_gray_dye","351:8":"minecraft:gray_dye","351:9":"minecraft:pink_dye","351:10":"minecraft:lime_dye","351:11":"minecraft:dandelion_yellow","351:12":"minecraft:light_blue_dye","351:13":"minecraft:magenta_dye","351:14":"minecraft:orange_dye","351:15":"minecraft:bone_meal","352:0":"minecraft:bone","353:0":"minecraft:sugar","354:0":"minecraft:cake","355:0":"minecraft:white_bed","355:1":"minecraft:orange_bed","355:2":"minecraft:magenta_bed","355:3":"minecraft:light_blue_bed","355:4":"minecraft:yellow_bed","355:5":"minecraft:lime_bed","355:6":"minecraft:pink_bed","355:7":"minecraft:gray_bed","355:8":"minecraft:light_gray_bed","355:9":"minecraft:cyan_bed","355:10":"minecraft:purple_bed","355:11":"minecraft:blue_bed","355:12":"minecraft:brown_bed","355:13":"minecraft:green_bed","355:14":"minecraft:red_bed","355:15":"minecraft:black_bed","356:0":"minecraft:repeater","357:0":"minecraft:cookie","358:0":"minecraft:filled_map","359:0":"minecraft:shears","360:0":"minecraft:melon_slice","361:0":"minecraft:pumpkin_seeds","362:0":"minecraft:melon_seeds","363:0":"minecraft:beef","364:0":"minecraft:cooked_beef","365:0":"minecraft:chicken","366:0":"minecraft:cooked_chicken","367:0":"minecraft:rotten_flesh","368:0":"minecraft:ender_pearl","369:0":"minecraft:blaze_rod","370:0":"minecraft:ghast_tear","371:0":"minecraft:gold_nugget","372:0":"minecraft:nether_wart","373:0":"minecraft:potion","374:0":"minecraft:glass_bottle","375:0":"minecraft:spider_eye","376:0":"minecraft:fermented_spider_eye","377:0":"minecraft:blaze_powder","378:0":"minecraft:magma_cream","379:0":"minecraft:brewing_stand","380:0":"minecraft:cauldron","381:0":"minecraft:ender_eye","382:0":"minecraft:glistering_melon_slice","383:0":"minecraft:pig_spawn_egg","384:0":"minecraft:experience_bottle","385:0":"minecraft:fire_charge","386:0":"minecraft:writable_book","387:0":"minecraft:written_book","388:0":"minecraft:emerald","389:0":"minecraft:item_frame","390:0":"minecraft:flower_pot","391:0":"minecraft:carrot","392:0":"minecraft:potato","393:0":"minecraft:baked_potato","394:0":"minecraft:poisonous_potato","395:0":"minecraft:map","396:0":"minecraft:golden_carrot","397:0":"minecraft:skeleton_skull","397:1":"minecraft:wither_skeleton_skull","397:2":"minecraft:zombie_head","397:3":"minecraft:player_head","397:4":"minecraft:creeper_head","397:5":"minecraft:dragon_head","398:0":"minecraft:carrot_on_a_stick","399:0":"minecraft:nether_star","400:0":"minecraft:pumpkin_pie","401:0":"minecraft:firework_rocket","402:0":"minecraft:firework_star","403:0":"minecraft:enchanted_book","404:0":"minecraft:comparator","405:0":"minecraft:nether_brick","406:0":"minecraft:quartz","407:0":"minecraft:tnt_minecart","408:0":"minecraft:hopper_minecart","409:0":"minecraft:prismarine_shard","410:0":"minecraft:prismarine_crystals","411:0":"minecraft:rabbit","412:0":"minecraft:cooked_rabbit","413:0":"minecraft:rabbit_stew","414:0":"minecraft:rabbit_foot","415:0":"minecraft:rabbit_hide","416:0":"minecraft:armor_stand","417:0":"minecraft:iron_horse_armor","418:0":"minecraft:golden_horse_armor","419:0":"minecraft:diamond_horse_armor","420:0":"minecraft:lead","421:0":"minecraft:name_tag","422:0":"minecraft:command_block_minecart","423:0":"minecraft:mutton","424:0":"minecraft:cooked_mutton","425:0":"minecraft:black_banner","425:1":"minecraft:red_banner","425:2":"minecraft:green_banner","425:3":"minecraft:brown_banner","425:4":"minecraft:blue_banner","425:5":"minecraft:purple_banner","425:6":"minecraft:cyan_banner","425:7":"minecraft:light_gray_banner","425:8":"minecraft:gray_banner","425:9":"minecraft:pink_banner","425:10":"minecraft:lime_banner","425:11":"minecraft:yellow_banner","425:12":"minecraft:light_blue_banner","425:13":"minecraft:magenta_banner","425:14":"minecraft:orange_banner","425:15":"minecraft:white_banner","426:0":"minecraft:end_crystal","427:0":"minecraft:spruce_door","428:0":"minecraft:birch_door","429:0":"minecraft:jungle_door","430:0":"minecraft:acacia_door","431:0":"minecraft:dark_oak_door","432:0":"minecraft:chorus_fruit","433:0":"minecraft:popped_chorus_fruit","434:0":"minecraft:beetroot","435:0":"minecraft:beetroot_seeds","436:0":"minecraft:beetroot_soup","437:0":"minecraft:dragon_breath","438:0":"minecraft:splash_potion","439:0":"minecraft:spectral_arrow","440:0":"minecraft:tipped_arrow","441:0":"minecraft:lingering_potion","442:0":"minecraft:shield","443:0":"minecraft:elytra","444:0":"minecraft:spruce_boat","445:0":"minecraft:birch_boat","446:0":"minecraft:jungle_boat","447:0":"minecraft:acacia_boat","448:0":"minecraft:dark_oak_boat","449:0":"minecraft:totem_of_undying","450:0":"minecraft:shulker_shell","452:0":"minecraft:iron_nugget","453:0":"minecraft:knowledge_book","2256:0":"minecraft:music_disc_13","2257:0":"minecraft:music_disc_cat","2258:0":"minecraft:music_disc_blocks","2259:0":"minecraft:music_disc_chirp","2260:0":"minecraft:music_disc_far","2261:0":"minecraft:music_disc_mall","2262:0":"minecraft:music_disc_mellohi","2263:0":"minecraft:music_disc_stal","2264:0":"minecraft:music_disc_strad","2265:0":"minecraft:music_disc_ward","2266:0":"minecraft:music_disc_11","2267:0":"minecraft:music_disc_wait"}} \ No newline at end of file +{"blocks":{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block[snowy=false]","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol[snowy=false]","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling[stage=0]","6:1":"minecraft:spruce_sapling[stage=0]","6:2":"minecraft:birch_sapling[stage=0]","6:3":"minecraft:jungle_sapling[stage=0]","6:4":"minecraft:acacia_sapling[stage=0]","6:5":"minecraft:dark_oak_sapling[stage=0]","6:8":"minecraft:oak_sapling[stage=1]","6:9":"minecraft:spruce_sapling[stage=1]","6:10":"minecraft:birch_sapling[stage=1]","6:11":"minecraft:jungle_sapling[stage=1]","6:12":"minecraft:acacia_sapling[stage=1]","6:13":"minecraft:dark_oak_sapling[stage=1]","7:0":"minecraft:bedrock","8:0":"minecraft:water[level=0]","8:1":"minecraft:water[level=1]","8:2":"minecraft:water[level=2]","8:3":"minecraft:water[level=3]","8:4":"minecraft:water[level=4]","8:5":"minecraft:water[level=5]","8:6":"minecraft:water[level=6]","8:7":"minecraft:water[level=7]","8:8":"minecraft:water[level=8]","8:9":"minecraft:water[level=9]","8:10":"minecraft:water[level=10]","8:11":"minecraft:water[level=11]","8:12":"minecraft:water[level=12]","8:13":"minecraft:water[level=13]","8:14":"minecraft:water[level=14]","8:15":"minecraft:water[level=15]","9:0":"minecraft:water[level=0]","9:1":"minecraft:water[level=1]","9:2":"minecraft:water[level=2]","9:3":"minecraft:water[level=3]","9:4":"minecraft:water[level=4]","9:5":"minecraft:water[level=5]","9:6":"minecraft:water[level=6]","9:7":"minecraft:water[level=7]","9:8":"minecraft:water[level=8]","9:9":"minecraft:water[level=9]","9:10":"minecraft:water[level=10]","9:11":"minecraft:water[level=11]","9:12":"minecraft:water[level=12]","9:13":"minecraft:water[level=13]","9:14":"minecraft:water[level=14]","9:15":"minecraft:water[level=15]","10:0":"minecraft:lava[level=0]","10:1":"minecraft:lava[level=1]","10:2":"minecraft:lava[level=2]","10:3":"minecraft:lava[level=3]","10:4":"minecraft:lava[level=4]","10:5":"minecraft:lava[level=5]","10:6":"minecraft:lava[level=6]","10:7":"minecraft:lava[level=7]","10:8":"minecraft:lava[level=8]","10:9":"minecraft:lava[level=9]","10:10":"minecraft:lava[level=10]","10:11":"minecraft:lava[level=11]","10:12":"minecraft:lava[level=12]","10:13":"minecraft:lava[level=13]","10:14":"minecraft:lava[level=14]","10:15":"minecraft:lava[level=15]","11:0":"minecraft:lava[level=0]","11:1":"minecraft:lava[level=1]","11:2":"minecraft:lava[level=2]","11:3":"minecraft:lava[level=3]","11:4":"minecraft:lava[level=4]","11:5":"minecraft:lava[level=5]","11:6":"minecraft:lava[level=6]","11:7":"minecraft:lava[level=7]","11:8":"minecraft:lava[level=8]","11:9":"minecraft:lava[level=9]","11:10":"minecraft:lava[level=10]","11:11":"minecraft:lava[level=11]","11:12":"minecraft:lava[level=12]","11:13":"minecraft:lava[level=13]","11:14":"minecraft:lava[level=14]","11:15":"minecraft:lava[level=15]","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log[axis=y]","17:1":"minecraft:spruce_log[axis=y]","17:2":"minecraft:birch_log[axis=y]","17:3":"minecraft:jungle_log[axis=y]","17:4":"minecraft:oak_log[axis=x]","17:5":"minecraft:spruce_log[axis=x]","17:6":"minecraft:birch_log[axis=x]","17:7":"minecraft:jungle_log[axis=x]","17:8":"minecraft:oak_log[axis=z]","17:9":"minecraft:spruce_log[axis=z]","17:10":"minecraft:birch_log[axis=z]","17:11":"minecraft:jungle_log[axis=z]","17:12":"minecraft:oak_wood","17:13":"minecraft:spruce_wood","17:14":"minecraft:birch_wood","17:15":"minecraft:jungle_wood","18:0":"minecraft:oak_leaves[persistent=false,distance=1]","18:1":"minecraft:spruce_leaves[persistent=false,distance=1]","18:2":"minecraft:birch_leaves[persistent=false,distance=1]","18:3":"minecraft:jungle_leaves[persistent=false,distance=1]","18:4":"minecraft:oak_leaves[persistent=true,distance=1]","18:5":"minecraft:spruce_leaves[persistent=true,distance=1]","18:6":"minecraft:birch_leaves[persistent=true,distance=1]","18:7":"minecraft:jungle_leaves[persistent=true,distance=1]","18:8":"minecraft:oak_leaves[persistent=false,distance=1]","18:9":"minecraft:spruce_leaves[persistent=false,distance=1]","18:10":"minecraft:birch_leaves[persistent=false,distance=1]","18:11":"minecraft:jungle_leaves[persistent=false,distance=1]","18:12":"minecraft:oak_leaves[persistent=true,distance=1]","18:13":"minecraft:spruce_leaves[persistent=true,distance=1]","18:14":"minecraft:birch_leaves[persistent=true,distance=1]","18:15":"minecraft:jungle_leaves[persistent=true,distance=1]","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser[triggered=false,facing=down]","23:1":"minecraft:dispenser[triggered=false,facing=up]","23:2":"minecraft:dispenser[triggered=false,facing=north]","23:3":"minecraft:dispenser[triggered=false,facing=south]","23:4":"minecraft:dispenser[triggered=false,facing=west]","23:5":"minecraft:dispenser[triggered=false,facing=east]","23:8":"minecraft:dispenser[triggered=true,facing=down]","23:9":"minecraft:dispenser[triggered=true,facing=up]","23:10":"minecraft:dispenser[triggered=true,facing=north]","23:11":"minecraft:dispenser[triggered=true,facing=south]","23:12":"minecraft:dispenser[triggered=true,facing=west]","23:13":"minecraft:dispenser[triggered=true,facing=east]","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","26:0":"minecraft:red_bed[part=foot,facing=south,occupied=false]","26:1":"minecraft:red_bed[part=foot,facing=west,occupied=false]","26:2":"minecraft:red_bed[part=foot,facing=north,occupied=false]","26:3":"minecraft:red_bed[part=foot,facing=east,occupied=false]","26:4":"minecraft:red_bed[part=foot,facing=south,occupied=true]","26:5":"minecraft:red_bed[part=foot,facing=west,occupied=true]","26:6":"minecraft:red_bed[part=foot,facing=north,occupied=true]","26:7":"minecraft:red_bed[part=foot,facing=east,occupied=true]","26:8":"minecraft:red_bed[part=head,facing=south,occupied=false]","26:9":"minecraft:red_bed[part=head,facing=west,occupied=false]","26:10":"minecraft:red_bed[part=head,facing=north,occupied=false]","26:11":"minecraft:red_bed[part=head,facing=east,occupied=false]","26:12":"minecraft:red_bed[part=head,facing=south,occupied=true]","26:13":"minecraft:red_bed[part=head,facing=west,occupied=true]","26:14":"minecraft:red_bed[part=head,facing=north,occupied=true]","26:15":"minecraft:red_bed[part=head,facing=east,occupied=true]","27:0":"minecraft:powered_rail[shape=north_south,powered=false]","27:1":"minecraft:powered_rail[shape=east_west,powered=false]","27:2":"minecraft:powered_rail[shape=ascending_east,powered=false]","27:3":"minecraft:powered_rail[shape=ascending_west,powered=false]","27:4":"minecraft:powered_rail[shape=ascending_north,powered=false]","27:5":"minecraft:powered_rail[shape=ascending_south,powered=false]","27:8":"minecraft:powered_rail[shape=north_south,powered=true]","27:9":"minecraft:powered_rail[shape=east_west,powered=true]","27:10":"minecraft:powered_rail[shape=ascending_east,powered=true]","27:11":"minecraft:powered_rail[shape=ascending_west,powered=true]","27:12":"minecraft:powered_rail[shape=ascending_north,powered=true]","27:13":"minecraft:powered_rail[shape=ascending_south,powered=true]","28:0":"minecraft:detector_rail[shape=north_south,powered=false]","28:1":"minecraft:detector_rail[shape=east_west,powered=false]","28:2":"minecraft:detector_rail[shape=ascending_east,powered=false]","28:3":"minecraft:detector_rail[shape=ascending_west,powered=false]","28:4":"minecraft:detector_rail[shape=ascending_north,powered=false]","28:5":"minecraft:detector_rail[shape=ascending_south,powered=false]","28:8":"minecraft:detector_rail[shape=north_south,powered=true]","28:9":"minecraft:detector_rail[shape=east_west,powered=true]","28:10":"minecraft:detector_rail[shape=ascending_east,powered=true]","28:11":"minecraft:detector_rail[shape=ascending_west,powered=true]","28:12":"minecraft:detector_rail[shape=ascending_north,powered=true]","28:13":"minecraft:detector_rail[shape=ascending_south,powered=true]","29:0":"minecraft:sticky_piston[facing=down,extended=false]","29:1":"minecraft:sticky_piston[facing=up,extended=false]","29:2":"minecraft:sticky_piston[facing=north,extended=false]","29:3":"minecraft:sticky_piston[facing=south,extended=false]","29:4":"minecraft:sticky_piston[facing=west,extended=false]","29:5":"minecraft:sticky_piston[facing=east,extended=false]","29:8":"minecraft:sticky_piston[facing=down,extended=true]","29:9":"minecraft:sticky_piston[facing=up,extended=true]","29:10":"minecraft:sticky_piston[facing=north,extended=true]","29:11":"minecraft:sticky_piston[facing=south,extended=true]","29:12":"minecraft:sticky_piston[facing=west,extended=true]","29:13":"minecraft:sticky_piston[facing=east,extended=true]","30:0":"minecraft:cobweb","31:0":"minecraft:dead_bush","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston[facing=down,extended=false]","33:1":"minecraft:piston[facing=up,extended=false]","33:2":"minecraft:piston[facing=north,extended=false]","33:3":"minecraft:piston[facing=south,extended=false]","33:4":"minecraft:piston[facing=west,extended=false]","33:5":"minecraft:piston[facing=east,extended=false]","33:8":"minecraft:piston[facing=down,extended=true]","33:9":"minecraft:piston[facing=up,extended=true]","33:10":"minecraft:piston[facing=north,extended=true]","33:11":"minecraft:piston[facing=south,extended=true]","33:12":"minecraft:piston[facing=west,extended=true]","33:13":"minecraft:piston[facing=east,extended=true]","34:0":"minecraft:piston_head[short=false,facing=down,type=normal]","34:1":"minecraft:piston_head[short=false,facing=up,type=normal]","34:2":"minecraft:piston_head[short=false,facing=north,type=normal]","34:3":"minecraft:piston_head[short=false,facing=south,type=normal]","34:4":"minecraft:piston_head[short=false,facing=west,type=normal]","34:5":"minecraft:piston_head[short=false,facing=east,type=normal]","34:8":"minecraft:piston_head[short=false,facing=down,type=sticky]","34:9":"minecraft:piston_head[short=false,facing=up,type=sticky]","34:10":"minecraft:piston_head[short=false,facing=north,type=sticky]","34:11":"minecraft:piston_head[short=false,facing=south,type=sticky]","34:12":"minecraft:piston_head[short=false,facing=west,type=sticky]","34:13":"minecraft:piston_head[short=false,facing=east,type=sticky]","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","36:0":"minecraft:moving_piston[facing=down,type=normal]","36:1":"minecraft:moving_piston[facing=up,type=normal]","36:2":"minecraft:moving_piston[facing=north,type=normal]","36:3":"minecraft:moving_piston[facing=south,type=normal]","36:4":"minecraft:moving_piston[facing=west,type=normal]","36:5":"minecraft:moving_piston[facing=east,type=normal]","36:8":"minecraft:moving_piston[facing=down,type=sticky]","36:9":"minecraft:moving_piston[facing=up,type=sticky]","36:10":"minecraft:moving_piston[facing=north,type=sticky]","36:11":"minecraft:moving_piston[facing=south,type=sticky]","36:12":"minecraft:moving_piston[facing=west,type=sticky]","36:13":"minecraft:moving_piston[facing=east,type=sticky]","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","43:0":"minecraft:stone_slab[type=double]","43:1":"minecraft:sandstone_slab[type=double]","43:2":"minecraft:petrified_oak_slab[type=double]","43:3":"minecraft:cobblestone_slab[type=double]","43:4":"minecraft:brick_slab[type=double]","43:5":"minecraft:stone_brick_slab[type=double]","43:6":"minecraft:nether_brick_slab[type=double]","43:7":"minecraft:quartz_slab[type=double]","43:8":"minecraft:smooth_stone","43:9":"minecraft:smooth_sandstone","43:10":"minecraft:petrified_oak_slab[type=double]","43:11":"minecraft:cobblestone_slab[type=double]","43:12":"minecraft:brick_slab[type=double]","43:13":"minecraft:stone_brick_slab[type=double]","43:14":"minecraft:nether_brick_slab[type=double]","43:15":"minecraft:smooth_quartz","44:0":"minecraft:stone_slab[type=bottom]","44:1":"minecraft:sandstone_slab[type=bottom]","44:2":"minecraft:petrified_oak_slab[type=bottom]","44:3":"minecraft:cobblestone_slab[type=bottom]","44:4":"minecraft:brick_slab[type=bottom]","44:5":"minecraft:stone_brick_slab[type=bottom]","44:6":"minecraft:nether_brick_slab[type=bottom]","44:7":"minecraft:quartz_slab[type=bottom]","44:8":"minecraft:stone_slab[type=top]","44:9":"minecraft:sandstone_slab[type=top]","44:10":"minecraft:petrified_oak_slab[type=top]","44:11":"minecraft:cobblestone_slab[type=top]","44:12":"minecraft:brick_slab[type=top]","44:13":"minecraft:stone_brick_slab[type=top]","44:14":"minecraft:nether_brick_slab[type=top]","44:15":"minecraft:quartz_slab[type=top]","45:0":"minecraft:bricks","46:0":"minecraft:tnt[unstable=false]","46:1":"minecraft:tnt[unstable=true]","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:1":"minecraft:wall_torch[facing=east]","50:2":"minecraft:wall_torch[facing=west]","50:3":"minecraft:wall_torch[facing=south]","50:4":"minecraft:wall_torch[facing=north]","50:5":"minecraft:torch","51:0":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=0]","51:1":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=1]","51:2":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=2]","51:3":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=3]","51:4":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=4]","51:5":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=5]","51:6":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=6]","51:7":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=7]","51:8":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=8]","51:9":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=9]","51:10":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=10]","51:11":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=11]","51:12":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=12]","51:13":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=13]","51:14":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=14]","51:15":"minecraft:fire[east=false,south=false,north=false,west=false,up=false,age=15]","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs[half=bottom,shape=straight,facing=east]","53:1":"minecraft:oak_stairs[half=bottom,shape=straight,facing=west]","53:2":"minecraft:oak_stairs[half=bottom,shape=straight,facing=south]","53:3":"minecraft:oak_stairs[half=bottom,shape=straight,facing=north]","53:4":"minecraft:oak_stairs[half=top,shape=straight,facing=east]","53:5":"minecraft:oak_stairs[half=top,shape=straight,facing=west]","53:6":"minecraft:oak_stairs[half=top,shape=straight,facing=south]","53:7":"minecraft:oak_stairs[half=top,shape=straight,facing=north]","54:2":"minecraft:chest[facing=north,type=single]","54:3":"minecraft:chest[facing=south,type=single]","54:4":"minecraft:chest[facing=west,type=single]","54:5":"minecraft:chest[facing=east,type=single]","55:0":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=0]","55:1":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=1]","55:2":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=2]","55:3":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=3]","55:4":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=4]","55:5":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=5]","55:6":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=6]","55:7":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=7]","55:8":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=8]","55:9":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=9]","55:10":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=10]","55:11":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=11]","55:12":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=12]","55:13":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=13]","55:14":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=14]","55:15":"minecraft:redstone_wire[east=none,south=none,north=none,west=none,power=15]","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","59:0":"minecraft:wheat[age=0]","59:1":"minecraft:wheat[age=1]","59:2":"minecraft:wheat[age=2]","59:3":"minecraft:wheat[age=3]","59:4":"minecraft:wheat[age=4]","59:5":"minecraft:wheat[age=5]","59:6":"minecraft:wheat[age=6]","59:7":"minecraft:wheat[age=7]","60:0":"minecraft:farmland[moisture=0]","60:1":"minecraft:farmland[moisture=1]","60:2":"minecraft:farmland[moisture=2]","60:3":"minecraft:farmland[moisture=3]","60:4":"minecraft:farmland[moisture=4]","60:5":"minecraft:farmland[moisture=5]","60:6":"minecraft:farmland[moisture=6]","60:7":"minecraft:farmland[moisture=7]","61:2":"minecraft:furnace[facing=north,lit=false]","61:3":"minecraft:furnace[facing=south,lit=false]","61:4":"minecraft:furnace[facing=west,lit=false]","61:5":"minecraft:furnace[facing=east,lit=false]","62:2":"minecraft:furnace[facing=north,lit=true]","62:3":"minecraft:furnace[facing=south,lit=true]","62:4":"minecraft:furnace[facing=west,lit=true]","62:5":"minecraft:furnace[facing=east,lit=true]","63:0":"minecraft:sign[rotation=0]","63:1":"minecraft:sign[rotation=1]","63:2":"minecraft:sign[rotation=2]","63:3":"minecraft:sign[rotation=3]","63:4":"minecraft:sign[rotation=4]","63:5":"minecraft:sign[rotation=5]","63:6":"minecraft:sign[rotation=6]","63:7":"minecraft:sign[rotation=7]","63:8":"minecraft:sign[rotation=8]","63:9":"minecraft:sign[rotation=9]","63:10":"minecraft:sign[rotation=10]","63:11":"minecraft:sign[rotation=11]","63:12":"minecraft:sign[rotation=12]","63:13":"minecraft:sign[rotation=13]","63:14":"minecraft:sign[rotation=14]","63:15":"minecraft:sign[rotation=15]","64:0":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","64:1":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","64:2":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","64:3":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","64:4":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","64:5":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","64:6":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","64:7":"minecraft:oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","64:8":"minecraft:oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","64:9":"minecraft:oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","64:10":"minecraft:oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","64:11":"minecraft:oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","65:2":"minecraft:ladder[facing=north]","65:3":"minecraft:ladder[facing=south]","65:4":"minecraft:ladder[facing=west]","65:5":"minecraft:ladder[facing=east]","66:0":"minecraft:rail[shape=north_south]","66:1":"minecraft:rail[shape=east_west]","66:2":"minecraft:rail[shape=ascending_east]","66:3":"minecraft:rail[shape=ascending_west]","66:4":"minecraft:rail[shape=ascending_north]","66:5":"minecraft:rail[shape=ascending_south]","66:6":"minecraft:rail[shape=south_east]","66:7":"minecraft:rail[shape=south_west]","66:8":"minecraft:rail[shape=north_west]","66:9":"minecraft:rail[shape=north_east]","67:0":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=east]","67:1":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=west]","67:2":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=south]","67:3":"minecraft:cobblestone_stairs[half=bottom,shape=straight,facing=north]","67:4":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=east]","67:5":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=west]","67:6":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=south]","67:7":"minecraft:cobblestone_stairs[half=top,shape=straight,facing=north]","68:2":"minecraft:wall_sign[facing=north]","68:3":"minecraft:wall_sign[facing=south]","68:4":"minecraft:wall_sign[facing=west]","68:5":"minecraft:wall_sign[facing=east]","69:0":"minecraft:lever[powered=false,facing=north,face=ceiling]","69:1":"minecraft:lever[powered=false,facing=east,face=wall]","69:2":"minecraft:lever[powered=false,facing=west,face=wall]","69:3":"minecraft:lever[powered=false,facing=south,face=wall]","69:4":"minecraft:lever[powered=false,facing=north,face=wall]","69:5":"minecraft:lever[powered=false,facing=east,face=floor]","69:6":"minecraft:lever[powered=false,facing=north,face=floor]","69:7":"minecraft:lever[powered=false,facing=east,face=ceiling]","69:8":"minecraft:lever[powered=true,facing=north,face=ceiling]","69:9":"minecraft:lever[powered=true,facing=east,face=wall]","69:10":"minecraft:lever[powered=true,facing=west,face=wall]","69:11":"minecraft:lever[powered=true,facing=south,face=wall]","69:12":"minecraft:lever[powered=true,facing=north,face=wall]","69:13":"minecraft:lever[powered=true,facing=east,face=floor]","69:14":"minecraft:lever[powered=true,facing=north,face=floor]","69:15":"minecraft:lever[powered=true,facing=east,face=ceiling]","70:0":"minecraft:stone_pressure_plate[powered=false]","70:1":"minecraft:stone_pressure_plate[powered=true]","71:0":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=false]","71:1":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=false]","71:2":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=false]","71:3":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=false]","71:4":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=east,open=true]","71:5":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=south,open=true]","71:6":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=west,open=true]","71:7":"minecraft:iron_door[hinge=right,half=lower,powered=false,facing=north,open=true]","71:8":"minecraft:iron_door[hinge=left,half=upper,powered=false,facing=east,open=false]","71:9":"minecraft:iron_door[hinge=right,half=upper,powered=false,facing=east,open=false]","71:10":"minecraft:iron_door[hinge=left,half=upper,powered=true,facing=east,open=false]","71:11":"minecraft:iron_door[hinge=right,half=upper,powered=true,facing=east,open=false]","72:0":"minecraft:oak_pressure_plate[powered=false]","72:1":"minecraft:oak_pressure_plate[powered=true]","73:0":"minecraft:redstone_ore[lit=false]","74:0":"minecraft:redstone_ore[lit=true]","75:1":"minecraft:redstone_wall_torch[facing=east,lit=false]","75:2":"minecraft:redstone_wall_torch[facing=west,lit=false]","75:3":"minecraft:redstone_wall_torch[facing=south,lit=false]","75:4":"minecraft:redstone_wall_torch[facing=north,lit=false]","75:5":"minecraft:redstone_torch[lit=false]","76:1":"minecraft:redstone_wall_torch[facing=east,lit=true]","76:2":"minecraft:redstone_wall_torch[facing=west,lit=true]","76:3":"minecraft:redstone_wall_torch[facing=south,lit=true]","76:4":"minecraft:redstone_wall_torch[facing=north,lit=true]","76:5":"minecraft:redstone_torch[lit=true]","77:0":"minecraft:stone_button[powered=false,facing=east,face=ceiling]","77:1":"minecraft:stone_button[powered=false,facing=east,face=wall]","77:2":"minecraft:stone_button[powered=false,facing=west,face=wall]","77:3":"minecraft:stone_button[powered=false,facing=south,face=wall]","77:4":"minecraft:stone_button[powered=false,facing=north,face=wall]","77:5":"minecraft:stone_button[powered=false,facing=east,face=floor]","77:8":"minecraft:stone_button[powered=true,facing=south,face=ceiling]","77:9":"minecraft:stone_button[powered=true,facing=east,face=wall]","77:10":"minecraft:stone_button[powered=true,facing=west,face=wall]","77:11":"minecraft:stone_button[powered=true,facing=south,face=wall]","77:12":"minecraft:stone_button[powered=true,facing=north,face=wall]","77:13":"minecraft:stone_button[powered=true,facing=south,face=floor]","78:0":"minecraft:snow[layers=1]","78:1":"minecraft:snow[layers=2]","78:2":"minecraft:snow[layers=3]","78:3":"minecraft:snow[layers=4]","78:4":"minecraft:snow[layers=5]","78:5":"minecraft:snow[layers=6]","78:6":"minecraft:snow[layers=7]","78:7":"minecraft:snow[layers=8]","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus[age=0]","81:1":"minecraft:cactus[age=1]","81:2":"minecraft:cactus[age=2]","81:3":"minecraft:cactus[age=3]","81:4":"minecraft:cactus[age=4]","81:5":"minecraft:cactus[age=5]","81:6":"minecraft:cactus[age=6]","81:7":"minecraft:cactus[age=7]","81:8":"minecraft:cactus[age=8]","81:9":"minecraft:cactus[age=9]","81:10":"minecraft:cactus[age=10]","81:11":"minecraft:cactus[age=11]","81:12":"minecraft:cactus[age=12]","81:13":"minecraft:cactus[age=13]","81:14":"minecraft:cactus[age=14]","81:15":"minecraft:cactus[age=15]","82:0":"minecraft:clay","83:0":"minecraft:sugar_cane[age=0]","83:1":"minecraft:sugar_cane[age=1]","83:2":"minecraft:sugar_cane[age=2]","83:3":"minecraft:sugar_cane[age=3]","83:4":"minecraft:sugar_cane[age=4]","83:5":"minecraft:sugar_cane[age=5]","83:6":"minecraft:sugar_cane[age=6]","83:7":"minecraft:sugar_cane[age=7]","83:8":"minecraft:sugar_cane[age=8]","83:9":"minecraft:sugar_cane[age=9]","83:10":"minecraft:sugar_cane[age=10]","83:11":"minecraft:sugar_cane[age=11]","83:12":"minecraft:sugar_cane[age=12]","83:13":"minecraft:sugar_cane[age=13]","83:14":"minecraft:sugar_cane[age=14]","83:15":"minecraft:sugar_cane[age=15]","84:0":"minecraft:jukebox[has_record=false]","84:1":"minecraft:jukebox[has_record=true]","85:0":"minecraft:oak_fence[east=false,south=false,north=false,west=false]","86:0":"minecraft:carved_pumpkin[facing=south]","86:1":"minecraft:carved_pumpkin[facing=west]","86:2":"minecraft:carved_pumpkin[facing=north]","86:3":"minecraft:carved_pumpkin[facing=east]","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","90:1":"minecraft:nether_portal[axis=x]","90:2":"minecraft:nether_portal[axis=z]","91:0":"minecraft:jack_o_lantern[facing=south]","91:1":"minecraft:jack_o_lantern[facing=west]","91:2":"minecraft:jack_o_lantern[facing=north]","91:3":"minecraft:jack_o_lantern[facing=east]","92:0":"minecraft:cake[bites=0]","92:1":"minecraft:cake[bites=1]","92:2":"minecraft:cake[bites=2]","92:3":"minecraft:cake[bites=3]","92:4":"minecraft:cake[bites=4]","92:5":"minecraft:cake[bites=5]","92:6":"minecraft:cake[bites=6]","93:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=false]","93:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=false]","93:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","93:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=false]","93:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=false]","93:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=false]","93:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=false]","93:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=false]","93:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=false]","93:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=false]","93:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=false]","93:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=false]","93:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=false]","93:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=false]","93:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=false]","93:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=false]","94:0":"minecraft:repeater[delay=1,facing=south,locked=false,powered=true]","94:1":"minecraft:repeater[delay=1,facing=west,locked=false,powered=true]","94:2":"minecraft:repeater[delay=1,facing=north,locked=false,powered=true]","94:3":"minecraft:repeater[delay=1,facing=east,locked=false,powered=true]","94:4":"minecraft:repeater[delay=2,facing=south,locked=false,powered=true]","94:5":"minecraft:repeater[delay=2,facing=west,locked=false,powered=true]","94:6":"minecraft:repeater[delay=2,facing=north,locked=false,powered=true]","94:7":"minecraft:repeater[delay=2,facing=east,locked=false,powered=true]","94:8":"minecraft:repeater[delay=3,facing=south,locked=false,powered=true]","94:9":"minecraft:repeater[delay=3,facing=west,locked=false,powered=true]","94:10":"minecraft:repeater[delay=3,facing=north,locked=false,powered=true]","94:11":"minecraft:repeater[delay=3,facing=east,locked=false,powered=true]","94:12":"minecraft:repeater[delay=4,facing=south,locked=false,powered=true]","94:13":"minecraft:repeater[delay=4,facing=west,locked=false,powered=true]","94:14":"minecraft:repeater[delay=4,facing=north,locked=false,powered=true]","94:15":"minecraft:repeater[delay=4,facing=east,locked=false,powered=true]","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor[half=bottom,facing=north,open=false,powered=false]","96:1":"minecraft:oak_trapdoor[half=bottom,facing=south,open=false,powered=false]","96:2":"minecraft:oak_trapdoor[half=bottom,facing=west,open=false,powered=false]","96:3":"minecraft:oak_trapdoor[half=bottom,facing=east,open=false,powered=false]","96:4":"minecraft:oak_trapdoor[half=bottom,facing=north,open=true,powered=true]","96:5":"minecraft:oak_trapdoor[half=bottom,facing=south,open=true,powered=true]","96:6":"minecraft:oak_trapdoor[half=bottom,facing=west,open=true,powered=true]","96:7":"minecraft:oak_trapdoor[half=bottom,facing=east,open=true,powered=true]","96:8":"minecraft:oak_trapdoor[half=top,facing=north,open=false,powered=false]","96:9":"minecraft:oak_trapdoor[half=top,facing=south,open=false,powered=false]","96:10":"minecraft:oak_trapdoor[half=top,facing=west,open=false,powered=false]","96:11":"minecraft:oak_trapdoor[half=top,facing=east,open=false,powered=false]","96:12":"minecraft:oak_trapdoor[half=top,facing=north,open=true,powered=true]","96:13":"minecraft:oak_trapdoor[half=top,facing=south,open=true,powered=true]","96:14":"minecraft:oak_trapdoor[half=top,facing=west,open=true,powered=true]","96:15":"minecraft:oak_trapdoor[half=top,facing=east,open=true,powered=true]","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","99:1":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","99:2":"minecraft:brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","99:3":"minecraft:brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","99:4":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","99:5":"minecraft:brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","99:6":"minecraft:brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","99:7":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","99:8":"minecraft:brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","99:9":"minecraft:brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","99:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","99:14":"minecraft:brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","99:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","100:0":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]","100:1":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]","100:2":"minecraft:red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]","100:3":"minecraft:red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]","100:4":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]","100:5":"minecraft:red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]","100:6":"minecraft:red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]","100:7":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]","100:8":"minecraft:red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]","100:9":"minecraft:red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]","100:10":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]","100:14":"minecraft:red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]","100:15":"minecraft:mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]","101:0":"minecraft:iron_bars[east=false,south=false,north=false,west=false]","102:0":"minecraft:glass_pane[east=false,south=false,north=false,west=false]","103:0":"minecraft:melon","104:0":"minecraft:pumpkin_stem[age=0]","104:1":"minecraft:pumpkin_stem[age=1]","104:2":"minecraft:pumpkin_stem[age=2]","104:3":"minecraft:pumpkin_stem[age=3]","104:4":"minecraft:pumpkin_stem[age=4]","104:5":"minecraft:pumpkin_stem[age=5]","104:6":"minecraft:pumpkin_stem[age=6]","104:7":"minecraft:pumpkin_stem[age=7]","105:0":"minecraft:melon_stem[age=0]","105:1":"minecraft:melon_stem[age=1]","105:2":"minecraft:melon_stem[age=2]","105:3":"minecraft:melon_stem[age=3]","105:4":"minecraft:melon_stem[age=4]","105:5":"minecraft:melon_stem[age=5]","105:6":"minecraft:melon_stem[age=6]","105:7":"minecraft:melon_stem[age=7]","106:0":"minecraft:vine[east=false,south=false,north=false,west=false,up=false]","106:1":"minecraft:vine[east=false,south=true,north=false,west=false,up=false]","106:2":"minecraft:vine[east=false,south=false,north=false,west=true,up=false]","106:3":"minecraft:vine[east=false,south=true,north=false,west=true,up=false]","106:4":"minecraft:vine[east=false,south=false,north=true,west=false,up=false]","106:5":"minecraft:vine[east=false,south=true,north=true,west=false,up=false]","106:6":"minecraft:vine[east=false,south=false,north=true,west=true,up=false]","106:7":"minecraft:vine[east=false,south=true,north=true,west=true,up=false]","106:8":"minecraft:vine[east=true,south=false,north=false,west=false,up=false]","106:9":"minecraft:vine[east=true,south=true,north=false,west=false,up=false]","106:10":"minecraft:vine[east=true,south=false,north=false,west=true,up=false]","106:11":"minecraft:vine[east=true,south=true,north=false,west=true,up=false]","106:12":"minecraft:vine[east=true,south=false,north=true,west=false,up=false]","106:13":"minecraft:vine[east=true,south=true,north=true,west=false,up=false]","106:14":"minecraft:vine[east=true,south=false,north=true,west=true,up=false]","106:15":"minecraft:vine[east=true,south=true,north=true,west=true,up=false]","107:0":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","107:1":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","107:2":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","107:3":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","107:4":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","107:5":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","107:6":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","107:7":"minecraft:oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","107:8":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","107:9":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","107:10":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","107:11":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","107:12":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","107:13":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","107:14":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","107:15":"minecraft:oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","108:0":"minecraft:brick_stairs[half=bottom,shape=straight,facing=east]","108:1":"minecraft:brick_stairs[half=bottom,shape=straight,facing=west]","108:2":"minecraft:brick_stairs[half=bottom,shape=straight,facing=south]","108:3":"minecraft:brick_stairs[half=bottom,shape=straight,facing=north]","108:4":"minecraft:brick_stairs[half=top,shape=straight,facing=east]","108:5":"minecraft:brick_stairs[half=top,shape=straight,facing=west]","108:6":"minecraft:brick_stairs[half=top,shape=straight,facing=south]","108:7":"minecraft:brick_stairs[half=top,shape=straight,facing=north]","109:0":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=east]","109:1":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=west]","109:2":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=south]","109:3":"minecraft:stone_brick_stairs[half=bottom,shape=straight,facing=north]","109:4":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=east]","109:5":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=west]","109:6":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=south]","109:7":"minecraft:stone_brick_stairs[half=top,shape=straight,facing=north]","110:0":"minecraft:mycelium[snowy=false]","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence[east=false,south=false,north=false,west=false]","114:0":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=east]","114:1":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=west]","114:2":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=south]","114:3":"minecraft:nether_brick_stairs[half=bottom,shape=straight,facing=north]","114:4":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=east]","114:5":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=west]","114:6":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=south]","114:7":"minecraft:nether_brick_stairs[half=top,shape=straight,facing=north]","115:0":"minecraft:nether_wart[age=0]","115:1":"minecraft:nether_wart[age=1]","115:2":"minecraft:nether_wart[age=2]","115:3":"minecraft:nether_wart[age=3]","116:0":"minecraft:enchanting_table","117:0":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","117:1":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]","117:2":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]","117:3":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]","117:4":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]","117:5":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]","117:6":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]","117:7":"minecraft:brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]","118:0":"minecraft:cauldron[level=0]","118:1":"minecraft:cauldron[level=1]","118:2":"minecraft:cauldron[level=2]","118:3":"minecraft:cauldron[level=3]","119:0":"minecraft:end_portal","120:0":"minecraft:end_portal_frame[eye=false,facing=south]","120:1":"minecraft:end_portal_frame[eye=false,facing=west]","120:2":"minecraft:end_portal_frame[eye=false,facing=north]","120:3":"minecraft:end_portal_frame[eye=false,facing=east]","120:4":"minecraft:end_portal_frame[eye=true,facing=south]","120:5":"minecraft:end_portal_frame[eye=true,facing=west]","120:6":"minecraft:end_portal_frame[eye=true,facing=north]","120:7":"minecraft:end_portal_frame[eye=true,facing=east]","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp[lit=false]","124:0":"minecraft:redstone_lamp[lit=true]","125:0":"minecraft:oak_slab[type=double]","125:1":"minecraft:spruce_slab[type=double]","125:2":"minecraft:birch_slab[type=double]","125:3":"minecraft:jungle_slab[type=double]","125:4":"minecraft:acacia_slab[type=double]","125:5":"minecraft:dark_oak_slab[type=double]","126:0":"minecraft:oak_slab[type=bottom]","126:1":"minecraft:spruce_slab[type=bottom]","126:2":"minecraft:birch_slab[type=bottom]","126:3":"minecraft:jungle_slab[type=bottom]","126:4":"minecraft:acacia_slab[type=bottom]","126:5":"minecraft:dark_oak_slab[type=bottom]","126:8":"minecraft:oak_slab[type=top]","126:9":"minecraft:spruce_slab[type=top]","126:10":"minecraft:birch_slab[type=top]","126:11":"minecraft:jungle_slab[type=top]","126:12":"minecraft:acacia_slab[type=top]","126:13":"minecraft:dark_oak_slab[type=top]","127:0":"minecraft:cocoa[facing=south,age=0]","127:1":"minecraft:cocoa[facing=west,age=0]","127:2":"minecraft:cocoa[facing=north,age=0]","127:3":"minecraft:cocoa[facing=east,age=0]","127:4":"minecraft:cocoa[facing=south,age=1]","127:5":"minecraft:cocoa[facing=west,age=1]","127:6":"minecraft:cocoa[facing=north,age=1]","127:7":"minecraft:cocoa[facing=east,age=1]","127:8":"minecraft:cocoa[facing=south,age=2]","127:9":"minecraft:cocoa[facing=west,age=2]","127:10":"minecraft:cocoa[facing=north,age=2]","127:11":"minecraft:cocoa[facing=east,age=2]","128:0":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=east]","128:1":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=west]","128:2":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=south]","128:3":"minecraft:sandstone_stairs[half=bottom,shape=straight,facing=north]","128:4":"minecraft:sandstone_stairs[half=top,shape=straight,facing=east]","128:5":"minecraft:sandstone_stairs[half=top,shape=straight,facing=west]","128:6":"minecraft:sandstone_stairs[half=top,shape=straight,facing=south]","128:7":"minecraft:sandstone_stairs[half=top,shape=straight,facing=north]","129:0":"minecraft:emerald_ore","130:2":"minecraft:ender_chest[facing=north]","130:3":"minecraft:ender_chest[facing=south]","130:4":"minecraft:ender_chest[facing=west]","130:5":"minecraft:ender_chest[facing=east]","131:0":"minecraft:tripwire_hook[powered=false,attached=false,facing=south]","131:1":"minecraft:tripwire_hook[powered=false,attached=false,facing=west]","131:2":"minecraft:tripwire_hook[powered=false,attached=false,facing=north]","131:3":"minecraft:tripwire_hook[powered=false,attached=false,facing=east]","131:4":"minecraft:tripwire_hook[powered=false,attached=true,facing=south]","131:5":"minecraft:tripwire_hook[powered=false,attached=true,facing=west]","131:6":"minecraft:tripwire_hook[powered=false,attached=true,facing=north]","131:7":"minecraft:tripwire_hook[powered=false,attached=true,facing=east]","131:8":"minecraft:tripwire_hook[powered=true,attached=false,facing=south]","131:9":"minecraft:tripwire_hook[powered=true,attached=false,facing=west]","131:10":"minecraft:tripwire_hook[powered=true,attached=false,facing=north]","131:11":"minecraft:tripwire_hook[powered=true,attached=false,facing=east]","131:12":"minecraft:tripwire_hook[powered=true,attached=true,facing=south]","131:13":"minecraft:tripwire_hook[powered=true,attached=true,facing=west]","131:14":"minecraft:tripwire_hook[powered=true,attached=true,facing=north]","131:15":"minecraft:tripwire_hook[powered=true,attached=true,facing=east]","132:0":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:1":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:4":"minecraft:tripwire[disarmed=false,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:5":"minecraft:tripwire[disarmed=false,east=false,powered=true,south=false,north=false,west=false,attached=true]","132:8":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=false]","132:9":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=false]","132:12":"minecraft:tripwire[disarmed=true,east=false,powered=false,south=false,north=false,west=false,attached=true]","132:13":"minecraft:tripwire[disarmed=true,east=false,powered=true,south=false,north=false,west=false,attached=true]","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=east]","134:1":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=west]","134:2":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=south]","134:3":"minecraft:spruce_stairs[half=bottom,shape=straight,facing=north]","134:4":"minecraft:spruce_stairs[half=top,shape=straight,facing=east]","134:5":"minecraft:spruce_stairs[half=top,shape=straight,facing=west]","134:6":"minecraft:spruce_stairs[half=top,shape=straight,facing=south]","134:7":"minecraft:spruce_stairs[half=top,shape=straight,facing=north]","135:0":"minecraft:birch_stairs[half=bottom,shape=straight,facing=east]","135:1":"minecraft:birch_stairs[half=bottom,shape=straight,facing=west]","135:2":"minecraft:birch_stairs[half=bottom,shape=straight,facing=south]","135:3":"minecraft:birch_stairs[half=bottom,shape=straight,facing=north]","135:4":"minecraft:birch_stairs[half=top,shape=straight,facing=east]","135:5":"minecraft:birch_stairs[half=top,shape=straight,facing=west]","135:6":"minecraft:birch_stairs[half=top,shape=straight,facing=south]","135:7":"minecraft:birch_stairs[half=top,shape=straight,facing=north]","136:0":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=east]","136:1":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=west]","136:2":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=south]","136:3":"minecraft:jungle_stairs[half=bottom,shape=straight,facing=north]","136:4":"minecraft:jungle_stairs[half=top,shape=straight,facing=east]","136:5":"minecraft:jungle_stairs[half=top,shape=straight,facing=west]","136:6":"minecraft:jungle_stairs[half=top,shape=straight,facing=south]","136:7":"minecraft:jungle_stairs[half=top,shape=straight,facing=north]","137:0":"minecraft:command_block[conditional=false,facing=down]","137:1":"minecraft:command_block[conditional=false,facing=up]","137:2":"minecraft:command_block[conditional=false,facing=north]","137:3":"minecraft:command_block[conditional=false,facing=south]","137:4":"minecraft:command_block[conditional=false,facing=west]","137:5":"minecraft:command_block[conditional=false,facing=east]","137:8":"minecraft:command_block[conditional=true,facing=down]","137:9":"minecraft:command_block[conditional=true,facing=up]","137:10":"minecraft:command_block[conditional=true,facing=north]","137:11":"minecraft:command_block[conditional=true,facing=south]","137:12":"minecraft:command_block[conditional=true,facing=west]","137:13":"minecraft:command_block[conditional=true,facing=east]","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","139:1":"minecraft:mossy_cobblestone_wall[east=false,south=false,north=false,west=false,up=false]","140:0":"minecraft:flower_pot","140:1":"minecraft:potted_poppy","140:2":"minecraft:potted_dandelion","140:3":"minecraft:potted_oak_sapling","140:4":"minecraft:potted_spruce_sapling","140:5":"minecraft:potted_birch_sapling","140:6":"minecraft:potted_jungle_sapling","140:7":"minecraft:potted_red_mushroom","140:8":"minecraft:potted_brown_mushroom","140:9":"minecraft:potted_cactus","140:10":"minecraft:potted_dead_bush","140:11":"minecraft:potted_fern","140:12":"minecraft:potted_acacia_sapling","140:13":"minecraft:potted_dark_oak_sapling","140:14":"minecraft:potted_blue_orchid","140:15":"minecraft:potted_allium","141:0":"minecraft:carrots[age=0]","141:1":"minecraft:carrots[age=1]","141:2":"minecraft:carrots[age=2]","141:3":"minecraft:carrots[age=3]","141:4":"minecraft:carrots[age=4]","141:5":"minecraft:carrots[age=5]","141:6":"minecraft:carrots[age=6]","141:7":"minecraft:carrots[age=7]","142:0":"minecraft:potatoes[age=0]","142:1":"minecraft:potatoes[age=1]","142:2":"minecraft:potatoes[age=2]","142:3":"minecraft:potatoes[age=3]","142:4":"minecraft:potatoes[age=4]","142:5":"minecraft:potatoes[age=5]","142:6":"minecraft:potatoes[age=6]","142:7":"minecraft:potatoes[age=7]","143:0":"minecraft:oak_button[powered=false,facing=east,face=ceiling]","143:1":"minecraft:oak_button[powered=false,facing=east,face=wall]","143:2":"minecraft:oak_button[powered=false,facing=west,face=wall]","143:3":"minecraft:oak_button[powered=false,facing=south,face=wall]","143:4":"minecraft:oak_button[powered=false,facing=north,face=wall]","143:5":"minecraft:oak_button[powered=false,facing=east,face=floor]","143:8":"minecraft:oak_button[powered=true,facing=south,face=ceiling]","143:9":"minecraft:oak_button[powered=true,facing=east,face=wall]","143:10":"minecraft:oak_button[powered=true,facing=west,face=wall]","143:11":"minecraft:oak_button[powered=true,facing=south,face=wall]","143:12":"minecraft:oak_button[powered=true,facing=north,face=wall]","143:13":"minecraft:oak_button[powered=true,facing=south,face=floor]","144:0":"minecraft:skeleton_skull[rotation=0]","144:1":"minecraft:skeleton_skull[rotation=4]","144:2":"minecraft:skeleton_wall_skull[facing=north]","144:3":"minecraft:skeleton_wall_skull[facing=south]","144:4":"minecraft:skeleton_wall_skull[facing=west]","144:5":"minecraft:skeleton_wall_skull[facing=east]","144:8":"minecraft:skeleton_skull[rotation=8]","144:9":"minecraft:skeleton_skull[rotation=12]","144:10":"minecraft:skeleton_wall_skull[facing=north]","144:11":"minecraft:skeleton_wall_skull[facing=south]","144:12":"minecraft:skeleton_wall_skull[facing=west]","144:13":"minecraft:skeleton_wall_skull[facing=east]","145:0":"minecraft:anvil[facing=south]","145:1":"minecraft:anvil[facing=west]","145:2":"minecraft:anvil[facing=north]","145:3":"minecraft:anvil[facing=east]","145:4":"minecraft:chipped_anvil[facing=south]","145:5":"minecraft:chipped_anvil[facing=west]","145:6":"minecraft:chipped_anvil[facing=north]","145:7":"minecraft:chipped_anvil[facing=east]","145:8":"minecraft:damaged_anvil[facing=south]","145:9":"minecraft:damaged_anvil[facing=west]","145:10":"minecraft:damaged_anvil[facing=north]","145:11":"minecraft:damaged_anvil[facing=east]","146:2":"minecraft:trapped_chest[facing=north,type=single]","146:3":"minecraft:trapped_chest[facing=south,type=single]","146:4":"minecraft:trapped_chest[facing=west,type=single]","146:5":"minecraft:trapped_chest[facing=east,type=single]","147:0":"minecraft:light_weighted_pressure_plate[power=0]","147:1":"minecraft:light_weighted_pressure_plate[power=1]","147:2":"minecraft:light_weighted_pressure_plate[power=2]","147:3":"minecraft:light_weighted_pressure_plate[power=3]","147:4":"minecraft:light_weighted_pressure_plate[power=4]","147:5":"minecraft:light_weighted_pressure_plate[power=5]","147:6":"minecraft:light_weighted_pressure_plate[power=6]","147:7":"minecraft:light_weighted_pressure_plate[power=7]","147:8":"minecraft:light_weighted_pressure_plate[power=8]","147:9":"minecraft:light_weighted_pressure_plate[power=9]","147:10":"minecraft:light_weighted_pressure_plate[power=10]","147:11":"minecraft:light_weighted_pressure_plate[power=11]","147:12":"minecraft:light_weighted_pressure_plate[power=12]","147:13":"minecraft:light_weighted_pressure_plate[power=13]","147:14":"minecraft:light_weighted_pressure_plate[power=14]","147:15":"minecraft:light_weighted_pressure_plate[power=15]","148:0":"minecraft:heavy_weighted_pressure_plate[power=0]","148:1":"minecraft:heavy_weighted_pressure_plate[power=1]","148:2":"minecraft:heavy_weighted_pressure_plate[power=2]","148:3":"minecraft:heavy_weighted_pressure_plate[power=3]","148:4":"minecraft:heavy_weighted_pressure_plate[power=4]","148:5":"minecraft:heavy_weighted_pressure_plate[power=5]","148:6":"minecraft:heavy_weighted_pressure_plate[power=6]","148:7":"minecraft:heavy_weighted_pressure_plate[power=7]","148:8":"minecraft:heavy_weighted_pressure_plate[power=8]","148:9":"minecraft:heavy_weighted_pressure_plate[power=9]","148:10":"minecraft:heavy_weighted_pressure_plate[power=10]","148:11":"minecraft:heavy_weighted_pressure_plate[power=11]","148:12":"minecraft:heavy_weighted_pressure_plate[power=12]","148:13":"minecraft:heavy_weighted_pressure_plate[power=13]","148:14":"minecraft:heavy_weighted_pressure_plate[power=14]","148:15":"minecraft:heavy_weighted_pressure_plate[power=15]","149:0":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:1":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:2":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:3":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:4":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:5":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:6":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:7":"minecraft:comparator[mode=subtract,powered=false,facing=east]","149:8":"minecraft:comparator[mode=compare,powered=false,facing=south]","149:9":"minecraft:comparator[mode=compare,powered=false,facing=west]","149:10":"minecraft:comparator[mode=compare,powered=false,facing=north]","149:11":"minecraft:comparator[mode=compare,powered=false,facing=east]","149:12":"minecraft:comparator[mode=subtract,powered=false,facing=south]","149:13":"minecraft:comparator[mode=subtract,powered=false,facing=west]","149:14":"minecraft:comparator[mode=subtract,powered=false,facing=north]","149:15":"minecraft:comparator[mode=subtract,powered=false,facing=east]","150:0":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:1":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:2":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:3":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:4":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:5":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:6":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:7":"minecraft:comparator[mode=subtract,powered=true,facing=east]","150:8":"minecraft:comparator[mode=compare,powered=true,facing=south]","150:9":"minecraft:comparator[mode=compare,powered=true,facing=west]","150:10":"minecraft:comparator[mode=compare,powered=true,facing=north]","150:11":"minecraft:comparator[mode=compare,powered=true,facing=east]","150:12":"minecraft:comparator[mode=subtract,powered=true,facing=south]","150:13":"minecraft:comparator[mode=subtract,powered=true,facing=west]","150:14":"minecraft:comparator[mode=subtract,powered=true,facing=north]","150:15":"minecraft:comparator[mode=subtract,powered=true,facing=east]","151:0":"minecraft:daylight_detector[inverted=false,power=0]","151:1":"minecraft:daylight_detector[inverted=false,power=1]","151:2":"minecraft:daylight_detector[inverted=false,power=2]","151:3":"minecraft:daylight_detector[inverted=false,power=3]","151:4":"minecraft:daylight_detector[inverted=false,power=4]","151:5":"minecraft:daylight_detector[inverted=false,power=5]","151:6":"minecraft:daylight_detector[inverted=false,power=6]","151:7":"minecraft:daylight_detector[inverted=false,power=7]","151:8":"minecraft:daylight_detector[inverted=false,power=8]","151:9":"minecraft:daylight_detector[inverted=false,power=9]","151:10":"minecraft:daylight_detector[inverted=false,power=10]","151:11":"minecraft:daylight_detector[inverted=false,power=11]","151:12":"minecraft:daylight_detector[inverted=false,power=12]","151:13":"minecraft:daylight_detector[inverted=false,power=13]","151:14":"minecraft:daylight_detector[inverted=false,power=14]","151:15":"minecraft:daylight_detector[inverted=false,power=15]","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper[facing=down,enabled=true]","154:2":"minecraft:hopper[facing=north,enabled=true]","154:3":"minecraft:hopper[facing=south,enabled=true]","154:4":"minecraft:hopper[facing=west,enabled=true]","154:5":"minecraft:hopper[facing=east,enabled=true]","154:8":"minecraft:hopper[facing=down,enabled=false]","154:10":"minecraft:hopper[facing=north,enabled=false]","154:11":"minecraft:hopper[facing=south,enabled=false]","154:12":"minecraft:hopper[facing=west,enabled=false]","154:13":"minecraft:hopper[facing=east,enabled=false]","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar[axis=y]","155:3":"minecraft:quartz_pillar[axis=x]","155:4":"minecraft:quartz_pillar[axis=z]","155:6":"minecraft:quartz_pillar[axis=x]","155:10":"minecraft:quartz_pillar[axis=z]","156:0":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=east]","156:1":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=west]","156:2":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=south]","156:3":"minecraft:quartz_stairs[half=bottom,shape=straight,facing=north]","156:4":"minecraft:quartz_stairs[half=top,shape=straight,facing=east]","156:5":"minecraft:quartz_stairs[half=top,shape=straight,facing=west]","156:6":"minecraft:quartz_stairs[half=top,shape=straight,facing=south]","156:7":"minecraft:quartz_stairs[half=top,shape=straight,facing=north]","157:0":"minecraft:activator_rail[shape=north_south,powered=false]","157:1":"minecraft:activator_rail[shape=east_west,powered=false]","157:2":"minecraft:activator_rail[shape=ascending_east,powered=false]","157:3":"minecraft:activator_rail[shape=ascending_west,powered=false]","157:4":"minecraft:activator_rail[shape=ascending_north,powered=false]","157:5":"minecraft:activator_rail[shape=ascending_south,powered=false]","157:8":"minecraft:activator_rail[shape=north_south,powered=true]","157:9":"minecraft:activator_rail[shape=east_west,powered=true]","157:10":"minecraft:activator_rail[shape=ascending_east,powered=true]","157:11":"minecraft:activator_rail[shape=ascending_west,powered=true]","157:12":"minecraft:activator_rail[shape=ascending_north,powered=true]","157:13":"minecraft:activator_rail[shape=ascending_south,powered=true]","158:0":"minecraft:dropper[triggered=false,facing=down]","158:1":"minecraft:dropper[triggered=false,facing=up]","158:2":"minecraft:dropper[triggered=false,facing=north]","158:3":"minecraft:dropper[triggered=false,facing=south]","158:4":"minecraft:dropper[triggered=false,facing=west]","158:5":"minecraft:dropper[triggered=false,facing=east]","158:8":"minecraft:dropper[triggered=true,facing=down]","158:9":"minecraft:dropper[triggered=true,facing=up]","158:10":"minecraft:dropper[triggered=true,facing=north]","158:11":"minecraft:dropper[triggered=true,facing=south]","158:12":"minecraft:dropper[triggered=true,facing=west]","158:13":"minecraft:dropper[triggered=true,facing=east]","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane[east=false,south=false,north=false,west=false]","160:1":"minecraft:orange_stained_glass_pane[east=false,south=false,north=false,west=false]","160:2":"minecraft:magenta_stained_glass_pane[east=false,south=false,north=false,west=false]","160:3":"minecraft:light_blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:4":"minecraft:yellow_stained_glass_pane[east=false,south=false,north=false,west=false]","160:5":"minecraft:lime_stained_glass_pane[east=false,south=false,north=false,west=false]","160:6":"minecraft:pink_stained_glass_pane[east=false,south=false,north=false,west=false]","160:7":"minecraft:gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:8":"minecraft:light_gray_stained_glass_pane[east=false,south=false,north=false,west=false]","160:9":"minecraft:cyan_stained_glass_pane[east=false,south=false,north=false,west=false]","160:10":"minecraft:purple_stained_glass_pane[east=false,south=false,north=false,west=false]","160:11":"minecraft:blue_stained_glass_pane[east=false,south=false,north=false,west=false]","160:12":"minecraft:brown_stained_glass_pane[east=false,south=false,north=false,west=false]","160:13":"minecraft:green_stained_glass_pane[east=false,south=false,north=false,west=false]","160:14":"minecraft:red_stained_glass_pane[east=false,south=false,north=false,west=false]","160:15":"minecraft:black_stained_glass_pane[east=false,south=false,north=false,west=false]","161:0":"minecraft:acacia_leaves[persistent=false,distance=1]","161:1":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:4":"minecraft:acacia_leaves[persistent=true,distance=1]","161:5":"minecraft:dark_oak_leaves[persistent=true,distance=1]","161:8":"minecraft:acacia_leaves[persistent=false,distance=1]","161:9":"minecraft:dark_oak_leaves[persistent=false,distance=1]","161:12":"minecraft:acacia_leaves[persistent=true,distance=1]","161:13":"minecraft:dark_oak_leaves[persistent=true,distance=1]","162:0":"minecraft:acacia_log[axis=y]","162:1":"minecraft:dark_oak_log[axis=y]","162:4":"minecraft:acacia_log[axis=x]","162:5":"minecraft:dark_oak_log[axis=x]","162:8":"minecraft:acacia_log[axis=z]","162:9":"minecraft:dark_oak_log[axis=z]","162:12":"minecraft:acacia_wood","162:13":"minecraft:dark_oak_wood","163:0":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=east]","163:1":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=west]","163:2":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=south]","163:3":"minecraft:acacia_stairs[half=bottom,shape=straight,facing=north]","163:4":"minecraft:acacia_stairs[half=top,shape=straight,facing=east]","163:5":"minecraft:acacia_stairs[half=top,shape=straight,facing=west]","163:6":"minecraft:acacia_stairs[half=top,shape=straight,facing=south]","163:7":"minecraft:acacia_stairs[half=top,shape=straight,facing=north]","164:0":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=east]","164:1":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=west]","164:2":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=south]","164:3":"minecraft:dark_oak_stairs[half=bottom,shape=straight,facing=north]","164:4":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=east]","164:5":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=west]","164:6":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=south]","164:7":"minecraft:dark_oak_stairs[half=top,shape=straight,facing=north]","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor[half=bottom,facing=north,open=false]","167:1":"minecraft:iron_trapdoor[half=bottom,facing=south,open=false]","167:2":"minecraft:iron_trapdoor[half=bottom,facing=west,open=false]","167:3":"minecraft:iron_trapdoor[half=bottom,facing=east,open=false]","167:4":"minecraft:iron_trapdoor[half=bottom,facing=north,open=true]","167:5":"minecraft:iron_trapdoor[half=bottom,facing=south,open=true]","167:6":"minecraft:iron_trapdoor[half=bottom,facing=west,open=true]","167:7":"minecraft:iron_trapdoor[half=bottom,facing=east,open=true]","167:8":"minecraft:iron_trapdoor[half=top,facing=north,open=false]","167:9":"minecraft:iron_trapdoor[half=top,facing=south,open=false]","167:10":"minecraft:iron_trapdoor[half=top,facing=west,open=false]","167:11":"minecraft:iron_trapdoor[half=top,facing=east,open=false]","167:12":"minecraft:iron_trapdoor[half=top,facing=north,open=true]","167:13":"minecraft:iron_trapdoor[half=top,facing=south,open=true]","167:14":"minecraft:iron_trapdoor[half=top,facing=west,open=true]","167:15":"minecraft:iron_trapdoor[half=top,facing=east,open=true]","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block[axis=y]","170:4":"minecraft:hay_block[axis=x]","170:8":"minecraft:hay_block[axis=z]","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower[half=lower]","175:1":"minecraft:lilac[half=lower]","175:2":"minecraft:tall_grass[half=lower]","175:3":"minecraft:large_fern[half=lower]","175:4":"minecraft:rose_bush[half=lower]","175:5":"minecraft:peony[half=lower]","175:8":"minecraft:sunflower[half=upper]","175:9":"minecraft:lilac[half=upper]","175:10":"minecraft:tall_grass[half=upper]","175:11":"minecraft:large_fern[half=upper]","175:12":"minecraft:rose_bush[half=upper]","175:13":"minecraft:peony[half=upper]","176:0":"minecraft:white_banner[rotation=0]","176:1":"minecraft:white_banner[rotation=1]","176:2":"minecraft:white_banner[rotation=2]","176:3":"minecraft:white_banner[rotation=3]","176:4":"minecraft:white_banner[rotation=4]","176:5":"minecraft:white_banner[rotation=5]","176:6":"minecraft:white_banner[rotation=6]","176:7":"minecraft:white_banner[rotation=7]","176:8":"minecraft:white_banner[rotation=8]","176:9":"minecraft:white_banner[rotation=9]","176:10":"minecraft:white_banner[rotation=10]","176:11":"minecraft:white_banner[rotation=11]","176:12":"minecraft:white_banner[rotation=12]","176:13":"minecraft:white_banner[rotation=13]","176:14":"minecraft:white_banner[rotation=14]","176:15":"minecraft:white_banner[rotation=15]","177:2":"minecraft:white_wall_banner[facing=north]","177:3":"minecraft:white_wall_banner[facing=south]","177:4":"minecraft:white_wall_banner[facing=west]","177:5":"minecraft:white_wall_banner[facing=east]","178:0":"minecraft:daylight_detector[inverted=true,power=0]","178:1":"minecraft:daylight_detector[inverted=true,power=1]","178:2":"minecraft:daylight_detector[inverted=true,power=2]","178:3":"minecraft:daylight_detector[inverted=true,power=3]","178:4":"minecraft:daylight_detector[inverted=true,power=4]","178:5":"minecraft:daylight_detector[inverted=true,power=5]","178:6":"minecraft:daylight_detector[inverted=true,power=6]","178:7":"minecraft:daylight_detector[inverted=true,power=7]","178:8":"minecraft:daylight_detector[inverted=true,power=8]","178:9":"minecraft:daylight_detector[inverted=true,power=9]","178:10":"minecraft:daylight_detector[inverted=true,power=10]","178:11":"minecraft:daylight_detector[inverted=true,power=11]","178:12":"minecraft:daylight_detector[inverted=true,power=12]","178:13":"minecraft:daylight_detector[inverted=true,power=13]","178:14":"minecraft:daylight_detector[inverted=true,power=14]","178:15":"minecraft:daylight_detector[inverted=true,power=15]","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=east]","180:1":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=west]","180:2":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=south]","180:3":"minecraft:red_sandstone_stairs[half=bottom,shape=straight,facing=north]","180:4":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=east]","180:5":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=west]","180:6":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=south]","180:7":"minecraft:red_sandstone_stairs[half=top,shape=straight,facing=north]","181:0":"minecraft:red_sandstone_slab[type=double]","181:8":"minecraft:smooth_red_sandstone","182:0":"minecraft:red_sandstone_slab[type=bottom]","182:8":"minecraft:red_sandstone_slab[type=top]","183:0":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=false]","183:1":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=false]","183:2":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=false]","183:3":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=false]","183:4":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=south,open=true]","183:5":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=west,open=true]","183:6":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=north,open=true]","183:7":"minecraft:spruce_fence_gate[in_wall=false,powered=false,facing=east,open=true]","183:8":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=false]","183:9":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=false]","183:10":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=false]","183:11":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=false]","183:12":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=south,open=true]","183:13":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=west,open=true]","183:14":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=north,open=true]","183:15":"minecraft:spruce_fence_gate[in_wall=false,powered=true,facing=east,open=true]","184:0":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=false]","184:1":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=false]","184:2":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=false]","184:3":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=false]","184:4":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=south,open=true]","184:5":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=west,open=true]","184:6":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=north,open=true]","184:7":"minecraft:birch_fence_gate[in_wall=false,powered=false,facing=east,open=true]","184:8":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=false]","184:9":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=false]","184:10":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=false]","184:11":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=false]","184:12":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=south,open=true]","184:13":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=west,open=true]","184:14":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=north,open=true]","184:15":"minecraft:birch_fence_gate[in_wall=false,powered=true,facing=east,open=true]","185:0":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=false]","185:1":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=false]","185:2":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=false]","185:3":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=false]","185:4":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=south,open=true]","185:5":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=west,open=true]","185:6":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=north,open=true]","185:7":"minecraft:jungle_fence_gate[in_wall=false,powered=false,facing=east,open=true]","185:8":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=false]","185:9":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=false]","185:10":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=false]","185:11":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=false]","185:12":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=south,open=true]","185:13":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=west,open=true]","185:14":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=north,open=true]","185:15":"minecraft:jungle_fence_gate[in_wall=false,powered=true,facing=east,open=true]","186:0":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=false]","186:1":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=false]","186:2":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=false]","186:3":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=false]","186:4":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=south,open=true]","186:5":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=west,open=true]","186:6":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=north,open=true]","186:7":"minecraft:dark_oak_fence_gate[in_wall=false,powered=false,facing=east,open=true]","186:8":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=false]","186:9":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=false]","186:10":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=false]","186:11":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=false]","186:12":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=south,open=true]","186:13":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=west,open=true]","186:14":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=north,open=true]","186:15":"minecraft:dark_oak_fence_gate[in_wall=false,powered=true,facing=east,open=true]","187:0":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=false]","187:1":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=false]","187:2":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=false]","187:3":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=false]","187:4":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=south,open=true]","187:5":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=west,open=true]","187:6":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=north,open=true]","187:7":"minecraft:acacia_fence_gate[in_wall=false,powered=false,facing=east,open=true]","187:8":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=false]","187:9":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=false]","187:10":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=false]","187:11":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=false]","187:12":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=south,open=true]","187:13":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=west,open=true]","187:14":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=north,open=true]","187:15":"minecraft:acacia_fence_gate[in_wall=false,powered=true,facing=east,open=true]","188:0":"minecraft:spruce_fence[east=false,south=false,north=false,west=false]","189:0":"minecraft:birch_fence[east=false,south=false,north=false,west=false]","190:0":"minecraft:jungle_fence[east=false,south=false,north=false,west=false]","191:0":"minecraft:dark_oak_fence[east=false,south=false,north=false,west=false]","192:0":"minecraft:acacia_fence[east=false,south=false,north=false,west=false]","193:0":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=false]","193:1":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=false]","193:2":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=false]","193:3":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=false]","193:4":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=east,open=true]","193:5":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=south,open=true]","193:6":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=west,open=true]","193:7":"minecraft:spruce_door[hinge=right,half=lower,powered=false,facing=north,open=true]","193:8":"minecraft:spruce_door[hinge=left,half=upper,powered=false,facing=east,open=false]","193:9":"minecraft:spruce_door[hinge=right,half=upper,powered=false,facing=east,open=false]","193:10":"minecraft:spruce_door[hinge=left,half=upper,powered=true,facing=east,open=false]","193:11":"minecraft:spruce_door[hinge=right,half=upper,powered=true,facing=east,open=false]","194:0":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=false]","194:1":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=false]","194:2":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=false]","194:3":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=false]","194:4":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=east,open=true]","194:5":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=south,open=true]","194:6":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=west,open=true]","194:7":"minecraft:birch_door[hinge=right,half=lower,powered=false,facing=north,open=true]","194:8":"minecraft:birch_door[hinge=left,half=upper,powered=false,facing=east,open=false]","194:9":"minecraft:birch_door[hinge=right,half=upper,powered=false,facing=east,open=false]","194:10":"minecraft:birch_door[hinge=left,half=upper,powered=true,facing=east,open=false]","194:11":"minecraft:birch_door[hinge=right,half=upper,powered=true,facing=east,open=false]","195:0":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=false]","195:1":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=false]","195:2":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=false]","195:3":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=false]","195:4":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=east,open=true]","195:5":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=south,open=true]","195:6":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=west,open=true]","195:7":"minecraft:jungle_door[hinge=right,half=lower,powered=false,facing=north,open=true]","195:8":"minecraft:jungle_door[hinge=left,half=upper,powered=false,facing=east,open=false]","195:9":"minecraft:jungle_door[hinge=right,half=upper,powered=false,facing=east,open=false]","195:10":"minecraft:jungle_door[hinge=left,half=upper,powered=true,facing=east,open=false]","195:11":"minecraft:jungle_door[hinge=right,half=upper,powered=true,facing=east,open=false]","196:0":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=false]","196:1":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=false]","196:2":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=false]","196:3":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=false]","196:4":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=east,open=true]","196:5":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=south,open=true]","196:6":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=west,open=true]","196:7":"minecraft:acacia_door[hinge=right,half=lower,powered=false,facing=north,open=true]","196:8":"minecraft:acacia_door[hinge=left,half=upper,powered=false,facing=east,open=false]","196:9":"minecraft:acacia_door[hinge=right,half=upper,powered=false,facing=east,open=false]","196:10":"minecraft:acacia_door[hinge=left,half=upper,powered=true,facing=east,open=false]","196:11":"minecraft:acacia_door[hinge=right,half=upper,powered=true,facing=east,open=false]","197:0":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=false]","197:1":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=false]","197:2":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=false]","197:3":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=false]","197:4":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=east,open=true]","197:5":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=south,open=true]","197:6":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=west,open=true]","197:7":"minecraft:dark_oak_door[hinge=right,half=lower,powered=false,facing=north,open=true]","197:8":"minecraft:dark_oak_door[hinge=left,half=upper,powered=false,facing=east,open=false]","197:9":"minecraft:dark_oak_door[hinge=right,half=upper,powered=false,facing=east,open=false]","197:10":"minecraft:dark_oak_door[hinge=left,half=upper,powered=true,facing=east,open=false]","197:11":"minecraft:dark_oak_door[hinge=right,half=upper,powered=true,facing=east,open=false]","198:0":"minecraft:end_rod[facing=down]","198:1":"minecraft:end_rod[facing=up]","198:2":"minecraft:end_rod[facing=north]","198:3":"minecraft:end_rod[facing=south]","198:4":"minecraft:end_rod[facing=west]","198:5":"minecraft:end_rod[facing=east]","199:0":"minecraft:chorus_plant[east=false,south=false,north=false,west=false,up=false,down=false]","200:0":"minecraft:chorus_flower[age=0]","200:1":"minecraft:chorus_flower[age=1]","200:2":"minecraft:chorus_flower[age=2]","200:3":"minecraft:chorus_flower[age=3]","200:4":"minecraft:chorus_flower[age=4]","200:5":"minecraft:chorus_flower[age=5]","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar[axis=y]","202:4":"minecraft:purpur_pillar[axis=x]","202:8":"minecraft:purpur_pillar[axis=z]","203:0":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=east]","203:1":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=west]","203:2":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=south]","203:3":"minecraft:purpur_stairs[half=bottom,shape=straight,facing=north]","203:4":"minecraft:purpur_stairs[half=top,shape=straight,facing=east]","203:5":"minecraft:purpur_stairs[half=top,shape=straight,facing=west]","203:6":"minecraft:purpur_stairs[half=top,shape=straight,facing=south]","203:7":"minecraft:purpur_stairs[half=top,shape=straight,facing=north]","204:0":"minecraft:purpur_slab[type=double]","205:0":"minecraft:purpur_slab[type=bottom]","205:8":"minecraft:purpur_slab[type=top]","206:0":"minecraft:end_stone_bricks","207:0":"minecraft:beetroots[age=0]","207:1":"minecraft:beetroots[age=1]","207:2":"minecraft:beetroots[age=2]","207:3":"minecraft:beetroots[age=3]","208:0":"minecraft:grass_path","209:0":"minecraft:end_gateway","210:0":"minecraft:repeating_command_block[conditional=false,facing=down]","210:1":"minecraft:repeating_command_block[conditional=false,facing=up]","210:2":"minecraft:repeating_command_block[conditional=false,facing=north]","210:3":"minecraft:repeating_command_block[conditional=false,facing=south]","210:4":"minecraft:repeating_command_block[conditional=false,facing=west]","210:5":"minecraft:repeating_command_block[conditional=false,facing=east]","210:8":"minecraft:repeating_command_block[conditional=true,facing=down]","210:9":"minecraft:repeating_command_block[conditional=true,facing=up]","210:10":"minecraft:repeating_command_block[conditional=true,facing=north]","210:11":"minecraft:repeating_command_block[conditional=true,facing=south]","210:12":"minecraft:repeating_command_block[conditional=true,facing=west]","210:13":"minecraft:repeating_command_block[conditional=true,facing=east]","211:0":"minecraft:chain_command_block[conditional=false,facing=down]","211:1":"minecraft:chain_command_block[conditional=false,facing=up]","211:2":"minecraft:chain_command_block[conditional=false,facing=north]","211:3":"minecraft:chain_command_block[conditional=false,facing=south]","211:4":"minecraft:chain_command_block[conditional=false,facing=west]","211:5":"minecraft:chain_command_block[conditional=false,facing=east]","211:8":"minecraft:chain_command_block[conditional=true,facing=down]","211:9":"minecraft:chain_command_block[conditional=true,facing=up]","211:10":"minecraft:chain_command_block[conditional=true,facing=north]","211:11":"minecraft:chain_command_block[conditional=true,facing=south]","211:12":"minecraft:chain_command_block[conditional=true,facing=west]","211:13":"minecraft:chain_command_block[conditional=true,facing=east]","212:0":"minecraft:frosted_ice[age=0]","212:1":"minecraft:frosted_ice[age=1]","212:2":"minecraft:frosted_ice[age=2]","212:3":"minecraft:frosted_ice[age=3]","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block[axis=y]","216:4":"minecraft:bone_block[axis=x]","216:8":"minecraft:bone_block[axis=z]","217:0":"minecraft:structure_void","218:0":"minecraft:observer[powered=false,facing=down]","218:1":"minecraft:observer[powered=false,facing=up]","218:2":"minecraft:observer[powered=false,facing=north]","218:3":"minecraft:observer[powered=false,facing=south]","218:4":"minecraft:observer[powered=false,facing=west]","218:5":"minecraft:observer[powered=false,facing=east]","218:8":"minecraft:observer[powered=true,facing=down]","218:9":"minecraft:observer[powered=true,facing=up]","218:10":"minecraft:observer[powered=true,facing=north]","218:11":"minecraft:observer[powered=true,facing=south]","218:12":"minecraft:observer[powered=true,facing=west]","218:13":"minecraft:observer[powered=true,facing=east]","219:0":"minecraft:white_shulker_box[facing=down]","219:1":"minecraft:white_shulker_box[facing=up]","219:2":"minecraft:white_shulker_box[facing=north]","219:3":"minecraft:white_shulker_box[facing=south]","219:4":"minecraft:white_shulker_box[facing=west]","219:5":"minecraft:white_shulker_box[facing=east]","220:0":"minecraft:orange_shulker_box[facing=down]","220:1":"minecraft:orange_shulker_box[facing=up]","220:2":"minecraft:orange_shulker_box[facing=north]","220:3":"minecraft:orange_shulker_box[facing=south]","220:4":"minecraft:orange_shulker_box[facing=west]","220:5":"minecraft:orange_shulker_box[facing=east]","221:0":"minecraft:magenta_shulker_box[facing=down]","221:1":"minecraft:magenta_shulker_box[facing=up]","221:2":"minecraft:magenta_shulker_box[facing=north]","221:3":"minecraft:magenta_shulker_box[facing=south]","221:4":"minecraft:magenta_shulker_box[facing=west]","221:5":"minecraft:magenta_shulker_box[facing=east]","222:0":"minecraft:light_blue_shulker_box[facing=down]","222:1":"minecraft:light_blue_shulker_box[facing=up]","222:2":"minecraft:light_blue_shulker_box[facing=north]","222:3":"minecraft:light_blue_shulker_box[facing=south]","222:4":"minecraft:light_blue_shulker_box[facing=west]","222:5":"minecraft:light_blue_shulker_box[facing=east]","223:0":"minecraft:yellow_shulker_box[facing=down]","223:1":"minecraft:yellow_shulker_box[facing=up]","223:2":"minecraft:yellow_shulker_box[facing=north]","223:3":"minecraft:yellow_shulker_box[facing=south]","223:4":"minecraft:yellow_shulker_box[facing=west]","223:5":"minecraft:yellow_shulker_box[facing=east]","224:0":"minecraft:lime_shulker_box[facing=down]","224:1":"minecraft:lime_shulker_box[facing=up]","224:2":"minecraft:lime_shulker_box[facing=north]","224:3":"minecraft:lime_shulker_box[facing=south]","224:4":"minecraft:lime_shulker_box[facing=west]","224:5":"minecraft:lime_shulker_box[facing=east]","225:0":"minecraft:pink_shulker_box[facing=down]","225:1":"minecraft:pink_shulker_box[facing=up]","225:2":"minecraft:pink_shulker_box[facing=north]","225:3":"minecraft:pink_shulker_box[facing=south]","225:4":"minecraft:pink_shulker_box[facing=west]","225:5":"minecraft:pink_shulker_box[facing=east]","226:0":"minecraft:gray_shulker_box[facing=down]","226:1":"minecraft:gray_shulker_box[facing=up]","226:2":"minecraft:gray_shulker_box[facing=north]","226:3":"minecraft:gray_shulker_box[facing=south]","226:4":"minecraft:gray_shulker_box[facing=west]","226:5":"minecraft:gray_shulker_box[facing=east]","227:0":"minecraft:light_gray_shulker_box[facing=down]","227:1":"minecraft:light_gray_shulker_box[facing=up]","227:2":"minecraft:light_gray_shulker_box[facing=north]","227:3":"minecraft:light_gray_shulker_box[facing=south]","227:4":"minecraft:light_gray_shulker_box[facing=west]","227:5":"minecraft:light_gray_shulker_box[facing=east]","228:0":"minecraft:cyan_shulker_box[facing=down]","228:1":"minecraft:cyan_shulker_box[facing=up]","228:2":"minecraft:cyan_shulker_box[facing=north]","228:3":"minecraft:cyan_shulker_box[facing=south]","228:4":"minecraft:cyan_shulker_box[facing=west]","228:5":"minecraft:cyan_shulker_box[facing=east]","229:0":"minecraft:purple_shulker_box[facing=down]","229:1":"minecraft:purple_shulker_box[facing=up]","229:2":"minecraft:purple_shulker_box[facing=north]","229:3":"minecraft:purple_shulker_box[facing=south]","229:4":"minecraft:purple_shulker_box[facing=west]","229:5":"minecraft:purple_shulker_box[facing=east]","230:0":"minecraft:blue_shulker_box[facing=down]","230:1":"minecraft:blue_shulker_box[facing=up]","230:2":"minecraft:blue_shulker_box[facing=north]","230:3":"minecraft:blue_shulker_box[facing=south]","230:4":"minecraft:blue_shulker_box[facing=west]","230:5":"minecraft:blue_shulker_box[facing=east]","231:0":"minecraft:brown_shulker_box[facing=down]","231:1":"minecraft:brown_shulker_box[facing=up]","231:2":"minecraft:brown_shulker_box[facing=north]","231:3":"minecraft:brown_shulker_box[facing=south]","231:4":"minecraft:brown_shulker_box[facing=west]","231:5":"minecraft:brown_shulker_box[facing=east]","232:0":"minecraft:green_shulker_box[facing=down]","232:1":"minecraft:green_shulker_box[facing=up]","232:2":"minecraft:green_shulker_box[facing=north]","232:3":"minecraft:green_shulker_box[facing=south]","232:4":"minecraft:green_shulker_box[facing=west]","232:5":"minecraft:green_shulker_box[facing=east]","233:0":"minecraft:red_shulker_box[facing=down]","233:1":"minecraft:red_shulker_box[facing=up]","233:2":"minecraft:red_shulker_box[facing=north]","233:3":"minecraft:red_shulker_box[facing=south]","233:4":"minecraft:red_shulker_box[facing=west]","233:5":"minecraft:red_shulker_box[facing=east]","234:0":"minecraft:black_shulker_box[facing=down]","234:1":"minecraft:black_shulker_box[facing=up]","234:2":"minecraft:black_shulker_box[facing=north]","234:3":"minecraft:black_shulker_box[facing=south]","234:4":"minecraft:black_shulker_box[facing=west]","234:5":"minecraft:black_shulker_box[facing=east]","235:0":"minecraft:white_glazed_terracotta[facing=south]","235:1":"minecraft:white_glazed_terracotta[facing=west]","235:2":"minecraft:white_glazed_terracotta[facing=north]","235:3":"minecraft:white_glazed_terracotta[facing=east]","236:0":"minecraft:orange_glazed_terracotta[facing=south]","236:1":"minecraft:orange_glazed_terracotta[facing=west]","236:2":"minecraft:orange_glazed_terracotta[facing=north]","236:3":"minecraft:orange_glazed_terracotta[facing=east]","237:0":"minecraft:magenta_glazed_terracotta[facing=south]","237:1":"minecraft:magenta_glazed_terracotta[facing=west]","237:2":"minecraft:magenta_glazed_terracotta[facing=north]","237:3":"minecraft:magenta_glazed_terracotta[facing=east]","238:0":"minecraft:light_blue_glazed_terracotta[facing=south]","238:1":"minecraft:light_blue_glazed_terracotta[facing=west]","238:2":"minecraft:light_blue_glazed_terracotta[facing=north]","238:3":"minecraft:light_blue_glazed_terracotta[facing=east]","239:0":"minecraft:yellow_glazed_terracotta[facing=south]","239:1":"minecraft:yellow_glazed_terracotta[facing=west]","239:2":"minecraft:yellow_glazed_terracotta[facing=north]","239:3":"minecraft:yellow_glazed_terracotta[facing=east]","240:0":"minecraft:lime_glazed_terracotta[facing=south]","240:1":"minecraft:lime_glazed_terracotta[facing=west]","240:2":"minecraft:lime_glazed_terracotta[facing=north]","240:3":"minecraft:lime_glazed_terracotta[facing=east]","241:0":"minecraft:pink_glazed_terracotta[facing=south]","241:1":"minecraft:pink_glazed_terracotta[facing=west]","241:2":"minecraft:pink_glazed_terracotta[facing=north]","241:3":"minecraft:pink_glazed_terracotta[facing=east]","242:0":"minecraft:gray_glazed_terracotta[facing=south]","242:1":"minecraft:gray_glazed_terracotta[facing=west]","242:2":"minecraft:gray_glazed_terracotta[facing=north]","242:3":"minecraft:gray_glazed_terracotta[facing=east]","243:0":"minecraft:light_gray_glazed_terracotta[facing=south]","243:1":"minecraft:light_gray_glazed_terracotta[facing=west]","243:2":"minecraft:light_gray_glazed_terracotta[facing=north]","243:3":"minecraft:light_gray_glazed_terracotta[facing=east]","244:0":"minecraft:cyan_glazed_terracotta[facing=south]","244:1":"minecraft:cyan_glazed_terracotta[facing=west]","244:2":"minecraft:cyan_glazed_terracotta[facing=north]","244:3":"minecraft:cyan_glazed_terracotta[facing=east]","245:0":"minecraft:purple_glazed_terracotta[facing=south]","245:1":"minecraft:purple_glazed_terracotta[facing=west]","245:2":"minecraft:purple_glazed_terracotta[facing=north]","245:3":"minecraft:purple_glazed_terracotta[facing=east]","246:0":"minecraft:blue_glazed_terracotta[facing=south]","246:1":"minecraft:blue_glazed_terracotta[facing=west]","246:2":"minecraft:blue_glazed_terracotta[facing=north]","246:3":"minecraft:blue_glazed_terracotta[facing=east]","247:0":"minecraft:brown_glazed_terracotta[facing=south]","247:1":"minecraft:brown_glazed_terracotta[facing=west]","247:2":"minecraft:brown_glazed_terracotta[facing=north]","247:3":"minecraft:brown_glazed_terracotta[facing=east]","248:0":"minecraft:green_glazed_terracotta[facing=south]","248:1":"minecraft:green_glazed_terracotta[facing=west]","248:2":"minecraft:green_glazed_terracotta[facing=north]","248:3":"minecraft:green_glazed_terracotta[facing=east]","249:0":"minecraft:red_glazed_terracotta[facing=south]","249:1":"minecraft:red_glazed_terracotta[facing=west]","249:2":"minecraft:red_glazed_terracotta[facing=north]","249:3":"minecraft:red_glazed_terracotta[facing=east]","250:0":"minecraft:black_glazed_terracotta[facing=south]","250:1":"minecraft:black_glazed_terracotta[facing=west]","250:2":"minecraft:black_glazed_terracotta[facing=north]","250:3":"minecraft:black_glazed_terracotta[facing=east]","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block[mode=save]","255:1":"minecraft:structure_block[mode=load]","255:2":"minecraft:structure_block[mode=corner]","255:3":"minecraft:structure_block[mode=data]"},"items":{"0:0":"minecraft:air","1:0":"minecraft:stone","1:1":"minecraft:granite","1:2":"minecraft:polished_granite","1:3":"minecraft:diorite","1:4":"minecraft:polished_diorite","1:5":"minecraft:andesite","1:6":"minecraft:polished_andesite","2:0":"minecraft:grass_block","3:0":"minecraft:dirt","3:1":"minecraft:coarse_dirt","3:2":"minecraft:podzol","4:0":"minecraft:cobblestone","5:0":"minecraft:oak_planks","5:1":"minecraft:spruce_planks","5:2":"minecraft:birch_planks","5:3":"minecraft:jungle_planks","5:4":"minecraft:acacia_planks","5:5":"minecraft:dark_oak_planks","6:0":"minecraft:oak_sapling","6:1":"minecraft:spruce_sapling","6:2":"minecraft:birch_sapling","6:3":"minecraft:jungle_sapling","6:4":"minecraft:acacia_sapling","6:5":"minecraft:dark_oak_sapling","7:0":"minecraft:bedrock","12:0":"minecraft:sand","12:1":"minecraft:red_sand","13:0":"minecraft:gravel","14:0":"minecraft:gold_ore","15:0":"minecraft:iron_ore","16:0":"minecraft:coal_ore","17:0":"minecraft:oak_log","17:1":"minecraft:spruce_log","17:2":"minecraft:birch_log","17:3":"minecraft:jungle_log","18:0":"minecraft:oak_leaves","18:1":"minecraft:spruce_leaves","18:2":"minecraft:birch_leaves","18:3":"minecraft:jungle_leaves","19:0":"minecraft:sponge","19:1":"minecraft:wet_sponge","20:0":"minecraft:glass","21:0":"minecraft:lapis_ore","22:0":"minecraft:lapis_block","23:0":"minecraft:dispenser","24:0":"minecraft:sandstone","24:1":"minecraft:chiseled_sandstone","24:2":"minecraft:cut_sandstone","25:0":"minecraft:note_block","27:0":"minecraft:powered_rail","28:0":"minecraft:detector_rail","29:0":"minecraft:sticky_piston","30:0":"minecraft:cobweb","31:1":"minecraft:grass","31:2":"minecraft:fern","32:0":"minecraft:dead_bush","33:0":"minecraft:piston","35:0":"minecraft:white_wool","35:1":"minecraft:orange_wool","35:2":"minecraft:magenta_wool","35:3":"minecraft:light_blue_wool","35:4":"minecraft:yellow_wool","35:5":"minecraft:lime_wool","35:6":"minecraft:pink_wool","35:7":"minecraft:gray_wool","35:8":"minecraft:light_gray_wool","35:9":"minecraft:cyan_wool","35:10":"minecraft:purple_wool","35:11":"minecraft:blue_wool","35:12":"minecraft:brown_wool","35:13":"minecraft:green_wool","35:14":"minecraft:red_wool","35:15":"minecraft:black_wool","37:0":"minecraft:dandelion","38:0":"minecraft:poppy","38:1":"minecraft:blue_orchid","38:2":"minecraft:allium","38:3":"minecraft:azure_bluet","38:4":"minecraft:red_tulip","38:5":"minecraft:orange_tulip","38:6":"minecraft:white_tulip","38:7":"minecraft:pink_tulip","38:8":"minecraft:oxeye_daisy","39:0":"minecraft:brown_mushroom","40:0":"minecraft:red_mushroom","41:0":"minecraft:gold_block","42:0":"minecraft:iron_block","44:0":"minecraft:stone_slab","44:1":"minecraft:sandstone_slab","44:3":"minecraft:cobblestone_slab","44:4":"minecraft:brick_slab","44:5":"minecraft:stone_brick_slab","44:6":"minecraft:nether_brick_slab","44:7":"minecraft:quartz_slab","45:0":"minecraft:bricks","46:0":"minecraft:tnt","47:0":"minecraft:bookshelf","48:0":"minecraft:mossy_cobblestone","49:0":"minecraft:obsidian","50:0":"minecraft:torch","52:0":"minecraft:spawner","53:0":"minecraft:oak_stairs","54:0":"minecraft:chest","56:0":"minecraft:diamond_ore","57:0":"minecraft:diamond_block","58:0":"minecraft:crafting_table","60:0":"minecraft:farmland","61:0":"minecraft:furnace","65:0":"minecraft:ladder","66:0":"minecraft:rail","67:0":"minecraft:cobblestone_stairs","69:0":"minecraft:lever","70:0":"minecraft:stone_pressure_plate","72:0":"minecraft:oak_pressure_plate","73:0":"minecraft:redstone_ore","76:0":"minecraft:redstone_torch","77:0":"minecraft:stone_button","78:0":"minecraft:snow","79:0":"minecraft:ice","80:0":"minecraft:snow_block","81:0":"minecraft:cactus","82:0":"minecraft:clay","84:0":"minecraft:jukebox","85:0":"minecraft:oak_fence","86:0":"minecraft:carved_pumpkin","87:0":"minecraft:netherrack","88:0":"minecraft:soul_sand","89:0":"minecraft:glowstone","91:0":"minecraft:jack_o_lantern","95:0":"minecraft:white_stained_glass","95:1":"minecraft:orange_stained_glass","95:2":"minecraft:magenta_stained_glass","95:3":"minecraft:light_blue_stained_glass","95:4":"minecraft:yellow_stained_glass","95:5":"minecraft:lime_stained_glass","95:6":"minecraft:pink_stained_glass","95:7":"minecraft:gray_stained_glass","95:8":"minecraft:light_gray_stained_glass","95:9":"minecraft:cyan_stained_glass","95:10":"minecraft:purple_stained_glass","95:11":"minecraft:blue_stained_glass","95:12":"minecraft:brown_stained_glass","95:13":"minecraft:green_stained_glass","95:14":"minecraft:red_stained_glass","95:15":"minecraft:black_stained_glass","96:0":"minecraft:oak_trapdoor","97:0":"minecraft:infested_stone","97:1":"minecraft:infested_cobblestone","97:2":"minecraft:infested_stone_bricks","97:3":"minecraft:infested_mossy_stone_bricks","97:4":"minecraft:infested_cracked_stone_bricks","97:5":"minecraft:infested_chiseled_stone_bricks","98:0":"minecraft:stone_bricks","98:1":"minecraft:mossy_stone_bricks","98:2":"minecraft:cracked_stone_bricks","98:3":"minecraft:chiseled_stone_bricks","99:0":"minecraft:brown_mushroom_block","100:0":"minecraft:red_mushroom_block","101:0":"minecraft:iron_bars","102:0":"minecraft:glass_pane","103:0":"minecraft:melon","106:0":"minecraft:vine","107:0":"minecraft:oak_fence_gate","108:0":"minecraft:brick_stairs","109:0":"minecraft:stone_brick_stairs","110:0":"minecraft:mycelium","111:0":"minecraft:lily_pad","112:0":"minecraft:nether_bricks","113:0":"minecraft:nether_brick_fence","114:0":"minecraft:nether_brick_stairs","116:0":"minecraft:enchanting_table","120:0":"minecraft:end_portal_frame","121:0":"minecraft:end_stone","122:0":"minecraft:dragon_egg","123:0":"minecraft:redstone_lamp","126:0":"minecraft:oak_slab","126:1":"minecraft:spruce_slab","126:2":"minecraft:birch_slab","126:3":"minecraft:jungle_slab","126:4":"minecraft:acacia_slab","126:5":"minecraft:dark_oak_slab","128:0":"minecraft:sandstone_stairs","129:0":"minecraft:emerald_ore","130:0":"minecraft:ender_chest","131:0":"minecraft:tripwire_hook","133:0":"minecraft:emerald_block","134:0":"minecraft:spruce_stairs","135:0":"minecraft:birch_stairs","136:0":"minecraft:jungle_stairs","137:0":"minecraft:command_block","138:0":"minecraft:beacon","139:0":"minecraft:cobblestone_wall","139:1":"minecraft:mossy_cobblestone_wall","143:0":"minecraft:oak_button","145:0":"minecraft:anvil","145:1":"minecraft:chipped_anvil","145:2":"minecraft:damaged_anvil","146:0":"minecraft:trapped_chest","147:0":"minecraft:light_weighted_pressure_plate","148:0":"minecraft:heavy_weighted_pressure_plate","151:0":"minecraft:daylight_detector","152:0":"minecraft:redstone_block","153:0":"minecraft:nether_quartz_ore","154:0":"minecraft:hopper","155:0":"minecraft:quartz_block","155:1":"minecraft:chiseled_quartz_block","155:2":"minecraft:quartz_pillar","156:0":"minecraft:quartz_stairs","157:0":"minecraft:activator_rail","158:0":"minecraft:dropper","159:0":"minecraft:white_terracotta","159:1":"minecraft:orange_terracotta","159:2":"minecraft:magenta_terracotta","159:3":"minecraft:light_blue_terracotta","159:4":"minecraft:yellow_terracotta","159:5":"minecraft:lime_terracotta","159:6":"minecraft:pink_terracotta","159:7":"minecraft:gray_terracotta","159:8":"minecraft:light_gray_terracotta","159:9":"minecraft:cyan_terracotta","159:10":"minecraft:purple_terracotta","159:11":"minecraft:blue_terracotta","159:12":"minecraft:brown_terracotta","159:13":"minecraft:green_terracotta","159:14":"minecraft:red_terracotta","159:15":"minecraft:black_terracotta","160:0":"minecraft:white_stained_glass_pane","160:1":"minecraft:orange_stained_glass_pane","160:2":"minecraft:magenta_stained_glass_pane","160:3":"minecraft:light_blue_stained_glass_pane","160:4":"minecraft:yellow_stained_glass_pane","160:5":"minecraft:lime_stained_glass_pane","160:6":"minecraft:pink_stained_glass_pane","160:7":"minecraft:gray_stained_glass_pane","160:8":"minecraft:light_gray_stained_glass_pane","160:9":"minecraft:cyan_stained_glass_pane","160:10":"minecraft:purple_stained_glass_pane","160:11":"minecraft:blue_stained_glass_pane","160:12":"minecraft:brown_stained_glass_pane","160:13":"minecraft:green_stained_glass_pane","160:14":"minecraft:red_stained_glass_pane","160:15":"minecraft:black_stained_glass_pane","161:0":"minecraft:acacia_leaves","161:1":"minecraft:dark_oak_leaves","162:0":"minecraft:acacia_log","162:1":"minecraft:dark_oak_log","163:0":"minecraft:acacia_stairs","164:0":"minecraft:dark_oak_stairs","165:0":"minecraft:slime_block","166:0":"minecraft:barrier","167:0":"minecraft:iron_trapdoor","168:0":"minecraft:prismarine","168:1":"minecraft:prismarine_bricks","168:2":"minecraft:dark_prismarine","169:0":"minecraft:sea_lantern","170:0":"minecraft:hay_block","171:0":"minecraft:white_carpet","171:1":"minecraft:orange_carpet","171:2":"minecraft:magenta_carpet","171:3":"minecraft:light_blue_carpet","171:4":"minecraft:yellow_carpet","171:5":"minecraft:lime_carpet","171:6":"minecraft:pink_carpet","171:7":"minecraft:gray_carpet","171:8":"minecraft:light_gray_carpet","171:9":"minecraft:cyan_carpet","171:10":"minecraft:purple_carpet","171:11":"minecraft:blue_carpet","171:12":"minecraft:brown_carpet","171:13":"minecraft:green_carpet","171:14":"minecraft:red_carpet","171:15":"minecraft:black_carpet","172:0":"minecraft:terracotta","173:0":"minecraft:coal_block","174:0":"minecraft:packed_ice","175:0":"minecraft:sunflower","175:1":"minecraft:lilac","175:2":"minecraft:tall_grass","175:3":"minecraft:large_fern","175:4":"minecraft:rose_bush","175:5":"minecraft:peony","179:0":"minecraft:red_sandstone","179:1":"minecraft:chiseled_red_sandstone","179:2":"minecraft:cut_red_sandstone","180:0":"minecraft:red_sandstone_stairs","182:0":"minecraft:red_sandstone_slab","183:0":"minecraft:spruce_fence_gate","184:0":"minecraft:birch_fence_gate","185:0":"minecraft:jungle_fence_gate","186:0":"minecraft:dark_oak_fence_gate","187:0":"minecraft:acacia_fence_gate","188:0":"minecraft:spruce_fence","189:0":"minecraft:birch_fence","190:0":"minecraft:jungle_fence","191:0":"minecraft:dark_oak_fence","192:0":"minecraft:acacia_fence","198:0":"minecraft:end_rod","199:0":"minecraft:chorus_plant","200:0":"minecraft:chorus_flower","201:0":"minecraft:purpur_block","202:0":"minecraft:purpur_pillar","203:0":"minecraft:purpur_stairs","205:0":"minecraft:purpur_slab","206:0":"minecraft:end_stone_bricks","208:0":"minecraft:grass_path","210:0":"minecraft:repeating_command_block","211:0":"minecraft:chain_command_block","213:0":"minecraft:magma_block","214:0":"minecraft:nether_wart_block","215:0":"minecraft:red_nether_bricks","216:0":"minecraft:bone_block","217:0":"minecraft:structure_void","218:0":"minecraft:observer","219:0":"minecraft:white_shulker_box","220:0":"minecraft:orange_shulker_box","221:0":"minecraft:magenta_shulker_box","222:0":"minecraft:light_blue_shulker_box","223:0":"minecraft:yellow_shulker_box","224:0":"minecraft:lime_shulker_box","225:0":"minecraft:pink_shulker_box","226:0":"minecraft:gray_shulker_box","227:0":"minecraft:light_gray_shulker_box","228:0":"minecraft:cyan_shulker_box","229:0":"minecraft:purple_shulker_box","230:0":"minecraft:blue_shulker_box","231:0":"minecraft:brown_shulker_box","232:0":"minecraft:green_shulker_box","233:0":"minecraft:red_shulker_box","234:0":"minecraft:black_shulker_box","235:0":"minecraft:white_glazed_terracotta","236:0":"minecraft:orange_glazed_terracotta","237:0":"minecraft:magenta_glazed_terracotta","238:0":"minecraft:light_blue_glazed_terracotta","239:0":"minecraft:yellow_glazed_terracotta","240:0":"minecraft:lime_glazed_terracotta","241:0":"minecraft:pink_glazed_terracotta","242:0":"minecraft:gray_glazed_terracotta","243:0":"minecraft:light_gray_glazed_terracotta","244:0":"minecraft:cyan_glazed_terracotta","245:0":"minecraft:purple_glazed_terracotta","246:0":"minecraft:blue_glazed_terracotta","247:0":"minecraft:brown_glazed_terracotta","248:0":"minecraft:green_glazed_terracotta","249:0":"minecraft:red_glazed_terracotta","250:0":"minecraft:black_glazed_terracotta","251:0":"minecraft:white_concrete","251:1":"minecraft:orange_concrete","251:2":"minecraft:magenta_concrete","251:3":"minecraft:light_blue_concrete","251:4":"minecraft:yellow_concrete","251:5":"minecraft:lime_concrete","251:6":"minecraft:pink_concrete","251:7":"minecraft:gray_concrete","251:8":"minecraft:light_gray_concrete","251:9":"minecraft:cyan_concrete","251:10":"minecraft:purple_concrete","251:11":"minecraft:blue_concrete","251:12":"minecraft:brown_concrete","251:13":"minecraft:green_concrete","251:14":"minecraft:red_concrete","251:15":"minecraft:black_concrete","252:0":"minecraft:white_concrete_powder","252:1":"minecraft:orange_concrete_powder","252:2":"minecraft:magenta_concrete_powder","252:3":"minecraft:light_blue_concrete_powder","252:4":"minecraft:yellow_concrete_powder","252:5":"minecraft:lime_concrete_powder","252:6":"minecraft:pink_concrete_powder","252:7":"minecraft:gray_concrete_powder","252:8":"minecraft:light_gray_concrete_powder","252:9":"minecraft:cyan_concrete_powder","252:10":"minecraft:purple_concrete_powder","252:11":"minecraft:blue_concrete_powder","252:12":"minecraft:brown_concrete_powder","252:13":"minecraft:green_concrete_powder","252:14":"minecraft:red_concrete_powder","252:15":"minecraft:black_concrete_powder","255:0":"minecraft:structure_block","256:0":"minecraft:iron_shovel","257:0":"minecraft:iron_pickaxe","258:0":"minecraft:iron_axe","259:0":"minecraft:flint_and_steel","260:0":"minecraft:apple","261:0":"minecraft:bow","262:0":"minecraft:arrow","263:0":"minecraft:coal","263:1":"minecraft:charcoal","264:0":"minecraft:diamond","265:0":"minecraft:iron_ingot","266:0":"minecraft:gold_ingot","267:0":"minecraft:iron_sword","268:0":"minecraft:wooden_sword","269:0":"minecraft:wooden_shovel","270:0":"minecraft:wooden_pickaxe","271:0":"minecraft:wooden_axe","272:0":"minecraft:stone_sword","273:0":"minecraft:stone_shovel","274:0":"minecraft:stone_pickaxe","275:0":"minecraft:stone_axe","276:0":"minecraft:diamond_sword","277:0":"minecraft:diamond_shovel","278:0":"minecraft:diamond_pickaxe","279:0":"minecraft:diamond_axe","280:0":"minecraft:stick","281:0":"minecraft:bowl","282:0":"minecraft:mushroom_stew","283:0":"minecraft:golden_sword","284:0":"minecraft:golden_shovel","285:0":"minecraft:golden_pickaxe","286:0":"minecraft:golden_axe","287:0":"minecraft:string","288:0":"minecraft:feather","289:0":"minecraft:gunpowder","290:0":"minecraft:wooden_hoe","291:0":"minecraft:stone_hoe","292:0":"minecraft:iron_hoe","293:0":"minecraft:diamond_hoe","294:0":"minecraft:golden_hoe","295:0":"minecraft:wheat_seeds","296:0":"minecraft:wheat","297:0":"minecraft:bread","298:0":"minecraft:leather_helmet","299:0":"minecraft:leather_chestplate","300:0":"minecraft:leather_leggings","301:0":"minecraft:leather_boots","302:0":"minecraft:chainmail_helmet","303:0":"minecraft:chainmail_chestplate","304:0":"minecraft:chainmail_leggings","305:0":"minecraft:chainmail_boots","306:0":"minecraft:iron_helmet","307:0":"minecraft:iron_chestplate","308:0":"minecraft:iron_leggings","309:0":"minecraft:iron_boots","310:0":"minecraft:diamond_helmet","311:0":"minecraft:diamond_chestplate","312:0":"minecraft:diamond_leggings","313:0":"minecraft:diamond_boots","314:0":"minecraft:golden_helmet","315:0":"minecraft:golden_chestplate","316:0":"minecraft:golden_leggings","317:0":"minecraft:golden_boots","318:0":"minecraft:flint","319:0":"minecraft:porkchop","320:0":"minecraft:cooked_porkchop","321:0":"minecraft:painting","322:0":"minecraft:golden_apple","322:1":"minecraft:enchanted_golden_apple","323:0":"minecraft:sign","324:0":"minecraft:oak_door","325:0":"minecraft:bucket","326:0":"minecraft:water_bucket","327:0":"minecraft:lava_bucket","328:0":"minecraft:minecart","329:0":"minecraft:saddle","330:0":"minecraft:iron_door","331:0":"minecraft:redstone","332:0":"minecraft:snowball","333:0":"minecraft:oak_boat","334:0":"minecraft:leather","335:0":"minecraft:milk_bucket","336:0":"minecraft:brick","337:0":"minecraft:clay_ball","338:0":"minecraft:sugar_cane","339:0":"minecraft:paper","340:0":"minecraft:book","341:0":"minecraft:slime_ball","342:0":"minecraft:chest_minecart","343:0":"minecraft:furnace_minecart","344:0":"minecraft:egg","345:0":"minecraft:compass","346:0":"minecraft:fishing_rod","347:0":"minecraft:clock","348:0":"minecraft:glowstone_dust","349:0":"minecraft:cod","349:1":"minecraft:salmon","349:2":"minecraft:tropical_fish","349:3":"minecraft:pufferfish","350:0":"minecraft:cooked_cod","350:1":"minecraft:cooked_salmon","351:0":"minecraft:ink_sac","351:1":"minecraft:rose_red","351:2":"minecraft:cactus_green","351:3":"minecraft:cocoa_beans","351:4":"minecraft:lapis_lazuli","351:5":"minecraft:purple_dye","351:6":"minecraft:cyan_dye","351:7":"minecraft:light_gray_dye","351:8":"minecraft:gray_dye","351:9":"minecraft:pink_dye","351:10":"minecraft:lime_dye","351:11":"minecraft:dandelion_yellow","351:12":"minecraft:light_blue_dye","351:13":"minecraft:magenta_dye","351:14":"minecraft:orange_dye","351:15":"minecraft:bone_meal","352:0":"minecraft:bone","353:0":"minecraft:sugar","354:0":"minecraft:cake","355:0":"minecraft:white_bed","355:1":"minecraft:orange_bed","355:2":"minecraft:magenta_bed","355:3":"minecraft:light_blue_bed","355:4":"minecraft:yellow_bed","355:5":"minecraft:lime_bed","355:6":"minecraft:pink_bed","355:7":"minecraft:gray_bed","355:8":"minecraft:light_gray_bed","355:9":"minecraft:cyan_bed","355:10":"minecraft:purple_bed","355:11":"minecraft:blue_bed","355:12":"minecraft:brown_bed","355:13":"minecraft:green_bed","355:14":"minecraft:red_bed","355:15":"minecraft:black_bed","356:0":"minecraft:repeater","357:0":"minecraft:cookie","358:0":"minecraft:filled_map","359:0":"minecraft:shears","360:0":"minecraft:melon_slice","361:0":"minecraft:pumpkin_seeds","362:0":"minecraft:melon_seeds","363:0":"minecraft:beef","364:0":"minecraft:cooked_beef","365:0":"minecraft:chicken","366:0":"minecraft:cooked_chicken","367:0":"minecraft:rotten_flesh","368:0":"minecraft:ender_pearl","369:0":"minecraft:blaze_rod","370:0":"minecraft:ghast_tear","371:0":"minecraft:gold_nugget","372:0":"minecraft:nether_wart","373:0":"minecraft:potion","374:0":"minecraft:glass_bottle","375:0":"minecraft:spider_eye","376:0":"minecraft:fermented_spider_eye","377:0":"minecraft:blaze_powder","378:0":"minecraft:magma_cream","379:0":"minecraft:brewing_stand","380:0":"minecraft:cauldron","381:0":"minecraft:ender_eye","382:0":"minecraft:glistering_melon_slice","383:0":"minecraft:pig_spawn_egg","384:0":"minecraft:experience_bottle","385:0":"minecraft:fire_charge","386:0":"minecraft:writable_book","387:0":"minecraft:written_book","388:0":"minecraft:emerald","389:0":"minecraft:item_frame","390:0":"minecraft:flower_pot","391:0":"minecraft:carrot","392:0":"minecraft:potato","393:0":"minecraft:baked_potato","394:0":"minecraft:poisonous_potato","395:0":"minecraft:map","396:0":"minecraft:golden_carrot","397:0":"minecraft:skeleton_skull","397:1":"minecraft:wither_skeleton_skull","397:2":"minecraft:zombie_head","397:3":"minecraft:player_head","397:4":"minecraft:creeper_head","397:5":"minecraft:dragon_head","398:0":"minecraft:carrot_on_a_stick","399:0":"minecraft:nether_star","400:0":"minecraft:pumpkin_pie","401:0":"minecraft:firework_rocket","402:0":"minecraft:firework_star","403:0":"minecraft:enchanted_book","404:0":"minecraft:comparator","405:0":"minecraft:nether_brick","406:0":"minecraft:quartz","407:0":"minecraft:tnt_minecart","408:0":"minecraft:hopper_minecart","409:0":"minecraft:prismarine_shard","410:0":"minecraft:prismarine_crystals","411:0":"minecraft:rabbit","412:0":"minecraft:cooked_rabbit","413:0":"minecraft:rabbit_stew","414:0":"minecraft:rabbit_foot","415:0":"minecraft:rabbit_hide","416:0":"minecraft:armor_stand","417:0":"minecraft:iron_horse_armor","418:0":"minecraft:golden_horse_armor","419:0":"minecraft:diamond_horse_armor","420:0":"minecraft:lead","421:0":"minecraft:name_tag","422:0":"minecraft:command_block_minecart","423:0":"minecraft:mutton","424:0":"minecraft:cooked_mutton","425:0":"minecraft:black_banner","425:1":"minecraft:red_banner","425:2":"minecraft:green_banner","425:3":"minecraft:brown_banner","425:4":"minecraft:blue_banner","425:5":"minecraft:purple_banner","425:6":"minecraft:cyan_banner","425:7":"minecraft:light_gray_banner","425:8":"minecraft:gray_banner","425:9":"minecraft:pink_banner","425:10":"minecraft:lime_banner","425:11":"minecraft:yellow_banner","425:12":"minecraft:light_blue_banner","425:13":"minecraft:magenta_banner","425:14":"minecraft:orange_banner","425:15":"minecraft:white_banner","426:0":"minecraft:end_crystal","427:0":"minecraft:spruce_door","428:0":"minecraft:birch_door","429:0":"minecraft:jungle_door","430:0":"minecraft:acacia_door","431:0":"minecraft:dark_oak_door","432:0":"minecraft:chorus_fruit","433:0":"minecraft:popped_chorus_fruit","434:0":"minecraft:beetroot","435:0":"minecraft:beetroot_seeds","436:0":"minecraft:beetroot_soup","437:0":"minecraft:dragon_breath","438:0":"minecraft:splash_potion","439:0":"minecraft:spectral_arrow","440:0":"minecraft:tipped_arrow","441:0":"minecraft:lingering_potion","442:0":"minecraft:shield","443:0":"minecraft:elytra","444:0":"minecraft:spruce_boat","445:0":"minecraft:birch_boat","446:0":"minecraft:jungle_boat","447:0":"minecraft:acacia_boat","448:0":"minecraft:dark_oak_boat","449:0":"minecraft:totem_of_undying","450:0":"minecraft:shulker_shell","452:0":"minecraft:iron_nugget","453:0":"minecraft:knowledge_book","2256:0":"minecraft:music_disc_13","2257:0":"minecraft:music_disc_cat","2258:0":"minecraft:music_disc_blocks","2259:0":"minecraft:music_disc_chirp","2260:0":"minecraft:music_disc_far","2261:0":"minecraft:music_disc_mall","2262:0":"minecraft:music_disc_mellohi","2263:0":"minecraft:music_disc_stal","2264:0":"minecraft:music_disc_strad","2265:0":"minecraft:music_disc_ward","2266:0":"minecraft:music_disc_11","2267:0":"minecraft:music_disc_wait"}} From c7da4c0adeac4f4687ec6ee5d17937bc0e6d9e1c Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Mon, 5 Apr 2021 10:50:39 -0700 Subject: [PATCH 084/813] Swap out logback for log4j2 --- buildSrc/src/main/kotlin/Versions.kt | 1 - worldedit-core/build.gradle.kts | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 61f367f60e..ae0ecbc6d1 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -7,7 +7,6 @@ object Versions { const val AUTO_VALUE = "1.7.4" const val JUNIT = "5.7.0" const val MOCKITO = "3.7.7" - const val LOGBACK = "1.2.3" const val FAST_UTIL = "8.2.1" const val GUAVA = "21.0" const val GSON = "2.8.0" diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 217c5a0547..85397a9074 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -63,8 +63,7 @@ dependencies { "languageFiles"("${project.group}:worldedit-lang:7.2.1:68@zip") - "testImplementation"("ch.qos.logback:logback-core:${Versions.LOGBACK}") - "testImplementation"("ch.qos.logback:logback-classic:${Versions.LOGBACK}") + "testRuntimeOnly"("org.apache.logging.log4j:log4j-core:2.8.1") } tasks.named("test") { From c91159a25f021f80b6143d924b5c99b0489d56df Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 6 Apr 2021 12:58:38 -0700 Subject: [PATCH 085/813] Note catch about toolchain system --- COMPILING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/COMPILING.md b/COMPILING.md index d97c74d8d1..75e396657c 100644 --- a/COMPILING.md +++ b/COMPILING.md @@ -4,6 +4,9 @@ Compiling You can compile WorldEdit as long as you have some version of Java greater than or equal to 8 installed. Gradle will download JDK 8 specifically if needed, but it needs some version of Java to bootstrap from. +Note that if you have JRE 8 installed, Gradle will currently attempt to use that to compile, which will not work. It is easiest to uninstall JRE 8 and +replace it with JDK 8. + The build process uses Gradle, which you do *not* need to download. WorldEdit is a multi-module project with four modules: * `worldedit-core` contains the WorldEdit API From f0a3848b97fde2c4d4e611a4e81746df5b310fe0 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 6 Apr 2021 13:45:57 -0700 Subject: [PATCH 086/813] Switch to maven-publish (#1718) * Update to use maven-publish instead of maven * Use published loom * These shouldn't be needed --- buildSrc/build.gradle.kts | 2 +- buildSrc/src/main/kotlin/ArtifactoryConfig.kt | 2 +- buildSrc/src/main/kotlin/LibsConfig.kt | 105 +++++++++++++++--- buildSrc/src/main/kotlin/PlatformConfig.kt | 58 +++++----- gradle.properties | 2 +- worldedit-fabric/build.gradle.kts | 32 +++++- worldedit-forge/build.gradle.kts | 25 ++++- 7 files changed, 173 insertions(+), 53 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index ca782587d1..34d6e61376 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } repositories { - jcenter() + mavenCentral() gradlePluginPortal() maven { name = "Forge Maven" diff --git a/buildSrc/src/main/kotlin/ArtifactoryConfig.kt b/buildSrc/src/main/kotlin/ArtifactoryConfig.kt index d19f352387..929bab7af5 100644 --- a/buildSrc/src/main/kotlin/ArtifactoryConfig.kt +++ b/buildSrc/src/main/kotlin/ArtifactoryConfig.kt @@ -35,6 +35,6 @@ fun Project.applyRootArtifactoryConfig() { fun Project.applyCommonArtifactoryConfig() { tasks.named("artifactoryPublish") { - publishConfigs("archives") + publications("maven") } } diff --git a/buildSrc/src/main/kotlin/LibsConfig.kt b/buildSrc/src/main/kotlin/LibsConfig.kt index bea18c5f65..12192755b6 100644 --- a/buildSrc/src/main/kotlin/LibsConfig.kt +++ b/buildSrc/src/main/kotlin/LibsConfig.kt @@ -1,27 +1,36 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.ModuleDependency -import org.gradle.api.internal.HasConvention -import org.gradle.api.plugins.MavenRepositoryHandlerConvention -import org.gradle.api.tasks.Upload +import org.gradle.api.attributes.Bundling +import org.gradle.api.attributes.Category +import org.gradle.api.attributes.DocsType +import org.gradle.api.attributes.LibraryElements +import org.gradle.api.attributes.Usage +import org.gradle.api.attributes.java.TargetJvmVersion +import org.gradle.api.component.AdhocComponentWithVariants +import org.gradle.api.component.SoftwareComponentFactory +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.tasks.bundling.Jar import org.gradle.kotlin.dsl.apply +import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.get -import org.gradle.kotlin.dsl.getPlugin import org.gradle.kotlin.dsl.invoke +import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.register +import javax.inject.Inject fun Project.applyLibrariesConfiguration() { applyCommonConfiguration() apply(plugin = "java-base") - apply(plugin = "maven") + apply(plugin = "maven-publish") apply(plugin = "com.github.johnrengelman.shadow") apply(plugin = "com.jfrog.artifactory") configurations { create("shade") - getByName("archives").extendsFrom(getByName("default")) } group = "${rootProject.group}.worldedit-libs" @@ -86,28 +95,88 @@ fun Project.applyLibrariesConfiguration() { dependsOn("jar", "sourcesJar") } - artifacts { - val jar = tasks.named("jar") - add("default", jar) { - builtBy(jar) + project.apply() + + val libsComponent = project.components["libs"] as AdhocComponentWithVariants + + val apiElements = project.configurations.register("apiElements") { + isVisible = false + description = "API elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.SHADOWED)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) } - val sourcesJar = tasks.named("sourcesJar") - add("archives", sourcesJar) { - builtBy(sourcesJar) + outgoing.artifact(tasks.named("jar")) + } + + val runtimeElements = project.configurations.register("runtimeElements") { + isVisible = false + description = "Runtime elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_RUNTIME)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.SHADOWED)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) } + outgoing.artifact(tasks.named("jar")) } - tasks.register("install") { - configuration = configurations["archives"] - (repositories as HasConvention).convention.getPlugin().mavenInstaller { - pom.version = project.version.toString() - pom.artifactId = project.name + val sourcesElements = project.configurations.register("sourcesElements") { + isVisible = false + description = "Source elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_RUNTIME)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.DOCUMENTATION)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.SHADOWED)) + attribute(DocsType.DOCS_TYPE_ATTRIBUTE, project.objects.named(DocsType.SOURCES)) + } + outgoing.artifact(tasks.named("sourcesJar")) + } + + libsComponent.addVariantsFromConfiguration(apiElements.get()) { + mapToMavenScope("compile") + } + + libsComponent.addVariantsFromConfiguration(runtimeElements.get()) { + mapToMavenScope("runtime") + } + + libsComponent.addVariantsFromConfiguration(sourcesElements.get()) { + mapToMavenScope("runtime") + } + + configure { + publications { + register("maven") { + from(libsComponent) + } } } applyCommonArtifactoryConfig() } +// A horrible hack because `softwareComponentFactory` has to be gotten via plugin +// gradle why +internal open class LibsConfigPluginHack @Inject constructor( + private val softwareComponentFactory: SoftwareComponentFactory +) : Plugin { + override fun apply(project: Project) { + val libsComponents = softwareComponentFactory.adhoc("libs") + project.components.add(libsComponents) + } +} + fun Project.constrainDependenciesToLibsCore() { evaluationDependsOn(":worldedit-libs:core") val coreDeps = project(":worldedit-libs:core").configurations["shade"].dependencies diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 9cbbeda987..297eb8a32e 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -1,6 +1,9 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.Project +import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.plugins.quality.CheckstyleExtension +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.compile.JavaCompile import org.gradle.api.tasks.javadoc.Javadoc @@ -10,17 +13,24 @@ import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.get -import org.gradle.kotlin.dsl.getByName import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.the import org.gradle.kotlin.dsl.withType +import kotlin.collections.flatMap +import kotlin.collections.joinToString +import kotlin.collections.listOf +import kotlin.collections.map +import kotlin.collections.mutableMapOf +import kotlin.collections.plus +import kotlin.collections.set fun Project.applyPlatformAndCoreConfiguration() { applyCommonConfiguration() apply(plugin = "java") apply(plugin = "eclipse") apply(plugin = "idea") - apply(plugin = "maven") + apply(plugin = "maven-publish") apply(plugin = "checkstyle") apply(plugin = "com.github.johnrengelman.shadow") apply(plugin = "com.jfrog.artifactory") @@ -69,40 +79,32 @@ fun Project.applyPlatformAndCoreConfiguration() { } } - tasks.register("javadocJar") { - dependsOn("javadoc") - archiveClassifier.set("javadoc") - from(tasks.getByName("javadoc").destinationDir) - } - - tasks.named("assemble").configure { - dependsOn("javadocJar") - } - - artifacts { - add("archives", tasks.named("jar")) - add("archives", tasks.named("javadocJar")) - } + the().withJavadocJar() if (name == "worldedit-core" || name == "worldedit-bukkit") { - tasks.register("sourcesJar") { - dependsOn("classes") - archiveClassifier.set("sources") - from(sourceSets["main"].allSource) - } - - artifacts { - add("archives", tasks.named("sourcesJar")) - } - tasks.named("assemble").configure { - dependsOn("sourcesJar") - } + the().withSourcesJar() } tasks.named("check").configure { dependsOn("checkstyleMain", "checkstyleTest") } + configure { + publications { + register("maven") { + from(components["java"]) + versionMapping { + usage("java-api") { + fromResolutionOf("runtimeClasspath") + } + usage("java-runtime") { + fromResolutionResult() + } + } + } + } + } + applyCommonArtifactoryConfig() } diff --git a/gradle.properties b/gradle.properties index c81da93066..f560e7f1c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=7.2.5-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true -loom.version=0.6.50 +loom.version=0.7.19 mixin.version=0.9.2+mixin.0.8.2 diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 970e43e1df..789f8c0f62 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -113,6 +113,11 @@ dependencies { configure { archivesBaseName = "$archivesBaseName-mc$minecraftVersion" } +configure { + publications.named("maven") { + artifactId = the().archivesBaseName + } +} tasks.named("processResources") { // this will ensure that this task is redone when the versions change. @@ -145,8 +150,24 @@ tasks.register("deobfJar") { archiveClassifier.set("dev") } -artifacts { - add("archives", tasks.named("deobfJar")) +val deobfElements = configurations.register("deobfElements") { + isVisible = false + description = "De-obfuscated elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) + } + outgoing.artifact(tasks.named("deobfJar")) +} + +val javaComponent = components["java"] as AdhocComponentWithVariants +javaComponent.addVariantsFromConfiguration(deobfElements.get()) { + mapToMavenScope("runtime") } tasks.register("remapShadowJar") { @@ -161,3 +182,10 @@ tasks.register("remapShadowJar") { tasks.named("assemble").configure { dependsOn("remapShadowJar") } + +configure { + publications.named("maven") { + // Remove when https://github.com/gradle/gradle/issues/16555 is fixed + suppressPomMetadataWarningsFor("runtimeElements") + } +} diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index 3f5bd761d0..8fe001ac90 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -60,6 +60,11 @@ configure { configure { archivesBaseName = "$archivesBaseName-mc$minecraftVersion" } +configure { + publications.named("maven") { + artifactId = the().archivesBaseName + } +} tasks.named("processResources") { // this will ensure that this task is redone when the versions change. @@ -116,6 +121,22 @@ tasks.register("deobfJar") { archiveClassifier.set("dev") } -artifacts { - add("archives", tasks.named("deobfJar")) +val deobfElements = configurations.register("deobfElements") { + isVisible = false + description = "De-obfuscated elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) + } + outgoing.artifact(tasks.named("deobfJar")) +} + +val javaComponent = components["java"] as AdhocComponentWithVariants +javaComponent.addVariantsFromConfiguration(deobfElements.get()) { + mapToMavenScope("runtime") } From 98adde2c883132e389d05820a2ae82c47626e417 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 9 Apr 2021 20:07:11 -0700 Subject: [PATCH 087/813] Allow toggleplace to work on any Actor + Locatable (#1723) --- .../com/sk89q/worldedit/command/GeneralCommands.java | 11 ++++++++--- worldedit-core/src/main/resources/lang/strings.json | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java index 2b558ee7d9..f0fae771fa 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/GeneralCommands.java @@ -32,6 +32,7 @@ import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; +import com.sk89q.worldedit.extension.platform.Locatable; import com.sk89q.worldedit.function.mask.Mask; import com.sk89q.worldedit.internal.command.CommandRegistrationHandler; import com.sk89q.worldedit.internal.command.CommandUtil; @@ -387,11 +388,15 @@ public void gmask(Actor actor, LocalSession session, aliases = {"/toggleplace"}, desc = "Switch between your position and pos1 for placement" ) - public void togglePlace(Player player, LocalSession session) { + public void togglePlace(Actor actor, LocalSession session) { + if (!(actor instanceof Locatable)) { + actor.printError(TranslatableComponent.of("worldedit.toggleplace.not-locatable")); + return; + } if (session.togglePlacementPosition()) { - player.printInfo(TranslatableComponent.of("worldedit.toggleplace.pos1")); + actor.printInfo(TranslatableComponent.of("worldedit.toggleplace.pos1")); } else { - player.printInfo(TranslatableComponent.of("worldedit.toggleplace.player")); + actor.printInfo(TranslatableComponent.of("worldedit.toggleplace.player")); } } diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index 2485f29352..60876c16fd 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -58,6 +58,7 @@ "worldedit.gmask.set": "Global mask set.", "worldedit.toggleplace.pos1": "Now placing at pos #1.", "worldedit.toggleplace.player": "Now placing at the block you stand in.", + "worldedit.toggleplace.not-locatable": "Cannot toggle placing in this context.", "worldedit.searchitem.too-short": "Enter a longer search string (len > 2).", "worldedit.searchitem.either-b-or-i": "You cannot use both the 'b' and 'i' flags simultaneously.", "worldedit.searchitem.searching": "(Please wait... searching items.)", From 57d5ac961d310f653f7fa5faafeb61ab3b3b687d Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 20 Apr 2021 19:40:56 -0700 Subject: [PATCH 088/813] Release 7.2.5 --- CHANGELOG.txt | 40 +++++++++++++++++++++++----------------- gradle.properties | 2 +- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9fe9bebfa0..64484715cf 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,3 +1,9 @@ +7.2.5 +- Allow /toggleplace to work on any Locatable Actor, e.g. Command Blocks +- Change legacy.json oak stair shape to straight +- Changed to Log4J for logging, no more SLF4J +- Improved API for `getSelection()` + 7.2.4 - [Bukkit] Fixed an issue where chest contents may not be erased - [Bukkit] Worked around a Spigot bug causing potential watchdog timeouts on startup @@ -321,17 +327,17 @@ mostly contain bug fixes and minor changes. - Added //curve. - Added 1.7 blocks, biomes, trees, and items. - Added a "hand" pseudo block type that uses the currently selected block. -- Added a "pos1" pseudo block type, which uses the block type from the +- Added a "pos1" pseudo block type, which uses the block type from the "primary position". -- Added a //generatebiome command, which uses formulae to generate free-form +- Added a //generatebiome command, which uses formulae to generate free-form biomes. -- Added a check for both superperms and PEX directly to support older versions +- Added a check for both superperms and PEX directly to support older versions of PEX with inGroup. - Added a SolidBlockMask (#solid). - Added an item->block mapping for LocalPlayer.getBlockInHand(). - Added colors for stained clay and carpet data values. - Added configuration option to set the default for the /up and /ceil commands. -- Added data value mappings for certain blocks and made all other block types +- Added data value mappings for certain blocks and made all other block types wildcard matches. - Added fly mode support for /up and /ceil, - Added hollow lines. @@ -341,12 +347,12 @@ mostly contain bug fixes and minor changes. - Added query{,Abs,Rel}(x,y,z,typevar,datavar) to the expression parser. - Added support for rotating hay blocks like logs. - Added usage of non-existent variables in all LValue expressions. -- Changed /up and /ceil command to use glass block by default. Flight can be +- Changed /up and /ceil command to use glass block by default. Flight can be done via -f flag now. - Removed the /fill command as an alias of /material (which sets the brush material). - Fixed //deform not doing anything at all. -- Fixed //walls on non-cuboid regions so that they no longer introduces gaps +- Fixed //walls on non-cuboid regions so that they no longer introduces gaps in walls beyond 45 degrees. - Fixed /ascend and /descend to use the height of blocks properly. - Fixed /green command so that it no longer affects permadirt and podzol. @@ -358,7 +364,7 @@ mostly contain bug fixes and minor changes. - Fixed not flipping the center plane blocks. - Fixed snapshot restore now so it now obeys masks again. - Fixed some attachments that would result in items being dropped. -- Fixed the query functions not comparing data values at all for their +- Fixed the query functions not comparing data values at all for their return values. - Fixed improper block probability patterns (i.e. 20%,10%grass) causing an error. - Fixed /we help not finding commands if uppercase names are used. @@ -505,13 +511,13 @@ Jim Nordb� (Silentspy), snaxson, Socolin, and Zhuowei Zhang (zhuowei). 5.3: - Made #region mask keep the region selected when the pask was added, and - added #dregion mask that always uses the player's current + added #dregion mask that always uses the player's current selection - Allow inverted and under/overlay masks to affect masks, making them more - flexible. This allows for things like /gmask !$biome and + flexible. This allows for things like /gmask !$biome and /gmask >>>#region - Added basic entity handling with copy and paste. Paintings do not currently - respawn properly, entity pastes cannot be undone yet, and + respawn properly, entity pastes cannot be undone yet, and schematics do not yet store entities - Added getChunkCubes() to Region to get 16^3 chunks a region overlaps with - Cleaned up ContainerBlock inventory reading from NBT. @@ -526,7 +532,7 @@ schematics do not yet store entities - Remove error-prone redundancy in Polygonal2D min/max management - Updated for SpoutVanilla changes - Added Falling sand/gravel entities to /remove command -- Added support for new tree types to TreeGenerator and make adding more tree +- Added support for new tree types to TreeGenerator and make adding more tree types later easier - Updated for changes to SpoutAPI - Fixed FloatingTreeRemover (/tool deltree) to work correctly with jungle trees @@ -541,7 +547,7 @@ schematics do not yet store entities cylinders and ellipses. - Add positive() to Vector and Vector2D - In WorldGuard, teleport/spawn location yaw/pitch should now work. -- Register command permissions, integrate with the Bukkit help API +- Register command permissions, integrate with the Bukkit help API - Allow annotation-free registering of commands with other plugins (for developers!) - Added default radius setting for butcher and added permissions for killing @@ -554,7 +560,7 @@ schematics do not yet store entities - Fix restoring enchantments from snapshots/schematics. - Made tree planter tool try 10 times to make the tree before giving up. -Thanks to Nidan, aumgn, Jadedwolf, wizjany, SpectralEdge, md_5, and desht for +Thanks to Nidan, aumgn, Jadedwolf, wizjany, SpectralEdge, md_5, and desht for their contributions @@ -604,7 +610,7 @@ their contributions - Added //desel and //deselect as aliases for //sel - Added a gravity brush. - Added support for ellipsoid and sphere selections. -- Add cuiVersion to LocalSession and set it via incoming CUI event Refactor +- Add cuiVersion to LocalSession and set it via incoming CUI event Refactor region selectors to handle legacy versions a bit better. Because chat doesn't allow the section sign to be sent, I have to send non-color codes. Meh. closes #158 - Some region selection fixes @@ -612,7 +618,7 @@ their contributions - Add a cylindrical region selector. - Added initial SpoutAPI compatibility - Allow copying item stacks with damage of > Byte.MAX_VALUE. Closes #972 -- Improved output of YAMLProcessor and added support for root-level comments. +- Improved output of YAMLProcessor and added support for root-level comments. (for developers!) - Removed support for Permissions2/3 - Performance improvements @@ -626,7 +632,7 @@ rjwboys, yetanotherx, and GiCodeWarrior - Added a //hollow command, which hollows out the object contained in the selection. - Added /snapshot sel, which preselects a snapshot for future operations -- Added //sel extend, which activates cuboid selector where you can extend +- Added //sel extend, which activates cuboid selector where you can extend selections by right-clicking. - Added -a and -n flags to //butcher to kill animals and NPCs, respectively - Added support for stretched cylinders to //cyl and //hcyl (use //cyl x,z) @@ -1306,7 +1312,7 @@ Bukkit users: Minimum build #: 541 - Removed the dependency on Apache commons and recompiled the JavaScript engine to be smaller. -0.6: +0.6: - Added a check that will warn you when the region you have selected is larger than the .schematic format can support. - Implemented smart block queuing that will intelligently create or diff --git a/gradle.properties b/gradle.properties index f560e7f1c6..b0a75e25ff 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.5-SNAPSHOT +version=7.2.5 org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From edf39b2b9708640c5d75700a4063f68f85d11ccf Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 20 Apr 2021 19:57:09 -0700 Subject: [PATCH 089/813] Back to snapshot for future development --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b0a75e25ff..6e54a1df28 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ group=com.sk89q.worldedit -version=7.2.5 +version=7.2.6-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true From 146867402f20ebb402d7d093a4d557aee681bd35 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 20 Apr 2021 20:20:26 -0700 Subject: [PATCH 090/813] Update FG for new maven repo --- buildSrc/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 34d6e61376..3c22a8d959 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -10,7 +10,7 @@ repositories { gradlePluginPortal() maven { name = "Forge Maven" - url = uri("https://files.minecraftforge.net/maven") + url = uri("https://maven.minecraftforge.net/") } maven { name = "Fabric" @@ -43,7 +43,7 @@ dependencies { implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21") implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0") implementation("org.spongepowered:SpongeGradle:0.11.5") - implementation("net.minecraftforge.gradle:ForgeGradle:4.0.9") + implementation("net.minecraftforge.gradle:ForgeGradle:4.1.7") implementation("net.fabricmc:fabric-loom:$loomVersion") implementation("net.fabricmc:sponge-mixin:$mixinVersion") implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0") From 95d784f4d65120e077c7e4e0bef2ff94f0364a94 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Thu, 22 Apr 2021 11:12:54 -0700 Subject: [PATCH 091/813] Return false if Entity#remove is unsupported Fixes #1729 --- .../main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java index b880e10d72..e719902862 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitEntity.java @@ -103,7 +103,11 @@ public BaseEntity getState() { public boolean remove() { org.bukkit.entity.Entity entity = entityRef.get(); if (entity != null) { - entity.remove(); + try { + entity.remove(); + } catch (UnsupportedOperationException e) { + return false; + } return entity.isDead(); } else { return true; From 1f113ec04bce92b993eaabbdbb304d721135d22d Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Fri, 23 Apr 2021 20:45:54 +0200 Subject: [PATCH 092/813] Address issue template deprecations (#1736) --- .github/ISSUE_TEMPLATE/bug_report.yml | 5 +---- .github/ISSUE_TEMPLATE/feature_request.yml | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 468cb79d80..532578e003 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,9 +1,6 @@ name: Bug report description: Report a way in which WorldEdit is not working as intended -title: '' labels: ['type:bug', 'status:pending'] -assignees: [] -issue_body: true body: - type: markdown @@ -55,6 +52,6 @@ body: validations: required: true -- type: markdown +- type: textarea attributes: value: Add any additional context you can provide below. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index f73a6b0889..a8a82309d4 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,9 +1,6 @@ name: Feature request description: Suggest an idea for WorldEdit -title: '' labels: ['type:feature-request', 'status:pending'] -assignees: [] -issue_body: true body: - type: markdown @@ -39,6 +36,6 @@ body: validations: required: false -- type: markdown +- type: textarea attributes: value: Add any additional context you can provide below. From 79534544ab19a9fe1206020ad8d35e0c3cfa28b8 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 23 Apr 2021 11:50:24 -0700 Subject: [PATCH 093/813] Fixup after issue template changes --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 532578e003..2959ec2fa6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -54,4 +54,5 @@ body: - type: textarea attributes: + label: Anything Else? value: Add any additional context you can provide below. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index a8a82309d4..f329029e8a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -38,4 +38,5 @@ body: - type: textarea attributes: + label: Anything Else? value: Add any additional context you can provide below. From ba8e96a76dcc89c82767b6210d0360bda0240e15 Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Wed, 28 Apr 2021 23:15:12 +0200 Subject: [PATCH 094/813] Replace dead links in contributing.md (#1735) * Replace dead links in contributing.md * Address requested changes --- CONTRIBUTING.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5a423844d1..8bb67ff78e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,9 +5,6 @@ Thank you for your interest in contributing to WorldEdit! We appreciate your effort, but to make sure that the inclusion of your patch is a smooth process, we ask that you make note of the following guidelines. -* **Follow the [Oracle coding conventions](http://www.oracle.com/technetwork/java/codeconv-138413.html).** - We can't stress this enough; if your code has notable issues, it may delay - the process significantly. * **Target Java 8 for source and compilation.** Make sure to mark methods with ` @Override` that override methods of parent classes, or that implement methods of interfaces. @@ -55,7 +52,7 @@ Ready to submit? Perform the checklist below: the team prior to starting work. 6. Are my commit messages descriptive? -You should be aware of [`git rebase`](http://learn.github.com/p/rebasing.html). +You should be aware of [`git rebase`](https://docs.github.com/github/getting-started-with-github/about-git-rebase). It allows you to modify existing commit messages, and combine, break apart, or adjust past changes. From ec2fb073013c465349c2c10f066f5bdfd6a7ca33 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Thu, 29 Apr 2021 21:35:54 +1000 Subject: [PATCH 095/813] Fix a few links --- CHANGELOG.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 64484715cf..8aad8a840b 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -38,7 +38,7 @@ from the default. - Update language bundle and minor language loading fixes/improvements. 7.2.0 -- Greatly improve WorldEdit performance on servers with many plugins (See more: https://matthewmiller.dev/talk/optimizing-your-application/) +- Greatly improve WorldEdit performance on servers with many plugins (See more: https://madelinemiller.dev/talk/optimizing-your-application/) - Improve general WorldEdit performance - Added a fine-grained fast mode system with //perf to allow individually enabling or disabling update types - Added a stack tool that stacks the clicked block until it hits an obstacle (https://gfycat.com/faithfulhardtofinddingo) @@ -129,7 +129,7 @@ from the default. - Improve messages when running the wrong WorldEdit version for the MC version - Fixed an issue where other plugins could send bad data to clients using the WorldEdit API - Significant memory optimisations. Many operations will now require less RAM. -- Added WorldEdit-CLI, a tool to run headless WorldEdit from the commandline (see https://matthewmiller.dev/blog/introducing-worldeditcli/) +- Added WorldEdit-CLI, a tool to run headless WorldEdit from the commandline (see https://madelinemiller.dev/blog/introducing-worldeditcli/) - Allowed most WorldEdit commands to be run from the console - Added //world, to override the world in which WorldEdit is operating (useful for console) - Added support for WorldEdit in CommandBlocks (on Spigot/Paper). Double slash commands require using /worldedit:/set due to a Minecraft bug. @@ -196,7 +196,7 @@ between worlds generated at different times/with different mods - Further legacy schematic loading improvements 7.0.0 -See https://matthewmiller.dev/blog/introducing-worldedit-7/ for a friendlier explanation of some new features +See https://madelinemiller.dev/blog/introducing-worldedit-7/ for a friendlier explanation of some new features - Added support for 1.13 and higher versions, and removed support for earlier - Use the official Minecraft format for entering blocks, `minecraft:oak_sign[rotation=7]` From 876108fdb3f2ac9ed3f23fce21e43cd8d86738de Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Thu, 13 May 2021 22:01:45 -0700 Subject: [PATCH 096/813] Prepare for Gradle 7, but due to FG only get to 6.9 Gradle 7 stuff requires FG 5. Phooey. --- buildSrc/build.gradle.kts | 6 ++---- buildSrc/src/main/kotlin/CommonConfig.kt | 19 +++++++++++-------- buildSrc/src/main/kotlin/PlatformConfig.kt | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- worldedit-core/build.gradle.kts | 16 +++++++--------- worldedit-fabric/build.gradle.kts | 11 ++--------- worldedit-forge/build.gradle.kts | 11 +---------- 7 files changed, 25 insertions(+), 42 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 3c22a8d959..2e1c4811d8 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -36,14 +36,12 @@ val mixinVersion: String = properties.getProperty("mixin.version") dependencies { implementation(gradleApi()) - implementation("gradle.plugin.net.minecrell:licenser:0.4.1") + implementation("gradle.plugin.org.cadixdev.gradle:licenser:0.6.0") implementation("org.ajoberstar.grgit:grgit-gradle:4.1.0") implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") - implementation("net.ltgt.apt-eclipse:net.ltgt.apt-eclipse.gradle.plugin:0.21") - implementation("net.ltgt.apt-idea:net.ltgt.apt-idea.gradle.plugin:0.21") implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0") implementation("org.spongepowered:SpongeGradle:0.11.5") - implementation("net.minecraftforge.gradle:ForgeGradle:4.1.7") + implementation("net.minecraftforge.gradle:ForgeGradle:4.1.12") implementation("net.fabricmc:fabric-loom:$loomVersion") implementation("net.fabricmc:sponge-mixin:$mixinVersion") implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0") diff --git a/buildSrc/src/main/kotlin/CommonConfig.kt b/buildSrc/src/main/kotlin/CommonConfig.kt index 782ce8ef8d..13179e17c0 100644 --- a/buildSrc/src/main/kotlin/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/CommonConfig.kt @@ -1,11 +1,10 @@ -import net.minecrell.gradle.licenser.LicenseExtension +import org.cadixdev.gradle.licenser.LicenseExtension import org.gradle.api.Project import org.gradle.api.plugins.JavaPluginExtension import org.gradle.jvm.toolchain.JavaLanguageVersion import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies -import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.repositories import org.gradle.kotlin.dsl.the @@ -41,16 +40,20 @@ fun Project.applyCommonConfiguration() { dependencies { constraints { - for (conf in configurations.names) { - add(conf, "com.google.guava:guava") { + for (conf in configurations) { + if (conf.isCanBeConsumed || conf.isCanBeResolved) { + // dependencies don't get declared in these + continue + } + add(conf.name, "com.google.guava:guava") { version { strictly(Versions.GUAVA) } because("Mojang provides Guava") } - add(conf, "com.google.code.gson:gson") { + add(conf.name, "com.google.code.gson:gson") { version { strictly(Versions.GSON) } because("Mojang provides Gson") } - add(conf, "it.unimi.dsi:fastutil") { + add(conf.name, "it.unimi.dsi:fastutil") { version { strictly(Versions.FAST_UTIL) } because("Mojang provides FastUtil") } @@ -58,9 +61,9 @@ fun Project.applyCommonConfiguration() { } } - apply(plugin = "net.minecrell.licenser") + apply(plugin = "org.cadixdev.licenser") configure { - header = rootProject.file("HEADER.txt") + header(rootProject.file("HEADER.txt")) include("**/*.java") include("**/*.kt") } diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 297eb8a32e..94db0445d8 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -64,7 +64,7 @@ fun Project.applyPlatformAndCoreConfiguration() { "testImplementation"("org.junit.jupiter:junit-jupiter-params:${Versions.JUNIT}") "testImplementation"("org.mockito:mockito-core:${Versions.MOCKITO}") "testImplementation"("org.mockito:mockito-junit-jupiter:${Versions.MOCKITO}") - "testRuntime"("org.junit.jupiter:junit-jupiter-engine:${Versions.JUNIT}") + "testRuntimeOnly"("org.junit.jupiter:junit-jupiter-engine:${Versions.JUNIT}") } // Java 8 turns on doclint which we fail diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 442d9132ea..549d84424d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 85397a9074..5315dd7b56 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -1,11 +1,9 @@ -import net.minecrell.gradle.licenser.LicenseExtension +import org.cadixdev.gradle.licenser.LicenseExtension import org.gradle.plugins.ide.idea.model.IdeaModel plugins { - id("java-library") - id("net.ltgt.apt-eclipse") - id("net.ltgt.apt-idea") - id("antlr") + `java-library` + antlr } applyPlatformAndCoreConfiguration() @@ -84,6 +82,10 @@ tasks.named("generateGrammarSource").configure { ) } +tasks.named("sourcesJar") { + mustRunAfter("generateGrammarSource") +} + configure { exclude { it.file.startsWith(project.buildDir) @@ -106,12 +108,8 @@ plugins.withId("idea") { sourceSets.named("main") { java { - srcDir("src/main/java") srcDir("src/legacy/java") } - resources { - srcDir("src/main/resources") - } } tasks.named("processResources") { diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 789f8c0f62..ef6d130a58 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -122,15 +122,8 @@ configure { tasks.named("processResources") { // this will ensure that this task is redone when the versions change. inputs.property("version", project.ext["internalVersion"]) - - from(sourceSets["main"].resources.srcDirs) { - include("fabric.mod.json") - expand("version" to project.ext["internalVersion"]) - } - - // copy everything else except the mod json - from(sourceSets["main"].resources.srcDirs) { - exclude("fabric.mod.json") + filesMatching("fabric.mod.json") { + this.expand("version" to project.ext["internalVersion"]) } } diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index 8fe001ac90..99a19f9662 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -78,19 +78,10 @@ tasks.named("processResources") { inputs.property(key, value) } - // replace stuff in mcmod.info, nothing else - from(sourceSets["main"].resources.srcDirs) { - include("META-INF/mods.toml") - - // replace version and mcversion + filesMatching("META-INF/mods.toml") { expand(properties) } - // copy everything else except the mcmod.info - from(sourceSets["main"].resources.srcDirs) { - exclude("META-INF/mods.toml") - } - // copy from -core resources as well from(project(":worldedit-core").tasks.named("processResources")) } From 6e2b0a1df8a6077c3cf8193e38dc9817038bcbe9 Mon Sep 17 00:00:00 2001 From: Maddy Miller Date: Mon, 24 May 2021 16:00:55 +1000 Subject: [PATCH 097/813] Allow plugins to register new clipboard share destinations (#1707) * Allow plugins to register new clipboard share destinations * Rename file, as per request * Don't use the base enginehub name for EH_pastebin * Address review comments * Fixed wrong usage * Use a second metadata class for clipboard shares * Newline * Address comments * Improve docs * Apply suggestions from code review Co-authored-by: Octavia Togami * Use a consumer so that we handle serialization * Update worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java Co-authored-by: Octavia Togami * Update worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestination.java Co-authored-by: Octavia Togami * Update worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputConsumer.java Co-authored-by: Octavia Togami * Update worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputConsumer.java Co-authored-by: Octavia Togami * Fixed a lot of random comments * Return a consumer from share rather than a URL, allows the share destination to control output Co-authored-by: Octavia Togami --- .../worldedit/command/SchematicCommands.java | 116 ++++++++---------- .../argument/ClipboardFormatConverter.java | 76 ++++++++++++ .../ClipboardShareDestinationConverter.java | 72 +++++++++++ .../platform/PlatformCommandManager.java | 4 + .../worldedit/extent/clipboard/Clipboard.java | 18 +++ .../extent/clipboard/io/ClipboardFormats.java | 6 +- .../BuiltInClipboardShareDestinations.java | 94 ++++++++++++++ .../io/share/ClipboardShareDestination.java | 72 +++++++++++ .../io/share/ClipboardShareDestinations.java | 80 ++++++++++++ .../io/share/ClipboardShareMetadata.java | 49 ++++++++ .../io/share/ShareOutputProvider.java | 37 ++++++ .../util/ClipboardTransformBaker.java} | 28 +++-- .../src/main/resources/lang/strings.json | 1 + 13 files changed, 576 insertions(+), 77 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardFormatConverter.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardShareDestinationConverter.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/BuiltInClipboardShareDestinations.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestination.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestinations.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareMetadata.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputProvider.java rename worldedit-core/src/main/java/com/sk89q/worldedit/{command/FlattenedClipboardTransform.java => internal/util/ClipboardTransformBaker.java} (81%) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index 3192feb2db..cc0b73988d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -31,14 +31,14 @@ import com.sk89q.worldedit.command.util.WorldEditAsyncCommandBuilder; import com.sk89q.worldedit.extension.platform.Actor; import com.sk89q.worldedit.extension.platform.Capability; -import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; import com.sk89q.worldedit.extent.clipboard.io.ClipboardReader; import com.sk89q.worldedit.extent.clipboard.io.ClipboardWriter; -import com.sk89q.worldedit.function.operation.Operations; +import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareDestination; +import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareMetadata; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.session.ClipboardHolder; @@ -55,8 +55,6 @@ import com.sk89q.worldedit.util.io.Closer; import com.sk89q.worldedit.util.io.file.FilenameException; import com.sk89q.worldedit.util.io.file.MorePaths; -import com.sk89q.worldedit.util.paste.EngineHubPaste; -import com.sk89q.worldedit.util.paste.PasteMetadata; import org.apache.logging.log4j.Logger; import org.enginehub.piston.annotation.Command; import org.enginehub.piston.annotation.CommandContainer; @@ -68,22 +66,19 @@ import java.io.BufferedInputStream; import java.io.BufferedOutputStream; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; -import java.net.URL; -import java.nio.charset.StandardCharsets; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; -import java.util.Base64; import java.util.Comparator; import java.util.List; import java.util.concurrent.Callable; +import java.util.function.Consumer; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; @@ -116,7 +111,7 @@ public void load(Actor actor, LocalSession session, @Arg(desc = "File name.") String filename, @Arg(desc = "Format name.", def = "sponge") - String formatName) throws FilenameException { + ClipboardFormat format) throws FilenameException { LocalConfiguration config = worldEdit.getConfiguration(); File dir = worldEdit.getWorkingDirectoryPath(config.saveDir).toFile(); @@ -129,13 +124,9 @@ public void load(Actor actor, LocalSession session, return; } - ClipboardFormat format = ClipboardFormats.findByFile(f); - if (format == null) { - format = ClipboardFormats.findByAlias(formatName); - } - if (format == null) { - actor.printError(TranslatableComponent.of("worldedit.schematic.unknown-format", TextComponent.of(formatName))); - return; + ClipboardFormat inferredFormat = ClipboardFormats.findByFile(f); + if (inferredFormat != null) { + format = inferredFormat; } SchematicLoadTask task = new SchematicLoadTask(actor, f, format); @@ -160,7 +151,7 @@ public void save(Actor actor, LocalSession session, @Arg(desc = "File name.") String filename, @Arg(desc = "Format name.", def = "sponge") - String formatName, + ClipboardFormat format, @Switch(name = 'f', desc = "Overwrite an existing file.") boolean allowOverwrite) throws WorldEditException { if (worldEdit.getPlatformManager().queryCapability(Capability.GAME_HOOKS).getDataVersion() == -1) { @@ -172,12 +163,6 @@ public void save(Actor actor, LocalSession session, File dir = worldEdit.getWorkingDirectoryPath(config.saveDir).toFile(); - ClipboardFormat format = ClipboardFormats.findByAlias(formatName); - if (format == null) { - actor.printError(TranslatableComponent.of("worldedit.schematic.unknown-format", TextComponent.of(formatName))); - return; - } - File f = worldEdit.getSafeSaveFile(actor, dir, filename, format.getPrimaryFileExtension()); boolean overwrite = f.exists(); @@ -220,27 +205,36 @@ public void save(Actor actor, LocalSession session, public void share(Actor actor, LocalSession session, @Arg(desc = "Schematic name. Defaults to name-millis", def = "") String schematicName, - @Arg(desc = "Format name.", def = "sponge") - String formatName) throws WorldEditException { + @Arg(desc = "Share location", def = "ehpaste") + ClipboardShareDestination destination, + @Arg(desc = "Format name", def = "") + ClipboardFormat format) throws WorldEditException { if (worldEdit.getPlatformManager().queryCapability(Capability.GAME_HOOKS).getDataVersion() == -1) { actor.printError(TranslatableComponent.of("worldedit.schematic.unsupported-minecraft-version")); return; } - ClipboardFormat format = ClipboardFormats.findByAlias(formatName); if (format == null) { - actor.printError(TranslatableComponent.of("worldedit.schematic.unknown-format", TextComponent.of(formatName))); + format = destination.getDefaultFormat(); + } + + if (!destination.supportsFormat(format)) { + actor.printError(TranslatableComponent.of( + "worldedit.schematic.share.unsupported-format", + TextComponent.of(destination.getName()), + TextComponent.of(format.getName()) + )); return; } ClipboardHolder holder = session.getClipboard(); - SchematicShareTask task = new SchematicShareTask(actor, format, holder, schematicName); + SchematicShareTask task = new SchematicShareTask(actor, holder, destination, format, schematicName); AsyncCommandBuilder.wrap(task, actor) .registerWithSupervisor(worldEdit.getSupervisor(), "Sharing schematic") .setDelayMessage(TranslatableComponent.of("worldedit.schematic.save.saving")) .setWorkingMessage(TranslatableComponent.of("worldedit.schematic.save.still-saving")) - .onSuccess("Shared", (url -> actor.printInfo(TextComponent.of(url.toExternalForm() + ".schem").clickEvent(ClickEvent.openUrl(url.toExternalForm() + ".schem"))))) + .onSuccess("Shared", (consumer -> consumer.accept(actor))) .onFailure("Failed to share schematic", worldEdit.getPlatformManager().getPlatformCommandManager().getExceptionConverter()) .buildAndExec(worldEdit.getExecutorService()); } @@ -367,30 +361,18 @@ public ClipboardHolder call() throws Exception { } private abstract static class SchematicOutputTask implements Callable { - protected final Actor actor; - private final ClipboardFormat format; - private final ClipboardHolder holder; + protected final ClipboardFormat format; + protected final ClipboardHolder holder; - SchematicOutputTask(Actor actor, ClipboardFormat format, ClipboardHolder holder) { - this.actor = actor; + SchematicOutputTask(ClipboardFormat format, ClipboardHolder holder) { this.format = format; this.holder = holder; } - protected void writeToOutputStream(OutputStream outputStream) throws Exception { + protected void writeToOutputStream(OutputStream outputStream) throws IOException, WorldEditException { Clipboard clipboard = holder.getClipboard(); Transform transform = holder.getTransform(); - Clipboard target; - - // If we have a transform, bake it into the copy - if (transform.isIdentity()) { - target = clipboard; - } else { - FlattenedClipboardTransform result = FlattenedClipboardTransform.transform(clipboard, transform); - target = new BlockArrayClipboard(result.getTransformedRegion()); - target.setOrigin(clipboard.getOrigin()); - Operations.completeLegacy(result.copyTo(target)); - } + Clipboard target = clipboard.transform(transform); try (Closer closer = Closer.create()) { OutputStream stream = closer.register(outputStream); @@ -402,11 +384,13 @@ protected void writeToOutputStream(OutputStream outputStream) throws Exception { } private static class SchematicSaveTask extends SchematicOutputTask { + private final Actor actor; private final File file; private final boolean overwrite; SchematicSaveTask(Actor actor, File file, ClipboardFormat format, ClipboardHolder holder, boolean overwrite) { - super(actor, format, holder); + super(format, holder); + this.actor = actor; this.file = file; this.overwrite = overwrite; } @@ -424,29 +408,31 @@ public Void call() throws Exception { } } - private static class SchematicShareTask extends SchematicOutputTask { + private static class SchematicShareTask extends SchematicOutputTask> { + private final Actor actor; private final String name; - - SchematicShareTask(Actor actor, ClipboardFormat format, ClipboardHolder holder, String name) { - super(actor, format, holder); + private final ClipboardShareDestination destination; + + SchematicShareTask(Actor actor, + ClipboardHolder holder, + ClipboardShareDestination destination, + ClipboardFormat format, + String name) { + super(format, holder); + this.actor = actor; this.name = name; + this.destination = destination; } @Override - public URL call() throws Exception { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - try { - writeToOutputStream(baos); - } catch (Exception e) { - throw new CommandException(TextComponent.of(e.getMessage()), e, ImmutableList.of()); - } - - EngineHubPaste pasteService = new EngineHubPaste(); - PasteMetadata metadata = new PasteMetadata(); - metadata.author = this.actor.getName(); - metadata.extension = "schem"; - metadata.name = name == null ? actor.getName() + "-" + System.currentTimeMillis() : name; - return pasteService.paste(new String(Base64.getEncoder().encode(baos.toByteArray()), StandardCharsets.UTF_8), metadata).call(); + public Consumer call() throws Exception { + ClipboardShareMetadata metadata = new ClipboardShareMetadata( + format, + this.actor.getName(), + name == null ? actor.getName() + "-" + System.currentTimeMillis() : name + ); + + return destination.share(metadata, this::writeToOutputStream); } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardFormatConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardFormatConverter.java new file mode 100644 index 0000000000..cfa0a1ed46 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardFormatConverter.java @@ -0,0 +1,76 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.command.argument; + +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormats; +import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareDestination; +import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.util.formatting.text.TextComponent; +import org.enginehub.piston.CommandManager; +import org.enginehub.piston.converter.ArgumentConverter; +import org.enginehub.piston.converter.ConversionResult; +import org.enginehub.piston.converter.FailedConversion; +import org.enginehub.piston.converter.SuccessfulConversion; +import org.enginehub.piston.inject.InjectedValueAccess; +import org.enginehub.piston.inject.Key; + +import java.util.List; +import java.util.Set; + +import static org.enginehub.piston.converter.SuggestionHelper.limitByPrefix; + +public class ClipboardFormatConverter implements ArgumentConverter { + + public static void register(CommandManager commandManager) { + commandManager.registerConverter(Key.of(ClipboardFormat.class), + new ClipboardFormatConverter() + ); + } + + private final TextComponent choices; + + private ClipboardFormatConverter() { + this.choices = TextComponent.of("any clipboard format"); + } + + @Override + public Component describeAcceptableArguments() { + return this.choices; + } + + @Override + public List getSuggestions(String input, InjectedValueAccess context) { + ClipboardShareDestination destination = context.injectedValue(Key.of(ClipboardShareDestination.class)).orElse(null); + + return limitByPrefix(ClipboardFormats.getAll().stream() + .filter(format -> destination == null || destination.supportsFormat(format)) + .map(ClipboardFormat::getAliases) + .flatMap(Set::stream), input); + } + + @Override + public ConversionResult convert(String s, InjectedValueAccess injectedValueAccess) { + ClipboardFormat result = ClipboardFormats.findByAlias(s); + return result == null + ? FailedConversion.from(new IllegalArgumentException("Not a valid schematic format: " + s)) + : SuccessfulConversion.fromSingle(result); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardShareDestinationConverter.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardShareDestinationConverter.java new file mode 100644 index 0000000000..5af81bb1d2 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/argument/ClipboardShareDestinationConverter.java @@ -0,0 +1,72 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.command.argument; + +import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareDestination; +import com.sk89q.worldedit.extent.clipboard.io.share.ClipboardShareDestinations; +import com.sk89q.worldedit.util.formatting.text.Component; +import com.sk89q.worldedit.util.formatting.text.TextComponent; +import org.enginehub.piston.CommandManager; +import org.enginehub.piston.converter.ArgumentConverter; +import org.enginehub.piston.converter.ConversionResult; +import org.enginehub.piston.converter.FailedConversion; +import org.enginehub.piston.converter.SuccessfulConversion; +import org.enginehub.piston.inject.InjectedValueAccess; +import org.enginehub.piston.inject.Key; + +import java.util.List; +import java.util.Set; + +import static org.enginehub.piston.converter.SuggestionHelper.limitByPrefix; + +public class ClipboardShareDestinationConverter implements ArgumentConverter { + + public static void register(CommandManager commandManager) { + commandManager.registerConverter(Key.of(ClipboardShareDestination.class), + new ClipboardShareDestinationConverter() + ); + } + + private final TextComponent choices; + + private ClipboardShareDestinationConverter() { + this.choices = TextComponent.of("any clipboard share destination"); + } + + @Override + public Component describeAcceptableArguments() { + return this.choices; + } + + @Override + public List getSuggestions(String input, InjectedValueAccess context) { + return limitByPrefix(ClipboardShareDestinations.getAll().stream() + .map(ClipboardShareDestination::getAliases) + .flatMap(Set::stream), input); + } + + @Override + public ConversionResult convert(String s, InjectedValueAccess injectedValueAccess) { + ClipboardShareDestination result = ClipboardShareDestinations.findByAlias(s); + return result == null + ? FailedConversion.from(new IllegalArgumentException("Not a valid clipboard share destination: " + s)) + : SuccessfulConversion.fromSingle(result); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java index 958bd38494..ae2e0db184 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformCommandManager.java @@ -70,6 +70,8 @@ import com.sk89q.worldedit.command.argument.Arguments; import com.sk89q.worldedit.command.argument.BooleanConverter; import com.sk89q.worldedit.command.argument.Chunk3dVectorConverter; +import com.sk89q.worldedit.command.argument.ClipboardFormatConverter; +import com.sk89q.worldedit.command.argument.ClipboardShareDestinationConverter; import com.sk89q.worldedit.command.argument.CommaSeparatedValuesConverter; import com.sk89q.worldedit.command.argument.DirectionConverter; import com.sk89q.worldedit.command.argument.DirectionVectorConverter; @@ -225,6 +227,8 @@ private void registerArgumentConverters() { SideEffectSetConverter.register(commandManager); HeightConverter.register(commandManager); OffsetConverter.register(worldEdit, commandManager); + ClipboardFormatConverter.register(commandManager); + ClipboardShareDestinationConverter.register(commandManager); } private void registerAlwaysInjectedValues() { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java index d5d413e917..f7327a3510 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/Clipboard.java @@ -19,8 +19,11 @@ package com.sk89q.worldedit.extent.clipboard; +import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.internal.util.ClipboardTransformBaker; import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.math.transform.Transform; import com.sk89q.worldedit.regions.Region; /** @@ -68,4 +71,19 @@ public interface Clipboard extends Extent { default boolean hasBiomes() { return false; } + + /** + * Returns a clipboard with a given transform baked in. + * + *

+ * Note: This method may return the same clipboard object, if a copy is needed then you should check the returned value for identity equality and copy if needed. + *

+ * + * @param transform The transform + * @return The new clipboard + * @throws WorldEditException if the copy encounters an error + */ + default Clipboard transform(Transform transform) throws WorldEditException { + return ClipboardTransformBaker.bakeTransform(this, transform); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java index b4e0fd685b..e142da20a0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/ClipboardFormats.java @@ -46,7 +46,7 @@ public static void registerClipboardFormat(ClipboardFormat format) { checkNotNull(format); for (String key : format.getAliases()) { - String lowKey = key.toLowerCase(Locale.ENGLISH); + String lowKey = key.toLowerCase(Locale.ROOT); ClipboardFormat old = aliasMap.put(lowKey, format); if (old != null) { aliasMap.put(lowKey, old); @@ -54,7 +54,7 @@ public static void registerClipboardFormat(ClipboardFormat format) { } } for (String ext : format.getFileExtensions()) { - String lowExt = ext.toLowerCase(Locale.ENGLISH); + String lowExt = ext.toLowerCase(Locale.ROOT); fileExtensionMap.put(lowExt, format); } registeredFormats.add(format); @@ -76,7 +76,7 @@ public static void registerClipboardFormat(ClipboardFormat format) { @Nullable public static ClipboardFormat findByAlias(String alias) { checkNotNull(alias); - return aliasMap.get(alias.toLowerCase(Locale.ENGLISH).trim()); + return aliasMap.get(alias.toLowerCase(Locale.ROOT).trim()); } /** diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/BuiltInClipboardShareDestinations.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/BuiltInClipboardShareDestinations.java new file mode 100644 index 0000000000..06472f36ac --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/BuiltInClipboardShareDestinations.java @@ -0,0 +1,94 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.extent.clipboard.io.share; + +import com.google.common.collect.ImmutableSet; +import com.sk89q.worldedit.extension.platform.Actor; +import com.sk89q.worldedit.extent.clipboard.io.BuiltInClipboardFormat; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; +import com.sk89q.worldedit.util.formatting.text.TextComponent; +import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; +import com.sk89q.worldedit.util.paste.EngineHubPaste; +import com.sk89q.worldedit.util.paste.PasteMetadata; + +import java.io.ByteArrayOutputStream; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.function.Consumer; + +/** + * A collection of natively supported clipboard share destinations. + */ +public enum BuiltInClipboardShareDestinations implements ClipboardShareDestination { + + /** + * The EngineHub pastebin service, at https://paste.enginehub.org/ + */ + ENGINEHUB_PASTEBIN("enginehub_paste", "ehpaste") { + @Override + public String getName() { + return "EngineHub Paste"; + } + + @Override + public Consumer share(ClipboardShareMetadata metadata, ShareOutputProvider serializer) throws Exception { + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + + serializer.writeTo(outputStream); + + PasteMetadata pasteMetadata = new PasteMetadata(); + pasteMetadata.author = metadata.author(); + pasteMetadata.extension = "schem"; + pasteMetadata.name = metadata.name(); + EngineHubPaste pasteService = new EngineHubPaste(); + + URL url = pasteService.paste(new String(Base64.getEncoder().encode(outputStream.toByteArray()), StandardCharsets.UTF_8), pasteMetadata).call(); + String urlString = url.toExternalForm() + ".schem"; + return actor -> actor.printInfo(TextComponent.of(urlString).clickEvent(ClickEvent.openUrl(urlString))); + } + + @Override + public ClipboardFormat getDefaultFormat() { + return BuiltInClipboardFormat.SPONGE_SCHEMATIC; + } + + @Override + public boolean supportsFormat(ClipboardFormat format) { + return format == getDefaultFormat(); + } + }; + + private final ImmutableSet aliases; + + BuiltInClipboardShareDestinations(String... aliases) { + this.aliases = ImmutableSet.copyOf(aliases); + } + + @Override + public ImmutableSet getAliases() { + return this.aliases; + } + + @Override + public String getName() { + return name(); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestination.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestination.java new file mode 100644 index 0000000000..1b0cb9e213 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestination.java @@ -0,0 +1,72 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.extent.clipboard.io.share; + +import com.sk89q.worldedit.extension.platform.Actor; +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; + +import java.util.Set; +import java.util.function.Consumer; + +public interface ClipboardShareDestination { + + /** + * Gets the name of this share destination. + * + * @return The name + */ + String getName(); + + /** + * Get a set of aliases. + * + * @return a set of aliases + */ + Set getAliases(); + + /** + * Share a clipboard output stream and return a URL. + * + *

+ * The serialized schematic can be retrieved by providing an {@link java.io.OutputStream} to {@code serializer}. + *

+ * + * @param metadata The clipboard metadata + * @param serializer A function taking the {@link java.io.OutputStream} + * @return A consumer to provide the actor with the share results + * @throws Exception if it failed to share + */ + Consumer share(ClipboardShareMetadata metadata, ShareOutputProvider serializer) throws Exception; + + /** + * Gets the default clipboard format for this share destination. + * + * @return The default format + */ + ClipboardFormat getDefaultFormat(); + + /** + * Gets whether the share destination supports the given format. + * + * @param format The format + * @return If it's supported + */ + boolean supportsFormat(ClipboardFormat format); +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestinations.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestinations.java new file mode 100644 index 0000000000..cf9b408f11 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareDestinations.java @@ -0,0 +1,80 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.extent.clipboard.io.share; + +import com.sk89q.worldedit.WorldEdit; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkState; + +public class ClipboardShareDestinations { + + private static final Map aliasMap = new HashMap<>(); + private static final List registeredDestinations = new ArrayList<>(); + + public static void registerClipboardShareDestination(ClipboardShareDestination destination) { + checkNotNull(destination); + checkState(destination.supportsFormat(destination.getDefaultFormat()), "Destination must accept its default format"); + + for (String key : destination.getAliases()) { + String lowKey = key.toLowerCase(Locale.ROOT); + ClipboardShareDestination old = aliasMap.put(lowKey, destination); + if (old != null) { + aliasMap.put(lowKey, old); + WorldEdit.logger.warn(destination.getClass().getName() + " cannot override existing alias '" + lowKey + "' used by " + old.getClass().getName()); + } + } + registeredDestinations.add(destination); + } + + static { + for (BuiltInClipboardShareDestinations destination : BuiltInClipboardShareDestinations.values()) { + registerClipboardShareDestination(destination); + } + } + + /** + * Find the clipboard format named by the given alias. + * + * @param alias the alias + * @return the format, otherwise null if none is matched + */ + @Nullable + public static ClipboardShareDestination findByAlias(String alias) { + checkNotNull(alias); + return aliasMap.get(alias.toLowerCase(Locale.ROOT).trim()); + } + + public static Collection getAll() { + return Collections.unmodifiableCollection(registeredDestinations); + } + + private ClipboardShareDestinations() { + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareMetadata.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareMetadata.java new file mode 100644 index 0000000000..2e5f6c0426 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ClipboardShareMetadata.java @@ -0,0 +1,49 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.extent.clipboard.io.share; + +import com.sk89q.worldedit.extent.clipboard.io.ClipboardFormat; + +/** + * Items of metadata about shared clipboards. + */ +public class ClipboardShareMetadata { + private final ClipboardFormat format; + private final String name; + private final String author; + + public ClipboardShareMetadata(ClipboardFormat format, String name, String author) { + this.format = format; + this.name = name; + this.author = author; + } + + public ClipboardFormat format() { + return this.format; + } + + public String name() { + return this.name; + } + + public String author() { + return this.author; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputProvider.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputProvider.java new file mode 100644 index 0000000000..6d75879254 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extent/clipboard/io/share/ShareOutputProvider.java @@ -0,0 +1,37 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.extent.clipboard.io.share; + +import com.sk89q.worldedit.WorldEditException; + +import java.io.IOException; +import java.io.OutputStream; + +@FunctionalInterface +public interface ShareOutputProvider { + + /** + * Provides the share output to {@code stream}. + * + * @throws IOException if it failed + * @throws WorldEditException if WorldEdit failed to serialize to the stream + */ + void writeTo(OutputStream stream) throws IOException, WorldEditException; +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/ClipboardTransformBaker.java similarity index 81% rename from worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java rename to worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/ClipboardTransformBaker.java index 7f588feea1..deb092be4e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/FlattenedClipboardTransform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/util/ClipboardTransformBaker.java @@ -17,13 +17,16 @@ * along with this program. If not, see . */ -package com.sk89q.worldedit.command; +package com.sk89q.worldedit.internal.util; +import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.extent.Extent; +import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.extent.transform.BlockTransformExtent; import com.sk89q.worldedit.function.operation.ForwardExtentCopy; import com.sk89q.worldedit.function.operation.Operation; +import com.sk89q.worldedit.function.operation.Operations; import com.sk89q.worldedit.math.Vector3; import com.sk89q.worldedit.math.transform.AffineTransform; import com.sk89q.worldedit.math.transform.CombinedTransform; @@ -36,12 +39,10 @@ /** * Helper class to 'bake' a transform into a clipboard. * - *

This class needs a better name and may need to be made more generic.

- * * @see Clipboard * @see Transform */ -class FlattenedClipboardTransform { +public class ClipboardTransformBaker { private final Clipboard original; private final Transform transform; @@ -52,7 +53,7 @@ class FlattenedClipboardTransform { * @param original the original clipboard * @param transform the transform */ - private FlattenedClipboardTransform(Clipboard original, Transform transform) { + private ClipboardTransformBaker(Clipboard original, Transform transform) { checkNotNull(original); checkNotNull(transform); this.original = original; @@ -64,7 +65,7 @@ private FlattenedClipboardTransform(Clipboard original, Transform transform) { * * @return the transformed region */ - public Region getTransformedRegion() { + private Region getTransformedRegion() { Region region = original.getRegion(); Vector3 minimum = region.getMinimumPoint().toVector3(); Vector3 maximum = region.getMaximumPoint().toVector3(); @@ -112,7 +113,7 @@ public Region getTransformedRegion() { * @param target the target * @return the operation */ - public Operation copyTo(Extent target) { + private Operation copyTo(Extent target) { BlockTransformExtent extent = new BlockTransformExtent(original, transform); ForwardExtentCopy copy = new ForwardExtentCopy(extent, original.getRegion(), original.getOrigin(), target, original.getOrigin()); copy.setTransform(transform); @@ -128,9 +129,18 @@ public Operation copyTo(Extent target) { * @param original the original clipboard * @param transform the transform * @return a builder + * @throws WorldEditException if an error occurred during copy */ - public static FlattenedClipboardTransform transform(Clipboard original, Transform transform) { - return new FlattenedClipboardTransform(original, transform); + public static Clipboard bakeTransform(Clipboard original, Transform transform) throws WorldEditException { + if (transform.isIdentity()) { + return original; + } + ClipboardTransformBaker baker = new ClipboardTransformBaker(original, transform); + Clipboard target = new BlockArrayClipboard(baker.getTransformedRegion()); + target.setOrigin(original.getOrigin()); + Operations.complete(baker.copyTo(target)); + + return target; } } diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index 08fcff1ba3..f405c94323 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -108,6 +108,7 @@ "worldedit.schematic.save.failed-directory": "Could not create folder for schematics!", "worldedit.schematic.save.saving": "(Please wait... saving schematic.)", "worldedit.schematic.save.still-saving": "(Please wait... still saving schematic.)", + "worldedit.schematic.share.unsupported-format": "The schematic share destination \"{0}\" does not support the \"{1}\" format.", "worldedit.schematic.delete.does-not-exist": "Schematic {0} does not exist!", "worldedit.schematic.delete.failed": "Deletion of {0} failed! Is it read-only?", "worldedit.schematic.delete.deleted": "{0} has been deleted.", From 5a7cbfd6ef6e11aa370ee71ba74445fa1043c653 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 23 May 2021 23:37:24 -0700 Subject: [PATCH 098/813] Fix selecting at 0,0,0 or radius 0 cyl/ellipse (#1734) --- .../selector/CylinderRegionSelector.java | 29 ++++++++++++++----- .../selector/EllipsoidRegionSelector.java | 15 ++++++++-- .../selector/SphereRegionSelector.java | 10 +++++-- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java index 9a3409e391..7a685cbe9d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/CylinderRegionSelector.java @@ -55,6 +55,8 @@ public class CylinderRegionSelector implements RegionSelector, CUIRegion { protected static final transient NumberFormat NUMBER_FORMAT; protected transient CylinderRegion region; + protected transient boolean selectedCenter; + protected transient boolean selectedRadius; static { NUMBER_FORMAT = (NumberFormat) NumberFormat.getInstance().clone(); @@ -89,6 +91,8 @@ public CylinderRegionSelector(RegionSelector oldSelector) { final CylinderRegionSelector cylSelector = (CylinderRegionSelector) oldSelector; region = new CylinderRegion(cylSelector.region); + selectedCenter = cylSelector.selectedCenter; + selectedRadius = cylSelector.selectedRadius; } else { final Region oldRegion; try { @@ -106,6 +110,9 @@ public CylinderRegionSelector(RegionSelector oldSelector) { region.setMaximumY(Math.max(pos1.getBlockY(), pos2.getBlockY())); region.setMinimumY(Math.min(pos1.getBlockY(), pos2.getBlockY())); + + selectedCenter = true; + selectedRadius = true; } } @@ -126,6 +133,9 @@ public CylinderRegionSelector(@Nullable World world, BlockVector2 center, Vector region.setMinimumY(Math.min(minY, maxY)); region.setMaximumY(Math.max(minY, maxY)); + + selectedCenter = true; + selectedRadius = true; } @Nullable @@ -141,7 +151,7 @@ public void setWorld(@Nullable World world) { @Override public boolean selectPrimary(BlockVector3 position, SelectorLimits limits) { - if (!region.getCenter().equals(Vector3.ZERO) && position.equals(region.getCenter().toBlockPoint())) { + if (selectedCenter && position.equals(region.getCenter().toBlockPoint()) && !selectedRadius) { return false; } @@ -149,22 +159,26 @@ public boolean selectPrimary(BlockVector3 position, SelectorLimits limits) { region.setCenter(position.toBlockVector2()); region.setY(position.getBlockY()); + selectedCenter = true; + selectedRadius = false; + return true; } @Override public boolean selectSecondary(BlockVector3 position, SelectorLimits limits) { - Vector3 center = region.getCenter(); - if (center.equals(Vector3.ZERO)) { + if (!selectedCenter) { return true; } - final Vector2 diff = position.toVector3().subtract(center).toVector2(); + final Vector2 diff = position.toVector3().subtract(region.getCenter()).toVector2(); final Vector2 minRadius = diff.getMaximum(diff.multiply(-1.0)); region.extendRadius(minRadius); region.setY(position.getBlockY()); + selectedRadius = true; + return true; } @@ -177,9 +191,7 @@ public void explainPrimarySelection(Actor player, LocalSession session, BlockVec @Override public void explainSecondarySelection(Actor player, LocalSession session, BlockVector3 pos) { - Vector3 center = region.getCenter(); - - if (!center.equals(Vector3.ZERO)) { + if (selectedCenter) { player.printInfo(TranslatableComponent.of( "worldedit.selection.cylinder.explain.secondary", TextComponent.of(NUMBER_FORMAT.format(region.getRadius().getX())), @@ -224,7 +236,8 @@ public CylinderRegion getIncompleteRegion() { @Override public boolean isDefined() { - return !region.getRadius().equals(Vector2.ZERO); + // selectedCenter is implied by selectedRadius + return selectedRadius; } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java index 8d7a87a141..32036bfa69 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/EllipsoidRegionSelector.java @@ -51,6 +51,7 @@ public class EllipsoidRegionSelector implements RegionSelector, CUIRegion { protected transient EllipsoidRegion region; protected transient boolean started = false; + protected transient boolean selectedRadius = false; /** * Create a new selector with a {@code null} world. @@ -80,6 +81,7 @@ public EllipsoidRegionSelector(RegionSelector oldSelector) { region = new EllipsoidRegion(ellipsoidRegionSelector.getIncompleteRegion()); started = ellipsoidRegionSelector.started; + selectedRadius = ellipsoidRegionSelector.selectedRadius; } else { Region oldRegion; try { @@ -95,6 +97,7 @@ public EllipsoidRegionSelector(RegionSelector oldSelector) { region.setCenter(center); region.setRadius(pos2.subtract(center).toVector3()); started = true; + selectedRadius = true; } } @@ -110,6 +113,9 @@ public EllipsoidRegionSelector(@Nullable World world, BlockVector3 center, Vecto region.setCenter(center); region.setRadius(radius); + + started = true; + selectedRadius = true; } @Nullable @@ -125,13 +131,14 @@ public void setWorld(@Nullable World world) { @Override public boolean selectPrimary(BlockVector3 position, SelectorLimits limits) { - if (position.equals(region.getCenter().toBlockPoint()) && region.getRadius().lengthSq() == 0) { + if (started && position.equals(region.getCenter().toBlockPoint()) && !selectedRadius) { return false; } region.setCenter(position); region.setRadius(Vector3.ZERO); started = true; + selectedRadius = false; return true; } @@ -145,6 +152,9 @@ public boolean selectSecondary(BlockVector3 position, SelectorLimits limits) { final Vector3 diff = position.toVector3().subtract(region.getCenter()); final Vector3 minRadius = diff.getMaximum(diff.multiply(-1.0)); region.extendRadius(minRadius); + + selectedRadius = true; + return true; } @@ -191,7 +201,8 @@ public void explainRegionAdjust(Actor player, LocalSession session) { @Override public boolean isDefined() { - return started && region.getRadius().lengthSq() > 0; + // started implied by selectedRadius + return selectedRadius; } @Override diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java index 3bb99356cf..0d0f1ea2d8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/regions/selector/SphereRegionSelector.java @@ -59,9 +59,11 @@ public SphereRegionSelector(@Nullable World world) { */ public SphereRegionSelector(RegionSelector oldSelector) { super(oldSelector); - final Vector3 radius = region.getRadius(); - final double radiusScalar = Math.max(Math.max(radius.getX(), radius.getY()), radius.getZ()); - region.setRadius(Vector3.at(radiusScalar, radiusScalar, radiusScalar)); + if (selectedRadius) { + final Vector3 radius = region.getRadius(); + final double radiusScalar = Math.max(Math.max(radius.getX(), radius.getY()), radius.getZ()); + region.setRadius(Vector3.at(radiusScalar, radiusScalar, radiusScalar)); + } } /** @@ -84,6 +86,8 @@ public boolean selectSecondary(BlockVector3 position, SelectorLimits limits) { final double radiusScalar = Math.ceil(position.toVector3().distance(region.getCenter())); region.setRadius(Vector3.at(radiusScalar, radiusScalar, radiusScalar)); + selectedRadius = true; + return true; } From 8e5020fd8a39bf43ba3a6a17317e857b6896fd8a Mon Sep 17 00:00:00 2001 From: Maddy Miller Date: Tue, 25 May 2021 18:46:05 +1000 Subject: [PATCH 099/813] Add splatter brush (#1657) * Add splatter brush PR feedback - 3d splatter Add splatter brush (#1547) * Move the splatter brush into a mask * Fix PR notes Co-authored-by: Lewis B --- .../worldedit/command/BrushCommands.java | 32 ++++++++++ .../command/tool/brush/SplatterBrush.java | 57 +++++++++++++++++ .../worldedit/function/mask/SplatterMask.java | 61 +++++++++++++++++++ .../function/mask/SplatterMask2D.java | 52 ++++++++++++++++ .../src/main/resources/lang/strings.json | 2 + 5 files changed, 204 insertions(+) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SplatterBrush.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask2D.java diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java index 83133e1e2a..8a96743548 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/BrushCommands.java @@ -37,6 +37,7 @@ import com.sk89q.worldedit.command.tool.brush.OperationFactoryBrush; import com.sk89q.worldedit.command.tool.brush.SmoothBrush; import com.sk89q.worldedit.command.tool.brush.SphereBrush; +import com.sk89q.worldedit.command.tool.brush.SplatterBrush; import com.sk89q.worldedit.command.util.AsyncCommandBuilder; import com.sk89q.worldedit.command.util.CommandPermissions; import com.sk89q.worldedit.command.util.CommandPermissionsConditionGenerator; @@ -175,6 +176,37 @@ public void cylinderBrush(Player player, LocalSession session, ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); } + @Command( + name = "splatter", + aliases = { "splat" }, + desc = "Choose the splatter brush" + ) + @CommandPermissions("worldedit.brush.splatter") + public void splatterBrush(Player player, LocalSession session, + @Arg(desc = "The pattern of blocks to set") + Pattern pattern, + @Arg(desc = "The radius of the splatter", def = "2") + double radius, + @Arg(desc = "The decay of the splatter between 0 and 10", def = "1") + int decay) throws WorldEditException { + worldEdit.checkMaxBrushRadius(radius); + + if (decay < 0 || decay > 10) { + player.printError(TranslatableComponent.of("worldedit.brush.splatter.decay-out-of-range", TextComponent.of(decay))); + return; + } + + BrushTool tool = session.getBrushTool(player.getItemInHand(HandSide.MAIN_HAND).getType()); + tool.setFill(pattern); + tool.setSize(radius); + + tool.setBrush(new SplatterBrush(decay), "worldedit.brush.splatter"); + + player.printInfo(TranslatableComponent.of("worldedit.brush.splatter.equip", TextComponent.of((int) radius), TextComponent.of(decay))); + ToolCommands.sendUnbindInstruction(player, UNBIND_COMMAND_COMPONENT); + } + + @Command( name = "clipboard", aliases = { "copy" }, diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SplatterBrush.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SplatterBrush.java new file mode 100644 index 0000000000..8a9b8ec904 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/tool/brush/SplatterBrush.java @@ -0,0 +1,57 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.command.tool.brush; + +import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.MaxChangedBlocksException; +import com.sk89q.worldedit.function.RegionMaskingFilter; +import com.sk89q.worldedit.function.block.BlockReplace; +import com.sk89q.worldedit.function.mask.SplatterMask; +import com.sk89q.worldedit.function.operation.Operations; +import com.sk89q.worldedit.function.pattern.Pattern; +import com.sk89q.worldedit.function.visitor.RegionVisitor; +import com.sk89q.worldedit.math.BlockVector3; +import com.sk89q.worldedit.math.Vector3; +import com.sk89q.worldedit.regions.EllipsoidRegion; +import com.sk89q.worldedit.world.block.BlockTypes; + +public class SplatterBrush implements Brush { + + private final int decay; + + public SplatterBrush(int decay) { + this.decay = decay; + } + + @Override + public void build(EditSession editSession, BlockVector3 position, Pattern pattern, double size) throws MaxChangedBlocksException { + if (pattern == null) { + pattern = BlockTypes.COBBLESTONE.getDefaultState(); + } + + Operations.completeLegacy(new RegionVisitor( + new EllipsoidRegion(position, Vector3.at(size, size, size)), + new RegionMaskingFilter( + new SplatterMask(position, decay / 10.0, size), + new BlockReplace(editSession, pattern)) + )); + } + +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask.java new file mode 100644 index 0000000000..54b65c4e1e --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask.java @@ -0,0 +1,61 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.function.mask; + +import com.sk89q.worldedit.math.BlockVector3; + +import java.util.concurrent.ThreadLocalRandom; +import javax.annotation.Nullable; + +import static com.google.common.base.Preconditions.checkArgument; + +public class SplatterMask extends AbstractMask { + + private final BlockVector3 position; + private final double decay; + private final double size; + private final double sizeSq; + + public SplatterMask(BlockVector3 position, double decay, double size) { + checkArgument(decay >= 0, "decay must be >= 0"); + checkArgument(decay <= 1, "decay must be <= 1"); + + this.position = position; + this.decay = decay; + this.size = size; + this.sizeSq = size * size; + } + + @Override + public boolean test(BlockVector3 vector) { + double distSq = vector.distanceSq(position); + double distRatio = distSq / sizeSq; + + double decayChance = distRatio * decay * 2; + + return ThreadLocalRandom.current().nextDouble() > decayChance; + } + + @Nullable + @Override + public Mask2D toMask2D() { + return new SplatterMask2D(position.toBlockVector2(), decay, size); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask2D.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask2D.java new file mode 100644 index 0000000000..2d6d76444b --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SplatterMask2D.java @@ -0,0 +1,52 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.function.mask; + +import com.sk89q.worldedit.math.BlockVector2; + +import java.util.concurrent.ThreadLocalRandom; + +import static com.google.common.base.Preconditions.checkArgument; + +public class SplatterMask2D extends AbstractMask2D { + + private final BlockVector2 position; + private final double decay; + private final double sizeSq; + + public SplatterMask2D(BlockVector2 position, double decay, double size) { + checkArgument(decay >= 0, "decay must be >= 0"); + checkArgument(decay <= 1, "decay must be <= 1"); + + this.position = position; + this.decay = decay; + this.sizeSq = size * size; + } + + @Override + public boolean test(BlockVector2 vector) { + double distSq = vector.distanceSq(position); + double distRatio = distSq / sizeSq; + + double decayChance = distRatio * decay * 2; + + return ThreadLocalRandom.current().nextDouble() > decayChance; + } +} diff --git a/worldedit-core/src/main/resources/lang/strings.json b/worldedit-core/src/main/resources/lang/strings.json index f405c94323..a166d12bfc 100644 --- a/worldedit-core/src/main/resources/lang/strings.json +++ b/worldedit-core/src/main/resources/lang/strings.json @@ -21,6 +21,8 @@ "worldedit.brush.paint.item.warning": "This brush simulates item usages. Its effects may not work on all platforms, may not be undo-able, and may cause strange interactions with other mods/plugins. Use at your own risk.", "worldedit.brush.sphere.equip": "Sphere brush shape equipped ({0}).", "worldedit.brush.cylinder.equip": "Cylinder brush shape equipped ({0} by {1}).", + "worldedit.brush.splatter.equip": "Splatter brush shape equipped ({0} with {1} decay).", + "worldedit.brush.splatter.decay-out-of-range": "Splatter brush decay value: {0} is out of range 0 - 10.", "worldedit.brush.clipboard.equip": "Clipboard brush shape equipped.", "worldedit.brush.smooth.equip": "Smooth brush equipped ({0} x {1}x using {2}).", "worldedit.brush.extinguish.equip": "Extinguisher equipped ({0}).", From 76147474d8f55200faddfa32677ffbe3b477f26a Mon Sep 17 00:00:00 2001 From: wizjany Date: Tue, 25 May 2021 15:26:46 -0400 Subject: [PATCH 100/813] Fix author/name swap in //schem share. --- .../java/com/sk89q/worldedit/command/SchematicCommands.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java index cc0b73988d..9b34c1778e 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/command/SchematicCommands.java @@ -428,8 +428,8 @@ private static class SchematicShareTask extends SchematicOutputTask call() throws Exception { ClipboardShareMetadata metadata = new ClipboardShareMetadata( format, - this.actor.getName(), - name == null ? actor.getName() + "-" + System.currentTimeMillis() : name + name == null ? actor.getName() + "-" + System.currentTimeMillis() : name, + this.actor.getName() ); return destination.share(metadata, this::writeToOutputStream); From 8cfbf7e47855e273bcf25b0c71801f6d87d6a409 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Wed, 2 Jun 2021 15:03:33 -0700 Subject: [PATCH 101/813] Use 16 as our toolchain, but set release to 8 --- buildSrc/src/main/kotlin/CommonConfig.kt | 2 +- buildSrc/src/main/kotlin/PlatformConfig.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/CommonConfig.kt b/buildSrc/src/main/kotlin/CommonConfig.kt index 13179e17c0..4037b7da1b 100644 --- a/buildSrc/src/main/kotlin/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/CommonConfig.kt @@ -34,7 +34,7 @@ fun Project.applyCommonConfiguration() { plugins.withId("java") { the().toolchain { - languageVersion.set(JavaLanguageVersion.of(8)) + languageVersion.set(JavaLanguageVersion.of(16)) } } diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 94db0445d8..8ecb9344c5 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -44,6 +44,7 @@ fun Project.applyPlatformAndCoreConfiguration() { val disabledLint = listOf( "processing", "path", "fallthrough", "serial" ) + options.release.set(8) options.compilerArgs.addAll(listOf("-Xlint:all") + disabledLint.map { "-Xlint:-$it" }) options.isDeprecation = true options.encoding = "UTF-8" From 95160027d900d0f87d132a7a58335180556eadac Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 4 Jun 2021 17:12:23 -0700 Subject: [PATCH 102/813] Register platforms and commands in a more proper way (#1766) * Register platforms and commands in a more proper way Platforms are now register "on load"/initialize/etc., and preferreds are chosen just prior to command registration events. This allows us to properly hook in to reload. Additionally, we now have the capability to reload data with /minecraft:reload, though this is not yet implemented. * Correct javadocs on queryCapability * Flatten BukkitImplAdapter Lifecycled --- .../sk89q/worldedit/bukkit/BukkitAdapter.java | 16 +- .../sk89q/worldedit/bukkit/BukkitPlayer.java | 2 +- .../bukkit/BukkitServerInterface.java | 24 ++- .../worldedit/bukkit/WorldEditPlugin.java | 59 ++++--- .../com/sk89q/worldedit/cli/CLIPlatform.java | 2 +- .../com/sk89q/worldedit/cli/CLIWorldEdit.java | 3 +- .../internal/util/DocumentationPlatform.kt | 2 +- .../event/platform/PlatformEvent.java | 40 +++++ .../event/platform/PlatformReadyEvent.java | 10 +- .../event/platform/PlatformUnreadyEvent.java | 31 ++++ .../platform/PlatformsRegisteredEvent.java | 28 ++++ .../extension/platform/Capability.java | 34 +++- .../extension/platform/Platform.java | 16 +- .../extension/platform/PlatformManager.java | 59 +++++-- .../worldedit/util/asset/AssetLoaders.java | 5 + .../util/lifecycle/ConstantLifecycled.java | 55 +++++++ .../util/lifecycle/FlatMapLifecycled.java | 80 ++++++++++ .../worldedit/util/lifecycle/Lifecycled.java | 151 ++++++++++++++++++ .../lifecycle/LifecycledCallbackHandler.java | 114 +++++++++++++ .../util/lifecycle/MapLifecycled.java | 82 ++++++++++ .../util/lifecycle/SimpleLifecycled.java | 79 +++++++++ .../sk89q/worldedit/util/lifecycle/Token.java | 33 ++++ .../expression/BaseExpressionTest.java | 12 ++ .../util/collection/BlockMapTest.java | 12 +- .../sk89q/worldedit/fabric/FabricAdapter.java | 22 +-- .../worldedit/fabric/FabricPlatform.java | 57 +++---- .../worldedit/fabric/FabricWorldEdit.java | 65 +++++--- .../sk89q/worldedit/forge/ForgePlatform.java | 5 +- .../sk89q/worldedit/forge/ForgeWorldEdit.java | 45 +++++- .../worldedit/sponge/SpongePlatform.java | 5 +- .../worldedit/sponge/SpongeWorldEdit.java | 2 +- 31 files changed, 984 insertions(+), 166 deletions(-) create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java create mode 100644 worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java 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 3270f6aaa9..a813a40b73 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 @@ -23,6 +23,7 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.blocks.BaseItemStack; +import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; import com.sk89q.worldedit.entity.Entity; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; @@ -443,7 +444,8 @@ public static ItemType asItemType(Material material) { public static BlockState adapt(BlockData blockData) { checkNotNull(blockData); - if (WorldEditPlugin.getInstance().getBukkitImplAdapter() == null) { + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + if (adapter == null) { return blockStateStringCache.computeIfAbsent(blockData.getAsString(), input -> { try { return WorldEdit.getInstance().getBlockFactory().parseFromInput(input, TO_BLOCK_CONTEXT).toImmutableState(); @@ -454,7 +456,7 @@ public static BlockState adapt(BlockData blockData) { }); } else { return blockStateCache.computeIfAbsent( - WorldEditPlugin.getInstance().getBukkitImplAdapter().getInternalBlockStateId(blockData).orElseGet( + adapter.getInternalBlockStateId(blockData).orElseGet( () -> blockData.getAsString().hashCode() ), input -> { @@ -509,8 +511,9 @@ public static BlockState asBlockState(ItemStack itemStack) throws WorldEditExcep */ public static BaseItemStack adapt(ItemStack itemStack) { checkNotNull(itemStack); - if (WorldEditPlugin.getInstance().getBukkitImplAdapter() != null) { - return WorldEditPlugin.getInstance().getBukkitImplAdapter().adapt(itemStack); + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + if (adapter != null) { + return adapter.adapt(itemStack); } return new BaseItemStack(ItemTypes.get(itemStack.getType().getKey().toString()), itemStack.getAmount()); } @@ -523,8 +526,9 @@ public static BaseItemStack adapt(ItemStack itemStack) { */ public static ItemStack adapt(BaseItemStack item) { checkNotNull(item); - if (WorldEditPlugin.getInstance().getBukkitImplAdapter() != null) { - return WorldEditPlugin.getInstance().getBukkitImplAdapter().adapt(item); + BukkitImplAdapter adapter = WorldEditPlugin.getInstance().getBukkitImplAdapter(); + if (adapter != null) { + return adapter.adapt(item); } return new ItemStack(adapt(item.getType()), item.getAmount()); } diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java index a5f5d615a9..2b65ab0b30 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitPlayer.java @@ -232,7 +232,7 @@ public Locale getLocale() { @Override public void sendAnnouncements() { - if (WorldEditPlugin.getInstance().getBukkitImplAdapter() == null) { + if (WorldEditPlugin.getInstance().getLifecycledBukkitImplAdapter() == null) { printError(TranslatableComponent.of("worldedit.version.bukkit.unsupported-adapter", TextComponent.of("https://enginehub.org/worldedit/#downloads", TextColor.AQUA) .clickEvent(ClickEvent.openUrl("https://enginehub.org/worldedit/#downloads")))); diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 94c0602583..6602887f09 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -24,6 +24,7 @@ import com.sk89q.bukkit.util.CommandRegistration; import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.bukkit.adapter.BukkitImplAdapter; import com.sk89q.worldedit.command.util.PermissionCondition; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.AbstractPlatform; @@ -33,7 +34,7 @@ import com.sk89q.worldedit.extension.platform.Preference; import com.sk89q.worldedit.extension.platform.Watchdog; import com.sk89q.worldedit.util.SideEffect; -import com.sk89q.worldedit.util.concurrency.LazyReference; +import com.sk89q.worldedit.util.lifecycle.Lifecycled; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.registry.Registries; import org.bukkit.Bukkit; @@ -59,21 +60,16 @@ public class BukkitServerInterface extends AbstractPlatform implements MultiUser public final Server server; public final WorldEditPlugin plugin; private final CommandRegistration dynamicCommands; - private final LazyReference watchdog; + private final Lifecycled watchdog; private boolean hookingEvents; public BukkitServerInterface(WorldEditPlugin plugin, Server server) { this.plugin = plugin; this.server = server; this.dynamicCommands = new CommandRegistration(plugin); - this.watchdog = LazyReference.from(() -> { - if (plugin.getBukkitImplAdapter() != null) { - return plugin.getBukkitImplAdapter().supportsWatchdog() - ? new BukkitWatchdog(plugin.getBukkitImplAdapter()) - : null; - } - return null; - }); + this.watchdog = plugin.getLifecycledBukkitImplAdapter() + .filter(BukkitImplAdapter::supportsWatchdog) + .map(BukkitWatchdog::new); } CommandRegistration getDynamicCommands() { @@ -92,7 +88,7 @@ public Registries getRegistries() { @SuppressWarnings("deprecation") @Override public int getDataVersion() { - if (plugin.getBukkitImplAdapter() != null) { + if (plugin.getLifecycledBukkitImplAdapter() != null) { return Bukkit.getUnsafe().getDataVersion(); } return -1; @@ -129,7 +125,7 @@ public int schedule(long delay, long period, Runnable task) { @Override public Watchdog getWatchdog() { - return watchdog.getValue(); + return watchdog.valueOrThrow(); } @Override @@ -190,8 +186,8 @@ public void registerCommands(CommandManager dispatcher) { } @Override - public void registerGameHooks() { - hookingEvents = true; + public void setGameHooksEnabled(boolean enabled) { + this.hookingEvents = enabled; } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java index 996929e2dd..ad19190b76 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/WorldEditPlugin.java @@ -33,6 +33,8 @@ import com.sk89q.worldedit.event.platform.CommandEvent; import com.sk89q.worldedit.event.platform.CommandSuggestionEvent; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.PlatformUnreadyEvent; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.extension.input.ParserContext; import com.sk89q.worldedit.extension.platform.Actor; @@ -43,6 +45,8 @@ import com.sk89q.worldedit.internal.command.CommandUtil; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.registry.state.Property; +import com.sk89q.worldedit.util.lifecycle.Lifecycled; +import com.sk89q.worldedit.util.lifecycle.SimpleLifecycled; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockCategory; @@ -87,7 +91,6 @@ import java.util.Map; import java.util.Optional; import java.util.logging.Level; -import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME; @@ -115,8 +118,9 @@ public class WorldEditPlugin extends JavaPlugin implements TabCompleter { private static WorldEditPlugin INSTANCE; private static final int BSTATS_PLUGIN_ID = 3328; - private BukkitImplAdapter bukkitAdapter; - private BukkitServerInterface server; + private final SimpleLifecycled adapter = + SimpleLifecycled.invalid(); + private BukkitServerInterface platform; private BukkitConfiguration config; @Override @@ -129,8 +133,12 @@ public void onLoad() { WorldEdit worldEdit = WorldEdit.getInstance(); // Setup platform - server = new BukkitServerInterface(this, getServer()); - worldEdit.getPlatformManager().register(server); + platform = new BukkitServerInterface(this, getServer()); + worldEdit.getPlatformManager().register(platform); + + createDefaultConfiguration("config.yml"); // Create the default configuration file + + config = new BukkitConfiguration(new YAMLProcessor(new File(getDataFolder(), "config.yml"), true), this); Path delChunks = Paths.get(getDataFolder().getPath(), DELCHUNKS_FILE_NAME); if (Files.exists(delChunks)) { @@ -149,6 +157,8 @@ public void onEnable() { ClassSourceValidator verifier = new ClassSourceValidator(this); verifier.reportMismatches(ImmutableList.of(World.class, CommandManager.class, EditSession.class, Actor.class)); + WorldEdit.getInstance().getEventBus().post(new PlatformsRegisteredEvent()); + PermissionsResolverManager.initialize(this); // Setup permission resolver // Register CUI @@ -184,14 +194,16 @@ public void onEnable() { private void setupPreWorldData() { loadAdapter(); - loadConfig(); + config.load(); WorldEdit.getInstance().loadMappings(); } private void setupWorldData() { - setupTags(); // datapacks aren't loaded until just before the world is, and bukkit has no event for this + // datapacks aren't loaded until just before the world is, and bukkit has no event for this // so the earliest we can do this is in WorldInit - WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent()); + setupTags(); + + WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); } @SuppressWarnings({ "deprecation", "unchecked" }) @@ -257,13 +269,6 @@ private void setupTags() { } } - private void loadConfig() { - createDefaultConfiguration("config.yml"); // Create the default configuration file - - config = new BukkitConfiguration(new YAMLProcessor(new File(getDataFolder(), "config.yml"), true), this); - config.load(); - } - private void loadAdapter() { WorldEdit worldEdit = WorldEdit.getInstance(); @@ -282,8 +287,9 @@ private void loadAdapter() { LOGGER.warn("Failed to search " + getFile() + " for Bukkit adapters", e); } try { - bukkitAdapter = adapterLoader.loadAdapter(); + BukkitImplAdapter bukkitAdapter = adapterLoader.loadAdapter(); LOGGER.info("Using " + bukkitAdapter.getClass().getCanonicalName() + " as the Bukkit adapter"); + this.adapter.newValue(bukkitAdapter); } catch (AdapterLoadException e) { Platform platform = worldEdit.getPlatformManager().queryCapability(Capability.WORLD_EDITING); if (platform instanceof BukkitServerInterface) { @@ -293,6 +299,7 @@ private void loadAdapter() { + "but it seems that you have another implementation of WorldEdit installed (" + platform.getPlatformName() + ") " + "that handles the world editing."); } + this.adapter.invalidate(); } } @@ -303,13 +310,14 @@ private void loadAdapter() { public void onDisable() { WorldEdit worldEdit = WorldEdit.getInstance(); worldEdit.getSessionManager().unload(); - worldEdit.getPlatformManager().unregister(server); + if (platform != null) { + worldEdit.getEventBus().post(new PlatformUnreadyEvent(platform)); + worldEdit.getPlatformManager().unregister(platform); + platform.unregisterCommands(); + } if (config != null) { config.unload(); } - if (server != null) { - server.unregisterCommands(); - } this.getServer().getScheduler().cancelTasks(this); } @@ -471,7 +479,7 @@ public Actor wrapCommandSender(CommandSender sender) { } BukkitServerInterface getInternalPlatform() { - return server; + return platform; } /** @@ -498,9 +506,12 @@ static WorldEditPlugin getInstance() { * * @return the adapter */ - @Nullable + Lifecycled getLifecycledBukkitImplAdapter() { + return adapter; + } + BukkitImplAdapter getBukkitImplAdapter() { - return bukkitAdapter; + return adapter.value().orElse(null); } private class WorldInitListener implements Listener { @@ -533,7 +544,7 @@ public void onAsyncTabComplete(com.destroystokyo.paper.event.server.AsyncTabComp return; } String label = buffer.substring(1, firstSpace); - Plugin owner = server.getDynamicCommands().getCommandOwner(label); + Plugin owner = platform.getDynamicCommands().getCommandOwner(label); if (owner != WorldEditPlugin.this) { return; } diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java index 15e98ec316..4b90e8ba2d 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIPlatform.java @@ -122,7 +122,7 @@ public void registerCommands(CommandManager manager) { } @Override - public void registerGameHooks() { + public void setGameHooksEnabled(boolean enabled) { } @Override diff --git a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java index b1b39e7a43..8f906b6a21 100644 --- a/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java +++ b/worldedit-cli/src/main/java/com/sk89q/worldedit/cli/CLIWorldEdit.java @@ -45,7 +45,6 @@ import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Options; -import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.ByteArrayInputStream; @@ -176,7 +175,7 @@ public void onStarted() { config = new CLIConfiguration(this); config.load(); - WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent()); + WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); } public void onStopped() { diff --git a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt index 44de0cbf66..fcf2ec15d2 100644 --- a/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt +++ b/worldedit-core/doctools/src/main/kotlin/com/sk89q/worldedit/internal/util/DocumentationPlatform.kt @@ -55,7 +55,7 @@ class DocumentationPlatform : AbstractPlatform() { override fun registerCommands(commandManager: CommandManager?) = error("Documentation does not provide this") - override fun registerGameHooks() = error("Documentation does not provide this") + override fun setGameHooksEnabled(enabled: Boolean) = error("Documentation does not provide this") override fun getCapabilities() = error("Documentation does not provide this") diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java new file mode 100644 index 0000000000..261b78ae03 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformEvent.java @@ -0,0 +1,40 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.event.platform; + +import com.sk89q.worldedit.event.Event; +import com.sk89q.worldedit.extension.platform.Platform; + +public abstract class PlatformEvent extends Event { + private final Platform platform; + + protected PlatformEvent(Platform platform) { + this.platform = platform; + } + + /** + * Get the platform for this event. + * + * @return the platform + */ + public Platform getPlatform() { + return platform; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java index 0e3042dcc3..7ae072ae5d 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformReadyEvent.java @@ -19,11 +19,13 @@ package com.sk89q.worldedit.event.platform; -import com.sk89q.worldedit.event.Event; +import com.sk89q.worldedit.extension.platform.Platform; /** - * Raised when a platform thinks that all the platforms have had a chance to - * register themselves. + * Raised when a platform has finished loading its data. */ -public class PlatformReadyEvent extends Event { +public class PlatformReadyEvent extends PlatformEvent { + public PlatformReadyEvent(Platform platform) { + super(platform); + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java new file mode 100644 index 0000000000..25930e6b77 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformUnreadyEvent.java @@ -0,0 +1,31 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.event.platform; + +import com.sk89q.worldedit.extension.platform.Platform; + +/** + * Raised when a platform needs to retract all registered data, e.g. due to a reload. + */ +public class PlatformUnreadyEvent extends PlatformEvent { + public PlatformUnreadyEvent(Platform platform) { + super(platform); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java new file mode 100644 index 0000000000..8eac2569f2 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/event/platform/PlatformsRegisteredEvent.java @@ -0,0 +1,28 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.event.platform; + +import com.sk89q.worldedit.event.Event; + +/** + * Fired by a platform when it believes all available platforms should be registered. + */ +public class PlatformsRegisteredEvent extends Event { +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java index 4b1ef6f5a6..be34b5e183 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Capability.java @@ -37,11 +37,12 @@ public enum Capability { GAME_HOOKS { @Override void initialize(PlatformManager platformManager, Platform platform) { - platform.registerGameHooks(); + platform.setGameHooksEnabled(true); } @Override - void unload(PlatformManager platformManager, Platform platform) { + void uninitialize(PlatformManager platformManager, Platform platform) { + platform.setGameHooksEnabled(false); } }, @@ -53,6 +54,11 @@ void unload(PlatformManager platformManager, Platform platform) { void initialize(PlatformManager platformManager, Platform platform) { WorldEdit.getInstance().getAssetLoaders().init(); } + + @Override + void uninitialize(PlatformManager platformManager, Platform platform) { + WorldEdit.getInstance().getAssetLoaders().uninit(); + } }, /** @@ -65,7 +71,7 @@ void initialize(PlatformManager platformManager, Platform platform) { } @Override - void unload(PlatformManager platformManager, Platform platform) { + void uninitialize(PlatformManager platformManager, Platform platform) { platformManager.getPlatformCommandManager().removeCommands(); } }, @@ -86,7 +92,7 @@ void unload(PlatformManager platformManager, Platform platform) { */ WORLD_EDITING { @Override - void initialize(PlatformManager platformManager, Platform platform) { + void ready(PlatformManager platformManager, Platform platform) { BlockRegistry blockRegistry = platform.getRegistries().getBlockRegistry(); for (BlockType type : BlockType.REGISTRY) { for (BlockState state : type.getAllStates()) { @@ -98,17 +104,33 @@ void initialize(PlatformManager platformManager, Platform platform) { } @Override - void unload(PlatformManager platformManager, Platform platform) { + void unready(PlatformManager platformManager, Platform platform) { BlockStateIdAccess.clear(); } }; + /** + * Initialize platform-wide state. + */ void initialize(PlatformManager platformManager, Platform platform) { + } + /** + * Un-initialize platform-wide state. + */ + void uninitialize(PlatformManager platformManager, Platform platform) { } - void unload(PlatformManager platformManager, Platform platform) { + /** + * Initialize per-level state. + */ + void ready(PlatformManager platformManager, Platform platform) { + } + /** + * Un-initialize per-level state. + */ + void unready(PlatformManager platformManager, Platform platform) { } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java index 4ed322a637..b4deb56f78 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/Platform.java @@ -135,14 +135,28 @@ public interface Platform { /** * Register the commands contained within the given command manager. * + *

+ * This method should be ignored if the platform offers a command registration event. + *

+ * * @param commandManager the command manager */ void registerCommands(CommandManager commandManager); /** * Register game hooks. + * + * @deprecated Call {@link #setGameHooksEnabled(boolean)} with {@code true} instead + */ + @Deprecated + default void registerGameHooks() { + setGameHooksEnabled(true); + } + + /** + * Set if the game hooks are enabled for this platform. */ - void registerGameHooks(); + void setGameHooksEnabled(boolean enabled); /** * Get the configuration from this platform. diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java index ae9fa1ad3e..57c02f7456 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/extension/platform/PlatformManager.java @@ -33,6 +33,8 @@ import com.sk89q.worldedit.event.platform.Interaction; import com.sk89q.worldedit.event.platform.PlatformInitializeEvent; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.PlatformUnreadyEvent; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; import com.sk89q.worldedit.event.platform.PlayerInputEvent; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.session.request.Request; @@ -137,7 +139,7 @@ public synchronized boolean unregister(Platform platform) { while (it.hasNext()) { Entry entry = it.next(); if (entry.getValue().equals(platform)) { - entry.getKey().unload(this, entry.getValue()); + entry.getKey().uninitialize(this, entry.getValue()); it.remove(); choosePreferred = true; // Have to choose new favorites } @@ -152,8 +154,7 @@ public synchronized boolean unregister(Platform platform) { } /** - * Get the preferred platform for handling a certain capability. Returns - * null if none is available. + * Get the preferred platform for handling a certain capability. Throws if none are available. * * @param capability the capability * @return the platform @@ -165,12 +166,11 @@ public synchronized Platform queryCapability(Capability capability) throws NoCap return platform; } else { if (preferences.isEmpty()) { - // Use the first available if preferences have not been decided yet. - if (platforms.isEmpty()) { - // No platforms registered, this is being called too early! - throw new NoCapablePlatformException("No platforms have been registered yet! Please wait until WorldEdit is initialized."); - } - return platforms.get(0); + // Not all platforms registered, this is being called too early! + throw new NoCapablePlatformException( + "Not all platforms have been registered yet!" + + " Please wait until WorldEdit is initialized." + ); } throw new NoCapablePlatformException("No platform was found supporting " + capability.name()); } @@ -183,8 +183,15 @@ private synchronized void choosePreferred() { for (Capability capability : Capability.values()) { Platform preferred = findMostPreferred(capability); if (preferred != null) { - preferences.put(capability, preferred); - capability.initialize(this, preferred); + Platform oldPreferred = preferences.put(capability, preferred); + // only (re)initialize if it changed + if (preferred != oldPreferred) { + // uninitialize if needed + if (oldPreferred != null) { + capability.uninitialize(this, oldPreferred); + } + capability.initialize(this, preferred); + } } } @@ -295,14 +302,42 @@ public Collection getSupportedSideEffects() { return queryCapability(Capability.WORLD_EDITING).getSupportedSideEffects(); } + /** + * You shouldn't have been calling this anyways, but this is now deprecated. Either don't + * fire this event at all, or fire the new event via the event bus if you're a platform. + */ + @Deprecated + public void handlePlatformReady(@SuppressWarnings("unused") PlatformReadyEvent event) { + handlePlatformsRegistered(new PlatformsRegisteredEvent()); + } + + /** + * Internal, do not call. + */ @Subscribe - public void handlePlatformReady(PlatformReadyEvent event) { + public void handlePlatformsRegistered(PlatformsRegisteredEvent event) { choosePreferred(); if (initialized.compareAndSet(false, true)) { worldEdit.getEventBus().post(new PlatformInitializeEvent()); } } + /** + * Internal, do not call. + */ + @Subscribe + public void handleNewPlatformReady(PlatformReadyEvent event) { + preferences.forEach((cap, platform) -> cap.ready(this, platform)); + } + + /** + * Internal, do not call. + */ + @Subscribe + public void handleNewPlatformUnready(PlatformUnreadyEvent event) { + preferences.forEach((cap, platform) -> cap.unready(this, platform)); + } + @Subscribe public void handleBlockInteract(BlockInteractEvent event) { // Create a proxy actor with a potentially different world for diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java index 947eefa8c1..3aedd4ed3b 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/asset/AssetLoaders.java @@ -75,6 +75,11 @@ public void init() { registerAssetLoader(new ImageHeightmapLoader(worldEdit, this.assetsDir), ImageHeightmap.class); } + public void uninit() { + this.assetsDir = null; + assetLoaderRegistration.clear(); + } + public void registerAssetLoader(AssetLoader loader, Class assetClass) { assetLoaders.add(loader); for (String extension : loader.getAllowedExtensions()) { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java new file mode 100644 index 0000000000..41cb210223 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/ConstantLifecycled.java @@ -0,0 +1,55 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Objects; +import java.util.Optional; +import java.util.function.BiConsumer; + +/** + * A {@link Lifecycled} that never invalidates. + */ +public final class ConstantLifecycled implements Lifecycled { + private final T value; + + public ConstantLifecycled(T value) { + this.value = Objects.requireNonNull(value); + } + + @Override + public Optional value() { + return Optional.of(value); + } + + @Override + public Events events() { + // Simple implementation, we just need to call onNewValue + return new Events() { + @Override + public void onNewValue(O owner, BiConsumer> callback) { + callback.accept(owner, ConstantLifecycled.this); + } + + @Override + public void onInvalidated(O owner, BiConsumer> callback) { + } + }; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java new file mode 100644 index 0000000000..9c0fd63d83 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/FlatMapLifecycled.java @@ -0,0 +1,80 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Optional; +import java.util.function.Function; +import javax.annotation.Nullable; + +class FlatMapLifecycled implements Lifecycled { + private final LifecycledCallbackHandler events = new LifecycledCallbackHandler<>(this); + private Lifecycled mapped; + private Token> mappedToken; + @Nullable + private U value; + + FlatMapLifecycled(Lifecycled upstream, Function> mapper) { + upstream.events().onInvalidated(this, (this$, up) -> { + boolean fire = this$.value != null; + this$.value = null; + // drop `mapped` hooks if needed + this$.mappedToken = null; + this$.mapped = null; + if (fire) { + this$.events.fireInvalidated(); + } + }); + upstream.events().onNewValue(this, (this$, up) -> { + this$.mapped = mapper.apply(up.valueOrThrow()); + this$.mappedToken = new Token<>(this$); + mapped.events().onInvalidated(this$.mappedToken, (token, mapped$) -> { + boolean fire = token.inner.value != null; + token.inner.value = null; + // note we do not drop the token here, onNewValue may be called again + if (fire) { + this$.events.fireInvalidated(); + } + }); + mapped.events().onNewValue(this$.mappedToken, (token, mapped$) -> { + U newValue = mapped$.valueOrThrow(); + boolean fire = token.inner.value != newValue; + token.inner.value = newValue; + if (fire) { + this$.events.fireOnNewValue(); + } + }); + }); + } + + @Override + public Optional value() { + return Optional.ofNullable(value); + } + + @Override + public boolean isValid() { + return value != null; + } + + @Override + public Events events() { + return events; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java new file mode 100644 index 0000000000..d9d2c7f49a --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Lifecycled.java @@ -0,0 +1,151 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Optional; +import java.util.function.BiConsumer; +import java.util.function.Function; +import java.util.function.Predicate; + +/** + * Represents an object with a simple valid/invalid lifecycle. + * + *

+ * A lifecycled object will start with no value, then trigger + * {@link Events#onNewValue(Object, BiConsumer)} callbacks when it gets one, and + * {@link Events#onInvalidated(Object, BiConsumer)} callbacks when it loses it. A full + * invalidated->new value cycle is called a "reload". + *

+ * + *

+ * Downstream lifecycled objects can be derived using functional methods, and share some + * common rules. They will apply the operation sometime before the result is needed, either + * eagerly or lazily. They will re-do the operation after the upstream {@link Lifecycled} is + * reloaded. + *

+ * + *

+ * Unless specified, {@link Lifecycled} objects are not thread-safe. However, the + * {@link Events} objects are, and callbacks may be added from any thread. + *

+ * + * @param the value type + */ +public interface Lifecycled { + + interface Events { + /** + * Add a callback for when this lifecycled is given a new value. Will be called immediately + * if this lifecycled is currently valid. + * + *

+ * The callback should not reference the owner, it must only access it via the parameter. + * This ensures that the owner will be GC-able, otherwise it may be stuck in a reference + * loop. + *

+ * + * @param owner when the owner is GC'd, the callback is removed + * @param callback the callback, will be passed the lifecycled object + */ + void onNewValue(O owner, BiConsumer> callback); + + /** + * Add a callback for when this lifecycled is invalidated. Will be called immediately if + * this lifecycled is currently invalid. + * + *

+ * The callback should not reference the owner, it must only access it via the parameter. + * This ensures that the owner will be GC-able, otherwise it may be stuck in a reference + * loop. + *

+ * + * @param owner when the owner is GC'd, the callback is removed + * @param callback the callback, will be passed the lifecycled object + */ + void onInvalidated(O owner, BiConsumer> callback); + } + + /** + * Get the value or {@link Optional#empty()}. + * + * @return the value + */ + Optional value(); + + /** + * Get the value or throw. + * + * @return the value + * @throws IllegalStateException if there is no value + */ + default T valueOrThrow() throws IllegalStateException { + return value().orElseThrow(() -> new IllegalStateException("Currently invalid")); + } + + /** + * Check for validity, usually without triggering computation. + * + * @return if this lifecycled's {@link #value()} is valid + */ + default boolean isValid() { + return value().isPresent(); + } + + /** + * Get the event manager for this lifecycled object. + * + * @return the event manager + */ + Events events(); + + /** + * Map the value. + * + * @param mapper the mapper function + * @param the new type + * @return the downstream lifecycled + */ + default Lifecycled map(Function mapper) { + return new MapLifecycled<>(this, mapper); + } + + /** + * Filter the value. In other words, create a new lifecycled object where validity is ANDed + * with the result of calling the filter function. + * + * @param filterer the filter function + * @return the downstream lifecycled + */ + default Lifecycled filter(Predicate filterer) { + SimpleLifecycled downstream = SimpleLifecycled.invalid(); + events().onInvalidated(downstream, (d, lifecycled) -> d.invalidate()); + events().onNewValue(downstream, (d, lifecycled) -> { + T value = lifecycled.valueOrThrow(); + if (filterer.test(value)) { + d.newValue(value); + } + }); + return downstream; + } + + default Lifecycled flatMap(Function> mapper) { + return new FlatMapLifecycled<>(this, mapper); + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java new file mode 100644 index 0000000000..4493764bf0 --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/LifecycledCallbackHandler.java @@ -0,0 +1,114 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Map; +import java.util.WeakHashMap; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.BiConsumer; + +/** + * Convenience class for implementing the callbacks of {@link Lifecycled}. + */ +public class LifecycledCallbackHandler implements Lifecycled.Events { + private final Lifecycled lifecycled; + private final Lock lock = new ReentrantLock(); + private final Map>> onInvalidatedCallbacks = + new WeakHashMap<>(); + private final Map>> onNewValueCallbacks = + new WeakHashMap<>(); + + public LifecycledCallbackHandler(Lifecycled lifecycled) { + this.lifecycled = lifecycled; + } + + @Override + public void onInvalidated(O owner, BiConsumer> callback) { + lock.lock(); + try { + onInvalidatedCallbacks.put(owner, callback); + if (!lifecycled.isValid()) { + callback.accept(owner, lifecycled); + } + } finally { + lock.unlock(); + } + } + + @Override + public void onNewValue(O owner, BiConsumer> callback) { + lock.lock(); + try { + onNewValueCallbacks.put(owner, callback); + if (lifecycled.isValid()) { + callback.accept(owner, lifecycled); + } + } finally { + lock.unlock(); + } + } + + + /** + * Fire {@link #onInvalidated(Object, BiConsumer)} callbacks. + */ + public void fireInvalidated() { + lock.lock(); + try { + for (Map.Entry>> callback : onInvalidatedCallbacks.entrySet()) { + Object owner = callback.getKey(); + if (owner == null) { + // GC'd, continue + continue; + } + @SuppressWarnings("unchecked") + BiConsumer> cast = + (BiConsumer>) callback.getValue(); + cast.accept(owner, lifecycled); + } + } finally { + lock.unlock(); + } + } + + /** + * Fire {@link #onNewValue(Object, BiConsumer)} callbacks, the {@link Lifecycled#value()} must + * be available. + */ + public void fireOnNewValue() { + lock.lock(); + try { + for (Map.Entry>> callback : onNewValueCallbacks.entrySet()) { + Object owner = callback.getKey(); + if (owner == null) { + // GC'd, continue + continue; + } + @SuppressWarnings("unchecked") + BiConsumer> cast = + (BiConsumer>) callback.getValue(); + cast.accept(owner, lifecycled); + } + } finally { + lock.unlock(); + } + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java new file mode 100644 index 0000000000..d9c205de2b --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/MapLifecycled.java @@ -0,0 +1,82 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Objects; +import java.util.Optional; +import java.util.function.Function; +import javax.annotation.Nullable; + +class MapLifecycled implements Lifecycled { + private final LifecycledCallbackHandler events = new LifecycledCallbackHandler<>(this); + private final Lifecycled upstream; + private final Function mapper; + @Nullable + private U cache; + private boolean computable; + + MapLifecycled(Lifecycled upstream, Function mapper) { + this.upstream = upstream; + this.mapper = mapper; + upstream.events().onInvalidated(this, (this$, __) -> { + boolean fire = this$.computable; + this$.cache = null; + this$.computable = false; + if (fire) { + this$.events.fireInvalidated(); + } + }); + upstream.events().onNewValue(this, (this$, __) -> { + boolean fire = !this$.computable; + this$.computable = true; + if (fire) { + this$.events.fireOnNewValue(); + } + }); + } + + private void compute() { + T value = upstream.value().orElseThrow(() -> + new AssertionError("Upstream lost value without calling onInvalidated event") + ); + this.cache = Objects.requireNonNull(mapper.apply(value), "Mapper cannot produce null"); + } + + @Override + public Optional value() { + if (!computable) { + return Optional.empty(); + } + if (cache == null) { + compute(); + } + return Optional.of(cache); + } + + @Override + public boolean isValid() { + return computable; + } + + @Override + public Events events() { + return events; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java new file mode 100644 index 0000000000..2c97d4850f --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/SimpleLifecycled.java @@ -0,0 +1,79 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * A {@link Lifecycled} that can be directly called to {@linkplain #invalidate() invalidate} it or + * set a {@linkplain #newValue(Object) new value}. + */ +public final class SimpleLifecycled implements Lifecycled { + public static SimpleLifecycled valid(T value) { + return new SimpleLifecycled<>(Objects.requireNonNull(value)); + } + + public static SimpleLifecycled invalid() { + return new SimpleLifecycled<>(null); + } + + private final LifecycledCallbackHandler events = new LifecycledCallbackHandler<>(this); + @Nullable + private T value; + + private SimpleLifecycled(@Nullable T value) { + this.value = value; + } + + /** + * Set the value of this lifecycled and fire the new value event. + * + * @param value the value + */ + public void newValue(T value) { + // Ensure lifecycle constraints are upheld. + invalidate(); + this.value = Objects.requireNonNull(value); + events.fireOnNewValue(); + } + + /** + * Remove the value of this lifecycled and fire the invalidated event. + */ + public void invalidate() { + boolean fire = this.value != null; + this.value = null; + if (fire) { + events.fireInvalidated(); + } + } + + @Override + public Optional value() { + return Optional.ofNullable(value); + } + + @Override + public Events events() { + return events; + } +} diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java new file mode 100644 index 0000000000..b721ec87ce --- /dev/null +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/lifecycle/Token.java @@ -0,0 +1,33 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.lifecycle; + +/** + * Used to create a new strong reference to an object that can be separately dropped. + * + * @param the inner object + */ +class Token { + final T inner; + + Token(T inner) { + this.inner = inner; + } +} diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java index ece606af1d..712d918bdc 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java @@ -21,10 +21,17 @@ import com.sk89q.worldedit.LocalConfiguration; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; +import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; +import com.sk89q.worldedit.extension.platform.Preference; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -42,12 +49,17 @@ static double readSlot(Expression expr, String name) { @BeforeEach void setup() { + when(mockPlat.getCapabilities()).thenReturn( + Stream.of(Capability.values()) + .collect(Collectors.toMap(Function.identity(), __ -> Preference.NORMAL)) + ); when(mockPlat.getConfiguration()).thenReturn(new LocalConfiguration() { @Override public void load() { } }); WorldEdit.getInstance().getPlatformManager().register(mockPlat); + WorldEdit.getInstance().getEventBus().post(new PlatformsRegisteredEvent()); WorldEdit.getInstance().getConfiguration().calculationTimeout = 1_000; } diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java index a7a29ab4a1..21fed28d33 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java @@ -21,6 +21,7 @@ import com.google.common.collect.ImmutableMap; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extension.platform.PlatformManager; @@ -50,7 +51,9 @@ import java.util.Set; import java.util.function.BiConsumer; import java.util.function.BiFunction; +import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; import static com.google.common.base.Preconditions.checkNotNull; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -74,12 +77,13 @@ class BlockMapTest { static void setupFakePlatform() { when(MOCKED_PLATFORM.getRegistries()).thenReturn(new BundledRegistries() { }); - when(MOCKED_PLATFORM.getCapabilities()).thenReturn(ImmutableMap.of( - Capability.WORLD_EDITING, Preference.PREFERRED, - Capability.GAME_HOOKS, Preference.PREFERRED - )); + when(MOCKED_PLATFORM.getCapabilities()).thenReturn( + Stream.of(Capability.values()) + .collect(Collectors.toMap(Function.identity(), __ -> Preference.NORMAL)) + ); PlatformManager platformManager = WorldEdit.getInstance().getPlatformManager(); platformManager.register(MOCKED_PLATFORM); + WorldEdit.getInstance().getEventBus().post(new PlatformsRegisteredEvent()); registerBlock("minecraft:air"); registerBlock("minecraft:oak_wood"); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java index bab3f859cd..014d15daa2 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java @@ -19,7 +19,6 @@ package com.sk89q.worldedit.fabric; -import com.google.common.collect.ImmutableList; import com.sk89q.jnbt.CompoundTag; import com.sk89q.jnbt.Tag; import com.sk89q.worldedit.blocks.BaseItemStack; @@ -28,10 +27,6 @@ import com.sk89q.worldedit.internal.block.BlockStateIdAccess; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.math.Vector3; -import com.sk89q.worldedit.registry.state.BooleanProperty; -import com.sk89q.worldedit.registry.state.DirectionalProperty; -import com.sk89q.worldedit.registry.state.EnumProperty; -import com.sk89q.worldedit.registry.state.IntegerProperty; import com.sk89q.worldedit.registry.state.Property; import com.sk89q.worldedit.util.Direction; import com.sk89q.worldedit.world.World; @@ -45,7 +40,6 @@ import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; -import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.state.property.DirectionProperty; import net.minecraft.util.Identifier; @@ -59,23 +53,12 @@ import java.util.Map; import java.util.Objects; import java.util.TreeMap; -import java.util.stream.Collectors; import javax.annotation.Nullable; import static com.google.common.base.Preconditions.checkNotNull; public final class FabricAdapter { - private static @Nullable MinecraftServer server; - - private static MinecraftServer requireServer() { - return Objects.requireNonNull(server, "No server injected"); - } - - static void setServer(@Nullable MinecraftServer server) { - FabricAdapter.server = server; - } - private FabricAdapter() { } @@ -84,14 +67,15 @@ public static World adapt(net.minecraft.world.World world) { } public static Biome adapt(BiomeType biomeType) { - return requireServer() + return FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow() .getRegistryManager() .get(Registry.BIOME_KEY) .get(new Identifier(biomeType.getId())); } public static BiomeType adapt(Biome biome) { - Identifier id = requireServer().getRegistryManager().get(Registry.BIOME_KEY).getId(biome); + Identifier id = FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow().getRegistryManager() + .get(Registry.BIOME_KEY).getId(biome); Objects.requireNonNull(id, "biome is not registered"); return BiomeTypes.get(id.toString()); } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java index eed8ede8b6..9c901c97be 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlatform.java @@ -21,7 +21,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; -import com.mojang.brigadier.CommandDispatcher; import com.sk89q.worldedit.command.util.PermissionCondition; import com.sk89q.worldedit.entity.Player; import com.sk89q.worldedit.extension.platform.AbstractPlatform; @@ -32,13 +31,15 @@ import com.sk89q.worldedit.extension.platform.Watchdog; import com.sk89q.worldedit.fabric.internal.ExtendedChunk; import com.sk89q.worldedit.util.SideEffect; +import com.sk89q.worldedit.util.lifecycle.Lifecycled; +import com.sk89q.worldedit.util.lifecycle.SimpleLifecycled; import com.sk89q.worldedit.world.DataFixer; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.registry.Registries; +import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.minecraft.SharedConstants; import net.minecraft.server.MinecraftServer; import net.minecraft.server.PlayerManager; -import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.dedicated.MinecraftDedicatedServer; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; @@ -55,7 +56,9 @@ import java.util.EnumMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; +import java.util.function.Function; import javax.annotation.Nullable; import static java.util.stream.Collectors.toList; @@ -63,19 +66,19 @@ class FabricPlatform extends AbstractPlatform implements MultiUserPlatform { private final FabricWorldEdit mod; - private final MinecraftServer server; private final FabricDataFixer dataFixer; - private final @Nullable Watchdog watchdog; + private final Lifecycled> watchdog; private boolean hookingEvents = false; - private CommandDispatcher nativeDispatcher; - FabricPlatform(FabricWorldEdit mod, MinecraftServer server) { + FabricPlatform(FabricWorldEdit mod) { this.mod = mod; - this.server = server; - this.nativeDispatcher = server.getCommandManager().getDispatcher(); this.dataFixer = new FabricDataFixer(getDataVersion()); - this.watchdog = server instanceof MinecraftDedicatedServer - ? (Watchdog) server : null; + + this.watchdog = FabricWorldEdit.LIFECYCLED_SERVER.map( + server -> server instanceof MinecraftDedicatedServer + ? Optional.of((Watchdog) server) + : Optional.empty() + ); } boolean isHookingEvents() { @@ -116,12 +119,12 @@ public int schedule(long delay, long period, Runnable task) { @Override @Nullable public Watchdog getWatchdog() { - return watchdog; + return watchdog.value().flatMap(Function.identity()).orElse(null); } @Override public List getWorlds() { - Iterable worlds = server.getWorlds(); + Iterable worlds = FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow().getWorlds(); List ret = new ArrayList<>(); for (ServerWorld world : worlds) { ret.add(new FabricWorld(world)); @@ -135,7 +138,8 @@ public Player matchPlayer(Player player) { if (player instanceof FabricPlayer) { return player; } else { - ServerPlayerEntity entity = server.getPlayerManager().getPlayer(player.getName()); + ServerPlayerEntity entity = FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow() + .getPlayerManager().getPlayer(player.getName()); return entity != null ? new FabricPlayer(entity) : null; } } @@ -146,7 +150,7 @@ public World matchWorld(World world) { if (world instanceof FabricWorld) { return world; } else { - for (ServerWorld ws : server.getWorlds()) { + for (ServerWorld ws : FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow().getWorlds()) { if (((ServerWorldProperties) ws.getLevelProperties()).getLevelName().equals(world.getName())) { return new FabricWorld(ws); } @@ -156,31 +160,14 @@ public World matchWorld(World world) { } } - public void setNativeDispatcher(CommandDispatcher nativeDispatcher) { - this.nativeDispatcher = nativeDispatcher; - } - @Override public void registerCommands(CommandManager manager) { - if (server == null) { - return; - } - - for (Command command : manager.getAllCommands().collect(toList())) { - CommandWrapper.register(nativeDispatcher, command); - Set perms = command.getCondition().as(PermissionCondition.class) - .map(PermissionCondition::getPermissions) - .orElseGet(Collections::emptySet); - if (!perms.isEmpty()) { - perms.forEach(FabricWorldEdit.inst.getPermissionsProvider()::registerPermission); - } - } + // No-op, we register using Fabric's event } @Override - public void registerGameHooks() { - // We registered the events already anyway, so we just 'turn them on' - hookingEvents = true; + public void setGameHooksEnabled(boolean enabled) { + this.hookingEvents = enabled; } @Override @@ -236,7 +223,7 @@ public Set getSupportedSideEffects() { @Override public Collection getConnectedUsers() { List users = new ArrayList<>(); - PlayerManager scm = server.getPlayerManager(); + PlayerManager scm = FabricWorldEdit.LIFECYCLED_SERVER.valueOrThrow().getPlayerManager(); for (ServerPlayerEntity entity : scm.getPlayerList()) { if (entity != null) { users.add(new FabricPlayer(entity)); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java index 04b8ee5524..6d2ff9c969 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorldEdit.java @@ -22,7 +22,10 @@ import com.mojang.brigadier.CommandDispatcher; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.command.util.PermissionCondition; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.PlatformUnreadyEvent; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; import com.sk89q.worldedit.event.platform.SessionIdleEvent; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; @@ -31,6 +34,8 @@ import com.sk89q.worldedit.internal.anvil.ChunkDeleter; import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.Location; +import com.sk89q.worldedit.util.lifecycle.Lifecycled; +import com.sk89q.worldedit.util.lifecycle.SimpleLifecycled; import com.sk89q.worldedit.world.biome.BiomeType; import com.sk89q.worldedit.world.block.BlockCategory; import com.sk89q.worldedit.world.block.BlockType; @@ -65,15 +70,20 @@ import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import org.apache.logging.log4j.Logger; +import org.enginehub.piston.Command; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Collections; +import java.util.List; +import java.util.Set; import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.fabric.FabricAdapter.adaptPlayer; import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME; +import static java.util.stream.Collectors.toList; /** * The Fabric implementation of WorldEdit. @@ -84,6 +94,15 @@ public class FabricWorldEdit implements ModInitializer { public static final String MOD_ID = "worldedit"; public static final String CUI_PLUGIN_CHANNEL = "cui"; + public static final Lifecycled LIFECYCLED_SERVER; + + static { + SimpleLifecycled lifecycledServer = SimpleLifecycled.invalid(); + ServerLifecycleEvents.SERVER_STARTED.register(lifecycledServer::newValue); + ServerLifecycleEvents.SERVER_STOPPING.register(__ -> lifecycledServer.invalidate()); + LIFECYCLED_SERVER = lifecycledServer; + } + private FabricPermissionsProvider provider; public static FabricWorldEdit inst; @@ -113,6 +132,12 @@ public void onInitialize() { throw new UncheckedIOException(e); } } + this.platform = new FabricPlatform(this); + + WorldEdit.getInstance().getPlatformManager().register(platform); + + config = new FabricConfiguration(this); + this.provider = getInitialPermissionsProvider(); WECUIPacketHandler.init(); @@ -129,29 +154,25 @@ public void onInitialize() { } private void registerCommands(CommandDispatcher dispatcher, boolean dedicated) { + WorldEdit.getInstance().getEventBus().post(new PlatformsRegisteredEvent()); PlatformManager manager = WorldEdit.getInstance().getPlatformManager(); - if (manager.getPlatforms().isEmpty()) { - // We'll register as part of our platform initialization later. - return; - } - - // This is a re-register (due to /reload), we must add our commands now - Platform commandsPlatform = manager.queryCapability(Capability.USER_COMMANDS); if (commandsPlatform != platform || !platform.isHookingEvents()) { - // We're not in control of commands/events -- do not re-register. + // We're not in control of commands/events -- do not register. return; } - platform.setNativeDispatcher(dispatcher); - platform.registerCommands(manager.getPlatformCommandManager().getCommandManager()); - } - - private void setupPlatform(MinecraftServer server) { - this.platform = new FabricPlatform(this, server); - - WorldEdit.getInstance().getPlatformManager().register(platform); - this.provider = getInitialPermissionsProvider(); + List commands = manager.getPlatformCommandManager().getCommandManager() + .getAllCommands().collect(toList()); + for (Command command : commands) { + CommandWrapper.register(dispatcher, command); + Set perms = command.getCondition().as(PermissionCondition.class) + .map(PermissionCondition::getPermissions) + .orElseGet(Collections::emptySet); + if (!perms.isEmpty()) { + perms.forEach(getPermissionsProvider()::registerPermission); + } + } } private FabricPermissionsProvider getInitialPermissionsProvider() { @@ -211,22 +232,16 @@ private void onStartingServer(MinecraftServer minecraftServer) { } private void onStartServer(MinecraftServer minecraftServer) { - FabricAdapter.setServer(minecraftServer); - setupPlatform(minecraftServer); setupRegistries(minecraftServer); - config = new FabricConfiguration(this); config.load(); - WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent()); - minecraftServer.reloadResources( - minecraftServer.getDataPackManager().getEnabledNames() - ); + WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); } private void onStopServer(MinecraftServer minecraftServer) { WorldEdit worldEdit = WorldEdit.getInstance(); worldEdit.getSessionManager().unload(); - worldEdit.getPlatformManager().unregister(platform); + WorldEdit.getInstance().getEventBus().post(new PlatformUnreadyEvent(platform)); } private boolean shouldSkip() { diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java index c96dcc2f6d..4f0522032f 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgePlatform.java @@ -176,9 +176,8 @@ public void registerCommands(CommandManager manager) { } @Override - public void registerGameHooks() { - // We registered the events already anyway, so we just 'turn them on' - hookingEvents = true; + public void setGameHooksEnabled(boolean enabled) { + this.hookingEvents = enabled; } @Override diff --git a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java index 9ee5e55898..3510b7136c 100644 --- a/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java +++ b/worldedit-forge/src/main/java/com/sk89q/worldedit/forge/ForgeWorldEdit.java @@ -23,9 +23,14 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.sk89q.worldedit.LocalSession; import com.sk89q.worldedit.WorldEdit; +import com.sk89q.worldedit.command.util.PermissionCondition; import com.sk89q.worldedit.event.platform.PlatformReadyEvent; +import com.sk89q.worldedit.event.platform.PlatformUnreadyEvent; +import com.sk89q.worldedit.event.platform.PlatformsRegisteredEvent; import com.sk89q.worldedit.event.platform.SessionIdleEvent; +import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; +import com.sk89q.worldedit.extension.platform.PlatformManager; import com.sk89q.worldedit.forge.net.handler.InternalPacketHandler; import com.sk89q.worldedit.forge.net.handler.WECUIPacketHandler; import com.sk89q.worldedit.forge.net.packet.LeftClickAirEventMessage; @@ -50,6 +55,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.CommandEvent; +import net.minecraftforge.event.RegisterCommandsEvent; import net.minecraftforge.event.entity.player.PlayerEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent.LeftClickEmpty; @@ -70,15 +76,20 @@ import net.minecraftforge.registries.ForgeRegistries; import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.Logger; +import org.enginehub.piston.Command; import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.Collections; +import java.util.List; +import java.util.Set; import static com.google.common.base.Preconditions.checkNotNull; import static com.sk89q.worldedit.forge.ForgeAdapter.adaptPlayer; import static com.sk89q.worldedit.internal.anvil.ChunkDeleter.DELCHUNKS_FILE_NAME; +import static java.util.stream.Collectors.toList; /** * The Forge implementation of WorldEdit. @@ -132,6 +143,8 @@ private void init(FMLCommonSetupEvent event) { } } + setupPlatform(); + WECUIPacketHandler.init(); InternalPacketHandler.init(); @@ -143,6 +156,8 @@ private void setupPlatform() { WorldEdit.getInstance().getPlatformManager().register(platform); + config = new ForgeConfiguration(this); + // TODO if (ModList.get().isLoaded("sponge")) { // this.provider = new ForgePermissionsProvider.SpongePermissionsProvider(); // } else { @@ -189,6 +204,30 @@ private void setupRegistries(MinecraftServer server) { } } + @SubscribeEvent + public void registerCommands(RegisterCommandsEvent event) { + WorldEdit.getInstance().getEventBus().post(new PlatformsRegisteredEvent()); + + PlatformManager manager = WorldEdit.getInstance().getPlatformManager(); + Platform commandsPlatform = manager.queryCapability(Capability.USER_COMMANDS); + if (commandsPlatform != platform || !platform.isHookingEvents()) { + // We're not in control of commands/events -- do not register. + return; + } + + List commands = manager.getPlatformCommandManager().getCommandManager() + .getAllCommands().collect(toList()); + for (Command command : commands) { + CommandWrapper.register(event.getDispatcher(), command); + Set perms = command.getCondition().as(PermissionCondition.class) + .map(PermissionCondition::getPermissions) + .orElseGet(Collections::emptySet); + if (!perms.isEmpty()) { + perms.forEach(getPermissionsProvider()::registerPermission); + } + } + } + @SubscribeEvent public void serverAboutToStart(FMLServerAboutToStartEvent event) { final Path delChunks = workingDir.resolve(DELCHUNKS_FILE_NAME); @@ -201,17 +240,15 @@ public void serverAboutToStart(FMLServerAboutToStartEvent event) { public void serverStopping(FMLServerStoppingEvent event) { WorldEdit worldEdit = WorldEdit.getInstance(); worldEdit.getSessionManager().unload(); - worldEdit.getPlatformManager().unregister(platform); + WorldEdit.getInstance().getEventBus().post(new PlatformUnreadyEvent(platform)); } @SubscribeEvent public void serverStarted(FMLServerStartedEvent event) { - setupPlatform(); setupRegistries(event.getServer()); - config = new ForgeConfiguration(this); config.load(); - WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent()); + WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); } @SubscribeEvent diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java index 95d0c69f4d..804c2def4c 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongePlatform.java @@ -159,9 +159,8 @@ public List getSuggestions(CommandSource source, String arguments, @Null } @Override - public void registerGameHooks() { - // We registered the events already anyway, so we just 'turn them on' - hookingEvents = true; + public void setGameHooksEnabled(boolean enabled) { + this.hookingEvents = enabled; } @Override diff --git a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java index 54e46fcf1f..c9b218a4d6 100644 --- a/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java +++ b/worldedit-sponge/src/main/java/com/sk89q/worldedit/sponge/SpongeWorldEdit.java @@ -179,7 +179,7 @@ public void serverStopping(GameStoppingServerEvent event) { @Listener public void serverStarted(GameStartedServerEvent event) { - WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent()); + WorldEdit.getInstance().getEventBus().post(new PlatformReadyEvent(platform)); loadAdapter(); } From 7676a2d54c3c3c2d5bb3ebaf2f6847dc386772da Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Tue, 8 Jun 2021 19:18:24 -0700 Subject: [PATCH 103/813] [Fabric] Update to 1.17 (#1772) --- .github/workflows/gradle.yml | 4 +- build.gradle.kts | 13 + buildSrc/build.gradle.kts | 2 +- gradle.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 3 +- worldedit-bukkit/build.gradle.kts | 3 +- worldedit-core/build.gradle.kts | 6 +- .../sk89q/worldedit/math/BlockVector3.java | 5 +- .../util/test/VariedVectorGenerator.java | 8 +- .../worldedit/util/test/VariedVectors.java | 2 +- worldedit-fabric/build.gradle.kts | 12 +- .../sk89q/worldedit/fabric/FabricAdapter.java | 4 +- .../worldedit/fabric/FabricDataFixer.java | 292 +++++++++--------- .../sk89q/worldedit/fabric/FabricEntity.java | 12 +- .../fabric/FabricEntityProperties.java | 4 +- .../sk89q/worldedit/fabric/FabricPlayer.java | 34 +- .../sk89q/worldedit/fabric/FabricWorld.java | 55 ++-- .../worldedit/fabric/WorldEditFakePlayer.java | 5 +- .../fabric/WorldEditGenListener.java | 7 + .../internal/FabricWorldNativeAccess.java | 8 +- .../fabric/internal/NBTConverter.java | 142 ++++----- .../fabric/mixin/MixinBiomeArray.java | 2 + .../fabric/mixin/MixinMinecraftServer.java | 2 + .../mixin/MixinWorldChunkSetBlockHook.java | 4 +- worldedit-forge/build.gradle.kts | 4 +- worldedit-mod/build.gradle.kts | 6 +- worldedit-sponge/build.gradle.kts | 4 +- 28 files changed, 331 insertions(+), 316 deletions(-) diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index c3c80c9acf..60729d2d5c 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -12,10 +12,10 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 1.8 + - name: Set up JDK 16 uses: actions/setup-java@v1 with: - java-version: 1.8 + java-version: 16 - name: Build with Gradle run: ./gradlew build -s - uses: actions/upload-artifact@v2 diff --git a/build.gradle.kts b/build.gradle.kts index bd4ac223eb..881a65f8ab 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,18 @@ import org.ajoberstar.grgit.Grgit +// needed for fabric to know where FF executor is.... +buildscript { + repositories { + mavenCentral() + maven { + name = "Fabric" + url = uri("https://maven.fabricmc.net/") + } + } + dependencies { + classpath("net.fabricmc:fabric-loom:${versions.loom}") + } +} plugins { id("org.enginehub.codecov") jacoco diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 2e1c4811d8..e0215f73cd 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -41,7 +41,7 @@ dependencies { implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0") implementation("org.spongepowered:SpongeGradle:0.11.5") - implementation("net.minecraftforge.gradle:ForgeGradle:4.1.12") + // implementation("net.minecraftforge.gradle:ForgeGradle:4.1.12") implementation("net.fabricmc:fabric-loom:$loomVersion") implementation("net.fabricmc:sponge-mixin:$mixinVersion") implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0") diff --git a/gradle.properties b/gradle.properties index 6e54a1df28..786c742289 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,5 +4,5 @@ version=7.2.6-SNAPSHOT org.gradle.jvmargs=-Xmx1512M org.gradle.parallel=true -loom.version=0.7.19 +loom.version=0.8.5 mixin.version=0.9.2+mixin.0.8.2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 549d84424d..0f80bbf516 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 6da848fb55..05a48affc1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,7 +2,8 @@ rootProject.name = "worldedit" include("worldedit-libs") -listOf("bukkit", "core", "forge", "sponge", "fabric", "cli").forEach { +// Forge has been removed until FG 5 is available. +listOf("bukkit", "core", "sponge", "fabric", "cli").forEach { include("worldedit-libs:$it") include("worldedit-$it") } diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index dc53ed53e1..9eaeec4e48 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -25,8 +25,7 @@ dependencies { exclude("junit", "junit") } - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { - // Note: Paper will bump to 2.11.2, but we should only depend on 2.8 APIs for compatibility. + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Spigot provides Log4J (sort of, not in API, implicitly part of server)") }) "implementation"("org.apache.logging.log4j:log4j-api") diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 5315dd7b56..ced8192dbe 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -42,8 +42,8 @@ dependencies { "implementation"("com.google.code.findbugs:jsr305:1.3.9") "implementation"("com.google.code.gson:gson") - "implementation"("org.apache.logging.log4j:log4j-api:2.8.1") { - because("Mojang provides Log4J 2.8.1") + "implementation"("org.apache.logging.log4j:log4j-api:2.14.1") { + because("Mojang provides Log4J 2.14.1") } "implementation"("it.unimi.dsi:fastutil") @@ -61,7 +61,7 @@ dependencies { "languageFiles"("${project.group}:worldedit-lang:7.2.1:68@zip") - "testRuntimeOnly"("org.apache.logging.log4j:log4j-core:2.8.1") + "testRuntimeOnly"("org.apache.logging.log4j:log4j-core:2.14.1") } tasks.named("test") { diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java index f746c034e7..abb54e9691 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/math/BlockVector3.java @@ -68,7 +68,8 @@ public static BlockVector3 at(int x, int y, int z) { } private static final int WORLD_XZ_MINMAX = 30_000_000; - private static final int WORLD_Y_MAX = 4095; + private static final int WORLD_Y_MIN = -2048; + private static final int WORLD_Y_MAX = 2047; private static boolean isHorizontallyInBounds(int h) { return -WORLD_XZ_MINMAX <= h && h <= WORLD_XZ_MINMAX; @@ -77,7 +78,7 @@ private static boolean isHorizontallyInBounds(int h) { public static boolean isLongPackable(BlockVector3 location) { return isHorizontallyInBounds(location.getX()) && isHorizontallyInBounds(location.getZ()) - && 0 <= location.getY() && location.getY() <= WORLD_Y_MAX; + && WORLD_Y_MIN <= location.getY() && location.getY() <= WORLD_Y_MAX; } public static void checkLongPackable(BlockVector3 location) { diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java index 52faa4f7b3..e7acc67ad9 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java @@ -53,13 +53,13 @@ public VariedVectorGenerator(boolean vanilla, int divisionsXZ, int divisionsY) { this.divisionsXZ = divisionsXZ == -1 ? DEFAULT_DIVISIONS_XZ : divisionsXZ; this.divisionsY = divisionsY == -1 ? DEFAULT_DIVISIONS_Y : divisionsY; maxXZ = 30_000_000; - maxY = vanilla ? 255 : Integer.MAX_VALUE; + maxY = vanilla ? 2047 : Integer.MAX_VALUE; xzStep = (maxXZ * 2) / this.divisionsXZ; yStep = (maxY * 2) / this.divisionsY; alwaysInclude = ImmutableSet.of(BlockVector3.ZERO, BlockVector3.ONE, - BlockVector3.at(-maxXZ, 0, -maxXZ), - BlockVector3.at(maxXZ, 0, maxXZ), + BlockVector3.at(-maxXZ, -maxY - 1, -maxXZ), + BlockVector3.at(maxXZ, -maxY - 1, maxXZ), BlockVector3.at(-maxXZ, maxY, -maxXZ), BlockVector3.at(maxXZ, maxY, maxXZ)); } @@ -86,7 +86,7 @@ protected BlockVector3 computeNext() { BlockVector3 newVector = BlockVector3.at(x, (int) y, z); y += yStep; if (y > maxY) { - y = 0; + y = -maxY - 1; z += xzStep; if (z > maxXZ) { z = -maxXZ; diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java index 8fa39c3372..3201e8c7ba 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java @@ -55,7 +55,7 @@ public final class VariedVectors implements ArgumentsProvider, AnnotationConsume /** * If {@code true}, only provide vectors inside the range of Vanilla MC. - * This caps the Y value to 255. + * This sets the Y range [-2048, 2048). */ boolean capToVanilla() default false; diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index ef6d130a58..e7c6cfce6a 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -25,9 +25,9 @@ configure { accessWidener("src/main/resources/worldedit.accesswidener") } -val minecraftVersion = "1.16.3" -val yarnMappings = "1.16.3+build.1:v2" -val loaderVersion = "0.10.8" +val minecraftVersion = "1.17" +val yarnMappings = "1.17+build.1:v2" +val loaderVersion = "0.11.3" configurations.all { resolutionStrategy { @@ -46,8 +46,8 @@ repositories { dependencies { "api"(project(":worldedit-core")) - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { - because("Mojang provides Log4J at 2.8.1") + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + because("Mojang provides Log4J at 2.14.1") }) "minecraft"("com.mojang:minecraft:$minecraftVersion") @@ -55,7 +55,7 @@ dependencies { "modImplementation"("net.fabricmc:fabric-loader:$loaderVersion") // [1] declare fabric-api dependency... - "fabricApi"("net.fabricmc.fabric-api:fabric-api:0.29.3+1.16") + "fabricApi"("net.fabricmc.fabric-api:fabric-api:0.34.9+1.17") // [2] Load the API dependencies from the fabric mod json... @Suppress("UNCHECKED_CAST") diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java index 014d15daa2..92a7fe85a1 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricAdapter.java @@ -187,7 +187,7 @@ public static ItemType adapt(Item item) { } public static ItemStack adapt(BaseItemStack baseItemStack) { - net.minecraft.nbt.CompoundTag fabricCompound = null; + net.minecraft.nbt.NbtCompound fabricCompound = null; if (baseItemStack.getNbtData() != null) { fabricCompound = NBTConverter.toNative(baseItemStack.getNbtData()); } @@ -197,7 +197,7 @@ public static ItemStack adapt(BaseItemStack baseItemStack) { } public static BaseItemStack adapt(ItemStack itemStack) { - CompoundTag tag = NBTConverter.fromNative(itemStack.toTag(new net.minecraft.nbt.CompoundTag())); + CompoundTag tag = NBTConverter.fromNative(itemStack.writeNbt(new net.minecraft.nbt.NbtCompound())); if (tag.getValue().isEmpty()) { tag = null; } else { diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java index e59956df3a..bcc445f98b 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricDataFixer.java @@ -39,11 +39,11 @@ import com.sk89q.worldedit.fabric.internal.NBTConverter; import net.minecraft.datafixer.Schemas; import net.minecraft.datafixer.TypeReferences; -import net.minecraft.nbt.FloatTag; -import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.NbtElement; +import net.minecraft.nbt.NbtFloat; +import net.minecraft.nbt.NbtList; import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.StringTag; -import net.minecraft.nbt.Tag; +import net.minecraft.nbt.NbtString; import net.minecraft.text.LiteralText; import net.minecraft.text.MutableText; import net.minecraft.text.Text; @@ -108,50 +108,50 @@ public T fixUp(FixType type, T original, int srcVer) { } private CompoundTag fixChunk(CompoundTag originalChunk, int srcVer) { - net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(originalChunk); - net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.CHUNK, tag, srcVer); + net.minecraft.nbt.NbtCompound tag = NBTConverter.toNative(originalChunk); + net.minecraft.nbt.NbtCompound fixed = convert(LegacyType.CHUNK, tag, srcVer); return NBTConverter.fromNative(fixed); } private CompoundTag fixBlockEntity(CompoundTag origTileEnt, int srcVer) { - net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(origTileEnt); - net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.BLOCK_ENTITY, tag, srcVer); + net.minecraft.nbt.NbtCompound tag = NBTConverter.toNative(origTileEnt); + net.minecraft.nbt.NbtCompound fixed = convert(LegacyType.BLOCK_ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); } private CompoundTag fixEntity(CompoundTag origEnt, int srcVer) { - net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(origEnt); - net.minecraft.nbt.CompoundTag fixed = convert(LegacyType.ENTITY, tag, srcVer); + net.minecraft.nbt.NbtCompound tag = NBTConverter.toNative(origEnt); + net.minecraft.nbt.NbtCompound fixed = convert(LegacyType.ENTITY, tag, srcVer); return NBTConverter.fromNative(fixed); } private String fixBlockState(String blockState, int srcVer) { - net.minecraft.nbt.CompoundTag stateNBT = stateToNBT(blockState); - Dynamic dynamic = new Dynamic<>(OPS_NBT, stateNBT); - net.minecraft.nbt.CompoundTag fixed = (net.minecraft.nbt.CompoundTag) INSTANCE.fixer.update(TypeReferences.BLOCK_STATE, dynamic, srcVer, DATA_VERSION).getValue(); + net.minecraft.nbt.NbtCompound stateNBT = stateToNBT(blockState); + Dynamic dynamic = new Dynamic<>(OPS_NBT, stateNBT); + net.minecraft.nbt.NbtCompound fixed = (net.minecraft.nbt.NbtCompound) INSTANCE.fixer.update(TypeReferences.BLOCK_STATE, dynamic, srcVer, DATA_VERSION).getValue(); return nbtToState(fixed); } - private String nbtToState(net.minecraft.nbt.CompoundTag tagCompound) { + private String nbtToState(net.minecraft.nbt.NbtCompound tagCompound) { StringBuilder sb = new StringBuilder(); sb.append(tagCompound.getString("Name")); if (tagCompound.contains("Properties", 10)) { sb.append('['); - net.minecraft.nbt.CompoundTag props = tagCompound.getCompound("Properties"); + net.minecraft.nbt.NbtCompound props = tagCompound.getCompound("Properties"); sb.append(props.getKeys().stream().map(k -> k + "=" + props.getString(k).replace("\"", "")).collect(Collectors.joining(","))); sb.append(']'); } return sb.toString(); } - private static net.minecraft.nbt.CompoundTag stateToNBT(String blockState) { + private static net.minecraft.nbt.NbtCompound stateToNBT(String blockState) { int propIdx = blockState.indexOf('['); - net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag(); + net.minecraft.nbt.NbtCompound tag = new net.minecraft.nbt.NbtCompound(); if (propIdx < 0) { tag.putString("Name", blockState); } else { tag.putString("Name", blockState.substring(0, propIdx)); - net.minecraft.nbt.CompoundTag propTag = new net.minecraft.nbt.CompoundTag(); + net.minecraft.nbt.NbtCompound propTag = new net.minecraft.nbt.NbtCompound(); String props = blockState.substring(propIdx + 1, blockState.length() - 1); String[] propArr = props.split(","); for (String pair : propArr) { @@ -172,7 +172,7 @@ private String fixItemType(String key, int srcVer) { } private static String fixName(String key, int srcVer, TypeReference type) { - return INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, StringTag.of(key)), srcVer, DATA_VERSION) + return INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, NbtString.of(key)), srcVer, DATA_VERSION) .asString().result().orElse(key); } @@ -235,7 +235,7 @@ private class WrappedDataFixer implements DataFixer { public Dynamic update(TypeReference type, Dynamic dynamic, int sourceVer, int targetVer) { LegacyType legacyType = DFU_TO_LEGACY.get(type.typeName()); if (sourceVer < LEGACY_VERSION && legacyType != null) { - net.minecraft.nbt.CompoundTag cmp = (net.minecraft.nbt.CompoundTag) dynamic.getValue(); + net.minecraft.nbt.NbtCompound cmp = (net.minecraft.nbt.NbtCompound) dynamic.getValue(); int desiredVersion = Math.min(targetVer, LEGACY_VERSION); cmp = convert(legacyType, cmp, sourceVer, desiredVersion); @@ -245,7 +245,7 @@ public Dynamic update(TypeReference type, Dynamic dynamic, int sourceV return realFixer.update(type, dynamic, sourceVer, targetVer); } - private net.minecraft.nbt.CompoundTag convert(LegacyType type, net.minecraft.nbt.CompoundTag cmp, int sourceVer, int desiredVersion) { + private net.minecraft.nbt.NbtCompound convert(LegacyType type, net.minecraft.nbt.NbtCompound cmp, int sourceVer, int desiredVersion) { List converters = FabricDataFixer.this.converters.get(type); if (converters != null && !converters.isEmpty()) { for (DataConverter converter : converters) { @@ -272,44 +272,44 @@ public Schema getSchema(int i) { } } - public static net.minecraft.nbt.CompoundTag convert(LegacyType type, net.minecraft.nbt.CompoundTag cmp) { + public static net.minecraft.nbt.NbtCompound convert(LegacyType type, net.minecraft.nbt.NbtCompound cmp) { return convert(type.getDFUType(), cmp); } - public static net.minecraft.nbt.CompoundTag convert(LegacyType type, net.minecraft.nbt.CompoundTag cmp, int sourceVer) { + public static net.minecraft.nbt.NbtCompound convert(LegacyType type, net.minecraft.nbt.NbtCompound cmp, int sourceVer) { return convert(type.getDFUType(), cmp, sourceVer); } - public static net.minecraft.nbt.CompoundTag convert(LegacyType type, net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public static net.minecraft.nbt.NbtCompound convert(LegacyType type, net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { return convert(type.getDFUType(), cmp, sourceVer, targetVer); } - public static net.minecraft.nbt.CompoundTag convert(TypeReference type, net.minecraft.nbt.CompoundTag cmp) { + public static net.minecraft.nbt.NbtCompound convert(TypeReference type, net.minecraft.nbt.NbtCompound cmp) { int i = cmp.contains("DataVersion", 99) ? cmp.getInt("DataVersion") : -1; return convert(type, cmp, i); } - public static net.minecraft.nbt.CompoundTag convert(TypeReference type, net.minecraft.nbt.CompoundTag cmp, int sourceVer) { + public static net.minecraft.nbt.NbtCompound convert(TypeReference type, net.minecraft.nbt.NbtCompound cmp, int sourceVer) { return convert(type, cmp, sourceVer, DATA_VERSION); } - public static net.minecraft.nbt.CompoundTag convert(TypeReference type, net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public static net.minecraft.nbt.NbtCompound convert(TypeReference type, net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (sourceVer >= targetVer) { return cmp; } - return (net.minecraft.nbt.CompoundTag) INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, cmp), sourceVer, targetVer).getValue(); + return (net.minecraft.nbt.NbtCompound) INSTANCE.fixer.update(type, new Dynamic<>(OPS_NBT, cmp), sourceVer, targetVer).getValue(); } public interface DataInspector { - net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer); + net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer); } public interface DataConverter { int getDataVersion(); - net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp); + net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp); } @@ -587,19 +587,19 @@ private static Identifier getKey(String type) { return key; } - private static void convertCompound(LegacyType type, net.minecraft.nbt.CompoundTag cmp, String key, int sourceVer, int targetVer) { + private static void convertCompound(LegacyType type, net.minecraft.nbt.NbtCompound cmp, String key, int sourceVer, int targetVer) { cmp.put(key, convert(type, cmp.getCompound(key), sourceVer, targetVer)); } - private static void convertItem(net.minecraft.nbt.CompoundTag nbttagcompound, String key, int sourceVer, int targetVer) { + private static void convertItem(net.minecraft.nbt.NbtCompound nbttagcompound, String key, int sourceVer, int targetVer) { if (nbttagcompound.contains(key, 10)) { convertCompound(LegacyType.ITEM_INSTANCE, nbttagcompound, key, sourceVer, targetVer); } } - private static void convertItems(net.minecraft.nbt.CompoundTag nbttagcompound, String key, int sourceVer, int targetVer) { + private static void convertItems(net.minecraft.nbt.NbtCompound nbttagcompound, String key, int sourceVer, int targetVer) { if (nbttagcompound.contains(key, 9)) { - ListTag nbttaglist = nbttagcompound.getList(key, 10); + NbtList nbttaglist = nbttagcompound.getList(key, 10); for (int j = 0; j < nbttaglist.size(); ++j) { nbttaglist.add(j, convert(LegacyType.ITEM_INSTANCE, nbttaglist.getCompound(j), sourceVer, targetVer)); @@ -619,19 +619,19 @@ public int getDataVersion() { } @Override - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { - ListTag nbttaglist = cmp.getList("Equipment", 10); - ListTag nbttaglist1; + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { + NbtList nbttaglist = cmp.getList("Equipment", 10); + NbtList nbttaglist1; if (!nbttaglist.isEmpty() && !cmp.contains("HandItems", 10)) { - nbttaglist1 = new ListTag(); + nbttaglist1 = new NbtList(); nbttaglist1.add(nbttaglist.get(0)); - nbttaglist1.add(new net.minecraft.nbt.CompoundTag()); + nbttaglist1.add(new net.minecraft.nbt.NbtCompound()); cmp.put("HandItems", nbttaglist1); } if (nbttaglist.size() > 1 && !cmp.contains("ArmorItem", 10)) { - nbttaglist1 = new ListTag(); + nbttaglist1 = new NbtList(); nbttaglist1.add(nbttaglist.get(1)); nbttaglist1.add(nbttaglist.get(2)); nbttaglist1.add(nbttaglist.get(3)); @@ -642,21 +642,21 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) cmp.remove("Equipment"); if (cmp.contains("DropChances", 9)) { nbttaglist1 = cmp.getList("DropChances", 5); - ListTag nbttaglist2; + NbtList nbttaglist2; if (!cmp.contains("HandDropChances", 10)) { - nbttaglist2 = new ListTag(); - nbttaglist2.add(FloatTag.of(nbttaglist1.getFloat(0))); - nbttaglist2.add(FloatTag.of(0.0F)); + nbttaglist2 = new NbtList(); + nbttaglist2.add(NbtFloat.of(nbttaglist1.getFloat(0))); + nbttaglist2.add(NbtFloat.of(0.0F)); cmp.put("HandDropChances", nbttaglist2); } if (!cmp.contains("ArmorDropChances", 10)) { - nbttaglist2 = new ListTag(); - nbttaglist2.add(FloatTag.of(nbttaglist1.getFloat(1))); - nbttaglist2.add(FloatTag.of(nbttaglist1.getFloat(2))); - nbttaglist2.add(FloatTag.of(nbttaglist1.getFloat(3))); - nbttaglist2.add(FloatTag.of(nbttaglist1.getFloat(4))); + nbttaglist2 = new NbtList(); + nbttaglist2.add(NbtFloat.of(nbttaglist1.getFloat(1))); + nbttaglist2.add(NbtFloat.of(nbttaglist1.getFloat(2))); + nbttaglist2.add(NbtFloat.of(nbttaglist1.getFloat(3))); + nbttaglist2.add(NbtFloat.of(nbttaglist1.getFloat(4))); cmp.put("ArmorDropChances", nbttaglist2); } @@ -686,14 +686,14 @@ private static String convertEntityId(int i, String s) { } @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (!cmp.contains("tag", 10)) { return cmp; } else { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (nbttagcompound1.contains("BlockEntityTag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); String s = cmp.getString("id"); String s1 = convertEntityId(sourceVer, s); boolean flag; @@ -818,11 +818,11 @@ private static class DataInspectorEntity implements DataInspector { } @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (nbttagcompound1.contains("EntityTag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); String s = cmp.getString("id"); String s1; @@ -865,7 +865,7 @@ private abstract static class DataInspectorTagged implements DataInspector { this.key = getKey(type); } - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (this.key.equals(new Identifier(cmp.getString("id")))) { cmp = this.inspectChecked(cmp, sourceVer, targetVer); } @@ -873,7 +873,7 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, return cmp; } - abstract net.minecraft.nbt.CompoundTag inspectChecked(net.minecraft.nbt.CompoundTag nbttagcompound, int sourceVer, int targetVer); + abstract net.minecraft.nbt.NbtCompound inspectChecked(net.minecraft.nbt.NbtCompound nbttagcompound, int sourceVer, int targetVer); } private static class DataInspectorItemList extends DataInspectorTagged { @@ -885,7 +885,7 @@ private static class DataInspectorItemList extends DataInspectorTagged { this.keys = astring; } - net.minecraft.nbt.CompoundTag inspectChecked(net.minecraft.nbt.CompoundTag nbttagcompound, int sourceVer, int targetVer) { + net.minecraft.nbt.NbtCompound inspectChecked(net.minecraft.nbt.NbtCompound nbttagcompound, int sourceVer, int targetVer) { for (String s : this.keys) { FabricDataFixer.convertItems(nbttagcompound, s, sourceVer, targetVer); } @@ -903,7 +903,7 @@ private static class DataInspectorItem extends DataInspectorTagged { this.keys = astring; } - net.minecraft.nbt.CompoundTag inspectChecked(net.minecraft.nbt.CompoundTag nbttagcompound, int sourceVer, int targetVer) { + net.minecraft.nbt.NbtCompound inspectChecked(net.minecraft.nbt.NbtCompound nbttagcompound, int sourceVer, int targetVer) { for (String key : this.keys) { FabricDataFixer.convertItem(nbttagcompound, key, sourceVer, targetVer); } @@ -923,7 +923,7 @@ public int getDataVersion() { return 102; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (cmp.contains("id", 99)) { short short0 = cmp.getShort("id"); @@ -1263,7 +1263,7 @@ public int getDataVersion() { return 147; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("ArmorStand".equals(cmp.getString("id")) && cmp.getBoolean("Silent") && !cmp.getBoolean("Marker")) { cmp.remove("Silent"); } @@ -1281,20 +1281,20 @@ public int getDataVersion() { return 804; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:banner".equals(cmp.getString("id")) && cmp.contains("tag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (nbttagcompound1.contains("BlockEntityTag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); if (nbttagcompound2.contains("Base", 99)) { cmp.putShort("Damage", (short) (nbttagcompound2.getShort("Base") & 15)); if (nbttagcompound1.contains("display", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound3 = nbttagcompound1.getCompound("display"); + net.minecraft.nbt.NbtCompound nbttagcompound3 = nbttagcompound1.getCompound("display"); if (nbttagcompound3.contains("Lore", 9)) { - ListTag nbttaglist = nbttagcompound3.getList("Lore", 8); + NbtList nbttaglist = nbttagcompound3.getList("Lore", 8); if (nbttaglist.size() == 1 && "(+NBT)".equals(nbttaglist.getString(0))) { return cmp; @@ -1329,9 +1329,9 @@ public int getDataVersion() { return 102; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:potion".equals(cmp.getString("id"))) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); short short0 = cmp.getShort("Damage"); if (!nbttagcompound1.contains("Potion", 8)) { @@ -1495,10 +1495,10 @@ public int getDataVersion() { return 105; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:spawn_egg".equals(cmp.getString("id"))) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttagcompound1.getCompound("EntityTag"); short short0 = cmp.getShort("Damage"); if (!nbttagcompound2.contains("id", 8)) { @@ -1602,7 +1602,7 @@ public int getDataVersion() { return 106; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("Minecart".equals(cmp.getString("id"))) { String s = "MinecartRideable"; int i = cmp.getInt("Type"); @@ -1628,13 +1628,13 @@ public int getDataVersion() { return 107; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (!"MobSpawner".equals(cmp.getString("id"))) { return cmp; } else { if (cmp.contains("EntityId", 8)) { String s = cmp.getString("EntityId"); - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("SpawnData"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("SpawnData"); nbttagcompound1.putString("id", s.isEmpty() ? "Pig" : s); cmp.put("SpawnData", nbttagcompound1); @@ -1642,13 +1642,13 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) } if (cmp.contains("SpawnPotentials", 9)) { - ListTag nbttaglist = cmp.getList("SpawnPotentials", 10); + NbtList nbttaglist = cmp.getList("SpawnPotentials", 10); for (int i = 0; i < nbttaglist.size(); ++i) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttaglist.getCompound(i); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttaglist.getCompound(i); if (nbttagcompound2.contains("Type", 8)) { - net.minecraft.nbt.CompoundTag nbttagcompound3 = nbttagcompound2.getCompound("Properties"); + net.minecraft.nbt.NbtCompound nbttagcompound3 = nbttagcompound2.getCompound("Properties"); nbttagcompound3.putString("id", nbttagcompound2.getString("Type")); nbttagcompound2.put("Entity", nbttagcompound3); @@ -1672,7 +1672,7 @@ public int getDataVersion() { return 108; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (cmp.contains("UUID", 8)) { cmp.putUuid("UUID", UUID.fromString(cmp.getString("UUID"))); } @@ -1692,7 +1692,7 @@ public int getDataVersion() { return 109; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (DataConverterHealth.a.contains(cmp.getString("id"))) { float f; @@ -1723,9 +1723,9 @@ public int getDataVersion() { return 110; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("EntityHorse".equals(cmp.getString("id")) && !cmp.contains("SaddleItem", 10) && cmp.getBoolean("Saddle")) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = new net.minecraft.nbt.CompoundTag(); + net.minecraft.nbt.NbtCompound nbttagcompound1 = new net.minecraft.nbt.NbtCompound(); nbttagcompound1.putString("id", "minecraft:saddle"); nbttagcompound1.putByte("Count", (byte) 1); @@ -1747,7 +1747,7 @@ public int getDataVersion() { return 111; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { String s = cmp.getString("id"); boolean flag = "Painting".equals(s); boolean flag1 = "ItemFrame".equals(s); @@ -1785,8 +1785,8 @@ public int getDataVersion() { return 113; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { - ListTag nbttaglist; + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { + NbtList nbttaglist; if (cmp.contains("HandDropChances", 9)) { nbttaglist = cmp.getList("HandDropChances", 5); @@ -1815,9 +1815,9 @@ public int getDataVersion() { return 135; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { while (cmp.contains("Riding", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = this.b(cmp); + net.minecraft.nbt.NbtCompound nbttagcompound1 = this.b(cmp); this.convert(cmp, nbttagcompound1); cmp = nbttagcompound1; @@ -1826,15 +1826,15 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) return cmp; } - protected void convert(net.minecraft.nbt.CompoundTag nbttagcompound, net.minecraft.nbt.CompoundTag nbttagcompound1) { - ListTag nbttaglist = new ListTag(); + protected void convert(net.minecraft.nbt.NbtCompound nbttagcompound, net.minecraft.nbt.NbtCompound nbttagcompound1) { + NbtList nbttaglist = new NbtList(); nbttaglist.add(nbttagcompound); nbttagcompound1.put("Passengers", nbttaglist); } - protected net.minecraft.nbt.CompoundTag b(net.minecraft.nbt.CompoundTag nbttagcompound) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = nbttagcompound.getCompound("Riding"); + protected net.minecraft.nbt.NbtCompound b(net.minecraft.nbt.NbtCompound nbttagcompound) { + net.minecraft.nbt.NbtCompound nbttagcompound1 = nbttagcompound.getCompound("Riding"); nbttagcompound.remove("Riding"); return nbttagcompound1; @@ -1850,12 +1850,12 @@ public int getDataVersion() { return 165; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:written_book".equals(cmp.getString("id"))) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (nbttagcompound1.contains("pages", 9)) { - ListTag nbttaglist = nbttagcompound1.getList("pages", 8); + NbtList nbttaglist = nbttagcompound1.getList("pages", 8); for (int i = 0; i < nbttaglist.size(); ++i) { String s = nbttaglist.getString(i); @@ -1898,7 +1898,7 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) object = new LiteralText(""); } - nbttaglist.set(i, StringTag.of(Text.Serializer.toJson((Text) object))); + nbttaglist.set(i, NbtString.of(Text.Serializer.toJson((Text) object))); } nbttagcompound1.put("pages", nbttaglist); @@ -1920,7 +1920,7 @@ public int getDataVersion() { return 502; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (cmp.contains("id", 8) && DataConverterCookedFish.a.equals(new Identifier(cmp.getString("id")))) { cmp.putString("id", "minecraft:cooked_fish"); } @@ -1940,7 +1940,7 @@ public int getDataVersion() { return 502; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("Zombie".equals(cmp.getString("id")) && cmp.getBoolean("IsVillager")) { if (!cmp.contains("ZombieType", 99)) { int i = -1; @@ -1980,7 +1980,7 @@ public int getDataVersion() { return 505; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { cmp.putString("useVbo", "true"); return cmp; } @@ -1995,7 +1995,7 @@ public int getDataVersion() { return 700; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("Guardian".equals(cmp.getString("id"))) { if (cmp.getBoolean("Elder")) { cmp.putString("id", "ElderGuardian"); @@ -2017,7 +2017,7 @@ public int getDataVersion() { return 701; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { String s = cmp.getString("id"); if ("Skeleton".equals(s)) { @@ -2045,7 +2045,7 @@ public int getDataVersion() { return 702; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("Zombie".equals(cmp.getString("id"))) { int i = cmp.getInt("ZombieType"); @@ -2081,7 +2081,7 @@ public int getDataVersion() { return 703; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("EntityHorse".equals(cmp.getString("id"))) { int i = cmp.getInt("Type"); @@ -2126,7 +2126,7 @@ public int getDataVersion() { return 704; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { String s = DataConverterTileEntity.a.get(cmp.getString("id")); if (s != null) { @@ -2174,7 +2174,7 @@ public int getDataVersion() { return 704; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { String s = DataConverterEntity.a.get(cmp.getString("id")); if (s != null) { @@ -2272,11 +2272,11 @@ public int getDataVersion() { return 806; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { String s = cmp.getString("id"); if ("minecraft:potion".equals(s) || "minecraft:splash_potion".equals(s) || "minecraft:lingering_potion".equals(s) || "minecraft:tipped_arrow".equals(s)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (!nbttagcompound1.contains("Potion", 8)) { nbttagcompound1.putString("Potion", "minecraft:water"); @@ -2300,7 +2300,7 @@ public int getDataVersion() { return 808; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:shulker".equals(cmp.getString("id")) && !cmp.contains("Color", 99)) { cmp.putByte("Color", (byte) 10); } @@ -2320,12 +2320,12 @@ public int getDataVersion() { return 813; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:shulker_box".equals(cmp.getString("id")) && cmp.contains("tag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("tag"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("tag"); if (nbttagcompound1.contains("BlockEntityTag", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttagcompound1.getCompound("BlockEntityTag"); if (nbttagcompound2.getList("Items", 10).isEmpty()) { nbttagcompound2.remove("Items"); @@ -2359,7 +2359,7 @@ public int getDataVersion() { return 813; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:shulker".equals(cmp.getString("id"))) { cmp.remove("Color"); } @@ -2377,7 +2377,7 @@ public int getDataVersion() { return 816; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if (cmp.contains("lang", 8)) { cmp.putString("lang", cmp.getString("lang").toLowerCase(Locale.ROOT)); } @@ -2395,7 +2395,7 @@ public int getDataVersion() { return 820; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:totem".equals(cmp.getString("id"))) { cmp.putString("id", "minecraft:totem_of_undying"); } @@ -2415,18 +2415,18 @@ public int getDataVersion() { return 1125; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { boolean flag = true; try { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("Level"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("Level"); int i = nbttagcompound1.getInt("xPos"); int j = nbttagcompound1.getInt("zPos"); - ListTag nbttaglist = nbttagcompound1.getList("TileEntities", 10); - ListTag nbttaglist1 = nbttagcompound1.getList("Sections", 10); + NbtList nbttaglist = nbttagcompound1.getList("TileEntities", 10); + NbtList nbttaglist1 = nbttagcompound1.getList("Sections", 10); for (int k = 0; k < nbttaglist1.size(); ++k) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttaglist1.getCompound(k); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttaglist1.getCompound(k); byte b0 = nbttagcompound2.getByte("Y"); byte[] abyte = nbttagcompound2.getByteArray("Blocks"); @@ -2435,7 +2435,7 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) int i1 = l & 15; int j1 = l >> 8 & 15; int k1 = l >> 4 & 15; - net.minecraft.nbt.CompoundTag nbttagcompound3 = new net.minecraft.nbt.CompoundTag(); + net.minecraft.nbt.NbtCompound nbttagcompound3 = new net.minecraft.nbt.NbtCompound(); nbttagcompound3.putString("id", "bed"); nbttagcompound3.putInt("x", i1 + (i << 4)); @@ -2462,7 +2462,7 @@ public int getDataVersion() { return 1125; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("minecraft:bed".equals(cmp.getString("id")) && cmp.getShort("Damage") == 0) { cmp.putShort("Damage", (short) DyeColor.RED.getId()); } @@ -2511,7 +2511,7 @@ public int getDataVersion() { return 101; } - public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) { + public net.minecraft.nbt.NbtCompound convert(net.minecraft.nbt.NbtCompound cmp) { if ("Sign".equals(cmp.getString("id"))) { this.convert(cmp, "Text1"); this.convert(cmp, "Text2"); @@ -2522,7 +2522,7 @@ public net.minecraft.nbt.CompoundTag convert(net.minecraft.nbt.CompoundTag cmp) return cmp; } - private void convert(net.minecraft.nbt.CompoundTag nbttagcompound, String s) { + private void convert(net.minecraft.nbt.NbtCompound nbttagcompound, String s) { String s1 = nbttagcompound.getString(s); Object object = null; @@ -2569,9 +2569,9 @@ private void convert(net.minecraft.nbt.CompoundTag nbttagcompound, String s) { private static class DataInspectorPlayerVehicle implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (cmp.contains("RootVehicle", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("RootVehicle"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("RootVehicle"); if (nbttagcompound1.contains("Entity", 10)) { convertCompound(LegacyType.ENTITY, nbttagcompound1, "Entity", sourceVer, targetVer); @@ -2584,7 +2584,7 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, private static class DataInspectorLevelPlayer implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (cmp.contains("Player", 10)) { convertCompound(LegacyType.PLAYER, cmp, "Player", sourceVer, targetVer); } @@ -2595,16 +2595,16 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, private static class DataInspectorStructure implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { - ListTag nbttaglist; + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { + NbtList nbttaglist; int j; - net.minecraft.nbt.CompoundTag nbttagcompound1; + net.minecraft.nbt.NbtCompound nbttagcompound1; if (cmp.contains("entities", 9)) { nbttaglist = cmp.getList("entities", 10); for (j = 0; j < nbttaglist.size(); ++j) { - nbttagcompound1 = (net.minecraft.nbt.CompoundTag) nbttaglist.get(j); + nbttagcompound1 = (net.minecraft.nbt.NbtCompound) nbttaglist.get(j); if (nbttagcompound1.contains("nbt", 10)) { convertCompound(LegacyType.ENTITY, nbttagcompound1, "nbt", sourceVer, targetVer); } @@ -2615,7 +2615,7 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, nbttaglist = cmp.getList("blocks", 10); for (j = 0; j < nbttaglist.size(); ++j) { - nbttagcompound1 = (net.minecraft.nbt.CompoundTag) nbttaglist.get(j); + nbttagcompound1 = (net.minecraft.nbt.NbtCompound) nbttaglist.get(j); if (nbttagcompound1.contains("nbt", 10)) { convertCompound(LegacyType.BLOCK_ENTITY, nbttagcompound1, "nbt", sourceVer, targetVer); } @@ -2628,17 +2628,17 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, private static class DataInspectorChunks implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (cmp.contains("Level", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("Level"); - ListTag nbttaglist; + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("Level"); + NbtList nbttaglist; int j; if (nbttagcompound1.contains("Entities", 9)) { nbttaglist = nbttagcompound1.getList("Entities", 10); for (j = 0; j < nbttaglist.size(); ++j) { - nbttaglist.set(j, convert(LegacyType.ENTITY, (net.minecraft.nbt.CompoundTag) nbttaglist.get(j), sourceVer, targetVer)); + nbttaglist.set(j, convert(LegacyType.ENTITY, (net.minecraft.nbt.NbtCompound) nbttaglist.get(j), sourceVer, targetVer)); } } @@ -2646,7 +2646,7 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, nbttaglist = nbttagcompound1.getList("TileEntities", 10); for (j = 0; j < nbttaglist.size(); ++j) { - nbttaglist.set(j, convert(LegacyType.BLOCK_ENTITY, (net.minecraft.nbt.CompoundTag) nbttaglist.get(j), sourceVer, targetVer)); + nbttaglist.set(j, convert(LegacyType.BLOCK_ENTITY, (net.minecraft.nbt.NbtCompound) nbttaglist.get(j), sourceVer, targetVer)); } } } @@ -2657,9 +2657,9 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, private static class DataInspectorEntityPassengers implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (cmp.contains("Passengers", 9)) { - ListTag nbttaglist = cmp.getList("Passengers", 10); + NbtList nbttaglist = cmp.getList("Passengers", 10); for (int j = 0; j < nbttaglist.size(); ++j) { nbttaglist.set(j, convert(LegacyType.ENTITY, nbttaglist.getCompound(j), sourceVer, targetVer)); @@ -2672,7 +2672,7 @@ public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, private static class DataInspectorPlayer implements DataInspector { @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { convertItems(cmp, "Inventory", sourceVer, targetVer); convertItems(cmp, "EnderItems", sourceVer, targetVer); if (cmp.contains("ShoulderEntityLeft", 10)) { @@ -2691,15 +2691,15 @@ private static class DataInspectorVillagers implements DataInspector { Identifier entityVillager = getKey("EntityVillager"); @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (entityVillager.equals(new Identifier(cmp.getString("id"))) && cmp.contains("Offers", 10)) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = cmp.getCompound("Offers"); + net.minecraft.nbt.NbtCompound nbttagcompound1 = cmp.getCompound("Offers"); if (nbttagcompound1.contains("Recipes", 9)) { - ListTag nbttaglist = nbttagcompound1.getList("Recipes", 10); + NbtList nbttaglist = nbttagcompound1.getList("Recipes", 10); for (int j = 0; j < nbttaglist.size(); ++j) { - net.minecraft.nbt.CompoundTag nbttagcompound2 = nbttaglist.getCompound(j); + net.minecraft.nbt.NbtCompound nbttagcompound2 = nbttaglist.getCompound(j); convertItem(nbttagcompound2, "buy", sourceVer, targetVer); convertItem(nbttagcompound2, "buyB", sourceVer, targetVer); @@ -2718,7 +2718,7 @@ private static class DataInspectorMobSpawnerMinecart implements DataInspector { Identifier tileEntityMobSpawner = getKey("TileEntityMobSpawner"); @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { String s = cmp.getString("id"); if (entityMinecartMobSpawner.equals(new Identifier(s))) { cmp.putString("id", tileEntityMobSpawner.toString()); @@ -2734,13 +2734,13 @@ private static class DataInspectorMobSpawnerMobs implements DataInspector { Identifier tileEntityMobSpawner = getKey("TileEntityMobSpawner"); @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (tileEntityMobSpawner.equals(new Identifier(cmp.getString("id")))) { if (cmp.contains("SpawnPotentials", 9)) { - ListTag nbttaglist = cmp.getList("SpawnPotentials", 10); + NbtList nbttaglist = cmp.getList("SpawnPotentials", 10); for (int j = 0; j < nbttaglist.size(); ++j) { - net.minecraft.nbt.CompoundTag nbttagcompound1 = nbttaglist.getCompound(j); + net.minecraft.nbt.NbtCompound nbttagcompound1 = nbttaglist.getCompound(j); convertCompound(LegacyType.ENTITY, nbttagcompound1, "Entity", sourceVer, targetVer); } @@ -2757,7 +2757,7 @@ private static class DataInspectorCommandBlock implements DataInspector { Identifier tileEntityCommand = getKey("TileEntityCommand"); @Override - public net.minecraft.nbt.CompoundTag inspect(net.minecraft.nbt.CompoundTag cmp, int sourceVer, int targetVer) { + public net.minecraft.nbt.NbtCompound inspect(net.minecraft.nbt.NbtCompound cmp, int sourceVer, int targetVer) { if (tileEntityCommand.equals(new Identifier(cmp.getString("id")))) { cmp.putString("id", "Control"); convert(LegacyType.BLOCK_ENTITY, cmp, sourceVer, targetVer); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java index 02ac3a4a8d..79445141ea 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntity.java @@ -28,7 +28,7 @@ import com.sk89q.worldedit.util.Location; import com.sk89q.worldedit.world.NullWorld; import com.sk89q.worldedit.world.entity.EntityTypes; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtCompound; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; @@ -51,8 +51,8 @@ public BaseEntity getState() { net.minecraft.entity.Entity entity = entityRef.get(); if (entity != null) { Identifier id = Registry.ENTITY_TYPE.getId(entity.getType()); - CompoundTag tag = new CompoundTag(); - entity.toTag(tag); + NbtCompound tag = new NbtCompound(); + entity.writeNbt(tag); return new BaseEntity(EntityTypes.get(id.toString()), NBTConverter.fromNative(tag)); } else { return null; @@ -64,8 +64,8 @@ public Location getLocation() { net.minecraft.entity.Entity entity = entityRef.get(); if (entity != null) { Vector3 position = Vector3.at(entity.getX(), entity.getY(), entity.getZ()); - float yaw = entity.yaw; - float pitch = entity.pitch; + float yaw = entity.getYaw(); + float pitch = entity.getPitch(); return new Location(FabricAdapter.adapt(entity.world), position, yaw, pitch); } else { @@ -93,7 +93,7 @@ public Extent getExtent() { public boolean remove() { net.minecraft.entity.Entity entity = entityRef.get(); if (entity != null) { - entity.remove(); + entity.remove(net.minecraft.entity.Entity.RemovalReason.KILLED); } return true; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java index 9c9bd2d392..19c91e383a 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricEntityProperties.java @@ -41,7 +41,7 @@ import net.minecraft.entity.vehicle.AbstractMinecartEntity; import net.minecraft.entity.vehicle.BoatEntity; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.village.Trader; +import net.minecraft.village.Merchant; import static com.google.common.base.Preconditions.checkNotNull; @@ -121,7 +121,7 @@ public boolean isAmbient() { @Override public boolean isNPC() { - return entity instanceof Npc || entity instanceof Trader; + return entity instanceof Npc || entity instanceof Merchant; } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java index 7240aa589d..2a76cacc88 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricPlayer.java @@ -44,7 +44,6 @@ import com.sk89q.worldedit.world.block.BlockTypes; import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketByteBuf; import net.minecraft.network.packet.s2c.play.BlockEntityUpdateS2CPacket; @@ -52,13 +51,10 @@ import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.text.MutableText; -import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.Hand; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; -import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Locale; import java.util.UUID; @@ -102,8 +98,8 @@ public Location getLocation() { return new Location( FabricWorldEdit.inst.getWorld(this.player.world), position, - this.player.yaw, - this.player.pitch); + this.player.getYaw(), + this.player.getPitch()); } @Override @@ -119,7 +115,7 @@ public World getWorld() { @Override public void giveItem(BaseItemStack itemStack) { - this.player.inventory.insertStack(FabricAdapter.adapt(itemStack)); + this.player.getInventory().insertStack(FabricAdapter.adapt(itemStack)); } @Override @@ -169,7 +165,7 @@ public void printError(String msg) { @Override public void print(Component component) { - this.player.sendMessage(Text.Serializer.fromJson(GsonComponentSerializer.INSTANCE.serialize(WorldEditText.format(component, getLocale()))), false); + this.player.sendMessage(net.minecraft.text.Text.Serializer.fromJson(GsonComponentSerializer.INSTANCE.serialize(WorldEditText.format(component, getLocale()))), false); } private void sendColorized(String msg, Formatting formatting) { @@ -209,13 +205,13 @@ public T getFacet(Class cls) { @Override public boolean isAllowedToFly() { - return player.abilities.allowFlying; + return player.getAbilities().allowFlying; } @Override public void setFlying(boolean flying) { - if (player.abilities.flying != flying) { - player.abilities.flying = flying; + if (player.getAbilities().flying != flying) { + player.getAbilities().flying = flying; player.sendAbilitiesUpdate(); } } @@ -231,19 +227,13 @@ public > void sendFakeBlock(BlockVector3 pos, B bl final BlockUpdateS2CPacket packetOut = new BlockUpdateS2CPacket(((FabricWorld) world).getWorld(), loc); player.networkHandler.sendPacket(packetOut); } else { - final BlockUpdateS2CPacket packetOut = new BlockUpdateS2CPacket(); - PacketByteBuf buf = new PacketByteBuf(Unpooled.buffer()); - buf.writeBlockPos(loc); - buf.writeVarInt(Block.getRawIdFromState(FabricAdapter.adapt(block.toImmutableState()))); - try { - packetOut.read(buf); - } catch (IOException e) { - return; - } + final BlockUpdateS2CPacket packetOut = new BlockUpdateS2CPacket( + loc, + FabricAdapter.adapt(block.toImmutableState()) + ); player.networkHandler.sendPacket(packetOut); if (block instanceof BaseBlock && block.getBlockType().equals(BlockTypes.STRUCTURE_BLOCK)) { - final BaseBlock baseBlock = (BaseBlock) block; - final CompoundTag nbtData = baseBlock.getNbtData(); + final CompoundTag nbtData = ((BaseBlock) block).getNbtData(); if (nbtData != null) { player.networkHandler.sendPacket(new BlockEntityUpdateS2CPacket( new BlockPos(pos.getBlockX(), pos.getBlockY(), pos.getBlockZ()), diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java index b651465fb0..ffccbfc306 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/FabricWorld.java @@ -23,9 +23,8 @@ import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.google.common.collect.Streams; import com.google.common.util.concurrent.Futures; import com.mojang.serialization.Dynamic; import com.sk89q.jnbt.CompoundTag; @@ -68,8 +67,8 @@ import net.minecraft.entity.ItemEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUsageContext; +import net.minecraft.nbt.NbtElement; import net.minecraft.nbt.NbtOps; -import net.minecraft.nbt.Tag; import net.minecraft.server.MinecraftServer; import net.minecraft.server.world.ServerChunkManager; import net.minecraft.server.world.ServerWorld; @@ -84,6 +83,7 @@ import net.minecraft.util.math.Box; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.registry.DynamicRegistryManager; +import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.World; import net.minecraft.world.WorldProperties; @@ -132,7 +132,7 @@ public class FabricWorld extends AbstractWorld { private static Identifier getDimensionRegistryKey(World world) { return Objects.requireNonNull(world.getServer(), "server cannot be null") .getRegistryManager() - .getDimensionTypes() + .get(Registry.DIMENSION_TYPE_KEY) .getId(world.getDimension()); } @@ -330,7 +330,7 @@ private void doRegen(Region region, Extent extent, RegenOptions options) throws originalWorld.getServer().getSaveProperties(); GeneratorOptions originalOpts = levelProperties.getGeneratorOptions(); - RegistryOps nbtRegOps = RegistryOps.of( + RegistryOps nbtRegOps = RegistryOps.of( NbtOps.INSTANCE, ((ExtendedMinecraftServer) originalWorld.getServer()) .getServerResourceManager().getResourceManager(), @@ -383,7 +383,7 @@ private void doRegen(Region region, Extent extent, RegenOptions options) throws } @SuppressWarnings("unchecked") - private Dynamic recursivelySetSeed(Dynamic dynamic, long seed, Set> seen) { + private Dynamic recursivelySetSeed(Dynamic dynamic, long seed, Set> seen) { if (!seen.add(dynamic)) { return dynamic; } @@ -391,8 +391,8 @@ private Dynamic recursivelySetSeed(Dynamic dynamic, long seed, Set v.createLong(seed)); } - if (pair.getSecond().getValue() instanceof net.minecraft.nbt.CompoundTag) { - return pair.mapSecond(v -> recursivelySetSeed((Dynamic) v, seed, seen)); + if (pair.getSecond().getValue() instanceof net.minecraft.nbt.NbtCompound) { + return pair.mapSecond(v -> recursivelySetSeed((Dynamic) v, seed, seen)); } return pair; }); @@ -428,8 +428,8 @@ private void regenForWorld(Region region, Extent extent, ServerWorld serverWorld BlockStateHolder state = FabricAdapter.adapt(chunk.getBlockState(pos)); BlockEntity blockEntity = chunk.getBlockEntity(pos); if (blockEntity != null) { - net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag(); - blockEntity.toTag(tag); + net.minecraft.nbt.NbtCompound tag = new net.minecraft.nbt.NbtCompound(); + blockEntity.writeNbt(tag); state = state.toBaseBlock(NBTConverter.fromNative(tag)); } extent.setBlock(vec, state.toBaseBlock()); @@ -468,10 +468,10 @@ private List> submitChunkLoadTasks(Region region, Serve case SMALL_JUNGLE: return ConfiguredFeatures.JUNGLE_TREE; case SHORT_JUNGLE: return ConfiguredFeatures.JUNGLE_TREE_NO_VINE; case JUNGLE_BUSH: return ConfiguredFeatures.JUNGLE_BUSH; - case SWAMP: return ConfiguredFeatures.SWAMP_TREE; + case SWAMP: return ConfiguredFeatures.SWAMP_OAK; case ACACIA: return ConfiguredFeatures.ACACIA; case DARK_OAK: return ConfiguredFeatures.DARK_OAK; - case TALL_BIRCH: return ConfiguredFeatures.BIRCH_TALL; + case TALL_BIRCH: return ConfiguredFeatures.SUPER_BIRCH_BEES_0002; case RED_MUSHROOM: return ConfiguredFeatures.HUGE_RED_MUSHROOM; case BROWN_MUSHROOM: return ConfiguredFeatures.HUGE_BROWN_MUSHROOM; case WARPED_FUNGUS: return ConfiguredFeatures.WARPED_FUNGI; @@ -568,9 +568,14 @@ public void setWeather(WeatherType weatherType, long duration) { } } + @Override + public int getMinY() { + return getWorld().getBottomY(); + } + @Override public int getMaxY() { - return getWorld().getHeight() - 1; + return getWorld().getTopY() - 1; } @Override @@ -599,8 +604,8 @@ public BaseBlock getFullBlock(BlockVector3 position) { BlockEntity tile = ((WorldChunk) getWorld().getChunk(pos)).getBlockEntity(pos, WorldChunk.CreationType.CHECK); if (tile != null) { - net.minecraft.nbt.CompoundTag tag = new net.minecraft.nbt.CompoundTag(); - tile.toTag(tag); + net.minecraft.nbt.NbtCompound tag = new net.minecraft.nbt.NbtCompound(); + tile.writeNbt(tag); return getBlock(position).toBaseBlock(NBTConverter.fromNative(tag)); } else { return getBlock(position).toBaseBlock(); @@ -633,15 +638,14 @@ public List getEntities(Region region) { FabricAdapter.toBlockPos(region.getMinimumPoint()), FabricAdapter.toBlockPos(region.getMaximumPoint().add(BlockVector3.ONE)) ); - List nmsEntities = world.getEntitiesByType( + List nmsEntities = world.getOtherEntities( null, box, e -> region.contains(FabricAdapter.adapt(e.getBlockPos())) ); - return ImmutableList.copyOf(Lists.transform( - nmsEntities, - FabricEntity::new - )); + return nmsEntities.stream() + .map(FabricEntity::new) + .collect(ImmutableList.toImmutableList()); } @Override @@ -650,10 +654,9 @@ public List getEntities() { if (!(world instanceof ServerWorld)) { return Collections.emptyList(); } - return ImmutableList.copyOf(Iterables.transform( - ((ServerWorld) world).iterateEntities(), - FabricEntity::new - )); + return Streams.stream(((ServerWorld) world).iterateEntities()) + .map(FabricEntity::new) + .collect(ImmutableList.toImmutableList()); } @Nullable @@ -668,11 +671,11 @@ public Entity createEntity(Location location, BaseEntity entity) { if (createdEntity != null) { CompoundTag nativeTag = entity.getNbtData(); if (nativeTag != null) { - net.minecraft.nbt.CompoundTag tag = NBTConverter.toNative(entity.getNbtData()); + net.minecraft.nbt.NbtCompound tag = NBTConverter.toNative(entity.getNbtData()); for (String name : Constants.NO_COPY_ENTITY_NBT_FIELDS) { tag.remove(name); } - createdEntity.fromTag(tag); + createdEntity.readNbt(tag); } createdEntity.updatePositionAndAngles(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditFakePlayer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditFakePlayer.java index e4f90f2d69..3af452cc36 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditFakePlayer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditFakePlayer.java @@ -20,22 +20,19 @@ package com.sk89q.worldedit.fabric; import com.mojang.authlib.GameProfile; -import net.minecraft.entity.Entity; import net.minecraft.entity.damage.DamageSource; import net.minecraft.server.network.ServerPlayerEntity; -import net.minecraft.server.network.ServerPlayerInteractionManager; import net.minecraft.server.world.ServerWorld; import net.minecraft.stat.Stat; import net.minecraft.text.Text; import java.util.UUID; -import javax.annotation.Nullable; public class WorldEditFakePlayer extends ServerPlayerEntity { private static final GameProfile FAKE_WORLDEDIT_PROFILE = new GameProfile(UUID.nameUUIDFromBytes("worldedit".getBytes()), "[WorldEdit]"); public WorldEditFakePlayer(ServerWorld world) { - super(world.getServer(), world, FAKE_WORLDEDIT_PROFILE, new ServerPlayerInteractionManager(world)); + super(world.getServer(), world, FAKE_WORLDEDIT_PROFILE); } @Override diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditGenListener.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditGenListener.java index fa5ac9cab3..3392a4c678 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditGenListener.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/WorldEditGenListener.java @@ -19,6 +19,8 @@ package com.sk89q.worldedit.fabric; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.chunk.ChunkStatus; @@ -28,6 +30,11 @@ // For now, this does nothing, but might be useful later for regen progress communication. class WorldEditGenListener implements WorldGenerationProgressListener { + @Environment(EnvType.CLIENT) + @Override + public void start() { + } + @Override public void start(ChunkPos spawnPos) { } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java index 62b3f92df9..4f0c5551cd 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/FabricWorldNativeAccess.java @@ -27,7 +27,7 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtCompound; import net.minecraft.server.world.ChunkHolder; import net.minecraft.server.world.ServerChunkManager; import net.minecraft.util.math.BlockPos; @@ -104,13 +104,13 @@ public void updateLightingForBlock(BlockPos position) { @Override public boolean updateTileEntity(BlockPos position, com.sk89q.jnbt.CompoundTag tag) { - CompoundTag nativeTag = NBTConverter.toNative(tag); + NbtCompound nativeTag = NBTConverter.toNative(tag); BlockEntity tileEntity = getWorld().getWorldChunk(position).getBlockEntity(position); if (tileEntity == null) { return false; } - tileEntity.setLocation(getWorld(), position); - tileEntity.fromTag(getWorld().getBlockState(position), nativeTag); + tileEntity.readNbt(nativeTag); + tileEntity.markDirty(); return true; } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java index d915dce7bf..ef7ab4f886 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/internal/NBTConverter.java @@ -50,7 +50,7 @@ public final class NBTConverter { private NBTConverter() { } - public static net.minecraft.nbt.Tag toNative(Tag tag) { + public static net.minecraft.nbt.NbtElement toNative(Tag tag) { if (tag instanceof IntArrayTag) { return toNative((IntArrayTag) tag); @@ -91,13 +91,13 @@ public static net.minecraft.nbt.Tag toNative(Tag tag) { } } - public static net.minecraft.nbt.IntArrayTag toNative(IntArrayTag tag) { + public static net.minecraft.nbt.NbtIntArray toNative(IntArrayTag tag) { int[] value = tag.getValue(); - return new net.minecraft.nbt.IntArrayTag(Arrays.copyOf(value, value.length)); + return new net.minecraft.nbt.NbtIntArray(Arrays.copyOf(value, value.length)); } - public static net.minecraft.nbt.ListTag toNative(ListTag tag) { - net.minecraft.nbt.ListTag list = new net.minecraft.nbt.ListTag(); + public static net.minecraft.nbt.NbtList toNative(ListTag tag) { + net.minecraft.nbt.NbtList list = new net.minecraft.nbt.NbtList(); for (Tag child : tag.getValue()) { if (child instanceof EndTag) { continue; @@ -107,100 +107,100 @@ public static net.minecraft.nbt.ListTag toNative(ListTag tag) { return list; } - public static net.minecraft.nbt.LongTag toNative(LongTag tag) { - return net.minecraft.nbt.LongTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtLong toNative(LongTag tag) { + return net.minecraft.nbt.NbtLong.of(tag.getValue()); } - public static net.minecraft.nbt.LongArrayTag toNative(LongArrayTag tag) { - return new net.minecraft.nbt.LongArrayTag(tag.getValue().clone()); + public static net.minecraft.nbt.NbtLongArray toNative(LongArrayTag tag) { + return new net.minecraft.nbt.NbtLongArray(tag.getValue().clone()); } - public static net.minecraft.nbt.StringTag toNative(StringTag tag) { - return net.minecraft.nbt.StringTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtString toNative(StringTag tag) { + return net.minecraft.nbt.NbtString.of(tag.getValue()); } - public static net.minecraft.nbt.IntTag toNative(IntTag tag) { - return net.minecraft.nbt.IntTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtInt toNative(IntTag tag) { + return net.minecraft.nbt.NbtInt.of(tag.getValue()); } - public static net.minecraft.nbt.ByteTag toNative(ByteTag tag) { - return net.minecraft.nbt.ByteTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtByte toNative(ByteTag tag) { + return net.minecraft.nbt.NbtByte.of(tag.getValue()); } - public static net.minecraft.nbt.ByteArrayTag toNative(ByteArrayTag tag) { - return new net.minecraft.nbt.ByteArrayTag(tag.getValue().clone()); + public static net.minecraft.nbt.NbtByteArray toNative(ByteArrayTag tag) { + return new net.minecraft.nbt.NbtByteArray(tag.getValue().clone()); } - public static net.minecraft.nbt.CompoundTag toNative(CompoundTag tag) { - net.minecraft.nbt.CompoundTag compound = new net.minecraft.nbt.CompoundTag(); + public static net.minecraft.nbt.NbtCompound toNative(CompoundTag tag) { + net.minecraft.nbt.NbtCompound compound = new net.minecraft.nbt.NbtCompound(); for (Entry child : tag.getValue().entrySet()) { compound.put(child.getKey(), toNative(child.getValue())); } return compound; } - public static net.minecraft.nbt.FloatTag toNative(FloatTag tag) { - return net.minecraft.nbt.FloatTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtFloat toNative(FloatTag tag) { + return net.minecraft.nbt.NbtFloat.of(tag.getValue()); } - public static net.minecraft.nbt.ShortTag toNative(ShortTag tag) { - return net.minecraft.nbt.ShortTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtShort toNative(ShortTag tag) { + return net.minecraft.nbt.NbtShort.of(tag.getValue()); } - public static net.minecraft.nbt.DoubleTag toNative(DoubleTag tag) { - return net.minecraft.nbt.DoubleTag.of(tag.getValue()); + public static net.minecraft.nbt.NbtDouble toNative(DoubleTag tag) { + return net.minecraft.nbt.NbtDouble.of(tag.getValue()); } - public static Tag fromNative(net.minecraft.nbt.Tag other) { - if (other instanceof net.minecraft.nbt.IntArrayTag) { - return fromNative((net.minecraft.nbt.IntArrayTag) other); + public static Tag fromNative(net.minecraft.nbt.NbtElement other) { + if (other instanceof net.minecraft.nbt.NbtIntArray) { + return fromNative((net.minecraft.nbt.NbtIntArray) other); - } else if (other instanceof net.minecraft.nbt.ListTag) { - return fromNative((net.minecraft.nbt.ListTag) other); + } else if (other instanceof net.minecraft.nbt.NbtList) { + return fromNative((net.minecraft.nbt.NbtList) other); - } else if (other instanceof net.minecraft.nbt.EndTag) { - return fromNative((net.minecraft.nbt.EndTag) other); + } else if (other instanceof net.minecraft.nbt.NbtNull) { + return fromNative((net.minecraft.nbt.NbtNull) other); - } else if (other instanceof net.minecraft.nbt.LongTag) { - return fromNative((net.minecraft.nbt.LongTag) other); + } else if (other instanceof net.minecraft.nbt.NbtLong) { + return fromNative((net.minecraft.nbt.NbtLong) other); - } else if (other instanceof net.minecraft.nbt.LongArrayTag) { - return fromNative((net.minecraft.nbt.LongArrayTag) other); + } else if (other instanceof net.minecraft.nbt.NbtLongArray) { + return fromNative((net.minecraft.nbt.NbtLongArray) other); - } else if (other instanceof net.minecraft.nbt.StringTag) { - return fromNative((net.minecraft.nbt.StringTag) other); + } else if (other instanceof net.minecraft.nbt.NbtString) { + return fromNative((net.minecraft.nbt.NbtString) other); - } else if (other instanceof net.minecraft.nbt.IntTag) { - return fromNative((net.minecraft.nbt.IntTag) other); + } else if (other instanceof net.minecraft.nbt.NbtInt) { + return fromNative((net.minecraft.nbt.NbtInt) other); - } else if (other instanceof net.minecraft.nbt.ByteTag) { - return fromNative((net.minecraft.nbt.ByteTag) other); + } else if (other instanceof net.minecraft.nbt.NbtByte) { + return fromNative((net.minecraft.nbt.NbtByte) other); - } else if (other instanceof net.minecraft.nbt.ByteArrayTag) { - return fromNative((net.minecraft.nbt.ByteArrayTag) other); + } else if (other instanceof net.minecraft.nbt.NbtByteArray) { + return fromNative((net.minecraft.nbt.NbtByteArray) other); - } else if (other instanceof net.minecraft.nbt.CompoundTag) { - return fromNative((net.minecraft.nbt.CompoundTag) other); + } else if (other instanceof net.minecraft.nbt.NbtCompound) { + return fromNative((net.minecraft.nbt.NbtCompound) other); - } else if (other instanceof net.minecraft.nbt.FloatTag) { - return fromNative((net.minecraft.nbt.FloatTag) other); + } else if (other instanceof net.minecraft.nbt.NbtFloat) { + return fromNative((net.minecraft.nbt.NbtFloat) other); - } else if (other instanceof net.minecraft.nbt.ShortTag) { - return fromNative((net.minecraft.nbt.ShortTag) other); + } else if (other instanceof net.minecraft.nbt.NbtShort) { + return fromNative((net.minecraft.nbt.NbtShort) other); - } else if (other instanceof net.minecraft.nbt.DoubleTag) { - return fromNative((net.minecraft.nbt.DoubleTag) other); + } else if (other instanceof net.minecraft.nbt.NbtDouble) { + return fromNative((net.minecraft.nbt.NbtDouble) other); } else { throw new IllegalArgumentException("Can't convert other of type " + other.getClass().getCanonicalName()); } } - public static IntArrayTag fromNative(net.minecraft.nbt.IntArrayTag other) { + public static IntArrayTag fromNative(net.minecraft.nbt.NbtIntArray other) { int[] value = other.getIntArray(); return new IntArrayTag(Arrays.copyOf(value, value.length)); } - public static ListTag fromNative(net.minecraft.nbt.ListTag other) { + public static ListTag fromNative(net.minecraft.nbt.NbtList other) { other = other.copy(); List list = new ArrayList<>(); Class listClass = StringTag.class; @@ -213,35 +213,35 @@ public static ListTag fromNative(net.minecraft.nbt.ListTag other) { return new ListTag(listClass, list); } - public static EndTag fromNative(net.minecraft.nbt.EndTag other) { + public static EndTag fromNative(net.minecraft.nbt.NbtNull other) { return new EndTag(); } - public static LongTag fromNative(net.minecraft.nbt.LongTag other) { - return new LongTag(other.getLong()); + public static LongTag fromNative(net.minecraft.nbt.NbtLong other) { + return new LongTag(other.longValue()); } - public static LongArrayTag fromNative(net.minecraft.nbt.LongArrayTag other) { + public static LongArrayTag fromNative(net.minecraft.nbt.NbtLongArray other) { return new LongArrayTag(other.getLongArray().clone()); } - public static StringTag fromNative(net.minecraft.nbt.StringTag other) { + public static StringTag fromNative(net.minecraft.nbt.NbtString other) { return new StringTag(other.asString()); } - public static IntTag fromNative(net.minecraft.nbt.IntTag other) { - return new IntTag(other.getInt()); + public static IntTag fromNative(net.minecraft.nbt.NbtInt other) { + return new IntTag(other.intValue()); } - public static ByteTag fromNative(net.minecraft.nbt.ByteTag other) { - return new ByteTag(other.getByte()); + public static ByteTag fromNative(net.minecraft.nbt.NbtByte other) { + return new ByteTag(other.byteValue()); } - public static ByteArrayTag fromNative(net.minecraft.nbt.ByteArrayTag other) { + public static ByteArrayTag fromNative(net.minecraft.nbt.NbtByteArray other) { return new ByteArrayTag(other.getByteArray().clone()); } - public static CompoundTag fromNative(net.minecraft.nbt.CompoundTag other) { + public static CompoundTag fromNative(net.minecraft.nbt.NbtCompound other) { Set tags = other.getKeys(); Map map = new HashMap<>(); for (String tagName : tags) { @@ -250,16 +250,16 @@ public static CompoundTag fromNative(net.minecraft.nbt.CompoundTag other) { return new CompoundTag(map); } - public static FloatTag fromNative(net.minecraft.nbt.FloatTag other) { - return new FloatTag(other.getFloat()); + public static FloatTag fromNative(net.minecraft.nbt.NbtFloat other) { + return new FloatTag(other.floatValue()); } - public static ShortTag fromNative(net.minecraft.nbt.ShortTag other) { - return new ShortTag(other.getShort()); + public static ShortTag fromNative(net.minecraft.nbt.NbtShort other) { + return new ShortTag(other.shortValue()); } - public static DoubleTag fromNative(net.minecraft.nbt.DoubleTag other) { - return new DoubleTag(other.getDouble()); + public static DoubleTag fromNative(net.minecraft.nbt.NbtDouble other) { + return new DoubleTag(other.doubleValue()); } } diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinBiomeArray.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinBiomeArray.java index e9f593ca1a..cbf0168f17 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinBiomeArray.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinBiomeArray.java @@ -23,12 +23,14 @@ import com.sk89q.worldedit.internal.util.BiomeMath; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.source.BiomeArray; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @Mixin(BiomeArray.class) public abstract class MixinBiomeArray implements MutableBiomeArray { + @Final @Shadow private Biome[] data; diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java index 7c6bdaacbf..26f7b9759e 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinMinecraftServer.java @@ -26,6 +26,7 @@ import net.minecraft.util.Util; import net.minecraft.world.World; import net.minecraft.world.level.storage.LevelStorage; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.gen.Accessor; @@ -37,6 +38,7 @@ public abstract class MixinMinecraftServer implements Watchdog, ExtendedMinecraf @Shadow private long timeReference; + @Final @Shadow protected LevelStorage.Session session; diff --git a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java index 1773ab6946..8ca23072cf 100644 --- a/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java +++ b/worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/mixin/MixinWorldChunkSetBlockHook.java @@ -34,7 +34,7 @@ import javax.annotation.Nullable; -@Mixin(value = WorldChunk.class) +@Mixin(WorldChunk.class) public abstract class MixinWorldChunkSetBlockHook implements Chunk, ExtendedChunk { private boolean shouldUpdate = true; @@ -54,7 +54,7 @@ public BlockState setBlockState(BlockPos pos, BlockState state, boolean moved, b @Redirect( method = "setBlockState", slice = @Slice( - from = @At(value = "INVOKE", target = "Lnet/minecraft/block/entity/BlockEntity;resetBlock()V") + from = @At(value = "INVOKE", target = "Lnet/minecraft/block/AbstractBlock$AbstractBlockState;isOf(Lnet/minecraft/block/Block;)Z") ), at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;onBlockAdded(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;Z)V", ordinal = 0) ) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index 99a19f9662..f499af0218 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -27,8 +27,8 @@ configurations.all { dependencies { "api"(project(":worldedit-core")) - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.11.2") { - because("Forge provides Log4J at 2.11.2 (Mojang provides 2.8.1, but Forge bumps)") + "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + because("Mojang provides Log4J at 2.14.1") }) "minecraft"("net.minecraftforge:forge:$minecraftVersion-$forgeVersion") diff --git a/worldedit-mod/build.gradle.kts b/worldedit-mod/build.gradle.kts index 66fa8cd67b..b5b006597a 100644 --- a/worldedit-mod/build.gradle.kts +++ b/worldedit-mod/build.gradle.kts @@ -9,11 +9,11 @@ applyCommonConfiguration() tasks.register("jar") { val remapFabric = project(":worldedit-fabric").tasks.named("remapShadowJar") dependsOn( - remapFabric, - project(":worldedit-forge").tasks.named("reobfShadowJar") + remapFabric//, + //project(":worldedit-forge").tasks.named("reobfShadowJar") ) from(zipTree({remapFabric.get().archiveFile})) - from(zipTree({project(":worldedit-forge").tasks.getByName("shadowJar").outputs.files.singleFile})) + //from(zipTree({project(":worldedit-forge").tasks.getByName("shadowJar").outputs.files.singleFile})) duplicatesStrategy = DuplicatesStrategy.EXCLUDE archiveClassifier.set("dist") diff --git a/worldedit-sponge/build.gradle.kts b/worldedit-sponge/build.gradle.kts index c7ae15fc15..939452916a 100644 --- a/worldedit-sponge/build.gradle.kts +++ b/worldedit-sponge/build.gradle.kts @@ -23,8 +23,8 @@ dependencies { api("org.spongepowered:spongeapi:7.1.0") { exclude(group = "org.slf4j", module = "slf4j-api") } - implementation(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.8.1") { - because("Sponge 8 provides Log4J at 2.8.1") + implementation(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + because("Sponge 8 (will?) provides Log4J at 2.14.1") }) api("org.apache.logging.log4j:log4j-api") api("org.bstats:bstats-sponge:1.7") From e010b4c452d9866a542b7ad218c9e0a7bc572527 Mon Sep 17 00:00:00 2001 From: wizjany Date: Fri, 11 Jun 2021 08:58:29 -0400 Subject: [PATCH 104/813] Bukkit 1.17 adapter. --- .../src/main/resources/worldedit-adapters.jar | Bin 673302 -> 560880 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index e3bea5812c2918937c4519bd3d76c754acbd6c4b..53912ea669017c9118c6f2670ec459ca8924aebf 100644 GIT binary patch literal 560880 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%0Dn`hm9Eh z$innQPCFe-qcn+~Mn;rus?FN&LUvdqkp6(7_uAdwarrmjIo%tL1|Olrq&gG2MX)+R zY1xTva?4?oT`oY)P~wId`Q7TxI^XeCAby@bQJOs&0W>qKx;(>Rl~5-3*(=Uii9bJbS=3WNmwH4o#{byX@i` z8Flb@>*h;MR@&ZszUJsL&B!)#Qv{cPp}nuXyu4_K)Xc~z@Q&aH7sBE5a+5Cr%p-hB z)UB6~0Rkk+tYbsdPt!N`;oieBFEo=P3+S6rCa`yQiEQarWBN-O6!xeg$F}n1zjO&N ze!1ODzmrt$%t3S3ugGjDCw7!lBC`B){5AM~rTpBMI{mI_Zit#5@|a?{yqr$bAZ?=X z{LrBJMp(tL!|(A1C7Q2QfO+ZoI@LB5tL^|0!wtmpokiU#eLf|ZS-*qs(|u{&mu?8M z<)gIQ3b-8}7E;JCJs~KlX?JoSB@65032m+{Gs@24((&_z{)M163sdWbthchZxX!qy z?_N^@<1&A0@!#RAAiieD`4iuPJ- z9x1(YLlPmWsC3A3jYAKme8u~U%^MW?-t{LAEX;M1qUO5tDWSg@ujoqK4H+8IuRu@% zokq*HYSJjcv5kZZM)oqtBwD~+FJ!x7BySC zxVt-S+}+*X-QC@x&;mB@?(R^y7Vhp+xI2Xw?w7vZr{n(p)^X3nirBFp_Cv;+Ge>4* zeq%}2F|^IaCfh4$WhGxYI$gcg;gmBFe)Lz8+$7EX=s|aoM;se@cMl@W0rU*^VtUx? zYM>0Ii#*lZhHSlc!rBjWxC9}5nIy9xduzKb*XIgg`gJLPl0L^4xFkwPcic~t7LE@K zhP@PhTu`K9bLbe7J6-cV>0EWac=CU^ccr#bPuI=i#D(7L~(xTx5h(htN8 z$(GF8W~!OurQav7EMikEw#Q7B2XT+G*OEk$_p^J7SBwbW9y?sXK0tXR1Fo$`BVM4S z3=_v46mLKFL z)mr#ucRyx=_K+~CoYK;A1d}cEN@EixI#`c|9fLsgnt451K82g-Zw9SF-d1Og7_e~V zEqmjyZ%E@xh880F$73P_nPQ@#L(K#~4&83gJd?%B_uB&FqIqy=ZMkrx{8n%DI(g9>Rz z&>79r8#dVUnq$gi%FU3L*70j3qB&kFLakz@h%rh2I7WUxsIoWl#$F)Vd!UW!Ts+k| zIT3P$Qk50@d(F=Nu<_z?{%-#}o%m*D+l@)mjSpEx(E93=#GKHZmETI2-TvL~Jn^Yz zi^cZ+cnSHO{nA9@K-eDQFl>m?id}hrkMQ3RtLe?}4OGjt>B_sQqq|oR(-(bJkbGsB z^w$1*CH(RkWhL6j_o|U4jtpdwzTe4;{D`JdM|pb^khVNMvd1GH+D^~jy~5a!$%r;u zFvD2NANwT}r6PYY%Mv(8Zm6M3=xLDw2c`KzH{*s$_^QPf_`(GVgr=nSx$_Hv&UkqN;GhMYBNG1xZeBm>xg6ofY|K*}X(Q(R5%R9xGmCd0ffTZK$3Z1eHG@d6@R$!_= zJ8E>)HcW461V0ybo|w1;th~k>y~VVe*Dxoa~6IzW!;~=$Ml0>;`kS3RQIuz?;r=#*KZqKY7z{ zhr0rHp1lFQ@g9|btLM)}{54_!2&7x?4YT&(iwSjbCfS5c-Xr41xC&ME2GQ&baVEI< z`B0x+;4$!HPJ-DBeMt)T+zi4CTO=Symml=0KY3}8Z4PwyJRmRRWXY%^oQGX5J!q*Z zXo>XQ9eKLXXnE)KNuxggRsAFPIPF-(zwA?F=c&KPQ{aK;BMWN8@Y6(kgH*&Z+cW}%35^O&OnkcH-^K5}Dl5A%IMRKiWsqLH(Tv~#NayiG%R;^JO}W*Bi|g!Vmcg$`%4|HoVCL+qlN(gE0uu#9XsU=gDVBJ_wD&S(p}{ZU}FP3LjOd-b>*H zF`Ib>uQ^<&Voa;|B%@5e+3=`xZ^5tFL9dO_OI+O|u@RuDwk7jic#LFQpdNrA(;sPi z_4qxA{ZAU9xi^bBE-U?G1B@6je9R9>(tn2#_M=>Kxr@T-Sgk3*IsllXeJBLgZ{uwy zJaj>M2$MLX{^g>ri6#i8Jz;&?WQ#bG%o%zS!~wuaN?CGG+$z*bR}|lL;fD4+9h8Cj zT<)GKW*~ai*(m5RZGPSzGzuq&U5PuhO59hMZ@Y|G_8>!c= zqU|d}ycpmGrLZw+1BEqe<=! zP>VDwnUB3CG-qRQO2&+nEC1Q`oq_xPClL(ZYnS2$&}I8ipaXX5n4%UE1R1m-K~U{< zaAXGX9sq6F<`2Csn!j=CM&*B1HtR2d&YuSZsST-Ck5_hp#to4^V9$?syw6HKc%(vV zQK({$Vy{rEE}cpGLJac>juF@I&J>#z`VE}vxDf#|`au+G|JK0vB(o27dpVNA5L+l!0Ye&)9dEyF1{`|C&r*JJ1WsBh|OB|4;2qtzS zu$M0%rzT^}Hkl${Py~AJx9RlpUW|;X?^qL<5>!R{6k~CT3N^GR>W;~mzj8M3!!#$s zG_P^82fJi|hlD1&KWl%0h{^k1P-&a)H)L`oYstr6^>495OO z%KjK>$d+?>X~y?VqzzFCF-m3_@=4_E*g^F7|I z1WloyQh~aXeve5Y43oqRAu@->q|#5Z z9^>9c8jG1^sYudl4@iG+j)gG9vVjB!4=Su$h+=0_uy?r@5A4lG!(eNPzhg;`@1D!h zyK0z7k0mg_NR>Nd;yaolLsT+{l-?3?^Y7%Mq3Lwq4w<@z<1AA=QhZX*xIb@9D`oWx zQ7gJ-Uo|JJI&EwV%_q;(P`1YgCvYbSnj1&R+-HjBp8;4VYc@xaRM5~$=_14Ca22}Y za3sC+WtQF`Rj%#PdQTFb1>*gF!yBU+!ayG|MS3s=zj(7mZp!UKbYbY;u)^%8I-?pY z*!v=G0`r zLxyGlTys8zIlkuYPIznRsTaAFPQ*WXdzM>qQ@NklCcW2yBVW~K5CKaKO%ZWNm0=H2QG(-e{_+HnVO|@XFksv?~VIKPztdSN2z5x z?<}34!0w@Ah!vuppGs*Za+I*$FDqsI{HG8Jrzh^6?%^eOr;`SVDbGWO@Tp$wMI>% zW8`(Pb&t3*2&F%eiJVLKmLHgK5b`IaIMGUo0P#avur{&S6>E<0Oz7~8dZb{MN-kM)~Ej%7qxuteM1!0(1yUm4lv$sw5utidfPII1K~$e4FuYdAB>}YpoZBbeyt)a%U2bYke@(j81KXH zh^CQ!#Zw0Gk8uClyM~XzU#rU3tk=6hiY)hxvg#a;_OO>u!tl!!teZdKGFP(9dP%ld zSp^s(M{@bTm#WZr+*+{q7y$;~I5OmC)ovfC^G$Tk73A6C*fi|`Y}4G^H>a3v(-l-E zG{I30!wGh@4qo=^AuxU?RDujPl7x#fh4}y zA=IKj3t|1)yl8~po&Us<-;|iaVQ~g!|0Ts078ci#CWeLCmMH=7i65_#6b4G=JCHAZ}&Rv)+wirr=rpIv9 z5!ewQPEnWG`3n+PIKaSNrqqJ-4~@3x##$2cX+@iPEz58MO@YW9E}nr~hQm{t4PS-1 z9ho|R$=3^FXOsYg+syaO@Vq^n(uVxxRQ?q6Yo+eb4? zO^em8CI^_vsZPJ(Iu1q1$rWDnN>W=U$@?$<==~Zhx3lu;DU_g z-?k-$xL}opjhXyRass3uTdc}js}viktZWvRmeP6hy^7KAyiH={|5F89VZ3Y$(i=Q7%7!pj#|5WsR9)ZRdePUnCjfD+{fsm!_f}yV8qM# z*uY2^=TYl0kh2eoj)~5Ru##3h$MLoO)=3<yo5w_r(K0^QvT=^C zIO>A+_-#$$vg+qa8<3zsdFVTk88|yFDrOu!$7T$Mb#8SLy^!N=E#|I&8Jr9127B#_ z>eF76h;*W9&3mzZ7X_1qLkxB|roYt!jilHD=mf($50ScXoOXBO#(KlKVQ=Knl8lm3 zKGJ~mUQ7GE39&*6m*W3Wp9V;E-6tUj8bp6;Nw1P(=+hvyi)A?1NrzJbA?qRmH=$#~ zfUqJ!SRqBDGcgN+RRpRwqvXCQ3tT#!M70|NXEKj>BTo29#K(;v3lS5>ns>u0G!tg= zEw4`?U3Xx_wvgnt*ZdpR*$10x;PjJILey*U(qIsj-Wb~{jj*Z-PM74P#+)@3k7>WX zgTKYDAoKF7u{}BbGm`hhs<>x{#6cA^Cq5PGma9vgOJhSQ#0z_lV~%N#Z0oiwfn^RQ zaw$h6q#%bP*UV3Me%ys&g%Wf5MjV54wF7w{pD`M<^gtzXhD(+JlSx`1-brq~@WDr% z6Py!U(8f{jS?>Jr*#kjGec^T-ph>w);jNrBY&C6pT{NkHKE$Ao#-8`sD*Sc7ax1n) zEe%)3Kgq@R3ZK8s7O14D zbbi@}E&2Y49HoPpH->hTxt}81){lhh=o(YoUFUI-)-izeLJ*Y3WFPv=@db^>=0#Mx zX8~YzvcTnWwxR!ODc!RO*g081_BfN$e>IT~*aUnHl;)o=%(mYzCcJlveP+w`E|l&# zpJ@SJ9Kzq3(m#hv;o9%Z6VM1J3RF|8PXYw~yyp7$YnpoEOC7{lSp2S_ViDKECWhcV_3m$HeT&mno> zfE)E-hIv$fi(CU+BGK@yS&hk7QJ=Odk_7lRsqChz1=MU+B@s#oSwNM|)`3WjBtt9xAxm$7;}Y+ZNrgg2S=ZchDCj&;c`xu^S&{mo8)AY_%2h zBuK$s86Oo%BABGKaqCVa<&rR;QW!y8!Xg`~+4?u)EO$Uj)#U<$Aol`0(&P~h(0$t( zY`!M(DEV-Lt*N?5B$G0q+s7%CFGqjH++GFva8C=`cnN4aGx7 zq~Rx1N(}hRPNEQAy^-V-^GuY-ku9>9#8LIDjM+Vx)-X5f_4IxJNU(*eh1;HB=bvHc|BId#wH1?gxKb|v7wvQ(UH3f9 z1@O?7&Rr{82rVuuX9}ElY{RS zl|$>m-@A96$bmZ&US=r)3>zDr*hsYKSk*at(m3#y5jA~K)&=qxn$`fzKCLy1mRM(d zSWLOyo@fImBlb%F<-QMVf#c87;n9Wab95!e-py5Fxkh zW@OV4CmM@aqKF3uDG8! zVQOE`$kqt`{&r%$FmwyV4CzeoXnXpz2hNoG&H^tQcN9YTM$DTujDT?Cp4veG1JE!Y zrf|ikd+RR@K(mZ<6Plp+)fgx5ADQ`v34IdZ4tN|9kI(&SBAE`!ypJmSeRSl`eDpk7 zJO}1lvo(K2XK}F9ufp&-pg}9Nd<$ZVd7Fx4<-gHl^%oSWRJZHHud-PSDG$Ehr5hxd z-QPHd>Fbemc8jX~kT&~g)IS;Vjmx5&L;MuP+k#*yT9bc~3Dr$Me;>GQAt`5?a{9;HB*muJ7 zmE(i+P~P8S-MVV!o)s&0=P`um(^(xUgy&uyx#wHqN5%YfI2^+~B(YL09)BG8E#JDJ zY$OkG559d7KkkEXlWy@p?)453Ussi!7EhkCwkdNIYj#Ra@|1S2gQD%dDQ#&5qc>uo z)E0*950FQ~-L^(bSy!IP`~%JX?ES#5zW$F*!>8cNmR=+fkSKZ(5ZV8WO+zgwS9^0s z6L%X=3lTFj3pcm_56j|zE*-Y$e!I@C{P+r7xSFwj0Jh(f_8Iq`nuD4lpc%u<{H&)( ztwDllJ(|Cg#%o?r^|InYql%5!cgQ(*-*1&!XJ@e4Z!H+Ii@;BBwOJ_B^4UpW?C{9` zW3yFebI$#-oxL_M9U&00_oO#HmHqU&YnBK|L1T4G$rB3tBGz28Q)-Z5^m02Ui-<~$ppl-D-Pdas>3wusv?+PaUdM9fSE zI?W{bBIOS~QswAUh+bWJ?Hx8M<#n8R1pHU^UKYoaSo0}scoQB?Yi*kE?Fd*8$m7Om zbSOJB3xBa$QNk9R_RxAB8|_3JHk+Y^*LKWtoHMp5yF4L1aFJg}k>JTABkn}r#i{Go zw?9q24|D{YSQ00+0lx-)5b+@#hb0GCC0Ok;VZ+VC>d77Wb2t_yooLsx706+H|JEH% zv7xmrSh^NDpgxxFJEE_~FaWb+aJf20Mt|_r9@Q8vkwhg|cv1dkjo5%}EzCnP*FfBW zS{-?%6=CV}L&Ss3nv;jQ{TDZG?^>0MYh7`D#RyeM$u{IE&VGTi3hP89nXFhg|zDp3V>a5 z4~;OO*oQBb3J_-mVEO_3UEN*2K}Cxfu9f%VL@Rmd-%U9;KbuqXi@Pb+B<`nLlDtyF zf8CveKqLYz?%?9qYnpxFaZwMK633`>T^Lc&+nnAK(Zm6_3rj=L9hK-#F;m( znXV=6nkJ>$DC9OUpe%iS(YJ`-r!<*Q2g}Zvg@ic*02YgC8O?H}qi24MN@i2yL6_P( z*tmL+|ED$#9azTNCx$a3qr;%&Vsp5;w8c#BwgL`@Y?`v%*U(rjZ^TUl>K?>0#0@H! z&WbLnwZK|)=hSXCEzr(*B3A`!*oej7@hP^^)L|)MF7Eq{nO+^w7dd=} zLoV#@qe_?2yXC<499Rxpow2R4ahU%OPE!snwq=HZw}PArg47-f@a8Yf=USj$*(#rv z9%Zx~exX|(-VT;x@6yf*M3jPoEp9 zf9VM8@PRG@)|562&~JC%I3ix7KAXJ5>^&~%Qiyt3vZg8wZCF{N(d+ul2w;^*+VV#} z**vQRJsp5|)v7DiM;9%MVmOU0i7zMkOYaUo!&Fo7p=)7!+#o*KW+!x4K3DXO-mrUd zcN=U;#Sxw3Ul3pZy}sDbYWq+}&8Ri^%<2YuklReWzaM}J1;x89CS|gZ>g+sWoB0Zg z%fPvYrbKmUWgSyN2EgT;w#AmmDdo*(u*^VXN2#=S?r<4aTS!J9el3Cth2(26R8NJ# z9_aU?&T3bd6g~!2$@)v~o|H%d9pbIy^Z%GhE+pM~XwJ4Q&kYN?s%#EL00J-9YkBUh+XN!j>jE z^1SEt9lhT~5Ih(4-MxTnuBYDwhZ$kDM;QUw(`E|0kyUfX{O5d@?esTfPKsN=dns=$ z-g%)r=|?;_l~U#tFjuxc-kc}{QH@d+=ABR;SB&Dvi#9+u3XIU78QwWZ6E6-idtKo* zi(D=tr{=ErpV<8jcAsvcH+NGT((2VydoF;PT}n#l=&sgxey?oj4(8h>t+wx|pW1`@ zFz+;T(E|^KR@!yvQqa}Gc?U}xbtT|dPFY#bZb6#)t!uhE^QpuG++^2xGNJLMje=**`^+;$BWTn@P|HRE^O-8SB zOn0RRpj)AQ(cDy#_fApPMIg{J9&LPKJ#&7B7P3Bd)BB8F~?0q7~7$1p$~aSAeN1q|h(? zr5@1aUDVao^6!)Zvss>q8tM)@3a^H`V;PaT^Jt6Jj!%56HD-rHm5VE}Ph@|^bTI#k^ zU#lE?oVW9D>C;r+C$5lNJ$Zrwnmo~=l&Ez+J1URNJ3G;s7S(G)hS?^^!;zz9nseXv zZ?=*jJtKa3JI!4-%l7LVVkf3!S1WqYOs)Jm-SHYTM|u;ey3w5JntRyqOP2EQ@!Yx_ z?B>65-+N8n{ViLrw^b5YMqcmaCMTvtaGn7KAD(ZX(;Y>`NO$hodOjDD9IZI30v3;8 z(ZauKd*fpIKN^5{gm06O9$K~x3~AnS=Vgw~b*Ucg7z!4PEC=;8Y$s)+p*Ec<*xBt3 zb-QrAh@ihpp==M|C^e3=NVgkG;q4D$9kLWDD1 z9(r{?+sJ+zf%W|16oj_5_rcONyKAcWJtUUu9v*ymyR-3pZK=*Ohh|^81t-Z+%x8mq z*sCj%x0GvM5PY@o>m|;*U*DWA<0vN3M2*W$0(tm1YJ{nPGW^>Y&+^AJ>-n>fibA?P z#8Qfn#A=xS9t!2UR1MOSNLW=uQz=0<*JeEkXhQxL+GR*8(Ow3IUOds?qx*ki;5z{2^Z9X;N*FtmPKIT_IkfIZ}71vfai9fy8rF zsb57C{uYkiaS9@}S}-cn{Yx%vP2wmsB;<)Dk8H~&X;N#i&MypH#;kZm&);N6 zBggS~4DcFvrSwlDeIHGkyO8Y-$mlWkfOiC$zE+CYMh4>%1CqrLub3-~ERBj{qK^1d z_@?H*o+<`ANE~v z9@wc@{l#^=dPu1P@8mlg)H289~(JMBKYZf#i1w*A*du2D4@$BKC-JTo%RMj)-rw&pb4jZnyL+0Nfz{WEAef?$7 zx>+2e=}B|ZBiMv@i|kUly~Wa;B+HT7o`4EWNxn8a9XPmvi#J8MKD51I%o+AgahEE* z?c`wZW7W8w(z8kUQ=h1VrM2(IewcBRW0&U^_XAA2NivM^L>qR;u3cd;YX!j0D{@bG zp*v1zBswy`blD|Zq$jKPd0gK+9tfHL&|lqDTQ3xz?}P{hH|p;>ad9ChFvg$$$28hY z$McTX`Bo>z1M{V{$p`$adPbnev*51Q!aFJoWS4t)FA!^}vIvqknl?2$z}tq@;Bva2;LY z5REdO`8RN!va6YpX(0s3K0A3LorBY0*!fO_e{G)c_ z2dTrtJQ9*cKiXhF2D$Xi#(+#248%00I3)FZ>X>*|w3&D&8YcK@@KUuiM!^>TrKio> z{Ws+0L4WdK=CzXm)s`GwiIa}9#|Wlm1oAd{ubJo$!$&@tI#ksHKq6JR%@`t5jdda) zbSzC5+k}VbCG0uXQo>Wk*vz|IYbc36bDoO?k4MKP)e@R!r z@b#ZqFRJJz@qzF1m=g5=uQ5Bjkt+Lt!5&K$yKTWlaB^mQ@2GYkZ0LU(Al1%Eg4vRU zLfnJKJzR;+>Unv1EqgWHfcjM=C@hq@g=Gc>1^w{bx&l$XCtZSZ`ppBQ6-!0s!l8+& zpJHe~qk$=k_3v~o>YuZ^DPwmIuD=OBZ90Wcl4Z4fhPXA#es`C2VaayX>~x-+(rNAV z+VQ&~EoIkdFVV*o%tz=7OjCYxA%B7d zrnK8BK{D+VSnm2Wvt8f){QwsRnh}E!uxfDFO-4^@J(jtrM*d>9-%2edYl()8MK~UR%C!auvO);LVNNC_)1+?ga99 zg`-Qt(}c#+ZMPOZuu$rMF_8^;hu^?(g0|zWb|LNd9~~de0dPL=L8LsPoYzq)w{P(O zGuSlbj7GlS=uzo!z@z?ubFf8R9h_X%+)W(K{|omx>9{D2A&}hRV!D}L$e>IVnwG$h zf(}z!3KIzh(2$K5uYzeP$l?}rK9J(|90;$c-RT44lrZgwz7dh8uW0vFef`Nu+fjd= z%lEYDdzCrwxAXCeC=83tLC#ztI?ob8K6pxb?Yg*UxaeoNgP}Q=;AigZ`J7=wl3iVz zU^1H;*IxU2Vb;#}kj_Pe#HXd`J+gwTlm;rd#ZIK|I9?KaHW>!-;79wui+PDfiGH^njDu zdo^%D_*G__R%rQBi`$Ha)i&kTkwbLWW$1D*!oJzc$EuqaeGA8ho`P%Cd$(-~lPrw&k4sAcxFF)A0gaE4i%{h27W2mBkMez0YXg0U}{6Ge~T{~vfo&x_DII0z6B zPZ$so?f>SFUev_V(ZcnAeefDPYX1YY=$Mpku)qK;RbC{HVn_pm=uz9sQ7?mNtb@ps zYA!8gPjlL@U6gggBM9EFQHA4L<@A3)E`Bb4!o>SA$e*B}Qi7-6p2-WM2M95_GL0tz zPdRSAce!p&fuDD8#2}Q$Cnb0(ff|aKE z*r7U`gP7N_SYRW){f4szIS#2M1t?@Wg*)x3Xp+e)r{86t)*XV^q;pG6LrX(s%MptM zixF+)d5l^$U$$pxVX^JA#16+L?O>|=9&R#a#$*=^MM06&04`+rDc{hiO;P);x0*JQ z*!3N5cFPfKHLGFafS(FtMZTId5jIYW$KDo)XBttO=Q)&^5kBKx<}%5?24r1f{vL)( zpr&*W!%K2RVzNtQA)6D=>qyRJ_9v3V1degUQK;2eyJ+fkR8|EZXl!#ZLKx1WaKFds zLww3xiWrMCktTDnit8g%&W46ILY9B3NL7a6H?^I0G#>teC7 zWIz2e^%#fkOxi8+Kn+CgHH|m%oqE&R^z!+qqW57HuoGdjLv67u_AeKa-A0_9MoiS1 z-O+R`qEAFr#oN%i=f1&nRy5j@-4wqdi@Por+u?hrs%W7 zBS@xl&lR|nRlpJ0H;vRrTPg5zywmN$c%27()_GxDRA!YKylEFO4gGUz`0bqIYF$BXW;?}F-I@FI zP>!J|cNYN}OhOBNmjdoUs^jqN=mcfKPU0vWb)WEUx7}RnTgLl4NAurNE&)(nKbWw* ziLY*(y!+JZpLy)>;Gd(6h8TN+PR|y8qtG|t#6wE_vHpU1RU8UY_GF=$e)2v-eHxpC zR3(etdB&-~s5xA*^OG=PQ|v17wDVC%Zg|!VB0ggcVB!3idMiLtH<9(4BwWa4_l zQo&^+1!&jL{|8lh86z5W{X5~d!GnP4{&(L$7UrV%PG)xh>ju)?a>CHS_}bcXu)6YG zcf`gvP}YGcga!dx)oSY;;>HLr-GOO84YC*}Ynhi$1a)2^fQ zWG_FLok)?os3^@yj>65gCvo&9`jx=(<@g4(q7Inn9|TpCnQCr;Ih)4xzhog&+Z9PR6U}tI^GGntMqaA;|U}Lt}${N37N?LTdmSI`aSevd(VLwFa zYNX>-ZZolnAV)`oJWPOC7vTvNpM}+siIk|mfYc@?O4Z8hEY~3S55bQ1r~1#*p%MfO zNa$k+SUyxT_!`#>I^2cJiVM6x8_HJ$g8khM3i&38+gLg&TY) zJPpM)L^4^BKiH$3H!(EMtEwcUtp%48ZoDFHS(@fT6`_Knc@z7X4UdzW{F1(5^i`6> z@5wnD$)UzDITKsG4;;R-5(BT~Le{~Fb`#4YS3|{ET9xTB^HbrORZgtfMR^vQ3jdU< zkB*$Bln4j$1qjX}EK(r4Ooxje@q7+xTnvt-Vk;TX58fnoQl8~T7<$u5-0D&&aBk|| z1fU3krS@%%0u5EUxmrGz4HSf5U;W1y&u}~$4wkcea18li)mLMM)E|o#+N&kUwSiVC zg})2tlSQ0&^j2^M<`F`(&PmlBG3?7){y7uuEQxZomig#(VaA)%5+hN)&K2 zXyH|?Y;@>p7xRMGq)*2Yo5gDiWfeOE zc_JC{rkGmuQ%$G4cpctIF15w^CoU=RW;xl^&hX{GW8wY4uwO8Gjv@7r7Td?IZt#V| zc4Quv7J3Jj_85hNeBa5h?${iqqhN}DhK$W$wQ$E0;fOEqfq4Ry)CCw9jQj{F!MK6( zCa6l^o`Yz+zzq5+Ye}6`iakp^z z-!+^nx(bQ_*N{9VQr(!CI4VaN(0GKJ7Uf2ykG6_b6Lo4JbZL5u10ho?Lw?Svej+r@ z@g85lB3k=s0Qshv-Z$wd1kHTXu>6xio6^qW7TeQXeBBO+{DC0^sJjddEq4%#*bdgt zUe)+z<7<601$#Vz-Dx$`kvVEZGe zwcads3%5{i67E&;WyVh3kLXGo80Z_F9Oam4o8-!69IUUuJZ(+SS0$uOTU(3wYbgc}VIpcO5D#^mVpO;^Dbc1~+ zu@s4f%p-|KeDyLh$97Vf`? zHxAvi2`-SMkfGa|o?JqFH}Tuojy0vFf7;t^V-;WiF6*K{9+w=KGXeEN zDU74vb(H>u{m&z^;s!{_|2`ggh#(-E|J_H#$?1O!E2>~#nW;>k6TcJIlc^_UCx65OSZsc3VL-T8Fgjz{ zg4sj~>E9^S^(x$~?%2XPBY}&sY?Ec6Wkq6%>yo2j;*z}{$H+h#uGiq8 za)E?ELVZrLwkWJD?m5D8S~-uooPuJN%#TKwUkx_)1u9qY2#7Qd1w4t&YLY31)Me`- zo~mr72!G!TN4*<|(#~JVk-N0}8&pMkG^ZQ)5=qj1_)AZ*#9rhhb>Q`?q_({CrkYYS zetrf6;eJ_aO9~SW!X1V-;wcZBU5`t5i1Ez~sn~wy#NVG*ke$2$%#^L=B;dsN8lGtxzQ@$*(=nfA+BwcO1 zaq`Lo`8_X9ASt^d;7zDNfKOpRfRFGuzt*{~=1fG5D;a^FpUOMll$o}uS3;CcmwG1A zh2pnC9~ps2!y>IoHuH38wd54hiM3Tiek})gtvR?;MVLTIUbBF;n6Q4rE;=&;wh1&Z zPY3yhIM<-^P)WzD6N2m$tuxfei-S>?~@B#Md z7#3#rRw_nORd$Nu2Pc~^B$V~Sm?Z*x9%a!IqdD6f;fTQe(=4LUwsw=~^-?n_t>eI4 zTwyiK#+y0DpWqGh8MOm0nj@g50AZ%S>`qAk_Qg~Wq86O=8_I~pvP6HVXwd>Y!(uX% zh>#&+H=~D#OiIFNEiQ_&KcGu%u|O2~)D#Uw=}Ev#=b<`RlRw3=f;n+HM5{jF9;x@G zsnhw%ixWPBqAOde9vN(z@@|Mmn*FMZZoo31T)7R(Fb;WNti!?cz(8p4A*wsagrAWkb41uBd^I{2_ z=I$;YaXAZXl*WMXI@JjY=KO~nW+g874;KcMQ&vQ~m~ zj~Gr#BOOUKe16olQO8=?q(Q1SN@rxDEW2ViJfqt@r1n}WZ}>!i zS2enlF78 zg|uj!=iGPO9(uG~@u)B=96Y&ya1aexbzyTo6UpBO zZ0?h1UJn!Y5PQ8a2kb&S#}g0u2S6ZykLnDOJ!eYY;uDV=@z2Qq_*t_Lr8k(IiE~{N zupLF5I6yw!oI97>Co>Vu`yQnRoC&ghk7M&rzDa8$%^B89p}~03*Nj->DPrl$l^IJ4 zuQ*8He!pzq>%WhM<&sAKo%57 zJ^K9NC;pc^mbf$O6Y@V(!Y>ZPKNH`oi5lv^zxgfpof0g}C2icS|4TS+C@wnVe0_|T zY@Ci{fWhS{BjFD&)6g=DA0WWG2$N10>9@bHq^bOADZW&e@0uG5-zDrqQIIT(MBWAe zVe{Uh0L6_gp4Ggwa_#r|`mu-&lH5-G6PggLi&U{N8PL_=)?VUPOwEAJslH}%nzM{B zooRL&G2$xtjKiOWCJbT#CXOls#Gyo3PMpXpoWL@2BiCzbRhL_rJx)%38I`d)6XBeU zwrSF5sSX<;sdalx?C9=F+p4WV@Sm5Tyo@rlkz{E>(R(0^`JPrmEq4h6P-RellEa6x{MWT)}AhiUEMU>C_{)h-o=toh9f5~mg%Ub{+KqjGR{F8 zd*=xm&L@E5qbP_sdEdd@G|k0yK>|nkEIMabHOFyC_PWqg1?lF#emnsabK*vTL zvOrMjT$-j`xg;x!wJbBO7SyNs6R^qV+KuwUQ3b?5j)+i+QOWS6n`+<`+>qE4ivf7| z6;#1Qu$e11x*%*fSI*73TTzFX+Ws#1rU=hPqK#*;uDES3Y<^MB|NUjB9z#WiCvNAX ziU2sTn4C^*x5Rr8&@o0i3}YW`IyDOWd*d?)Lm-z!FmVJYw%=~sj~PB$Dq(1oHo-;r zcUlAaSB8e1<_Sl-;A#&!tQUlJIyOQGZIRoCrUR%K?(t{c62eEX!SXHu3DGZO2K$n< z8~iG@Ap5v9T@hD>5+)gjHJ!Bwx>YU$dgb(QBcMw>*tr29T(knqO72qp|FCwJL2*P) zqfQ{W1r1JcUEDReyE}_6?rtHt1ZN?*ySux)TX2`)9_(&z-S<{~-|zR&)XuYg`s|t7 zu9@!B(_NAdqVx7%ZgQ7&F(jJ4J3rmXPgtFGCR`yLU?7>V8VvsNx}vQ*>%M@l~8zL<_erC6A9;;nJY!fA_9)O0sL-hS(4r z#D?_$%a2uJPWBF>AfO#2Gx+}*k@}|MoD$aCIj06^#5idf*{D4%@(C7Jy0BwVHTPHa zA2V^VJAqeOm%>?(&_2`2zaF08K~sw%ipN%9>v(t3I(x8s`;NH$J1R zG8!x6EW^LoTB^<}>?$sj*h40@4r2RKtxwGbe-ZmKWTMA8;wZz?R<+=*liIl}AWyQ3 ze51%dnaU9rDT=x|G7jTFG==B>>s(PNtwYg5lShz@o1!3Db9^kckZ?$7sTqv|(A-Va(`scP9XzK`smq83+U7BE3eU7lj2MM- z_Z(#nXKYEIfF4v099kQSM}wFQ8&6V3t&^IGZpf`JErIrg!Ql#-XD*)X{s4;IsqqC5 z^m*esGe567h9sRFYkCeR`VawDl`hrYPp{9zmlTUiF)wzrrX~P&Gz<7N?WO%E;|k3| ze0!-Angtpbxwlhj-6g$B9I)re99O$}lC8S#{6OKe=@peY+bmoPr~HHhcFS(qWC}3l zxhuJM`mSk7L@b6V=L6o*>Ku|vfor#^BLgzJ@=SvLA9OsohZ=U z-Fa0V*Bb55mJ*bc6<$lCV33~hpbEYev8q_$2>Gx&qj;iUP@3$}S6572r2(XL_*vRv zFxSuZnz7?^%l4U99uq1op5uF3N&zjW*lC5)(f^7Q`?@31WFvm~5dP)AzfUD@=VIyN z`TxvH%hLl(9iu80K{_r7-X04JM_3$2*j)MYLq8?yM+(vu)4+#iwz*%Hvupylw-le; zU6(K~o;#V^(Zq!LuR0%QUESAp-IqEv^&d3cPhH&)?nK|F?ID$M{yvnIKAbF+l~zuU zW$|Bs`Y=AYaQ8XTgJ_<;7rs~=w__BSIlfVOoRV*@Y&ng&F_t+R$_#0Jzt$>Wkfv0qMm!;G&+3OJuNQJCaRc+ql*crp3i-gVm?rDVtsmyEmLe(|oLS|mf&sKl`kI zpG`bsYwXXFNYhsHdZzMT$AgJso_8IEI;vP5I;1nUzD4ZT2RFXb{RFrgzKIY?=Hv@S z>ACpSsm6)Mnnen&?3F_3YkGK&iRgJ72~b3suN^wyiZOD^Iwiez>nGdP1Uzv5XbuQL zL|=Ae^fpcWN8jf`vD=ViH@A9muXacm0P+&-*$s|~c)fDjCXzz$X00zg1Afk7*~x73 zC8nbH@PhqhOT#<^oMRkwA-0%=!PT;2bIFB&OLt6`lQk-B+#LrT>cBmI#G%!7waf*~ zNo6uIk{}xZ>(UPD70MNcWsoDfFRiRuNU$ClrPFKci!e#=vTZ|M4nxehPAB2>dPHHH zyyF|rFDlt)o<5=CLH&(Zo!@W#T~1?HRu1Xibz5>>hQ(8Gl}T7t6%6Sd@(4>EthnkO zU7A0%y#Uc)TOzIq4uww|*gnG9b@CmtQr(-V^VJVvvH3XdYWzFK`eH$BPn-1S3qs|Xg zP#}>e8NUXh>;>Bm3vwznCnvNt7e_SKSx);5qkY9T$JA$3g4q6ZnrG~9}xu~%JoWBCflM_FLk$WbY^e}sbkUGhvh4s zD=f#_ytS>J6sU|0_gxHtT6+8gggs65n8~Ft?#(Ne)sNfWI&}c)6BGqvFws8NEDqm8 zp~kwkFXupnU)@vAysJ&0EhkF!impy>QvTPZdrG0W2*x7YMoFCYsd`%h>DM1Ii)Q(A zI6_?&L=z}0hK?w1hb`-vFA`-vPT$_Zn;7d)5$jA<7Z0ntx%_hPaa^dbsr3A~m$m+j z7=rV11)|5^FW}Qgo6PdR#uLur0~Rn z4G{0}1JiBNK+2mB@8G*J2O1@Gy3)wO^ub3T@SzUDV675`CP1CjD7Lj4n;{IH6rl`f z6r?8;k`Y#oLC0H+#|h{$1P(0fMLTE$rsSlrvUzytW2+i4il|A<+-*G&3_Nl`h!>dn z<+L1pnM0J3-j>*{g^4nuP?;}V84OT<00M{mAz zTWML>nB4q^dYB{QFHaqXQQ<+YtZ$dgR3d?cgN`5S@d6+6yk#3%l zE~R2;oaVL5{#AOwab3R5Y@-r4GE?5rSK7(6J5ys`VDf<8XnE!^edwV>=-3~jz$NdI zazGrq62}k|(E#-B-A^4{jolBZA)SV|LT+QX?`6bM!@b^H#-b@hI$ls9I6;GJL-kCw zc_-_7Lq-AwtusD!qQ=mFj%6+bwO02+oLRrMv(gC9TVYJ9rcT+Zfn{r9pL`tQ_ITYR>h zv#R`4tfg1ly}u&^Q;D-g=g`rt9FR6pfw)F>uC&GI7z6bXj)G`|g+^PgZKJ%UeANu4 z7*T}fA;DkNjkH4vV}M>odue;64`c9UQ*#S$M-uTx>qRXfE7FkeGWxLr>LOy3_7d)j z8s?2`LvyQY#~$%T^hGw{JuC+M(H^QM0s~iZD-3?mpPam!G$4=6A@oypc()jodqlS* z!WtzMHHCxmCk2@;JM?BrsE4TT4oq$UR1vkqCcGS#gT|-xtZp834ISoQdPnXr|5QSM=o_qcPJ#l?R-7p3N- z*H<@0+bI2SXoHmnp~mjBh0Ervgx=A_(H+9N#uwA%HE2gO+_NTEGq)Z-7y{^7(u#v< zITcrKUUYu!0z`)5Q~jYwE04ThjD9=Er4ZJBZ5S|l!^i<3j>fZ5cvwQ{jLIqH9BMyPiZr99MZIFv^HxSJ=9YOWi720%Hx8|nrS)d!?lsx!SnRvDat?gmW`QjpdljkAb+yD6? z+3@47u{2aD(}%7oDt5M@^OCeu6_trx*0{E!ef^LF`qq**Xyi^Q7pkzYqGQ8C04ALXVNd)u@yGumXwyC4o3x>^M zZMZHlM75@Fhg}*Z%|zEBUzeV&%{NkM)asi3+`g@eI)p*bdhB4_MQNATpp^)zlp>!& zE{WDa*$3d+=OuJo1Mm>DanTWnj#0q1aAC;weadIsy$fne6vod~S0*^6Ns{=}QC(%-MaygF4qhC{-+ioii+s!eZ86Wz!3U{_DVeyd9}@8H zuICa+b7}OBW>j3K`g3IMq@$whC7mrV=0w3-ca&}XSg`WVd%VMSBTHK%G=|Fgqn$!0mI%+OyS%hvr z%;*OlxJ|QUhCS1HRQzzR3)h#*=VdZoO)1{W(C!s~-6SVMqUJYpB01WG9!xt?an?ul zP+=%nlSfZR^fKP=R6@f0izAePOJTQLa~Ya>COCC(=HKT3<<%J>7rfS^4lFFRyfY87 zd{`<+_1qfBGkRBc$UVlBzhO)5?hLWH;5o*eCsCgRL<7?{7%%xi+wLHmY;Clcm~lW$DO%<&D6U@NQ6`UQz|u&bQ-)%MejG@%_Z9v86ngIYi$agl0!2=nh! ze&}P5Zo!Ys2yrRZVU?EpYW70QB$JSNi|Jdez>h(1JwJ<5DiMRbO2FLaWgH%G&g>!5 z_=EgB;Np|Rn&q`?lK&Zfj>kyJNPtAnq9L1-|LrU=NmrngsU^_vKe1<7MNDN#9x82y zN{A-5l9DjYs>&a&icwK*B@)t-6sfsjq>;1n2Gk76Uy`qY7q~C2CE+ZLa(ZFm;r_!O z=BuN9tzT|bT zeb;9@Tthlt3Nau_sc-#<(S^?R(Vs-cmM~&jD1cgn@Dg}nhHctHJA{SpD*gd%1yybt zwyp%GKm1elx&-^IRoJ$5z-RCvvl8Y;z# zc(U=)<_Ji<*IP@jRPsA9Dg8%(g+YECsU~u{Hrlti4l>dSB@J6u$I~%-?@@x^q?D=W zwCY_3MZwnX+saL@bwC=lmZ8W-@pbCqbxXrii&thDVjYr9;s z0$U4vN|94hQ0a=%a0ZyO{>-uAEs=}&r;N?-&b){ruj*gt>%n@={K(gZW(Y+fhb8RF zPl%0g{_6!je^v}tJduYORBr2;O^-5;^I|f;teTCefXqJDK7RZofQQa7Bg7qY3&S-G z{*5{u$2QyO0r+bG1V$5-!W9#cfQ0+I~p?9 zImN>Vk(@ED91dv>#Ioj?Pj}|nXvWb0`<0Kcc)BBekXw2hBq961oxUOkw6n0Zv-tlv zbVWkQ4P9T$9DJ5oNuJ%X*rFh9}i{=*1P?!4}pijq+ z(l*mSy&o~{z@V8TXbAuF+hbWTm&Tm)ac4_-Jqwr?>(O}8S;k-mz{<`T;lO$eaF5HW z5a>d$EBtfOtcooePwE$~YbOZ)eK1>b_~To;kiorizF%K~c~4rej2`X~adpup8>+D=U{fg z9764oB3vNHW}UO#Ya%cu2W9IaBicX1;))sBCR_jcU9ISUKAjx`a#yy*PI(*Tc zhPXN~tyFEp0zh~GF*^iBd<$~6^Z3%qGt#8l2ie!%i9J5vVdV-YP|zGAr;dxZ^ne{g zpbd*{tit~}I}+9%B_>d?y;4!k=E(nLWn3n04xd%m*4%8I6vcvBj>UJ|qs+aGGnkOn zV&x8jY45bdOSn&auSB!QtE$l?J?`8jkt#{aiKl2=d_j)IckZ2lQAL}8~|^DwgxvVwMMMQ1h*w}W8Ats73u+ja{l?}%rxPjq69!$_{E>sx1hSna6=DA#yY zQ`Jq62%S~fL@;aUiGvAI=bBbu=kyn4syKH=Tjt$~%7wfv_NMvG`uhn4d zMmD#!@c30(p6cwrr}zPML=t5+zuwYowhbk}9^KI@56vf(rNm7~ z{U_)w8h;HWPAKfa=5PMaYFE}SeTx)yYHDJ%`k#teON)(&sggPnmXw3OGFCK4z{DGC zQH*Ky+wFWu%&6(QIuMd71wA9R4V#p#G9r!DpHj#h!JztvAl0|Y?EbHWyN`JDQEZSK zcL>A@`ES2MB4q}&arw`-vAVW1B!T;lcTCQLHNc^-Q}ii2VX-6&+oOPaAo}}V^9q{Dg|her@^U9YAx{o5?dce7+NC#t-E5D z_oM*C`B?Mze?L4l{OGc~i)*DsAg)h%7X|_e0uD`k;}sZLG6gGG145*-j#GrYLRK5^ zOJI*cVPrUxQJ+&a}dqD6T> zf^2!|c1KpeZqvueQXbHaxl=}?$SI8K%{D~Zjf_}Fq~X2k}^tbZl8kl?7Vn;!<+dPDKDD=JIJ#@v85$e;a=P@u2wtjhXsT>wRbEk>LXNFs_&%FkADmR)uOUx=WFLA3lI8{LC zTbmxIXC|%!`89$;HenU+mUw%=a^ILo!AX15iQaD;f8W5j+pP(}0m}-QsvAxJPw~Y2!L&!Fh5zc`;I+pLe8(&`o z!!#%{%HmNAxUO(4yX0HYT{Et_&`X{oJx@Fit%%+kmarf5JP(rV%btNWS|D6a1R~WKmo>IR&ndBOS+zyWNS37J@ z$212>Us1dr)NKNx+*_jD{+FXgQua>HX8&=q^c69Mu>@2R`4S62*vj8N?&o12=~So`e^pTm z$IhdaXIEym9cp!H({*d&c){`y2)`0GWWEyKe3kCUy|9b?z6CuaP33$rna+3UXWIGx za*h2B15E@zTV7a6oR1e*!8Rgf8W{*~7z&oxcERJdJ1snCWUd!C@kE`RZZK|bZF}vm zB^p6DhCeF!tmZ-wUv|_(8$zqvs-wY(dA8e-R7}GK3QO;tItF_hX!5noW$z70=bbp-~>4PWQH=G z(=FgD?U(Y4It&Lsz=n&-XvjaH&1OcaN6R9g`Rx%~YYo6NCiqzxzW1~Ao9HRiNglVD zjg=4EMmx@47uzWbLM-A?qak}t<3|;%%OTxtY^B+opQp?K`_5iBSiOw&J(sI$3%@TR zSA8K}#>!3B+hj#T8tkG;KTnUXBPKnsNB7g90&lg}L41(4M9tKRGj%~Gnwa$&5lhcv z_)W11%WsfQnNUFcB(=e-;p>^JGV?ITh>kdLFSx?{8O(CjxmZ%)@=n(q1DN<+NOg&N z?V{Qw*LA0fmuP%L);9*ar$AA7_0By-mMfB0Y{V|(2zit~Ugy!oqK^@)NUBhpEd4F+ zsrbMNJyb+?-hdX^YLz-WiQDU#pJx;d+}>1?gW*p#jrSN11A=ZbStyQlt@5P1(9i53 zrLWC0_fIUU6+c1U+V=>-Ui8WLTHQd|0YfxGu*`M$JR%ACi5~B_(d^zo+Ff$FqaNe9 zCkJ_`tc9`S9j^&5p(=EVd$P_p1tQ%9UL3v_b$bZ;_K;q`fEHMqK`}{Pc7+B!q#86YDO4UxQx9jYEIianh3 z7_1V${3OGV5IEI+;Oytqw^#Iq$${VoOF(=sVqO%fS+s@`16A}X01IhG$&EJQzAtA!D3p;h0$|N-}bGXBQW9^y7IKo}?tzd67lWLwm)e}c|^%)HWr#%5&tdDfArrRTFW z1(NTPNf@0kGRv(sGcvMK>~;-(zP7U-@Y%;OHQ+KP$ey_1VfI%?Mtw`iuc;fS#j=Ht z5M5(tRF6xI^u7BVYS$iSaP=g{h0Lbo*s1Oa8r@KJ0D3>(ZEY+7rB4s;W=}mXS{HYL z*?f!hJpFz#R$-x@KTVU?-i11OjIF<7tn?1|9H`gl3ytaF@G*Ig>~DdE=TPs|^|$mS z7eR^8cr{5?SmGUYSFChb_RX9;Q~@0Japv}>j#NA~4Gp1RLz#wv@ObhG<2)78UfFg= z1kWOks?@5MJ?*K2w6Dt5ORZ7k<1jViR~+LkT1$9I*%Mxry=KF?zn1OhBYLN9a(nrS zb5*xG^CoS9YQ)?h`z9N3a&&YpaPvo$uc7dGGYL?yaRSYo{@@BymD?32pEuAu%Yc?n zkV_yntlcP^=r24vP*iM|tREXac8mKwEIz4NfsWo+o%Hc1=parFNXvZrQOFceqS8nf z+aMN*I9IQLYi`*jc2tlgQslWKmn$cYV1tc3E{` zsgp1C>tA}gqcq@SjYgQ8#{hs-9w9Ttz~;yNRBtP*hXT988oPl}u;0CQZdu1)!~gkj z_sGR!qi~~7 zR(66- zvOwae^ch>J=M+(q!rkg1+>@~q!1O!i?~dzpzoos!5`A%!1z&63h7#8lMi)eGei+j%u2ZqG3? zix%b>HPjZ_#%OAHQE$3Lr-)Znk;ewpIN!IqMCT5BbGXEk&j$I|ch5#1PmOy-yii+d z2F<#x<3qwm4(6t%xv$C6Fq9lqj(eVsSXkpXwj(z#Tl?cTX90J|X5!iAUF3Mohh-m= z%BW(C_KlT5s#O@X8dhnY~Kb%Ea#JP)gdR_uy$T8YKgp>iAHX{f%j=N5yx02IZHJz0kMzzHf%NX z)jN?=Xs*H%rqQaZ832yI)JGeQ&OEeU_Y@e@&p{9#A)V~A!t%CbDZ&#cYdwI zM!MoXJpaL^t#%MdosgM`_mpk)@TY{Gu444B38%K|E7x9ZM3MP%HQVqf-3}GOBI#X* zUZaWyl^)r$gTrZ*l#2XT^}`wc3p3Vjio?%YDZWmm;pA=QZYN(7N)BIs0jZNe5a_*& z)a)gXEyP3dh$o?@!Px+6k$UBIH;=CW!gKmsQX5FW%vaP|d%HrX>6T)5d_0_E1{7C- zZ(2qAs>o|nP}W_b%|HvwKrZy9f)1C0QoWk*^>Ss5L~iuj;Nu0fhl@IC)P({we*&1$)?R!rASQpmk!p#D$fV>)-RrbuQu|)23V1)KcS0bY-?b zi@u{+$$=Vhrec2)TwnKc`$k{ua|fu+Ao*THH7riuecq5Y6}K?&JE)3{zMU;tb*W|~ zC$-?NY?L>k2LE=T0Blf9j=LAU>NS>z{k3H!&oJMs<-yh&8*!jwR9XCW5x4Dis=~P} z_@VK@AEaD&L~c~}z^+`?;2pf7c8hQoRE1lPqm;GKp*@$cBWqyL@dWcrwYcf(3Hz8; z^?G&Q_^A6Srwvd!pFnvuCUt0f}j2VbG}*(>T~OZAMyf{ z)jus)?CuR5FNo+?9*R@QsO#)?oIAtk2GQ&IFjX{T67HlJSX9YGI`hC`1oh7vlwhgN zOG#s_4`lDCLnWE^%Jf6EF@lS7n6&Y#m{o}+wichJ>2a{paN$J#)njkXYa8!nO6Smm ztyJBcyFbh}>lbwBzqeeKvOiq4${jXD%?2zGkVr263Y0RMD)uTE-R9LZVs>=)&MwUJ zA`k)3H#YfJi1Hh`Hc%4Dj4M&Ax)m;ET=o7nbyZ6;ksy$m+`%7f@}_LS&vEX{L*^{c zt2U4f0IFoGCzg8J(ZiZ17^pO*5N z-?W;vsNJf|*+_?!rp+&!>boSF@)1a~i@R=>Cig~tXr#0@S)pQJUNHKdFi|y?<>dVt z$Dx|sQ@$)B!mdNRbPRzW$MNseWItv_sa8ckzkIUa@_waDAXa1q7|0dhS6}P{Lp9@O zrC1v3J?kPazaG#5@=58R5AfAsK$z$GT>PY`-% zmNV#$lyXqnVmMkbKk#!!%1+^Ihpwh))f>vsYeEY(?Uq6|F8uO4kCDIzl@`x%)Yf@SZv)2v$(r zgTR^FaXa0CuE*LX%DIJ#L#v*s(P1|h=%-{ zW7k=Ez=HF4u*0^xaO7n8W+nMf>?iQjp-jl$M&1C3b7{u*1^2C zc9Bw4GAk}rT#?$}a9+E}3O(CZizj*FxpC9}=u8bap@dk{PqHzn!|J5qJz$Rt2!s=w z`9V7TrLPUX-!A__^PwhQmqDZ&V)dL7qN6A)wc-084S{?S3 zXyDbKcEc{}#P|J-LU<$5Q()CE(aguLsiKRDm zcCK|@6{vI7cc<+i90OA#(oi9P#w-|B{3k=o0=LvKbR<*E-E8x*s*OZPx?jD|>aFeAWA!sEd+?WNYL! z3=P*%*G}IeMVP$M(I06pd3(7mKWh^yz_*54)My{7)M)?x{+mkC0tX`fyC9`Sk}_^`K@1R+NXHxgp~uxim2`dR&B zW8#@>6wwNYQ0llaukSd{LZ3geD|tP6UTbk4zob zg@$!_I%1x#bt%R#w$?qwZ;(;NTfd>Axf5$cf!oImntlR($hrUOptWxsX6I2RXNk5y zvR}fvU{+S2?9@2nT}6ArzQ6}08*J*g{>!flhizovQt{Vx*$9KzG5Wz{x?eh7F|(XH ze*;i0fIXt^kgw%ixS!T?4JUEtb~5YpI~RQGEO>Ngp&wnX5| z)O1fOjcH1~cCw1~v$C@DGb2~G{(SyWMo_Z4fVb_SLw_7wR`cT8-`?ILv(LrOT2+{z zRj1P~^4OBVR4n9XE$HxAaVs*gCULr!vZ+8ev?fk4L9|EdjcKbEdE_!~o2?8e6jwWA zoTj;eB;#4d$LB6Bs&L#s`I=ICpJIIsbst1E6uHkEHK3zBdxSgIbbW3IqYB7PE!){D zsS_M3TU9=NM+ZM*Ck-=HwDoH~iFlWSW%+A*fn}WE7|j?@A5|02YyZyvKFQ1}=;FP4 zy(BAWJ3Ks5=`SbAjADu{@~f0ZIlN59uPCq7dZb6uSOkGNbhPulI%Y=k7t(%eF4AmL zIhTIg?jfo#EDe^^)B;}b&nKNN=t+8%mq6(RA9~YoP|T~eqlG2&sf8D^rgA12^*5Im zQoSg z)ttzw7{E8osX1d4{vEQ%3>cU#UbHQvAYWOSh~>z-v$>6HYie0OUSoT~k(uPCr`X$Omh zz4d~5$AvG5C3&fct&j@)!uHk@-`%xkxSGsW%M{sJfplUZ(7IHX`@B%~xOBg;GK!kB zcZ6ESkZ05G=C-5w{-^B&~kI_G=Q|V86B$iiTXdgb~*bp=NdYdf1(#^tJ;2oU)Rp+UDk=}6VE*W&ux5`EfH;z zVCc1Q9aIDvzN)m;s#6%XALbm+Bds?Lm0W z_LkZ%n=?)!&y`@x2VVgFd8m$CD~UDF*sIzY8vel=5aZOfa1DC!2E;h} zBby1il|R>g9BS#pcW8f3`$*mFkLwWsT=bE;?VWWC>%kscA?X8b29+=_yRJxo_8etD zGOw!0T6P@;JDy8pkRWUZJI~tpK)Ar>petAe1U|eV3^x`UGGMN- zGC~^xRzh{CaCFcJ>;UB-TP2ZRtiV)?Kh{bry?(HFaSq>w>7}`cvy&(Zjg<@$XaoOB zUm`nE=A*=8_yqoy1+js!5wrtgrH+_E*+K2XWis%{I`X~9ff~t5oFEhg^*~tZBX*EH zf<7z?*da*RTAF(_n-n9O1!RjbgjXLOgo&)9*((i;lH?E}d@9X7k$p#*ZZ{2!G06@} z393WEXWZ5c*av` z33jLuHlfh7pEk#^V+T1Sa1qo82k9cOs`T2z+EM~@gmq<`=dx=s&RId}L2W3j61^R; zw)ES6fsF~5--Un6dJJb1QScj2M`IAPf!c$HP*T5cO9#5eU)Brr$$Bhi>r?RCPgi0X zu!C}gl2KOWd&^+Y7`HhBsiZynvIQvG&89OkHdsKlLGCE4vc1o+XMkS2FYdW};CF@iwd>81 zc-=QXafndSKOuIA&;%HQkN;s&2)6i#86Y?V02%B2Z)_!G>|_E&=m{c}Mh?M9|8Ncj zGyYRK0KsiCkg=Mwkg@pxR3<}k!#}J5S<0j=RRHHKk7?= zwrc665B!a&TlwaQO29B_b{c-OEafOjKz>l|xC6y0tT#**9=WXM$ik;JZieTGFcvPW zEk14{88NmTzT@N;()?orU9;A6hmO-wZvrRGdYOzR3xK{1>pWd7az~rjl-;uZv zZw~h*w=?ewgZabch?L!o9lyhQ#AFvLY)p!b?cOcrNF9Y9X_VfKL=`r`EWL)JIw0Us z-TZ}hM{qd&Ifo3~9k=t5TbUo;A}rJ>+5`6>T+*o10}Cf?$S6(=QMP}#T8;nXR5&&8 zmj@y^vS=Ig3fYG|GuW`-`7+rfGtVP{dLXjB%Oe~OgXtz`2U}33eRL?y%qQLBr{d?T z8|fVsLG|_#G#vY@D37$me!g}x@D2Gu+l$y0v5;u{)L|IfBmWg?7L(u(QvZ-o++z?E zde(Kp4%=J$V>%P2;pP60>|6L_gg<%bL06dlqv4Kjzz$y=)@J0}4jhZr3r$EwR=?C$ z9WJ>a`fh)f@sG#Q6be5~)q#th&sU)!?02kyN7Zo*|M1=Zu6~;8|GU0iGu6FHyA=tq=Y_>^v{yG^>3{)TEa)S)B?_R6T=MuuxJ&)XYE zJHj+GLvOgn8v5KH6uSdFs464AY+HF?S4MN~;(L5S?G1I1_rZtTEh{Z@cZBzgw%(0t zMtuuEl_2A0uVtja1nUkgbSKOdMNkJ-kFJ9HcyCTLdQ6J6uI=7|3J60u9>zsotp zZAXyQtnVVfCfNG%{4-H7pTyA41(_Lw#aK1btQ?lpiH?>TYD z2Ws)EZh>5`oy-|NN2lA5YxI99&WU{S9>O~VRdcg;=8qnl?QhZ2aWI<=%hAqB2*Tj{ z7YCtD$S<>(%{?4!`1mO}(b0a&_o)5(%+Ih0*&2au?2qnt`9m?@KPe%^`9;@c$w>DP zj!n$^&y{6zZh?CSw|;{@y+6L=L!JF1e=LxV-+Oa0`|uQm7`Z#7uNUq^T&hp}L*Ct3QvN9tu8R__;c{GQSAH zPsKcQQxk8&TrsvY`#~9C31Kot8wNS=YHm|rrCrTF>T@%_eKx@H$7hP^iqP!e9H8IL z+Eu?IxjK2w@{lL{af3;}+Yr8R+1lUg;cHCZPFe%Ak+S^JUgl3U7xn!BOgPp?{P0di zIO_(O8_`}d{Ra}};SN!_?A2s{Lo&C?Lt@d zjF8H3XzT-5JyhXn92MbcT(;k1*njp)rVZ|x$n$N_7LGi6%zbHojTGv)kS?ekma zu1swnMKs6~M1Ua!I-~fBF9nK}&vwK&c9`XKl3y2@vv}I315;|oC(ynld_hg;QA$Cm zXJbx(isA0Ajz4=jCly7z*Y&k`-)!2f%zXR%uut;gKuMM?L=evryXY%RKIaq8lI{8Y z-R}i?AS|-Vq*J+3Kn_y|Exi(MqWTy*)dLiabV!Q0v>Ng-t{O`aR$o0iR0rN)kC(J> z55Y~8{Jz$1CT?~nz8Z$Q3`rgW7o56wze`vsPRN*{rkqZYlV=A6V2PO1cn~Rbwo&kk z)YE&?;Itkvq<1XSehc>fdd1`8Fk?f*ic-?5igqod@>sw@oMh>jozfvIKl%}&+%8`d zX4r#(T5u9aPr)4RZmOqt#YlxKQ}}!Sb?}Zr@y>Rs&N|l|#;ai+G~H|6jvb4oQD=54 z%fIEhL~03t&Bc2%E>HN~`x726b!W!z?*Ow?@iDa8*XE!x)>%5%6jNOOX8D50#U?T< zJyMqp4M!NZTRE8E1uRy{0tBS4Qe&J8Rg;&FK|R63dy{#Z&?{%UgDX;m!|=j3N&`~D ziCNc>0E6%+>fWM&zhS^)I6#v?Xxe-dp{PF^Lq!r6!=D>g9iQLmnLiYz1Bjb<8g)n; zhaJ2gJ~gfEDcH`qO-NwKHdC5t4_IgcagowA+}B$HF05&lqLH=n3TuVmoPU8*O9TUa@UASg~!}PJ_m_oiw)Xn|;nb_jC6C`Mv+c z#F%4_@AI&{U8dBoEN1I$RzytVgjGAzl(2$ST-~Pb#n(cGlwx_y?gW!eNG=wJJWIqa zDjL&Owi0_{O{c=DhR;|YDlUJ+4+KzRs_6JswtGera|E#YZ|SCH&@TdG#-p%$^PR59 z9-vEozPWlNzSbO)ewzk~bb@yfnbh|)InK00h<1$+(AYY&D?1decksl6R_~>2t%4q( zb{f-Qai()H@YD9&$G!C)Szt6Cefe`1FECt3y1+83YVDt~na~ei8QRCp-u(ZdGNYpu zCkh}3R>T#~jtClEtJNIDj^e%rug2JHaV%R5g1OoytAd=RT>`3|0$vo;zZ1ggEMu)S z<5}d)A$Uue4H-$q7dP}FKD#o#5>%O+suedhyV&^vZ#}iK-*5~WF9~~*#ACUi!IhX_ zVI#dzXL+Yc7md_SZCkP>v91W^~4+$af1o)f3Le+9{4sfvq?f zxzZJ4hfh*##rS>2qwEbdZa=JuM4kKIyW0VgZ!%5()h>5hp=DpHigq`1Rh}E_Maipl zSZRtI@I*ys>O@5r1UP8I?n4zMBvxd0ICp)!mu|$P`8%%rc22~5Kh-xXq?Y*63L zkJv>Ck4XRiAMY($AR_UZDscFm(fz001~Rq=N_Ifk|Al(jQNlAu_tA|zwVAOFwKNy0 zP_2kT)<+Pr1~cEw=kS7Ot5gx<9F|fScj-NcDwxL$*88hNP<@-n8in;a;XYvh3ih5K zmG8D8;|FdZSc}#6a>{+cy?Jp?*te#!bU<&TJr5{C`qe@6}HE84cxPpOX2|^ zl=)DDv~3Cra(FQY6(H7}w@sddgZ`W zL^wah8!j~ZnDJ7~#?jDbgUfd*wNk6#6Kd(|fShEm1Q!ysIwlTIvt#nnM*juEGR{z& z_JOnw++Si1%N)L~we_`}}T-lDP( zz``XC#$qaxqw)eCw|(KBEa*=1iTtlm$;!30P2pSl1Da@z9Wr% z6V;!f3whL`K|L(0SPO7*;Rx9v&TjboP&Rdi`9vxp)P!>LeU^|}+b8bYix;Iqu3zPL zwgq3ej`K0r{_LRmF9FD;bKS9N(Adh|Df=>wHR0+$zSk$N5=^0+1k&kieuUa9)eWHzGr# zRfKG62o;+#T}mR{raeOW6Du(2I)n9?b;~=G?6bI^n?t}{V4v)PTU>q2? zP_TwMBpMd-$`3pHuhNW3NOCtSb4mGK6#T8buzcL`F{gNN#=IwgBXJ!{Q1Q?p(1pVzfttZ$dNVS`>2tL?bV6xC18+=ncHwH zMOUPFNnwBeu0?=a)vp;hh8~o)8YBZd4Z$81J0;`d3MJrGksv3ElN2CJ^cqr0lziNsEQe9-MY+E~rr^uqgrk~InfpAP^K!K4D-O)7QZg&WklY6O-l zg6TkG{i0(vlGt-c?(Dj5{RJf`vqBP;)0zn(TB3aWA{+q*Y(~Ao-GsZ3OkaIKuPHW= z9{W(z{L5985NAPmK_YkQa1bYw<>ifb8hmLX&HcF8bv>;r#^jOeDZt~~unlo-Lwns; zYCQa2zLvq@E$moS?+3wD56g5+W*pFi&h&UCSM@@;!Z&6q_|@F#D$-~^MwmxJr}6}qu5X{2lKlpt`>u{<9xlNKhO6@pV=d@NK)cMW)VQxYbL zWtBS*EjjLVfHNOY51&5SX5Dc51M`2)lTdO`8F1J23!JfNPyqa*J z^h$!j3$pYXgll`-#&#rjBFB=_{Xha)Tk?6S(d>^2{vb<2yQA}G5ydcMjDsjlG#wN} z>{U~=nR=Om3f!Y)%Q&D{=XAqBeRQ>tV{7?zmaN=a<2rSt6U8mZTGnm%h9*B(m%iM| zncPv5xFilzQE|e8b@1%Y`KkjUzH!Opw@D>XM4ejz*J!XZ%xPidwUg6ZMkjc#Y7AkT39Xkhp}A^9qhTF+ye#9_~_G~!;w_JW_UEo>nCp? zTdX4OuDp|>(L180@16=Erl^S)NJgagueh1hL4sQen?b*|9D*5oeXcqpej3R9kq7K$ zi8ZN9p9x-#mCI7Ogw%`Z=a3KOq5_HwvBgH2BPA8YY2`&}Ym-!SL8|#t3*W>sn9Ks= zWn*D}%NxCMWg#2mM_FX_n8)68DQ`<;pp=IP8r9v;YA}ynCb;Q_MetIAxij@bWIr-R zKPHxOO}<8@%-IS%i}f9_?!Ln>Uv3|r^N)_%|B(OSK!@H0_eF5ei$`nrqew#pq4KveDE#I$*8hPb(Xh`hKy z+5AcCA%FQDevjn1{O+mU;@eUX9djF7^+F{X)qQE&%Z7_bY6hN+|8MK&g=B8v zWYQ%!sxH}r;H2w1rud^EtRC4`Kk6U#o@8;i&_G7#_2er|vE-YQ{6fBSGaOrI zCrC~L9cuW_ux9So6=z>RS1!#7UILxo2cFiX3&#dQ%s+8Nc1{G}cMm-ly#v{NO7B&x#7Nw!dLB?UH1xU~hkw%D|hw=4BL zh(GGW`pWk_NId$$e(x%);w~=X>PfJ|#}rdXsVl+tS&4{M4!CN7R5GKzHpknSrw=pd zl{AN5n3A>1vQmrR{h6%MJ%)3a2$`12!j9Y@G`s>gERN32>) z=nAAp96VI1iw_baZ^@1EbX3_qbeRuFC22cyPK&S-18y<)u)S5dMHs0M4vqI%I`Z13 z^^~e+%101d^V)^<)NH0X6QU2(M<$QTt}R=OUbCubeTxUC`Wf$&Gx}el zg6Tf!{AppLSEK>#Nhey!QiVLEvkY$2iPVdi{jt;X3r1aV>~3X%a|l(4#S+K^wEyB2 zgy(K^5Rsnx(gVOgp44c@HkK@0XVC2fUt2f%y63wp@ll>!SnT(du|^)x-Ns7 zzwsH8$I3<&*pf#aUH#_HlH!3}q+ZbgfihrBASUY^0XqDppCb;A4X*W4BCNSutJ@VP zUy}?6a}109b#OInJt3a6_fGl)zD>RWDo-9@e@EUkl$jYWDbb&_xt}u@_8!yRGoO}2 z-6$&z)mdJ>0ouy1x*T+3WgI6RRaNlG`oXi}C7sQmP1)(w!hMzzp}(yyJ0|LO#^H zd#bOt5V%lZ_B9SmBg==lW5&z2?JiZd5>ro&J`ZHCo`CoMui9g`r-~uXU$N8-jI&+! zYvc|f6}y`OW5UY4!!JNt#og6O#;e9)}K{Q6T3a ztNZmK_2BN4`?-dLuDxggdAR1|gfC=m)D~4QqJ<1jR`J~~!{$9KR6ih@b?t0f)6%9k zUILyMZOWUOHtTEeUsWmLG5^snFY2A5B*P^EJUd7Cur>@0!+P0i)_xT!*%eDm4yu!> zptKt6E%GD#%b@DNP`yi?nUF%O7qS6zTunk`>UnI%bkxihNCkW}OH>0_%XJ9qzRB;)Cf67&X1p5uX|7TPmc z(UP-CAIZFtH}DPo^p-PgIQA40nq4itf*IU-{)LJtgLEjCHjf&`FG`x~VGC;?#x^L3 zmHPSF34c{=T!*SasVsPl8TO25f5#7+L*lCT>BG1~Gnt!gsq~@FKO+?uI_weArWtKe z@20P`zgFNh#FWscC{i0*^&jHw!#LcmQTusH>n(L`*GSjLu3fA!5zPEc!ed5uDy7W! z@jsq3w0mSwlArrG<#Yf3)2V4ibEE%_d9eAHg<*gLr{3zc50+ViI53Imqd%Oa(2vC0 zP?Ne0O@13H5kBwAgDLz>r@l=Bl5xuPFKo*ZWCt^9<3jfr#1xs-`G`S_fnTx z4>B%zzkA-l4RT(5q1!P8d|S9eZuNovlf}IY97ud>jI$6q6;k%&aZvs!cbG*R7WI zBrA=qnU{Usa}C*iPFd`H0VeC&Dp$wj8{7R`x6^)8LFW;2CMSs&e$8p^UKXo(EN zsdL!Lc$ajR3Xd%`2syzR)!^eC`RmP#$o%aZ&i!0Lqn_P1~w@p)N6o zR8U?NYEsFT&a&hEF4pklBIDk&eu?k+f|2-K1}0e1NuR4>^XD|55L+AB@En1XQ*)4I z>4A94C6N}P&`xK-M1qx@|(Mz7SC{8(3f|wLDH;bn?=!#x1 zCDVC2I!}VYNjee}u63>u5JdW`B#PpT_2{y*%u{&b>jV*@vqoY9)J&SSRP%xg|CxOS zOT}xa6^k?hkL>`Gc&&In36vxu!meSrZ$uWu>~KydwZs&4D&vSYR6qHuc$vzH*A%Y#G_bDqm$cg-?514<2K0R9tjsip`Rj|=8vF; zv2CEF4N{5|i;Vj6gTQ`{UM$CK=}5~bhz#!4`aLe8g6|3uBm*^9b(Ge>*^Z!dLr5m3fXO>kwbWtbJWV<2 zBzv&tpRU*nzs*<^Dt{4_lyD(OpsLp4 zFHPo5-dvWcr~Ot^FM|VRT2mQg^!zNF5td)(=RwR*{!yCVaKY>ExrzQUGeM6*7`i3* z?N8avvK_`zNt6$nc=BaAgV^eq#$QFGk}Ot3F*S-m31*pL;z=askI0__Y-VU|Lt0b+ zGE}p1Wz3li$TIh#2fKfdIb*#E%?lIAH~gB!J>?qaRna2L8g--B*ziv1&d}LDRmDxKL1V z2yz^6?e#uc8)uE)Min}D-DYtzd1Ya*BNqdgUR;ZVfotE5860}TbPeOHng6qQnsCE` z;I`EqXU4%fP?Nf^?oF*&a^@L{M=TX@#7>H1^YHOnv+#P*>Cj}^D*;taMqaH>kA!ge z*Ec9c-6j#Jr0ZY_3{%tU>A&%zuj#|kvc7LrGnS7;U5C_|MEg0g1*Gbsx(4ig$XSD| zt#2u!PTCK;&>QJ77qR=e2s@b`f`u975adbrW2*eZzewY%JCfM^S4#JLz&)YwXlD=A9+vjI(Plsb)xrOSU zVL&x3a^-e(m)v7wHM*wEZ5V34Ed5;)x`H_DRoN|pFqktaub{qWmgZbB%^o`JlFpyD zd<<3%sIVW)^W&1>4L{Lb{10-;u^f23_h%-T`!kdKPqUVk%$%((|6l#A{Hc4E|5SxZ z7%n>Nel*!HMXw!BBr|K!w$C`suv0Mqz``+nAZ>1Lp++zw|W}lBlbb zxb{mZh5>%MKn~rf@Y(d-ZDNgeF#qZGW{2{NI~{EZF%3zP!54c_Ey15b_IND>>-;8C zr)ZM*p&Ec~B1xL0n(+`|$GR7_wYRw=*rwjHDUehM7=rB#NdqE}D8cT>?u{eoJ0sR` z463KZw`Ock9JS@2G(WLSgtJ9Ibs0R@bOv>UE=RHq)e%5J%11Gh$l4Mg1d1_T+^}dg z6tR4wAFjDAOJ@$V#wmQ7%w{&^9n?GEy+67+tOqH575YEPV`r=t# zMJXG%C~C^u{eXa7I9uz@7qM&2R+=qbA&utMv{g-?n(~f1f_jEyQ1N_gB_@vU0YUUF z^9q5I=NP|k4gE~G;JGTXhR?ft3w{VAFe}$7DG0{^vQ4%!;!`_c>AK3krR+9dAf9J* zvR2_RcsU7V+Gj^leC$t+gK5(OV(0$8{H{X1SX22#A)5fVEAJCErtk2H8vB&pmVZz(^!7wUB&V-3AA^gvRwW!i0%L`r78 zc&>PxAr*0DwX#6dtL7~4z1H$6_5saOWh z)QPyuGka4F6u>SB!ys`;f{Y8aTwD*&{ogS@0+62lL;p)Rf5jkWSvpYgFG%P_rssKv z&B7xS58{JfXkS`6+hUFA*W}#yve^Bh%^GK6mn%TR9|L|_; z67k}tV7}oc={@45orYjWmZTbEgt1yS=mbdWx*JR&h06~~3up}2_9IbEBv52i%STwo zTe9Bba9hn2FQP!OVgGFjwIji_Pn0s($cZJn9WeqY6n4)iZjL&TF!7jh#zG|u19VF- z&pbe%CgE1&p*LId25q|o>z%XlI##6o|rI^%Dt(x1Ec zD9IZvy?0Wu(tVVV3%gk0(zg6u%-X{208@BAJf1z|aOcs$6kh1`_a>qA=e38M{JZ@XUrLPgduI2(9MF(*3I7`HQ~)J3X51t}P?TV62IeSQ9zK

lUpeqFVUiU`r7Y)G1l=`$ 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 z%0D>On48RPA-s(;&Mk6EH(}BL;X;@lvM0jM+wG#{T1T_;yOusrXKTHhUq#i4blgCR z<&3(K)TPQd)Ui9J%HLx`I&K%rSKUCzOY4%yi?LbF4@&_`l=KVM$ zi#mD^CjOt^nDZOJr6l<2O#wf>|LJULB@2`PChu?}hcAxtKH!RDUcY2OPrvxn=?2k` zica=8u_;AGh>7e=2;~zhs~)mhZRg23y~+{%E$%bq+br>IOq^CJ@)Y)wb^~AidKwA| z6iwV->N3kg#syC@-^-#v_Xq4I3-1hyU?OSJ4qh;hSTrb%QLEP$N8VC=<`y@YNULeD znn{FZxs!97Y`OLrxHgru1szgli~}3|o6aZSW_iZB-`~!ChA*zlp{}F5qpiE%$hum+ zJWtVeh45ghisdk**NawPfUBhITq1Z_W{<#g(QVkzg5^c2@2eP>688Y(M2#`GO`p}e z-(}}jz)sU~o$Zs@S<7;P?40P}50UaU3taqOY|}vsXtL{jVYFt3P%lNs8oa)88B>(! z!c&7|>PSgK3vbY$aiY(`Z=VHW3R(u4#$#K<75lHf5tT#BOyvf7ZIwDjGmlxX%nUvG z6i2!ujpGEpsCngA5W(9i1Zi{I?jS9D#Q!eWRhn{xsiEifNZN(=guBg(MyNyJz?%`U ztGbi^14Ex0+!6f+ShA(N>?*gbJ^Z-Au(xbb;ytur5}K6B{h5LW-$ipqR|OTLqcNo%X3g_h5-_&kcCZz^juC(WzhAz)%arFS*rviReZU>?LYj9Av42CwpXcK6W*&KP ztxMMI_#}jl9yG%6@t!F_9tGHRNqhY*Kf7oUTy#e;<4vUeN@4b7^sC{gXMX4o{OS*) zT@H{+F$|gUBeMZo4?-m?xiFDzUBq=t2$@+nwi3LwuJ`LJFF94=z{R(T z3z8m|l-=b|oQo_MeT9l}n{%b&6wzcv+vT4C71_VckIN;z{ts>E_?LOOwf$ytUD=v! z+qP}nt}ENNC);jvlWj~kC)@S3Z$0ljIw-`CUAKqLvxVjQ$=vZ z&d|(wEl-peUz}L{XjLt(gC$SOcS$u(FRlnEY-w7b^pkn>spl!TZoYZ@O@3d9Z3NW4 zV*!##IXvANOwWreRXeWr%Jkb}?!H98s^(hb0g12)fnqe_P~AZRxosQU9%Ozv;na*_ z+TKh(Yosk#OJNw{0kma%3wf3QR;n3Apej;&Wq(wEVH7O!p-#KPc1rZ6+IyzD*>Me2 zMq0qRDrPMFK3}2*7ddin$1X!1abz|Z(D0FL7vGzeJs|Jm%9$k$}n9vPd3RAQ`!iqT&g_SNYUt#YtekTeffC8V`# zu0xhIo;@#>WSt$OO1n=ox7&%r*5C238Lfb9tR9&do9P4)XVzaNf#2yl_ZgkK2eXL~ zY?|#kxepR$LG_->Nirv88EgtU)$}7#tzPx^AV%g$G$$oOwL$gytKdGLfBifka!Bl@ zmK>#48y5!Uy6Zwj8n0%unUuDpoxZV>Zgtqh8N71XT|JyTSuexWac&|7(_8#gMYN=TBebW7o|{6Zxh!+nz#@M+uviY8p|YA zvx7PyrCFFhp)gnP?^W+h#JOE2EtKLY5ucW8zAZ}mNazjjMy061vs9QmNcoS&*~Y=d97_POJ4^a51a0nff_9sRaR--SPn0h> zI>#ksbYDvl3>1vaR;Eo$aXwTG5p?FqZtll*w~LId*XN^Qc@XsaD#F0B!1UN316ZNJ zXFhhD3zeA3n;HgE;kSeX4W|^sOsO=LGC)7vI8w>5+rDtmQp0JVaz3L-RU`!7SLB!r zz$n~s3Tci*hRu8D9Cms+cPmGK)wkQgrV1^pGt(JI_Sb<5re~!PdXYJ&YG{VaN4OMw zYvKoY5n%uBh8@Car@0KlD%-DfhTN$p6)k;Y4-z9pr{Is z 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�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 DhucvOnoD5x6s{zQW{Ln`pHz)DO6P{ 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⪻vTE`67 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
*= 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 uPGtb+4A}j`VQ_=Ldpk4^l_r#nu|zr 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

Qdh+$ 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

QTAJa?ULe=-y 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 =)>tkxf@qJ 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 z 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⪙?F|HEWjq5RrSE?hRUrnU+MEiSv%YM$rvvy``CQ? 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

hO^`-NmL~t2xQfD21kT{KA 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 z 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 Date: Fri, 11 Jun 2021 15:14:55 -0400 Subject: [PATCH 105/813] Update adapter jar. --- .../src/main/resources/worldedit-adapters.jar | Bin 560880 -> 560912 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 53912ea669017c9118c6f2670ec459ca8924aebf..6cd3e628370de8ca30b210fbe0a554563c709196 100644 GIT binary patch delta 35023 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 delta 34977 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 Date: Fri, 11 Jun 2021 12:38:22 -0700 Subject: [PATCH 106/813] Update MCUtils for 1.17 (#1774) * Update MCUtils for 1.17 * Re-add deprecated grass_path --- .../com/sk89q/worldedit/cli/data/2724.json | 1 + .../sk89q/worldedit/internal/Constants.java | 5 + .../worldedit/world/biome/BiomeTypes.java | 2 + .../world/block/BlockCategories.java | 32 ++++ .../worldedit/world/block/BlockTypes.java | 138 +++++++++++++++++- .../worldedit/world/entity/EntityTypes.java | 5 + .../worldedit/world/item/ItemCategories.java | 15 ++ .../sk89q/worldedit/world/item/ItemTypes.java | 127 +++++++++++++++- .../world/registry/BundledBlockData.java | 4 +- .../world/registry/BundledItemData.java | 4 +- .../worldedit/world/registry/blocks.117.json | 1 + .../worldedit/world/registry/items.117.json | 1 + 12 files changed, 331 insertions(+), 4 deletions(-) create mode 100644 worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json create mode 100644 worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.117.json create mode 100644 worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.117.json diff --git a/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json new file mode 100644 index 0000000000..7ab3b9fc78 --- /dev/null +++ b/worldedit-cli/src/main/resources/com/sk89q/worldedit/cli/data/2724.json @@ -0,0 +1 @@ +{"biomes":["minecraft:badlands","minecraft:badlands_plateau","minecraft:bamboo_jungle","minecraft:bamboo_jungle_hills","minecraft:basalt_deltas","minecraft:beach","minecraft:birch_forest","minecraft:birch_forest_hills","minecraft:cold_ocean","minecraft:crimson_forest","minecraft:dark_forest","minecraft:dark_forest_hills","minecraft:deep_cold_ocean","minecraft:deep_frozen_ocean","minecraft:deep_lukewarm_ocean","minecraft:deep_ocean","minecraft:deep_warm_ocean","minecraft:desert","minecraft:desert_hills","minecraft:desert_lakes","minecraft:dripstone_caves","minecraft:end_barrens","minecraft:end_highlands","minecraft:end_midlands","minecraft:eroded_badlands","minecraft:flower_forest","minecraft:forest","minecraft:frozen_ocean","minecraft:frozen_river","minecraft:giant_spruce_taiga","minecraft:giant_spruce_taiga_hills","minecraft:giant_tree_taiga","minecraft:giant_tree_taiga_hills","minecraft:gravelly_mountains","minecraft:ice_spikes","minecraft:jungle","minecraft:jungle_edge","minecraft:jungle_hills","minecraft:lukewarm_ocean","minecraft:lush_caves","minecraft:modified_badlands_plateau","minecraft:modified_gravelly_mountains","minecraft:modified_jungle","minecraft:modified_jungle_edge","minecraft:modified_wooded_badlands_plateau","minecraft:mountain_edge","minecraft:mountains","minecraft:mushroom_field_shore","minecraft:mushroom_fields","minecraft:nether_wastes","minecraft:ocean","minecraft:plains","minecraft:river","minecraft:savanna","minecraft:savanna_plateau","minecraft:shattered_savanna","minecraft:shattered_savanna_plateau","minecraft:small_end_islands","minecraft:snowy_beach","minecraft:snowy_mountains","minecraft:snowy_taiga","minecraft:snowy_taiga_hills","minecraft:snowy_taiga_mountains","minecraft:snowy_tundra","minecraft:soul_sand_valley","minecraft:stone_shore","minecraft:sunflower_plains","minecraft:swamp","minecraft:swamp_hills","minecraft:taiga","minecraft:taiga_hills","minecraft:taiga_mountains","minecraft:tall_birch_forest","minecraft:tall_birch_hills","minecraft:the_end","minecraft:the_void","minecraft:warm_ocean","minecraft:warped_forest","minecraft:wooded_badlands_plateau","minecraft:wooded_hills","minecraft:wooded_mountains"],"blocks":{"minecraft:acacia_button":{"defaultstate":"minecraft:acacia_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_door":{"defaultstate":"minecraft:acacia_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence":{"defaultstate":"minecraft:acacia_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_fence_gate":{"defaultstate":"minecraft:acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_leaves":{"defaultstate":"minecraft:acacia_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_log":{"defaultstate":"minecraft:acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:acacia_planks":{"defaultstate":"minecraft:acacia_planks","properties":{}},"minecraft:acacia_pressure_plate":{"defaultstate":"minecraft:acacia_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_sapling":{"defaultstate":"minecraft:acacia_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:acacia_sign":{"defaultstate":"minecraft:acacia_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_slab":{"defaultstate":"minecraft:acacia_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_stairs":{"defaultstate":"minecraft:acacia_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_trapdoor":{"defaultstate":"minecraft:acacia_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wall_sign":{"defaultstate":"minecraft:acacia_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:acacia_wood":{"defaultstate":"minecraft:acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:activator_rail":{"defaultstate":"minecraft:activator_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:air":{"defaultstate":"minecraft:air","properties":{}},"minecraft:allium":{"defaultstate":"minecraft:allium","properties":{}},"minecraft:amethyst_block":{"defaultstate":"minecraft:amethyst_block","properties":{}},"minecraft:amethyst_cluster":{"defaultstate":"minecraft:amethyst_cluster[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:ancient_debris":{"defaultstate":"minecraft:ancient_debris","properties":{}},"minecraft:andesite":{"defaultstate":"minecraft:andesite","properties":{}},"minecraft:andesite_slab":{"defaultstate":"minecraft:andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_stairs":{"defaultstate":"minecraft:andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:andesite_wall":{"defaultstate":"minecraft:andesite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:anvil":{"defaultstate":"minecraft:anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_melon_stem":{"defaultstate":"minecraft:attached_melon_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:attached_pumpkin_stem":{"defaultstate":"minecraft:attached_pumpkin_stem[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:azalea":{"defaultstate":"minecraft:azalea","properties":{}},"minecraft:azalea_leaves":{"defaultstate":"minecraft:azalea_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:azure_bluet":{"defaultstate":"minecraft:azure_bluet","properties":{}},"minecraft:bamboo":{"defaultstate":"minecraft:bamboo[age=0,leaves=none,stage=0]","properties":{"age":{"type":"int","values":["0","1"]},"leaves":{"type":"enum","values":["none","small","large"]},"stage":{"type":"int","values":["0","1"]}}},"minecraft:bamboo_sapling":{"defaultstate":"minecraft:bamboo_sapling","properties":{}},"minecraft:barrel":{"defaultstate":"minecraft:barrel[facing=north,open=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"open":{"type":"bool","values":["true","false"]}}},"minecraft:barrier":{"defaultstate":"minecraft:barrier","properties":{}},"minecraft:basalt":{"defaultstate":"minecraft:basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:beacon":{"defaultstate":"minecraft:beacon","properties":{}},"minecraft:bedrock":{"defaultstate":"minecraft:bedrock","properties":{}},"minecraft:bee_nest":{"defaultstate":"minecraft:bee_nest[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beehive":{"defaultstate":"minecraft:beehive[facing=north,honey_level=0]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"honey_level":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:beetroots":{"defaultstate":"minecraft:beetroots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:bell":{"defaultstate":"minecraft:bell[attachment=floor,facing=north,powered=false]","properties":{"attachment":{"type":"enum","values":["floor","ceiling","single_wall","double_wall"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:big_dripleaf":{"defaultstate":"minecraft:big_dripleaf[facing=north,tilt=none,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"tilt":{"type":"enum","values":["none","unstable","partial","full"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:big_dripleaf_stem":{"defaultstate":"minecraft:big_dripleaf_stem[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_button":{"defaultstate":"minecraft:birch_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_door":{"defaultstate":"minecraft:birch_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence":{"defaultstate":"minecraft:birch_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:birch_fence_gate":{"defaultstate":"minecraft:birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_leaves":{"defaultstate":"minecraft:birch_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:birch_log":{"defaultstate":"minecraft:birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:birch_planks":{"defaultstate":"minecraft:birch_planks","properties":{}},"minecraft:birch_pressure_plate":{"defaultstate":"minecraft:birch_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:birch_sapling":{"defaultstate":"minecraft:birch_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:birch_sign":{"defaultstate":"minecraft:birch_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_slab":{"defaultstate":"minecraft:birch_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_stairs":{"defaultstate":"minecraft:birch_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_trapdoor":{"defaultstate":"minecraft:birch_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wall_sign":{"defaultstate":"minecraft:birch_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:birch_wood":{"defaultstate":"minecraft:birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:black_banner":{"defaultstate":"minecraft:black_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:black_bed":{"defaultstate":"minecraft:black_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:black_candle":{"defaultstate":"minecraft:black_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:black_candle_cake":{"defaultstate":"minecraft:black_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:black_carpet":{"defaultstate":"minecraft:black_carpet","properties":{}},"minecraft:black_concrete":{"defaultstate":"minecraft:black_concrete","properties":{}},"minecraft:black_concrete_powder":{"defaultstate":"minecraft:black_concrete_powder","properties":{}},"minecraft:black_glazed_terracotta":{"defaultstate":"minecraft:black_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_shulker_box":{"defaultstate":"minecraft:black_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:black_stained_glass":{"defaultstate":"minecraft:black_stained_glass","properties":{}},"minecraft:black_stained_glass_pane":{"defaultstate":"minecraft:black_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:black_terracotta":{"defaultstate":"minecraft:black_terracotta","properties":{}},"minecraft:black_wall_banner":{"defaultstate":"minecraft:black_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:black_wool":{"defaultstate":"minecraft:black_wool","properties":{}},"minecraft:blackstone":{"defaultstate":"minecraft:blackstone","properties":{}},"minecraft:blackstone_slab":{"defaultstate":"minecraft:blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_stairs":{"defaultstate":"minecraft:blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blackstone_wall":{"defaultstate":"minecraft:blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:blast_furnace":{"defaultstate":"minecraft:blast_furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:blue_banner":{"defaultstate":"minecraft:blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:blue_bed":{"defaultstate":"minecraft:blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:blue_candle":{"defaultstate":"minecraft:blue_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:blue_candle_cake":{"defaultstate":"minecraft:blue_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:blue_carpet":{"defaultstate":"minecraft:blue_carpet","properties":{}},"minecraft:blue_concrete":{"defaultstate":"minecraft:blue_concrete","properties":{}},"minecraft:blue_concrete_powder":{"defaultstate":"minecraft:blue_concrete_powder","properties":{}},"minecraft:blue_glazed_terracotta":{"defaultstate":"minecraft:blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_ice":{"defaultstate":"minecraft:blue_ice","properties":{}},"minecraft:blue_orchid":{"defaultstate":"minecraft:blue_orchid","properties":{}},"minecraft:blue_shulker_box":{"defaultstate":"minecraft:blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:blue_stained_glass":{"defaultstate":"minecraft:blue_stained_glass","properties":{}},"minecraft:blue_stained_glass_pane":{"defaultstate":"minecraft:blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:blue_terracotta":{"defaultstate":"minecraft:blue_terracotta","properties":{}},"minecraft:blue_wall_banner":{"defaultstate":"minecraft:blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:blue_wool":{"defaultstate":"minecraft:blue_wool","properties":{}},"minecraft:bone_block":{"defaultstate":"minecraft:bone_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:bookshelf":{"defaultstate":"minecraft:bookshelf","properties":{}},"minecraft:brain_coral":{"defaultstate":"minecraft:brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_block":{"defaultstate":"minecraft:brain_coral_block","properties":{}},"minecraft:brain_coral_fan":{"defaultstate":"minecraft:brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brain_coral_wall_fan":{"defaultstate":"minecraft:brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brewing_stand":{"defaultstate":"minecraft:brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]","properties":{"has_bottle_0":{"type":"bool","values":["true","false"]},"has_bottle_1":{"type":"bool","values":["true","false"]},"has_bottle_2":{"type":"bool","values":["true","false"]}}},"minecraft:brick_slab":{"defaultstate":"minecraft:brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_stairs":{"defaultstate":"minecraft:brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brick_wall":{"defaultstate":"minecraft:brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:bricks":{"defaultstate":"minecraft:bricks","properties":{}},"minecraft:brown_banner":{"defaultstate":"minecraft:brown_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:brown_bed":{"defaultstate":"minecraft:brown_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:brown_candle":{"defaultstate":"minecraft:brown_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:brown_candle_cake":{"defaultstate":"minecraft:brown_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:brown_carpet":{"defaultstate":"minecraft:brown_carpet","properties":{}},"minecraft:brown_concrete":{"defaultstate":"minecraft:brown_concrete","properties":{}},"minecraft:brown_concrete_powder":{"defaultstate":"minecraft:brown_concrete_powder","properties":{}},"minecraft:brown_glazed_terracotta":{"defaultstate":"minecraft:brown_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_mushroom":{"defaultstate":"minecraft:brown_mushroom","properties":{}},"minecraft:brown_mushroom_block":{"defaultstate":"minecraft:brown_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_shulker_box":{"defaultstate":"minecraft:brown_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:brown_stained_glass":{"defaultstate":"minecraft:brown_stained_glass","properties":{}},"minecraft:brown_stained_glass_pane":{"defaultstate":"minecraft:brown_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:brown_terracotta":{"defaultstate":"minecraft:brown_terracotta","properties":{}},"minecraft:brown_wall_banner":{"defaultstate":"minecraft:brown_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:brown_wool":{"defaultstate":"minecraft:brown_wool","properties":{}},"minecraft:bubble_column":{"defaultstate":"minecraft:bubble_column[drag=true]","properties":{"drag":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral":{"defaultstate":"minecraft:bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_block":{"defaultstate":"minecraft:bubble_coral_block","properties":{}},"minecraft:bubble_coral_fan":{"defaultstate":"minecraft:bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:bubble_coral_wall_fan":{"defaultstate":"minecraft:bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:budding_amethyst":{"defaultstate":"minecraft:budding_amethyst","properties":{}},"minecraft:cactus":{"defaultstate":"minecraft:cactus[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cake":{"defaultstate":"minecraft:cake[bites=0]","properties":{"bites":{"type":"int","values":["0","1","2","3","4","5","6"]}}},"minecraft:calcite":{"defaultstate":"minecraft:calcite","properties":{}},"minecraft:campfire":{"defaultstate":"minecraft:campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:candle":{"defaultstate":"minecraft:candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:candle_cake":{"defaultstate":"minecraft:candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:carrots":{"defaultstate":"minecraft:carrots[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:cartography_table":{"defaultstate":"minecraft:cartography_table","properties":{}},"minecraft:carved_pumpkin":{"defaultstate":"minecraft:carved_pumpkin[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cauldron":{"defaultstate":"minecraft:cauldron","properties":{}},"minecraft:cave_air":{"defaultstate":"minecraft:cave_air","properties":{}},"minecraft:cave_vines":{"defaultstate":"minecraft:cave_vines[age=0,berries=false]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]},"berries":{"type":"bool","values":["true","false"]}}},"minecraft:cave_vines_plant":{"defaultstate":"minecraft:cave_vines_plant[berries=false]","properties":{"berries":{"type":"bool","values":["true","false"]}}},"minecraft:chain":{"defaultstate":"minecraft:chain[axis=y,waterlogged=false]","properties":{"axis":{"type":"enum","values":["x","y","z"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chain_command_block":{"defaultstate":"minecraft:chain_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:chest":{"defaultstate":"minecraft:chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:chipped_anvil":{"defaultstate":"minecraft:chipped_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:chiseled_deepslate":{"defaultstate":"minecraft:chiseled_deepslate","properties":{}},"minecraft:chiseled_nether_bricks":{"defaultstate":"minecraft:chiseled_nether_bricks","properties":{}},"minecraft:chiseled_polished_blackstone":{"defaultstate":"minecraft:chiseled_polished_blackstone","properties":{}},"minecraft:chiseled_quartz_block":{"defaultstate":"minecraft:chiseled_quartz_block","properties":{}},"minecraft:chiseled_red_sandstone":{"defaultstate":"minecraft:chiseled_red_sandstone","properties":{}},"minecraft:chiseled_sandstone":{"defaultstate":"minecraft:chiseled_sandstone","properties":{}},"minecraft:chiseled_stone_bricks":{"defaultstate":"minecraft:chiseled_stone_bricks","properties":{}},"minecraft:chorus_flower":{"defaultstate":"minecraft:chorus_flower[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5"]}}},"minecraft:chorus_plant":{"defaultstate":"minecraft:chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:clay":{"defaultstate":"minecraft:clay","properties":{}},"minecraft:coal_block":{"defaultstate":"minecraft:coal_block","properties":{}},"minecraft:coal_ore":{"defaultstate":"minecraft:coal_ore","properties":{}},"minecraft:coarse_dirt":{"defaultstate":"minecraft:coarse_dirt","properties":{}},"minecraft:cobbled_deepslate":{"defaultstate":"minecraft:cobbled_deepslate","properties":{}},"minecraft:cobbled_deepslate_slab":{"defaultstate":"minecraft:cobbled_deepslate_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobbled_deepslate_stairs":{"defaultstate":"minecraft:cobbled_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobbled_deepslate_wall":{"defaultstate":"minecraft:cobbled_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:cobblestone":{"defaultstate":"minecraft:cobblestone","properties":{}},"minecraft:cobblestone_slab":{"defaultstate":"minecraft:cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_stairs":{"defaultstate":"minecraft:cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cobblestone_wall":{"defaultstate":"minecraft:cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:cobweb":{"defaultstate":"minecraft:cobweb","properties":{}},"minecraft:cocoa":{"defaultstate":"minecraft:cocoa[age=0,facing=north]","properties":{"age":{"type":"int","values":["0","1","2"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:command_block":{"defaultstate":"minecraft:command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:comparator":{"defaultstate":"minecraft:comparator[facing=north,mode=compare,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"mode":{"type":"enum","values":["compare","subtract"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:composter":{"defaultstate":"minecraft:composter[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8"]}}},"minecraft:conduit":{"defaultstate":"minecraft:conduit[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:copper_block":{"defaultstate":"minecraft:copper_block","properties":{}},"minecraft:copper_ore":{"defaultstate":"minecraft:copper_ore","properties":{}},"minecraft:cornflower":{"defaultstate":"minecraft:cornflower","properties":{}},"minecraft:cracked_deepslate_bricks":{"defaultstate":"minecraft:cracked_deepslate_bricks","properties":{}},"minecraft:cracked_deepslate_tiles":{"defaultstate":"minecraft:cracked_deepslate_tiles","properties":{}},"minecraft:cracked_nether_bricks":{"defaultstate":"minecraft:cracked_nether_bricks","properties":{}},"minecraft:cracked_polished_blackstone_bricks":{"defaultstate":"minecraft:cracked_polished_blackstone_bricks","properties":{}},"minecraft:cracked_stone_bricks":{"defaultstate":"minecraft:cracked_stone_bricks","properties":{}},"minecraft:crafting_table":{"defaultstate":"minecraft:crafting_table","properties":{}},"minecraft:creeper_head":{"defaultstate":"minecraft:creeper_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:creeper_wall_head":{"defaultstate":"minecraft:creeper_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:crimson_button":{"defaultstate":"minecraft:crimson_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_door":{"defaultstate":"minecraft:crimson_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence":{"defaultstate":"minecraft:crimson_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fence_gate":{"defaultstate":"minecraft:crimson_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_fungus":{"defaultstate":"minecraft:crimson_fungus","properties":{}},"minecraft:crimson_hyphae":{"defaultstate":"minecraft:crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_nylium":{"defaultstate":"minecraft:crimson_nylium","properties":{}},"minecraft:crimson_planks":{"defaultstate":"minecraft:crimson_planks","properties":{}},"minecraft:crimson_pressure_plate":{"defaultstate":"minecraft:crimson_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_roots":{"defaultstate":"minecraft:crimson_roots","properties":{}},"minecraft:crimson_sign":{"defaultstate":"minecraft:crimson_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_slab":{"defaultstate":"minecraft:crimson_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stairs":{"defaultstate":"minecraft:crimson_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_stem":{"defaultstate":"minecraft:crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:crimson_trapdoor":{"defaultstate":"minecraft:crimson_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crimson_wall_sign":{"defaultstate":"minecraft:crimson_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:crying_obsidian":{"defaultstate":"minecraft:crying_obsidian","properties":{}},"minecraft:cut_copper":{"defaultstate":"minecraft:cut_copper","properties":{}},"minecraft:cut_copper_slab":{"defaultstate":"minecraft:cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_copper_stairs":{"defaultstate":"minecraft:cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_red_sandstone":{"defaultstate":"minecraft:cut_red_sandstone","properties":{}},"minecraft:cut_red_sandstone_slab":{"defaultstate":"minecraft:cut_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cut_sandstone":{"defaultstate":"minecraft:cut_sandstone","properties":{}},"minecraft:cut_sandstone_slab":{"defaultstate":"minecraft:cut_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_banner":{"defaultstate":"minecraft:cyan_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:cyan_bed":{"defaultstate":"minecraft:cyan_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:cyan_candle":{"defaultstate":"minecraft:cyan_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_candle_cake":{"defaultstate":"minecraft:cyan_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_carpet":{"defaultstate":"minecraft:cyan_carpet","properties":{}},"minecraft:cyan_concrete":{"defaultstate":"minecraft:cyan_concrete","properties":{}},"minecraft:cyan_concrete_powder":{"defaultstate":"minecraft:cyan_concrete_powder","properties":{}},"minecraft:cyan_glazed_terracotta":{"defaultstate":"minecraft:cyan_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_shulker_box":{"defaultstate":"minecraft:cyan_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:cyan_stained_glass":{"defaultstate":"minecraft:cyan_stained_glass","properties":{}},"minecraft:cyan_stained_glass_pane":{"defaultstate":"minecraft:cyan_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:cyan_terracotta":{"defaultstate":"minecraft:cyan_terracotta","properties":{}},"minecraft:cyan_wall_banner":{"defaultstate":"minecraft:cyan_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:cyan_wool":{"defaultstate":"minecraft:cyan_wool","properties":{}},"minecraft:damaged_anvil":{"defaultstate":"minecraft:damaged_anvil[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dandelion":{"defaultstate":"minecraft:dandelion","properties":{}},"minecraft:dark_oak_button":{"defaultstate":"minecraft:dark_oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_door":{"defaultstate":"minecraft:dark_oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence":{"defaultstate":"minecraft:dark_oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_fence_gate":{"defaultstate":"minecraft:dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_leaves":{"defaultstate":"minecraft:dark_oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_log":{"defaultstate":"minecraft:dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_oak_planks":{"defaultstate":"minecraft:dark_oak_planks","properties":{}},"minecraft:dark_oak_pressure_plate":{"defaultstate":"minecraft:dark_oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_sapling":{"defaultstate":"minecraft:dark_oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:dark_oak_sign":{"defaultstate":"minecraft:dark_oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_slab":{"defaultstate":"minecraft:dark_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_stairs":{"defaultstate":"minecraft:dark_oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_trapdoor":{"defaultstate":"minecraft:dark_oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wall_sign":{"defaultstate":"minecraft:dark_oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_oak_wood":{"defaultstate":"minecraft:dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:dark_prismarine":{"defaultstate":"minecraft:dark_prismarine","properties":{}},"minecraft:dark_prismarine_slab":{"defaultstate":"minecraft:dark_prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dark_prismarine_stairs":{"defaultstate":"minecraft:dark_prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:daylight_detector":{"defaultstate":"minecraft:daylight_detector[inverted=false,power=0]","properties":{"inverted":{"type":"bool","values":["true","false"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dead_brain_coral":{"defaultstate":"minecraft:dead_brain_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_block":{"defaultstate":"minecraft:dead_brain_coral_block","properties":{}},"minecraft:dead_brain_coral_fan":{"defaultstate":"minecraft:dead_brain_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_brain_coral_wall_fan":{"defaultstate":"minecraft:dead_brain_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral":{"defaultstate":"minecraft:dead_bubble_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_block":{"defaultstate":"minecraft:dead_bubble_coral_block","properties":{}},"minecraft:dead_bubble_coral_fan":{"defaultstate":"minecraft:dead_bubble_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bubble_coral_wall_fan":{"defaultstate":"minecraft:dead_bubble_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_bush":{"defaultstate":"minecraft:dead_bush","properties":{}},"minecraft:dead_fire_coral":{"defaultstate":"minecraft:dead_fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_block":{"defaultstate":"minecraft:dead_fire_coral_block","properties":{}},"minecraft:dead_fire_coral_fan":{"defaultstate":"minecraft:dead_fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_fire_coral_wall_fan":{"defaultstate":"minecraft:dead_fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral":{"defaultstate":"minecraft:dead_horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_block":{"defaultstate":"minecraft:dead_horn_coral_block","properties":{}},"minecraft:dead_horn_coral_fan":{"defaultstate":"minecraft:dead_horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_horn_coral_wall_fan":{"defaultstate":"minecraft:dead_horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral":{"defaultstate":"minecraft:dead_tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_block":{"defaultstate":"minecraft:dead_tube_coral_block","properties":{}},"minecraft:dead_tube_coral_fan":{"defaultstate":"minecraft:dead_tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:dead_tube_coral_wall_fan":{"defaultstate":"minecraft:dead_tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate":{"defaultstate":"minecraft:deepslate[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:deepslate_brick_slab":{"defaultstate":"minecraft:deepslate_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_brick_stairs":{"defaultstate":"minecraft:deepslate_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_brick_wall":{"defaultstate":"minecraft:deepslate_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:deepslate_bricks":{"defaultstate":"minecraft:deepslate_bricks","properties":{}},"minecraft:deepslate_coal_ore":{"defaultstate":"minecraft:deepslate_coal_ore","properties":{}},"minecraft:deepslate_copper_ore":{"defaultstate":"minecraft:deepslate_copper_ore","properties":{}},"minecraft:deepslate_diamond_ore":{"defaultstate":"minecraft:deepslate_diamond_ore","properties":{}},"minecraft:deepslate_emerald_ore":{"defaultstate":"minecraft:deepslate_emerald_ore","properties":{}},"minecraft:deepslate_gold_ore":{"defaultstate":"minecraft:deepslate_gold_ore","properties":{}},"minecraft:deepslate_iron_ore":{"defaultstate":"minecraft:deepslate_iron_ore","properties":{}},"minecraft:deepslate_lapis_ore":{"defaultstate":"minecraft:deepslate_lapis_ore","properties":{}},"minecraft:deepslate_redstone_ore":{"defaultstate":"minecraft:deepslate_redstone_ore[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_slab":{"defaultstate":"minecraft:deepslate_tile_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_stairs":{"defaultstate":"minecraft:deepslate_tile_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:deepslate_tile_wall":{"defaultstate":"minecraft:deepslate_tile_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:deepslate_tiles":{"defaultstate":"minecraft:deepslate_tiles","properties":{}},"minecraft:detector_rail":{"defaultstate":"minecraft:detector_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diamond_block":{"defaultstate":"minecraft:diamond_block","properties":{}},"minecraft:diamond_ore":{"defaultstate":"minecraft:diamond_ore","properties":{}},"minecraft:diorite":{"defaultstate":"minecraft:diorite","properties":{}},"minecraft:diorite_slab":{"defaultstate":"minecraft:diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_stairs":{"defaultstate":"minecraft:diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:diorite_wall":{"defaultstate":"minecraft:diorite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:dirt":{"defaultstate":"minecraft:dirt","properties":{}},"minecraft:dirt_path":{"defaultstate":"minecraft:dirt_path","properties":{}},"minecraft:dispenser":{"defaultstate":"minecraft:dispenser[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:dragon_egg":{"defaultstate":"minecraft:dragon_egg","properties":{}},"minecraft:dragon_head":{"defaultstate":"minecraft:dragon_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:dragon_wall_head":{"defaultstate":"minecraft:dragon_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:dried_kelp_block":{"defaultstate":"minecraft:dried_kelp_block","properties":{}},"minecraft:dripstone_block":{"defaultstate":"minecraft:dripstone_block","properties":{}},"minecraft:dropper":{"defaultstate":"minecraft:dropper[facing=north,triggered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"triggered":{"type":"bool","values":["true","false"]}}},"minecraft:emerald_block":{"defaultstate":"minecraft:emerald_block","properties":{}},"minecraft:emerald_ore":{"defaultstate":"minecraft:emerald_ore","properties":{}},"minecraft:enchanting_table":{"defaultstate":"minecraft:enchanting_table","properties":{}},"minecraft:end_gateway":{"defaultstate":"minecraft:end_gateway","properties":{}},"minecraft:end_portal":{"defaultstate":"minecraft:end_portal","properties":{}},"minecraft:end_portal_frame":{"defaultstate":"minecraft:end_portal_frame[eye=false,facing=north]","properties":{"eye":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:end_rod":{"defaultstate":"minecraft:end_rod[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:end_stone":{"defaultstate":"minecraft:end_stone","properties":{}},"minecraft:end_stone_brick_slab":{"defaultstate":"minecraft:end_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_stairs":{"defaultstate":"minecraft:end_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:end_stone_brick_wall":{"defaultstate":"minecraft:end_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:end_stone_bricks":{"defaultstate":"minecraft:end_stone_bricks","properties":{}},"minecraft:ender_chest":{"defaultstate":"minecraft:ender_chest[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:exposed_copper":{"defaultstate":"minecraft:exposed_copper","properties":{}},"minecraft:exposed_cut_copper":{"defaultstate":"minecraft:exposed_cut_copper","properties":{}},"minecraft:exposed_cut_copper_slab":{"defaultstate":"minecraft:exposed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:exposed_cut_copper_stairs":{"defaultstate":"minecraft:exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:farmland":{"defaultstate":"minecraft:farmland[moisture=0]","properties":{"moisture":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:fern":{"defaultstate":"minecraft:fern","properties":{}},"minecraft:fire":{"defaultstate":"minecraft:fire[age=0,east=false,north=false,south=false,up=false,west=false]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral":{"defaultstate":"minecraft:fire_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_block":{"defaultstate":"minecraft:fire_coral_block","properties":{}},"minecraft:fire_coral_fan":{"defaultstate":"minecraft:fire_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fire_coral_wall_fan":{"defaultstate":"minecraft:fire_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:fletching_table":{"defaultstate":"minecraft:fletching_table","properties":{}},"minecraft:flower_pot":{"defaultstate":"minecraft:flower_pot","properties":{}},"minecraft:flowering_azalea":{"defaultstate":"minecraft:flowering_azalea","properties":{}},"minecraft:flowering_azalea_leaves":{"defaultstate":"minecraft:flowering_azalea_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:frosted_ice":{"defaultstate":"minecraft:frosted_ice[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:furnace":{"defaultstate":"minecraft:furnace[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:gilded_blackstone":{"defaultstate":"minecraft:gilded_blackstone","properties":{}},"minecraft:glass":{"defaultstate":"minecraft:glass","properties":{}},"minecraft:glass_pane":{"defaultstate":"minecraft:glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:glow_lichen":{"defaultstate":"minecraft:glow_lichen[down=false,east=false,north=false,south=false,up=false,waterlogged=false,west=false]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:glowstone":{"defaultstate":"minecraft:glowstone","properties":{}},"minecraft:gold_block":{"defaultstate":"minecraft:gold_block","properties":{}},"minecraft:gold_ore":{"defaultstate":"minecraft:gold_ore","properties":{}},"minecraft:granite":{"defaultstate":"minecraft:granite","properties":{}},"minecraft:granite_slab":{"defaultstate":"minecraft:granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_stairs":{"defaultstate":"minecraft:granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:granite_wall":{"defaultstate":"minecraft:granite_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:grass":{"defaultstate":"minecraft:grass","properties":{}},"minecraft:grass_block":{"defaultstate":"minecraft:grass_block[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:gravel":{"defaultstate":"minecraft:gravel","properties":{}},"minecraft:gray_banner":{"defaultstate":"minecraft:gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:gray_bed":{"defaultstate":"minecraft:gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:gray_candle":{"defaultstate":"minecraft:gray_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:gray_candle_cake":{"defaultstate":"minecraft:gray_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:gray_carpet":{"defaultstate":"minecraft:gray_carpet","properties":{}},"minecraft:gray_concrete":{"defaultstate":"minecraft:gray_concrete","properties":{}},"minecraft:gray_concrete_powder":{"defaultstate":"minecraft:gray_concrete_powder","properties":{}},"minecraft:gray_glazed_terracotta":{"defaultstate":"minecraft:gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_shulker_box":{"defaultstate":"minecraft:gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:gray_stained_glass":{"defaultstate":"minecraft:gray_stained_glass","properties":{}},"minecraft:gray_stained_glass_pane":{"defaultstate":"minecraft:gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:gray_terracotta":{"defaultstate":"minecraft:gray_terracotta","properties":{}},"minecraft:gray_wall_banner":{"defaultstate":"minecraft:gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:gray_wool":{"defaultstate":"minecraft:gray_wool","properties":{}},"minecraft:green_banner":{"defaultstate":"minecraft:green_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:green_bed":{"defaultstate":"minecraft:green_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:green_candle":{"defaultstate":"minecraft:green_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:green_candle_cake":{"defaultstate":"minecraft:green_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:green_carpet":{"defaultstate":"minecraft:green_carpet","properties":{}},"minecraft:green_concrete":{"defaultstate":"minecraft:green_concrete","properties":{}},"minecraft:green_concrete_powder":{"defaultstate":"minecraft:green_concrete_powder","properties":{}},"minecraft:green_glazed_terracotta":{"defaultstate":"minecraft:green_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_shulker_box":{"defaultstate":"minecraft:green_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:green_stained_glass":{"defaultstate":"minecraft:green_stained_glass","properties":{}},"minecraft:green_stained_glass_pane":{"defaultstate":"minecraft:green_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:green_terracotta":{"defaultstate":"minecraft:green_terracotta","properties":{}},"minecraft:green_wall_banner":{"defaultstate":"minecraft:green_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:green_wool":{"defaultstate":"minecraft:green_wool","properties":{}},"minecraft:grindstone":{"defaultstate":"minecraft:grindstone[face=wall,facing=north]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:hanging_roots":{"defaultstate":"minecraft:hanging_roots[waterlogged=false]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:hay_block":{"defaultstate":"minecraft:hay_block[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:heavy_weighted_pressure_plate":{"defaultstate":"minecraft:heavy_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:honey_block":{"defaultstate":"minecraft:honey_block","properties":{}},"minecraft:honeycomb_block":{"defaultstate":"minecraft:honeycomb_block","properties":{}},"minecraft:hopper":{"defaultstate":"minecraft:hopper[enabled=true,facing=down]","properties":{"enabled":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["down","north","south","west","east"]}}},"minecraft:horn_coral":{"defaultstate":"minecraft:horn_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_block":{"defaultstate":"minecraft:horn_coral_block","properties":{}},"minecraft:horn_coral_fan":{"defaultstate":"minecraft:horn_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:horn_coral_wall_fan":{"defaultstate":"minecraft:horn_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:ice":{"defaultstate":"minecraft:ice","properties":{}},"minecraft:infested_chiseled_stone_bricks":{"defaultstate":"minecraft:infested_chiseled_stone_bricks","properties":{}},"minecraft:infested_cobblestone":{"defaultstate":"minecraft:infested_cobblestone","properties":{}},"minecraft:infested_cracked_stone_bricks":{"defaultstate":"minecraft:infested_cracked_stone_bricks","properties":{}},"minecraft:infested_deepslate":{"defaultstate":"minecraft:infested_deepslate[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:infested_mossy_stone_bricks":{"defaultstate":"minecraft:infested_mossy_stone_bricks","properties":{}},"minecraft:infested_stone":{"defaultstate":"minecraft:infested_stone","properties":{}},"minecraft:infested_stone_bricks":{"defaultstate":"minecraft:infested_stone_bricks","properties":{}},"minecraft:iron_bars":{"defaultstate":"minecraft:iron_bars[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:iron_block":{"defaultstate":"minecraft:iron_block","properties":{}},"minecraft:iron_door":{"defaultstate":"minecraft:iron_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:iron_ore":{"defaultstate":"minecraft:iron_ore","properties":{}},"minecraft:iron_trapdoor":{"defaultstate":"minecraft:iron_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jack_o_lantern":{"defaultstate":"minecraft:jack_o_lantern[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:jigsaw":{"defaultstate":"minecraft:jigsaw[orientation=north_up]","properties":{"orientation":{"type":"enum","values":["down_east","down_north","down_south","down_west","up_east","up_north","up_south","up_west","west_up","east_up","north_up","south_up"]}}},"minecraft:jukebox":{"defaultstate":"minecraft:jukebox[has_record=false]","properties":{"has_record":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_button":{"defaultstate":"minecraft:jungle_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_door":{"defaultstate":"minecraft:jungle_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence":{"defaultstate":"minecraft:jungle_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_fence_gate":{"defaultstate":"minecraft:jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_leaves":{"defaultstate":"minecraft:jungle_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_log":{"defaultstate":"minecraft:jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:jungle_planks":{"defaultstate":"minecraft:jungle_planks","properties":{}},"minecraft:jungle_pressure_plate":{"defaultstate":"minecraft:jungle_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_sapling":{"defaultstate":"minecraft:jungle_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:jungle_sign":{"defaultstate":"minecraft:jungle_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_slab":{"defaultstate":"minecraft:jungle_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_stairs":{"defaultstate":"minecraft:jungle_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_trapdoor":{"defaultstate":"minecraft:jungle_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wall_sign":{"defaultstate":"minecraft:jungle_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:jungle_wood":{"defaultstate":"minecraft:jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:kelp":{"defaultstate":"minecraft:kelp[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:kelp_plant":{"defaultstate":"minecraft:kelp_plant","properties":{}},"minecraft:ladder":{"defaultstate":"minecraft:ladder[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lantern":{"defaultstate":"minecraft:lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lapis_block":{"defaultstate":"minecraft:lapis_block","properties":{}},"minecraft:lapis_ore":{"defaultstate":"minecraft:lapis_ore","properties":{}},"minecraft:large_amethyst_bud":{"defaultstate":"minecraft:large_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:large_fern":{"defaultstate":"minecraft:large_fern[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lava":{"defaultstate":"minecraft:lava[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lava_cauldron":{"defaultstate":"minecraft:lava_cauldron","properties":{}},"minecraft:lectern":{"defaultstate":"minecraft:lectern[facing=north,has_book=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"has_book":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:lever":{"defaultstate":"minecraft:lever[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:light":{"defaultstate":"minecraft:light[level=15,waterlogged=false]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_banner":{"defaultstate":"minecraft:light_blue_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_blue_bed":{"defaultstate":"minecraft:light_blue_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_blue_candle":{"defaultstate":"minecraft:light_blue_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_candle_cake":{"defaultstate":"minecraft:light_blue_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_carpet":{"defaultstate":"minecraft:light_blue_carpet","properties":{}},"minecraft:light_blue_concrete":{"defaultstate":"minecraft:light_blue_concrete","properties":{}},"minecraft:light_blue_concrete_powder":{"defaultstate":"minecraft:light_blue_concrete_powder","properties":{}},"minecraft:light_blue_glazed_terracotta":{"defaultstate":"minecraft:light_blue_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_shulker_box":{"defaultstate":"minecraft:light_blue_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_blue_stained_glass":{"defaultstate":"minecraft:light_blue_stained_glass","properties":{}},"minecraft:light_blue_stained_glass_pane":{"defaultstate":"minecraft:light_blue_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_blue_terracotta":{"defaultstate":"minecraft:light_blue_terracotta","properties":{}},"minecraft:light_blue_wall_banner":{"defaultstate":"minecraft:light_blue_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_blue_wool":{"defaultstate":"minecraft:light_blue_wool","properties":{}},"minecraft:light_gray_banner":{"defaultstate":"minecraft:light_gray_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:light_gray_bed":{"defaultstate":"minecraft:light_gray_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:light_gray_candle":{"defaultstate":"minecraft:light_gray_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_candle_cake":{"defaultstate":"minecraft:light_gray_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_carpet":{"defaultstate":"minecraft:light_gray_carpet","properties":{}},"minecraft:light_gray_concrete":{"defaultstate":"minecraft:light_gray_concrete","properties":{}},"minecraft:light_gray_concrete_powder":{"defaultstate":"minecraft:light_gray_concrete_powder","properties":{}},"minecraft:light_gray_glazed_terracotta":{"defaultstate":"minecraft:light_gray_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_shulker_box":{"defaultstate":"minecraft:light_gray_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:light_gray_stained_glass":{"defaultstate":"minecraft:light_gray_stained_glass","properties":{}},"minecraft:light_gray_stained_glass_pane":{"defaultstate":"minecraft:light_gray_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:light_gray_terracotta":{"defaultstate":"minecraft:light_gray_terracotta","properties":{}},"minecraft:light_gray_wall_banner":{"defaultstate":"minecraft:light_gray_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:light_gray_wool":{"defaultstate":"minecraft:light_gray_wool","properties":{}},"minecraft:light_weighted_pressure_plate":{"defaultstate":"minecraft:light_weighted_pressure_plate[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lightning_rod":{"defaultstate":"minecraft:lightning_rod[facing=up,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lilac":{"defaultstate":"minecraft:lilac[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:lily_of_the_valley":{"defaultstate":"minecraft:lily_of_the_valley","properties":{}},"minecraft:lily_pad":{"defaultstate":"minecraft:lily_pad","properties":{}},"minecraft:lime_banner":{"defaultstate":"minecraft:lime_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:lime_bed":{"defaultstate":"minecraft:lime_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:lime_candle":{"defaultstate":"minecraft:lime_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:lime_candle_cake":{"defaultstate":"minecraft:lime_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:lime_carpet":{"defaultstate":"minecraft:lime_carpet","properties":{}},"minecraft:lime_concrete":{"defaultstate":"minecraft:lime_concrete","properties":{}},"minecraft:lime_concrete_powder":{"defaultstate":"minecraft:lime_concrete_powder","properties":{}},"minecraft:lime_glazed_terracotta":{"defaultstate":"minecraft:lime_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_shulker_box":{"defaultstate":"minecraft:lime_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:lime_stained_glass":{"defaultstate":"minecraft:lime_stained_glass","properties":{}},"minecraft:lime_stained_glass_pane":{"defaultstate":"minecraft:lime_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:lime_terracotta":{"defaultstate":"minecraft:lime_terracotta","properties":{}},"minecraft:lime_wall_banner":{"defaultstate":"minecraft:lime_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:lime_wool":{"defaultstate":"minecraft:lime_wool","properties":{}},"minecraft:lodestone":{"defaultstate":"minecraft:lodestone","properties":{}},"minecraft:loom":{"defaultstate":"minecraft:loom[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_banner":{"defaultstate":"minecraft:magenta_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:magenta_bed":{"defaultstate":"minecraft:magenta_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:magenta_candle":{"defaultstate":"minecraft:magenta_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_candle_cake":{"defaultstate":"minecraft:magenta_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_carpet":{"defaultstate":"minecraft:magenta_carpet","properties":{}},"minecraft:magenta_concrete":{"defaultstate":"minecraft:magenta_concrete","properties":{}},"minecraft:magenta_concrete_powder":{"defaultstate":"minecraft:magenta_concrete_powder","properties":{}},"minecraft:magenta_glazed_terracotta":{"defaultstate":"minecraft:magenta_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_shulker_box":{"defaultstate":"minecraft:magenta_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:magenta_stained_glass":{"defaultstate":"minecraft:magenta_stained_glass","properties":{}},"minecraft:magenta_stained_glass_pane":{"defaultstate":"minecraft:magenta_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:magenta_terracotta":{"defaultstate":"minecraft:magenta_terracotta","properties":{}},"minecraft:magenta_wall_banner":{"defaultstate":"minecraft:magenta_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:magenta_wool":{"defaultstate":"minecraft:magenta_wool","properties":{}},"minecraft:magma_block":{"defaultstate":"minecraft:magma_block","properties":{}},"minecraft:medium_amethyst_bud":{"defaultstate":"minecraft:medium_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:melon":{"defaultstate":"minecraft:melon","properties":{}},"minecraft:melon_stem":{"defaultstate":"minecraft:melon_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:moss_block":{"defaultstate":"minecraft:moss_block","properties":{}},"minecraft:moss_carpet":{"defaultstate":"minecraft:moss_carpet","properties":{}},"minecraft:mossy_cobblestone":{"defaultstate":"minecraft:mossy_cobblestone","properties":{}},"minecraft:mossy_cobblestone_slab":{"defaultstate":"minecraft:mossy_cobblestone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_stairs":{"defaultstate":"minecraft:mossy_cobblestone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_cobblestone_wall":{"defaultstate":"minecraft:mossy_cobblestone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_brick_slab":{"defaultstate":"minecraft:mossy_stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_stairs":{"defaultstate":"minecraft:mossy_stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:mossy_stone_brick_wall":{"defaultstate":"minecraft:mossy_stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:mossy_stone_bricks":{"defaultstate":"minecraft:mossy_stone_bricks","properties":{}},"minecraft:moving_piston":{"defaultstate":"minecraft:moving_piston[facing=north,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:mushroom_stem":{"defaultstate":"minecraft:mushroom_stem[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:mycelium":{"defaultstate":"minecraft:mycelium[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_fence":{"defaultstate":"minecraft:nether_brick_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_slab":{"defaultstate":"minecraft:nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_stairs":{"defaultstate":"minecraft:nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:nether_brick_wall":{"defaultstate":"minecraft:nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:nether_bricks":{"defaultstate":"minecraft:nether_bricks","properties":{}},"minecraft:nether_gold_ore":{"defaultstate":"minecraft:nether_gold_ore","properties":{}},"minecraft:nether_portal":{"defaultstate":"minecraft:nether_portal[axis=x]","properties":{"axis":{"type":"enum","values":["x","z"]}}},"minecraft:nether_quartz_ore":{"defaultstate":"minecraft:nether_quartz_ore","properties":{}},"minecraft:nether_sprouts":{"defaultstate":"minecraft:nether_sprouts","properties":{}},"minecraft:nether_wart":{"defaultstate":"minecraft:nether_wart[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:nether_wart_block":{"defaultstate":"minecraft:nether_wart_block","properties":{}},"minecraft:netherite_block":{"defaultstate":"minecraft:netherite_block","properties":{}},"minecraft:netherrack":{"defaultstate":"minecraft:netherrack","properties":{}},"minecraft:note_block":{"defaultstate":"minecraft:note_block[instrument=harp,note=0,powered=false]","properties":{"instrument":{"type":"enum","values":["harp","basedrum","snare","hat","bass","flute","bell","guitar","chime","xylophone","iron_xylophone","cow_bell","didgeridoo","bit","banjo","pling"]},"note":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_button":{"defaultstate":"minecraft:oak_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_door":{"defaultstate":"minecraft:oak_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence":{"defaultstate":"minecraft:oak_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:oak_fence_gate":{"defaultstate":"minecraft:oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_leaves":{"defaultstate":"minecraft:oak_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:oak_log":{"defaultstate":"minecraft:oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:oak_planks":{"defaultstate":"minecraft:oak_planks","properties":{}},"minecraft:oak_pressure_plate":{"defaultstate":"minecraft:oak_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:oak_sapling":{"defaultstate":"minecraft:oak_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:oak_sign":{"defaultstate":"minecraft:oak_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_slab":{"defaultstate":"minecraft:oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_stairs":{"defaultstate":"minecraft:oak_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_trapdoor":{"defaultstate":"minecraft:oak_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wall_sign":{"defaultstate":"minecraft:oak_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oak_wood":{"defaultstate":"minecraft:oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:observer":{"defaultstate":"minecraft:observer[facing=south,powered=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:obsidian":{"defaultstate":"minecraft:obsidian","properties":{}},"minecraft:orange_banner":{"defaultstate":"minecraft:orange_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:orange_bed":{"defaultstate":"minecraft:orange_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:orange_candle":{"defaultstate":"minecraft:orange_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:orange_candle_cake":{"defaultstate":"minecraft:orange_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:orange_carpet":{"defaultstate":"minecraft:orange_carpet","properties":{}},"minecraft:orange_concrete":{"defaultstate":"minecraft:orange_concrete","properties":{}},"minecraft:orange_concrete_powder":{"defaultstate":"minecraft:orange_concrete_powder","properties":{}},"minecraft:orange_glazed_terracotta":{"defaultstate":"minecraft:orange_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_shulker_box":{"defaultstate":"minecraft:orange_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:orange_stained_glass":{"defaultstate":"minecraft:orange_stained_glass","properties":{}},"minecraft:orange_stained_glass_pane":{"defaultstate":"minecraft:orange_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:orange_terracotta":{"defaultstate":"minecraft:orange_terracotta","properties":{}},"minecraft:orange_tulip":{"defaultstate":"minecraft:orange_tulip","properties":{}},"minecraft:orange_wall_banner":{"defaultstate":"minecraft:orange_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:orange_wool":{"defaultstate":"minecraft:orange_wool","properties":{}},"minecraft:oxeye_daisy":{"defaultstate":"minecraft:oxeye_daisy","properties":{}},"minecraft:oxidized_copper":{"defaultstate":"minecraft:oxidized_copper","properties":{}},"minecraft:oxidized_cut_copper":{"defaultstate":"minecraft:oxidized_cut_copper","properties":{}},"minecraft:oxidized_cut_copper_slab":{"defaultstate":"minecraft:oxidized_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:oxidized_cut_copper_stairs":{"defaultstate":"minecraft:oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:packed_ice":{"defaultstate":"minecraft:packed_ice","properties":{}},"minecraft:peony":{"defaultstate":"minecraft:peony[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:petrified_oak_slab":{"defaultstate":"minecraft:petrified_oak_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:pink_banner":{"defaultstate":"minecraft:pink_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:pink_bed":{"defaultstate":"minecraft:pink_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:pink_candle":{"defaultstate":"minecraft:pink_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:pink_candle_cake":{"defaultstate":"minecraft:pink_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:pink_carpet":{"defaultstate":"minecraft:pink_carpet","properties":{}},"minecraft:pink_concrete":{"defaultstate":"minecraft:pink_concrete","properties":{}},"minecraft:pink_concrete_powder":{"defaultstate":"minecraft:pink_concrete_powder","properties":{}},"minecraft:pink_glazed_terracotta":{"defaultstate":"minecraft:pink_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_shulker_box":{"defaultstate":"minecraft:pink_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:pink_stained_glass":{"defaultstate":"minecraft:pink_stained_glass","properties":{}},"minecraft:pink_stained_glass_pane":{"defaultstate":"minecraft:pink_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:pink_terracotta":{"defaultstate":"minecraft:pink_terracotta","properties":{}},"minecraft:pink_tulip":{"defaultstate":"minecraft:pink_tulip","properties":{}},"minecraft:pink_wall_banner":{"defaultstate":"minecraft:pink_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:pink_wool":{"defaultstate":"minecraft:pink_wool","properties":{}},"minecraft:piston":{"defaultstate":"minecraft:piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:piston_head":{"defaultstate":"minecraft:piston_head[facing=north,short=false,type=normal]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"short":{"type":"bool","values":["true","false"]},"type":{"type":"enum","values":["normal","sticky"]}}},"minecraft:player_head":{"defaultstate":"minecraft:player_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:player_wall_head":{"defaultstate":"minecraft:player_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:podzol":{"defaultstate":"minecraft:podzol[snowy=false]","properties":{"snowy":{"type":"bool","values":["true","false"]}}},"minecraft:pointed_dripstone":{"defaultstate":"minecraft:pointed_dripstone[thickness=tip,vertical_direction=up,waterlogged=false]","properties":{"thickness":{"type":"enum","values":["tip_merge","tip","frustum","middle","base"]},"vertical_direction":{"type":"direction","values":["up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite":{"defaultstate":"minecraft:polished_andesite","properties":{}},"minecraft:polished_andesite_slab":{"defaultstate":"minecraft:polished_andesite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_andesite_stairs":{"defaultstate":"minecraft:polished_andesite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_basalt":{"defaultstate":"minecraft:polished_basalt[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:polished_blackstone":{"defaultstate":"minecraft:polished_blackstone","properties":{}},"minecraft:polished_blackstone_brick_slab":{"defaultstate":"minecraft:polished_blackstone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_stairs":{"defaultstate":"minecraft:polished_blackstone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_brick_wall":{"defaultstate":"minecraft:polished_blackstone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_blackstone_bricks":{"defaultstate":"minecraft:polished_blackstone_bricks","properties":{}},"minecraft:polished_blackstone_button":{"defaultstate":"minecraft:polished_blackstone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_pressure_plate":{"defaultstate":"minecraft:polished_blackstone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_slab":{"defaultstate":"minecraft:polished_blackstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_stairs":{"defaultstate":"minecraft:polished_blackstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_blackstone_wall":{"defaultstate":"minecraft:polished_blackstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_deepslate":{"defaultstate":"minecraft:polished_deepslate","properties":{}},"minecraft:polished_deepslate_slab":{"defaultstate":"minecraft:polished_deepslate_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_deepslate_stairs":{"defaultstate":"minecraft:polished_deepslate_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_deepslate_wall":{"defaultstate":"minecraft:polished_deepslate_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:polished_diorite":{"defaultstate":"minecraft:polished_diorite","properties":{}},"minecraft:polished_diorite_slab":{"defaultstate":"minecraft:polished_diorite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_diorite_stairs":{"defaultstate":"minecraft:polished_diorite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite":{"defaultstate":"minecraft:polished_granite","properties":{}},"minecraft:polished_granite_slab":{"defaultstate":"minecraft:polished_granite_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:polished_granite_stairs":{"defaultstate":"minecraft:polished_granite_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:poppy":{"defaultstate":"minecraft:poppy","properties":{}},"minecraft:potatoes":{"defaultstate":"minecraft:potatoes[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:potted_acacia_sapling":{"defaultstate":"minecraft:potted_acacia_sapling","properties":{}},"minecraft:potted_allium":{"defaultstate":"minecraft:potted_allium","properties":{}},"minecraft:potted_azalea_bush":{"defaultstate":"minecraft:potted_azalea_bush","properties":{}},"minecraft:potted_azure_bluet":{"defaultstate":"minecraft:potted_azure_bluet","properties":{}},"minecraft:potted_bamboo":{"defaultstate":"minecraft:potted_bamboo","properties":{}},"minecraft:potted_birch_sapling":{"defaultstate":"minecraft:potted_birch_sapling","properties":{}},"minecraft:potted_blue_orchid":{"defaultstate":"minecraft:potted_blue_orchid","properties":{}},"minecraft:potted_brown_mushroom":{"defaultstate":"minecraft:potted_brown_mushroom","properties":{}},"minecraft:potted_cactus":{"defaultstate":"minecraft:potted_cactus","properties":{}},"minecraft:potted_cornflower":{"defaultstate":"minecraft:potted_cornflower","properties":{}},"minecraft:potted_crimson_fungus":{"defaultstate":"minecraft:potted_crimson_fungus","properties":{}},"minecraft:potted_crimson_roots":{"defaultstate":"minecraft:potted_crimson_roots","properties":{}},"minecraft:potted_dandelion":{"defaultstate":"minecraft:potted_dandelion","properties":{}},"minecraft:potted_dark_oak_sapling":{"defaultstate":"minecraft:potted_dark_oak_sapling","properties":{}},"minecraft:potted_dead_bush":{"defaultstate":"minecraft:potted_dead_bush","properties":{}},"minecraft:potted_fern":{"defaultstate":"minecraft:potted_fern","properties":{}},"minecraft:potted_flowering_azalea_bush":{"defaultstate":"minecraft:potted_flowering_azalea_bush","properties":{}},"minecraft:potted_jungle_sapling":{"defaultstate":"minecraft:potted_jungle_sapling","properties":{}},"minecraft:potted_lily_of_the_valley":{"defaultstate":"minecraft:potted_lily_of_the_valley","properties":{}},"minecraft:potted_oak_sapling":{"defaultstate":"minecraft:potted_oak_sapling","properties":{}},"minecraft:potted_orange_tulip":{"defaultstate":"minecraft:potted_orange_tulip","properties":{}},"minecraft:potted_oxeye_daisy":{"defaultstate":"minecraft:potted_oxeye_daisy","properties":{}},"minecraft:potted_pink_tulip":{"defaultstate":"minecraft:potted_pink_tulip","properties":{}},"minecraft:potted_poppy":{"defaultstate":"minecraft:potted_poppy","properties":{}},"minecraft:potted_red_mushroom":{"defaultstate":"minecraft:potted_red_mushroom","properties":{}},"minecraft:potted_red_tulip":{"defaultstate":"minecraft:potted_red_tulip","properties":{}},"minecraft:potted_spruce_sapling":{"defaultstate":"minecraft:potted_spruce_sapling","properties":{}},"minecraft:potted_warped_fungus":{"defaultstate":"minecraft:potted_warped_fungus","properties":{}},"minecraft:potted_warped_roots":{"defaultstate":"minecraft:potted_warped_roots","properties":{}},"minecraft:potted_white_tulip":{"defaultstate":"minecraft:potted_white_tulip","properties":{}},"minecraft:potted_wither_rose":{"defaultstate":"minecraft:potted_wither_rose","properties":{}},"minecraft:powder_snow":{"defaultstate":"minecraft:powder_snow","properties":{}},"minecraft:powder_snow_cauldron":{"defaultstate":"minecraft:powder_snow_cauldron[level=1]","properties":{"level":{"type":"int","values":["1","2","3"]}}},"minecraft:powered_rail":{"defaultstate":"minecraft:powered_rail[powered=false,shape=north_south,waterlogged=false]","properties":{"powered":{"type":"bool","values":["true","false"]},"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine":{"defaultstate":"minecraft:prismarine","properties":{}},"minecraft:prismarine_brick_slab":{"defaultstate":"minecraft:prismarine_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_brick_stairs":{"defaultstate":"minecraft:prismarine_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_bricks":{"defaultstate":"minecraft:prismarine_bricks","properties":{}},"minecraft:prismarine_slab":{"defaultstate":"minecraft:prismarine_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_stairs":{"defaultstate":"minecraft:prismarine_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:prismarine_wall":{"defaultstate":"minecraft:prismarine_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:pumpkin":{"defaultstate":"minecraft:pumpkin","properties":{}},"minecraft:pumpkin_stem":{"defaultstate":"minecraft:pumpkin_stem[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:purple_banner":{"defaultstate":"minecraft:purple_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:purple_bed":{"defaultstate":"minecraft:purple_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:purple_candle":{"defaultstate":"minecraft:purple_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:purple_candle_cake":{"defaultstate":"minecraft:purple_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:purple_carpet":{"defaultstate":"minecraft:purple_carpet","properties":{}},"minecraft:purple_concrete":{"defaultstate":"minecraft:purple_concrete","properties":{}},"minecraft:purple_concrete_powder":{"defaultstate":"minecraft:purple_concrete_powder","properties":{}},"minecraft:purple_glazed_terracotta":{"defaultstate":"minecraft:purple_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_shulker_box":{"defaultstate":"minecraft:purple_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:purple_stained_glass":{"defaultstate":"minecraft:purple_stained_glass","properties":{}},"minecraft:purple_stained_glass_pane":{"defaultstate":"minecraft:purple_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:purple_terracotta":{"defaultstate":"minecraft:purple_terracotta","properties":{}},"minecraft:purple_wall_banner":{"defaultstate":"minecraft:purple_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:purple_wool":{"defaultstate":"minecraft:purple_wool","properties":{}},"minecraft:purpur_block":{"defaultstate":"minecraft:purpur_block","properties":{}},"minecraft:purpur_pillar":{"defaultstate":"minecraft:purpur_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:purpur_slab":{"defaultstate":"minecraft:purpur_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:purpur_stairs":{"defaultstate":"minecraft:purpur_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_block":{"defaultstate":"minecraft:quartz_block","properties":{}},"minecraft:quartz_bricks":{"defaultstate":"minecraft:quartz_bricks","properties":{}},"minecraft:quartz_pillar":{"defaultstate":"minecraft:quartz_pillar[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:quartz_slab":{"defaultstate":"minecraft:quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:quartz_stairs":{"defaultstate":"minecraft:quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:rail":{"defaultstate":"minecraft:rail[shape=north_south,waterlogged=false]","properties":{"shape":{"type":"enum","values":["north_south","east_west","ascending_east","ascending_west","ascending_north","ascending_south","south_east","south_west","north_west","north_east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:raw_copper_block":{"defaultstate":"minecraft:raw_copper_block","properties":{}},"minecraft:raw_gold_block":{"defaultstate":"minecraft:raw_gold_block","properties":{}},"minecraft:raw_iron_block":{"defaultstate":"minecraft:raw_iron_block","properties":{}},"minecraft:red_banner":{"defaultstate":"minecraft:red_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:red_bed":{"defaultstate":"minecraft:red_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:red_candle":{"defaultstate":"minecraft:red_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_candle_cake":{"defaultstate":"minecraft:red_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:red_carpet":{"defaultstate":"minecraft:red_carpet","properties":{}},"minecraft:red_concrete":{"defaultstate":"minecraft:red_concrete","properties":{}},"minecraft:red_concrete_powder":{"defaultstate":"minecraft:red_concrete_powder","properties":{}},"minecraft:red_glazed_terracotta":{"defaultstate":"minecraft:red_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_mushroom":{"defaultstate":"minecraft:red_mushroom","properties":{}},"minecraft:red_mushroom_block":{"defaultstate":"minecraft:red_mushroom_block[down=true,east=true,north=true,south=true,up=true,west=true]","properties":{"down":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_slab":{"defaultstate":"minecraft:red_nether_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_stairs":{"defaultstate":"minecraft:red_nether_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_nether_brick_wall":{"defaultstate":"minecraft:red_nether_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_nether_bricks":{"defaultstate":"minecraft:red_nether_bricks","properties":{}},"minecraft:red_sand":{"defaultstate":"minecraft:red_sand","properties":{}},"minecraft:red_sandstone":{"defaultstate":"minecraft:red_sandstone","properties":{}},"minecraft:red_sandstone_slab":{"defaultstate":"minecraft:red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_stairs":{"defaultstate":"minecraft:red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:red_sandstone_wall":{"defaultstate":"minecraft:red_sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:red_shulker_box":{"defaultstate":"minecraft:red_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:red_stained_glass":{"defaultstate":"minecraft:red_stained_glass","properties":{}},"minecraft:red_stained_glass_pane":{"defaultstate":"minecraft:red_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:red_terracotta":{"defaultstate":"minecraft:red_terracotta","properties":{}},"minecraft:red_tulip":{"defaultstate":"minecraft:red_tulip","properties":{}},"minecraft:red_wall_banner":{"defaultstate":"minecraft:red_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:red_wool":{"defaultstate":"minecraft:red_wool","properties":{}},"minecraft:redstone_block":{"defaultstate":"minecraft:redstone_block","properties":{}},"minecraft:redstone_lamp":{"defaultstate":"minecraft:redstone_lamp[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_ore":{"defaultstate":"minecraft:redstone_ore[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_torch":{"defaultstate":"minecraft:redstone_torch[lit=true]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wall_torch":{"defaultstate":"minecraft:redstone_wall_torch[facing=north,lit=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:redstone_wire":{"defaultstate":"minecraft:redstone_wire[east=none,north=none,power=0,south=none,west=none]","properties":{"east":{"type":"enum","values":["up","side","none"]},"north":{"type":"enum","values":["up","side","none"]},"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"south":{"type":"enum","values":["up","side","none"]},"west":{"type":"enum","values":["up","side","none"]}}},"minecraft:repeater":{"defaultstate":"minecraft:repeater[delay=1,facing=north,locked=false,powered=false]","properties":{"delay":{"type":"int","values":["1","2","3","4"]},"facing":{"type":"direction","values":["north","south","west","east"]},"locked":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:repeating_command_block":{"defaultstate":"minecraft:repeating_command_block[conditional=false,facing=north]","properties":{"conditional":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:respawn_anchor":{"defaultstate":"minecraft:respawn_anchor[charges=0]","properties":{"charges":{"type":"int","values":["0","1","2","3","4"]}}},"minecraft:rooted_dirt":{"defaultstate":"minecraft:rooted_dirt","properties":{}},"minecraft:rose_bush":{"defaultstate":"minecraft:rose_bush[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sand":{"defaultstate":"minecraft:sand","properties":{}},"minecraft:sandstone":{"defaultstate":"minecraft:sandstone","properties":{}},"minecraft:sandstone_slab":{"defaultstate":"minecraft:sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_stairs":{"defaultstate":"minecraft:sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sandstone_wall":{"defaultstate":"minecraft:sandstone_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:scaffolding":{"defaultstate":"minecraft:scaffolding[bottom=false,distance=7,waterlogged=false]","properties":{"bottom":{"type":"bool","values":["true","false"]},"distance":{"type":"int","values":["0","1","2","3","4","5","6","7"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sculk_sensor":{"defaultstate":"minecraft:sculk_sensor[power=0,sculk_sensor_phase=inactive,waterlogged=false]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"sculk_sensor_phase":{"type":"enum","values":["inactive","active","cooldown"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:sea_lantern":{"defaultstate":"minecraft:sea_lantern","properties":{}},"minecraft:sea_pickle":{"defaultstate":"minecraft:sea_pickle[pickles=1,waterlogged=true]","properties":{"pickles":{"type":"int","values":["1","2","3","4"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:seagrass":{"defaultstate":"minecraft:seagrass","properties":{}},"minecraft:shroomlight":{"defaultstate":"minecraft:shroomlight","properties":{}},"minecraft:shulker_box":{"defaultstate":"minecraft:shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:skeleton_skull":{"defaultstate":"minecraft:skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:skeleton_wall_skull":{"defaultstate":"minecraft:skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:slime_block":{"defaultstate":"minecraft:slime_block","properties":{}},"minecraft:small_amethyst_bud":{"defaultstate":"minecraft:small_amethyst_bud[facing=up,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:small_dripleaf":{"defaultstate":"minecraft:small_dripleaf[facing=north,half=lower,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smithing_table":{"defaultstate":"minecraft:smithing_table","properties":{}},"minecraft:smoker":{"defaultstate":"minecraft:smoker[facing=north,lit=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_basalt":{"defaultstate":"minecraft:smooth_basalt","properties":{}},"minecraft:smooth_quartz":{"defaultstate":"minecraft:smooth_quartz","properties":{}},"minecraft:smooth_quartz_slab":{"defaultstate":"minecraft:smooth_quartz_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_quartz_stairs":{"defaultstate":"minecraft:smooth_quartz_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone":{"defaultstate":"minecraft:smooth_red_sandstone","properties":{}},"minecraft:smooth_red_sandstone_slab":{"defaultstate":"minecraft:smooth_red_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_red_sandstone_stairs":{"defaultstate":"minecraft:smooth_red_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone":{"defaultstate":"minecraft:smooth_sandstone","properties":{}},"minecraft:smooth_sandstone_slab":{"defaultstate":"minecraft:smooth_sandstone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_sandstone_stairs":{"defaultstate":"minecraft:smooth_sandstone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:smooth_stone":{"defaultstate":"minecraft:smooth_stone","properties":{}},"minecraft:smooth_stone_slab":{"defaultstate":"minecraft:smooth_stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:snow":{"defaultstate":"minecraft:snow[layers=1]","properties":{"layers":{"type":"int","values":["1","2","3","4","5","6","7","8"]}}},"minecraft:snow_block":{"defaultstate":"minecraft:snow_block","properties":{}},"minecraft:soul_campfire":{"defaultstate":"minecraft:soul_campfire[facing=north,lit=true,signal_fire=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"lit":{"type":"bool","values":["true","false"]},"signal_fire":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_fire":{"defaultstate":"minecraft:soul_fire","properties":{}},"minecraft:soul_lantern":{"defaultstate":"minecraft:soul_lantern[hanging=false,waterlogged=false]","properties":{"hanging":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:soul_sand":{"defaultstate":"minecraft:soul_sand","properties":{}},"minecraft:soul_soil":{"defaultstate":"minecraft:soul_soil","properties":{}},"minecraft:soul_torch":{"defaultstate":"minecraft:soul_torch","properties":{}},"minecraft:soul_wall_torch":{"defaultstate":"minecraft:soul_wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:spawner":{"defaultstate":"minecraft:spawner","properties":{}},"minecraft:sponge":{"defaultstate":"minecraft:sponge","properties":{}},"minecraft:spore_blossom":{"defaultstate":"minecraft:spore_blossom","properties":{}},"minecraft:spruce_button":{"defaultstate":"minecraft:spruce_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_door":{"defaultstate":"minecraft:spruce_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence":{"defaultstate":"minecraft:spruce_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_fence_gate":{"defaultstate":"minecraft:spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_leaves":{"defaultstate":"minecraft:spruce_leaves[distance=7,persistent=false]","properties":{"distance":{"type":"int","values":["1","2","3","4","5","6","7"]},"persistent":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_log":{"defaultstate":"minecraft:spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:spruce_planks":{"defaultstate":"minecraft:spruce_planks","properties":{}},"minecraft:spruce_pressure_plate":{"defaultstate":"minecraft:spruce_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_sapling":{"defaultstate":"minecraft:spruce_sapling[stage=0]","properties":{"stage":{"type":"int","values":["0","1"]}}},"minecraft:spruce_sign":{"defaultstate":"minecraft:spruce_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_slab":{"defaultstate":"minecraft:spruce_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_stairs":{"defaultstate":"minecraft:spruce_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_trapdoor":{"defaultstate":"minecraft:spruce_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wall_sign":{"defaultstate":"minecraft:spruce_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:spruce_wood":{"defaultstate":"minecraft:spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:sticky_piston":{"defaultstate":"minecraft:sticky_piston[extended=false,facing=north]","properties":{"extended":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:stone":{"defaultstate":"minecraft:stone","properties":{}},"minecraft:stone_brick_slab":{"defaultstate":"minecraft:stone_brick_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_stairs":{"defaultstate":"minecraft:stone_brick_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_brick_wall":{"defaultstate":"minecraft:stone_brick_wall[east=none,north=none,south=none,up=true,waterlogged=false,west=none]","properties":{"east":{"type":"enum","values":["none","low","tall"]},"north":{"type":"enum","values":["none","low","tall"]},"south":{"type":"enum","values":["none","low","tall"]},"up":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"enum","values":["none","low","tall"]}}},"minecraft:stone_bricks":{"defaultstate":"minecraft:stone_bricks","properties":{}},"minecraft:stone_button":{"defaultstate":"minecraft:stone_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_pressure_plate":{"defaultstate":"minecraft:stone_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:stone_slab":{"defaultstate":"minecraft:stone_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stone_stairs":{"defaultstate":"minecraft:stone_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:stonecutter":{"defaultstate":"minecraft:stonecutter[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:stripped_acacia_log":{"defaultstate":"minecraft:stripped_acacia_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_acacia_wood":{"defaultstate":"minecraft:stripped_acacia_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_log":{"defaultstate":"minecraft:stripped_birch_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_birch_wood":{"defaultstate":"minecraft:stripped_birch_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_hyphae":{"defaultstate":"minecraft:stripped_crimson_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_crimson_stem":{"defaultstate":"minecraft:stripped_crimson_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_log":{"defaultstate":"minecraft:stripped_dark_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_dark_oak_wood":{"defaultstate":"minecraft:stripped_dark_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_log":{"defaultstate":"minecraft:stripped_jungle_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_jungle_wood":{"defaultstate":"minecraft:stripped_jungle_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_log":{"defaultstate":"minecraft:stripped_oak_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_oak_wood":{"defaultstate":"minecraft:stripped_oak_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_log":{"defaultstate":"minecraft:stripped_spruce_log[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_spruce_wood":{"defaultstate":"minecraft:stripped_spruce_wood[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_hyphae":{"defaultstate":"minecraft:stripped_warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:stripped_warped_stem":{"defaultstate":"minecraft:stripped_warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:structure_block":{"defaultstate":"minecraft:structure_block[mode=load]","properties":{"mode":{"type":"enum","values":["save","load","corner","data"]}}},"minecraft:structure_void":{"defaultstate":"minecraft:structure_void","properties":{}},"minecraft:sugar_cane":{"defaultstate":"minecraft:sugar_cane[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:sunflower":{"defaultstate":"minecraft:sunflower[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:sweet_berry_bush":{"defaultstate":"minecraft:sweet_berry_bush[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3"]}}},"minecraft:tall_grass":{"defaultstate":"minecraft:tall_grass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:tall_seagrass":{"defaultstate":"minecraft:tall_seagrass[half=lower]","properties":{"half":{"type":"enum","values":["upper","lower"]}}},"minecraft:target":{"defaultstate":"minecraft:target[power=0]","properties":{"power":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:terracotta":{"defaultstate":"minecraft:terracotta","properties":{}},"minecraft:tinted_glass":{"defaultstate":"minecraft:tinted_glass","properties":{}},"minecraft:tnt":{"defaultstate":"minecraft:tnt[unstable=false]","properties":{"unstable":{"type":"bool","values":["true","false"]}}},"minecraft:torch":{"defaultstate":"minecraft:torch","properties":{}},"minecraft:trapped_chest":{"defaultstate":"minecraft:trapped_chest[facing=north,type=single,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"type":{"type":"enum","values":["single","left","right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire":{"defaultstate":"minecraft:tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"disarmed":{"type":"bool","values":["true","false"]},"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:tripwire_hook":{"defaultstate":"minecraft:tripwire_hook[attached=false,facing=north,powered=false]","properties":{"attached":{"type":"bool","values":["true","false"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral":{"defaultstate":"minecraft:tube_coral[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_block":{"defaultstate":"minecraft:tube_coral_block","properties":{}},"minecraft:tube_coral_fan":{"defaultstate":"minecraft:tube_coral_fan[waterlogged=true]","properties":{"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tube_coral_wall_fan":{"defaultstate":"minecraft:tube_coral_wall_fan[facing=north,waterlogged=true]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:tuff":{"defaultstate":"minecraft:tuff","properties":{}},"minecraft:turtle_egg":{"defaultstate":"minecraft:turtle_egg[eggs=1,hatch=0]","properties":{"eggs":{"type":"int","values":["1","2","3","4"]},"hatch":{"type":"int","values":["0","1","2"]}}},"minecraft:twisting_vines":{"defaultstate":"minecraft:twisting_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:twisting_vines_plant":{"defaultstate":"minecraft:twisting_vines_plant","properties":{}},"minecraft:vine":{"defaultstate":"minecraft:vine[east=false,north=false,south=false,up=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"up":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:void_air":{"defaultstate":"minecraft:void_air","properties":{}},"minecraft:wall_torch":{"defaultstate":"minecraft:wall_torch[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:warped_button":{"defaultstate":"minecraft:warped_button[face=wall,facing=north,powered=false]","properties":{"face":{"type":"enum","values":["floor","wall","ceiling"]},"facing":{"type":"direction","values":["north","south","west","east"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_door":{"defaultstate":"minecraft:warped_door[facing=north,half=lower,hinge=left,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["upper","lower"]},"hinge":{"type":"enum","values":["left","right"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence":{"defaultstate":"minecraft:warped_fence[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fence_gate":{"defaultstate":"minecraft:warped_fence_gate[facing=north,in_wall=false,open=false,powered=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"in_wall":{"type":"bool","values":["true","false"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_fungus":{"defaultstate":"minecraft:warped_fungus","properties":{}},"minecraft:warped_hyphae":{"defaultstate":"minecraft:warped_hyphae[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_nylium":{"defaultstate":"minecraft:warped_nylium","properties":{}},"minecraft:warped_planks":{"defaultstate":"minecraft:warped_planks","properties":{}},"minecraft:warped_pressure_plate":{"defaultstate":"minecraft:warped_pressure_plate[powered=false]","properties":{"powered":{"type":"bool","values":["true","false"]}}},"minecraft:warped_roots":{"defaultstate":"minecraft:warped_roots","properties":{}},"minecraft:warped_sign":{"defaultstate":"minecraft:warped_sign[rotation=0,waterlogged=false]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_slab":{"defaultstate":"minecraft:warped_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stairs":{"defaultstate":"minecraft:warped_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_stem":{"defaultstate":"minecraft:warped_stem[axis=y]","properties":{"axis":{"type":"enum","values":["x","y","z"]}}},"minecraft:warped_trapdoor":{"defaultstate":"minecraft:warped_trapdoor[facing=north,half=bottom,open=false,powered=false,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"open":{"type":"bool","values":["true","false"]},"powered":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wall_sign":{"defaultstate":"minecraft:warped_wall_sign[facing=north,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:warped_wart_block":{"defaultstate":"minecraft:warped_wart_block","properties":{}},"minecraft:water":{"defaultstate":"minecraft:water[level=0]","properties":{"level":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:water_cauldron":{"defaultstate":"minecraft:water_cauldron[level=1]","properties":{"level":{"type":"int","values":["1","2","3"]}}},"minecraft:waxed_copper_block":{"defaultstate":"minecraft:waxed_copper_block","properties":{}},"minecraft:waxed_cut_copper":{"defaultstate":"minecraft:waxed_cut_copper","properties":{}},"minecraft:waxed_cut_copper_slab":{"defaultstate":"minecraft:waxed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_cut_copper_stairs":{"defaultstate":"minecraft:waxed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_exposed_copper":{"defaultstate":"minecraft:waxed_exposed_copper","properties":{}},"minecraft:waxed_exposed_cut_copper":{"defaultstate":"minecraft:waxed_exposed_cut_copper","properties":{}},"minecraft:waxed_exposed_cut_copper_slab":{"defaultstate":"minecraft:waxed_exposed_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_exposed_cut_copper_stairs":{"defaultstate":"minecraft:waxed_exposed_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_oxidized_copper":{"defaultstate":"minecraft:waxed_oxidized_copper","properties":{}},"minecraft:waxed_oxidized_cut_copper":{"defaultstate":"minecraft:waxed_oxidized_cut_copper","properties":{}},"minecraft:waxed_oxidized_cut_copper_slab":{"defaultstate":"minecraft:waxed_oxidized_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_oxidized_cut_copper_stairs":{"defaultstate":"minecraft:waxed_oxidized_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_weathered_copper":{"defaultstate":"minecraft:waxed_weathered_copper","properties":{}},"minecraft:waxed_weathered_cut_copper":{"defaultstate":"minecraft:waxed_weathered_cut_copper","properties":{}},"minecraft:waxed_weathered_cut_copper_slab":{"defaultstate":"minecraft:waxed_weathered_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:waxed_weathered_cut_copper_stairs":{"defaultstate":"minecraft:waxed_weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weathered_copper":{"defaultstate":"minecraft:weathered_copper","properties":{}},"minecraft:weathered_cut_copper":{"defaultstate":"minecraft:weathered_cut_copper","properties":{}},"minecraft:weathered_cut_copper_slab":{"defaultstate":"minecraft:weathered_cut_copper_slab[type=bottom,waterlogged=false]","properties":{"type":{"type":"enum","values":["top","bottom","double"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weathered_cut_copper_stairs":{"defaultstate":"minecraft:weathered_cut_copper_stairs[facing=north,half=bottom,shape=straight,waterlogged=false]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"half":{"type":"enum","values":["top","bottom"]},"shape":{"type":"enum","values":["straight","inner_left","inner_right","outer_left","outer_right"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:weeping_vines":{"defaultstate":"minecraft:weeping_vines[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25"]}}},"minecraft:weeping_vines_plant":{"defaultstate":"minecraft:weeping_vines_plant","properties":{}},"minecraft:wet_sponge":{"defaultstate":"minecraft:wet_sponge","properties":{}},"minecraft:wheat":{"defaultstate":"minecraft:wheat[age=0]","properties":{"age":{"type":"int","values":["0","1","2","3","4","5","6","7"]}}},"minecraft:white_banner":{"defaultstate":"minecraft:white_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:white_bed":{"defaultstate":"minecraft:white_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:white_candle":{"defaultstate":"minecraft:white_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:white_candle_cake":{"defaultstate":"minecraft:white_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:white_carpet":{"defaultstate":"minecraft:white_carpet","properties":{}},"minecraft:white_concrete":{"defaultstate":"minecraft:white_concrete","properties":{}},"minecraft:white_concrete_powder":{"defaultstate":"minecraft:white_concrete_powder","properties":{}},"minecraft:white_glazed_terracotta":{"defaultstate":"minecraft:white_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_shulker_box":{"defaultstate":"minecraft:white_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:white_stained_glass":{"defaultstate":"minecraft:white_stained_glass","properties":{}},"minecraft:white_stained_glass_pane":{"defaultstate":"minecraft:white_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:white_terracotta":{"defaultstate":"minecraft:white_terracotta","properties":{}},"minecraft:white_tulip":{"defaultstate":"minecraft:white_tulip","properties":{}},"minecraft:white_wall_banner":{"defaultstate":"minecraft:white_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:white_wool":{"defaultstate":"minecraft:white_wool","properties":{}},"minecraft:wither_rose":{"defaultstate":"minecraft:wither_rose","properties":{}},"minecraft:wither_skeleton_skull":{"defaultstate":"minecraft:wither_skeleton_skull[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:wither_skeleton_wall_skull":{"defaultstate":"minecraft:wither_skeleton_wall_skull[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_banner":{"defaultstate":"minecraft:yellow_banner[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:yellow_bed":{"defaultstate":"minecraft:yellow_bed[facing=north,occupied=false,part=foot]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]},"occupied":{"type":"bool","values":["true","false"]},"part":{"type":"enum","values":["head","foot"]}}},"minecraft:yellow_candle":{"defaultstate":"minecraft:yellow_candle[candles=1,lit=false,waterlogged=false]","properties":{"candles":{"type":"int","values":["1","2","3","4"]},"lit":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_candle_cake":{"defaultstate":"minecraft:yellow_candle_cake[lit=false]","properties":{"lit":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_carpet":{"defaultstate":"minecraft:yellow_carpet","properties":{}},"minecraft:yellow_concrete":{"defaultstate":"minecraft:yellow_concrete","properties":{}},"minecraft:yellow_concrete_powder":{"defaultstate":"minecraft:yellow_concrete_powder","properties":{}},"minecraft:yellow_glazed_terracotta":{"defaultstate":"minecraft:yellow_glazed_terracotta[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_shulker_box":{"defaultstate":"minecraft:yellow_shulker_box[facing=up]","properties":{"facing":{"type":"direction","values":["north","east","south","west","up","down"]}}},"minecraft:yellow_stained_glass":{"defaultstate":"minecraft:yellow_stained_glass","properties":{}},"minecraft:yellow_stained_glass_pane":{"defaultstate":"minecraft:yellow_stained_glass_pane[east=false,north=false,south=false,waterlogged=false,west=false]","properties":{"east":{"type":"bool","values":["true","false"]},"north":{"type":"bool","values":["true","false"]},"south":{"type":"bool","values":["true","false"]},"waterlogged":{"type":"bool","values":["true","false"]},"west":{"type":"bool","values":["true","false"]}}},"minecraft:yellow_terracotta":{"defaultstate":"minecraft:yellow_terracotta","properties":{}},"minecraft:yellow_wall_banner":{"defaultstate":"minecraft:yellow_wall_banner[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}},"minecraft:yellow_wool":{"defaultstate":"minecraft:yellow_wool","properties":{}},"minecraft:zombie_head":{"defaultstate":"minecraft:zombie_head[rotation=0]","properties":{"rotation":{"type":"int","values":["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"]}}},"minecraft:zombie_wall_head":{"defaultstate":"minecraft:zombie_wall_head[facing=north]","properties":{"facing":{"type":"direction","values":["north","south","west","east"]}}}},"blocktags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:bamboo_plantable_on":["minecraft:bamboo","minecraft:bamboo_sapling","minecraft:coarse_dirt","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:red_sand","minecraft:rooted_dirt","minecraft:sand"],"minecraft:banners":["minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:base_stone_nether":["minecraft:basalt","minecraft:blackstone","minecraft:netherrack"],"minecraft:base_stone_overworld":["minecraft:andesite","minecraft:deepslate","minecraft:diorite","minecraft:granite","minecraft:stone","minecraft:tuff"],"minecraft:beacon_base_blocks":["minecraft:diamond_block","minecraft:emerald_block","minecraft:gold_block","minecraft:iron_block","minecraft:netherite_block"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:bee_growables":["minecraft:beetroots","minecraft:carrots","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:sweet_berry_bush","minecraft:wheat"],"minecraft:beehives":["minecraft:bee_nest","minecraft:beehive"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:campfires":["minecraft:campfire","minecraft:soul_campfire"],"minecraft:candle_cakes":["minecraft:black_candle_cake","minecraft:blue_candle_cake","minecraft:brown_candle_cake","minecraft:candle_cake","minecraft:cyan_candle_cake","minecraft:gray_candle_cake","minecraft:green_candle_cake","minecraft:light_blue_candle_cake","minecraft:light_gray_candle_cake","minecraft:lime_candle_cake","minecraft:magenta_candle_cake","minecraft:orange_candle_cake","minecraft:pink_candle_cake","minecraft:purple_candle_cake","minecraft:red_candle_cake","minecraft:white_candle_cake","minecraft:yellow_candle_cake"],"minecraft:candles":["minecraft:black_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:candle","minecraft:cyan_candle","minecraft:gray_candle","minecraft:green_candle","minecraft:light_blue_candle","minecraft:light_gray_candle","minecraft:lime_candle","minecraft:magenta_candle","minecraft:orange_candle","minecraft:pink_candle","minecraft:purple_candle","minecraft:red_candle","minecraft:white_candle","minecraft:yellow_candle"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:cauldrons":["minecraft:cauldron","minecraft:lava_cauldron","minecraft:powder_snow_cauldron","minecraft:water_cauldron"],"minecraft:cave_vines":["minecraft:cave_vines","minecraft:cave_vines_plant"],"minecraft:climbable":["minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:ladder","minecraft:scaffolding","minecraft:twisting_vines","minecraft:twisting_vines_plant","minecraft:vine","minecraft:weeping_vines","minecraft:weeping_vines_plant"],"minecraft:coal_ores":["minecraft:coal_ore","minecraft:deepslate_coal_ore"],"minecraft:copper_ores":["minecraft:copper_ore","minecraft:deepslate_copper_ore"],"minecraft:coral_blocks":["minecraft:brain_coral_block","minecraft:bubble_coral_block","minecraft:fire_coral_block","minecraft:horn_coral_block","minecraft:tube_coral_block"],"minecraft:coral_plants":["minecraft:brain_coral","minecraft:bubble_coral","minecraft:fire_coral","minecraft:horn_coral","minecraft:tube_coral"],"minecraft:corals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:tube_coral","minecraft:tube_coral_fan"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:crops":["minecraft:beetroots","minecraft:carrots","minecraft:melon_stem","minecraft:potatoes","minecraft:pumpkin_stem","minecraft:wheat"],"minecraft:crystal_sound_blocks":["minecraft:amethyst_block","minecraft:budding_amethyst"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:deepslate_ore_replaceables":["minecraft:deepslate","minecraft:tuff"],"minecraft:diamond_ores":["minecraft:deepslate_diamond_ore","minecraft:diamond_ore"],"minecraft:dirt":["minecraft:coarse_dirt","minecraft:dirt","minecraft:grass_block","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:dragon_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:crying_obsidian","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:end_stone","minecraft:iron_bars","minecraft:jigsaw","minecraft:moving_piston","minecraft:obsidian","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:structure_block"],"minecraft:dripstone_replaceable_blocks":["minecraft:andesite","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:stone","minecraft:tuff"],"minecraft:emerald_ores":["minecraft:deepslate_emerald_ore","minecraft:emerald_ore"],"minecraft:enderman_holdable":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:brown_mushroom","minecraft:cactus","minecraft:carved_pumpkin","minecraft:clay","minecraft:coarse_dirt","minecraft:cornflower","minecraft:crimson_fungus","minecraft:crimson_nylium","minecraft:crimson_roots","minecraft:dandelion","minecraft:dirt","minecraft:grass_block","minecraft:gravel","minecraft:lily_of_the_valley","minecraft:melon","minecraft:moss_block","minecraft:mycelium","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:podzol","minecraft:poppy","minecraft:pumpkin","minecraft:red_mushroom","minecraft:red_sand","minecraft:red_tulip","minecraft:rooted_dirt","minecraft:sand","minecraft:tnt","minecraft:warped_fungus","minecraft:warped_nylium","minecraft:warped_roots","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:features_cannot_replace":["minecraft:bedrock","minecraft:chest","minecraft:end_portal_frame","minecraft:spawner"],"minecraft:fence_gates":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fire":["minecraft:fire","minecraft:soul_fire"],"minecraft:flower_pots":["minecraft:flower_pot","minecraft:potted_acacia_sapling","minecraft:potted_allium","minecraft:potted_azalea_bush","minecraft:potted_azure_bluet","minecraft:potted_bamboo","minecraft:potted_birch_sapling","minecraft:potted_blue_orchid","minecraft:potted_brown_mushroom","minecraft:potted_cactus","minecraft:potted_cornflower","minecraft:potted_crimson_fungus","minecraft:potted_crimson_roots","minecraft:potted_dandelion","minecraft:potted_dark_oak_sapling","minecraft:potted_dead_bush","minecraft:potted_fern","minecraft:potted_flowering_azalea_bush","minecraft:potted_jungle_sapling","minecraft:potted_lily_of_the_valley","minecraft:potted_oak_sapling","minecraft:potted_orange_tulip","minecraft:potted_oxeye_daisy","minecraft:potted_pink_tulip","minecraft:potted_poppy","minecraft:potted_red_mushroom","minecraft:potted_red_tulip","minecraft:potted_spruce_sapling","minecraft:potted_warped_fungus","minecraft:potted_warped_roots","minecraft:potted_white_tulip","minecraft:potted_wither_rose"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:geode_invalid_blocks":["minecraft:bedrock","minecraft:blue_ice","minecraft:ice","minecraft:lava","minecraft:packed_ice","minecraft:water"],"minecraft:gold_ores":["minecraft:deepslate_gold_ore","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:guarded_by_piglins":["minecraft:barrel","minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:chest","minecraft:cyan_shulker_box","minecraft:deepslate_gold_ore","minecraft:ender_chest","minecraft:gilded_blackstone","minecraft:gold_block","minecraft:gold_ore","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:nether_gold_ore","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:raw_gold_block","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:trapped_chest","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:hoglin_repellents":["minecraft:nether_portal","minecraft:potted_warped_fungus","minecraft:respawn_anchor","minecraft:warped_fungus"],"minecraft:ice":["minecraft:blue_ice","minecraft:frosted_ice","minecraft:ice","minecraft:packed_ice"],"minecraft:impermeable":["minecraft:black_stained_glass","minecraft:blue_stained_glass","minecraft:brown_stained_glass","minecraft:cyan_stained_glass","minecraft:glass","minecraft:gray_stained_glass","minecraft:green_stained_glass","minecraft:light_blue_stained_glass","minecraft:light_gray_stained_glass","minecraft:lime_stained_glass","minecraft:magenta_stained_glass","minecraft:orange_stained_glass","minecraft:pink_stained_glass","minecraft:purple_stained_glass","minecraft:red_stained_glass","minecraft:tinted_glass","minecraft:white_stained_glass","minecraft:yellow_stained_glass"],"minecraft:infiniburn_end":["minecraft:bedrock","minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_nether":["minecraft:magma_block","minecraft:netherrack"],"minecraft:infiniburn_overworld":["minecraft:magma_block","minecraft:netherrack"],"minecraft:inside_step_sound_blocks":["minecraft:powder_snow","minecraft:snow"],"minecraft:iron_ores":["minecraft:deepslate_iron_ore","minecraft:iron_ore"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:lapis_ores":["minecraft:deepslate_lapis_ore","minecraft:lapis_ore"],"minecraft:lava_pool_stone_replaceables":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:bedrock","minecraft:birch_leaves","minecraft:chest","minecraft:dark_oak_leaves","minecraft:end_portal_frame","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spawner","minecraft:spruce_leaves"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:lush_ground_replaceable":["minecraft:andesite","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:clay","minecraft:coarse_dirt","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:grass_block","minecraft:gravel","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt","minecraft:sand","minecraft:stone","minecraft:tuff"],"minecraft:mineable/axe":["minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wall_sign","minecraft:acacia_wood","minecraft:allium","minecraft:attached_melon_stem","minecraft:attached_pumpkin_stem","minecraft:azalea","minecraft:azure_bluet","minecraft:bamboo","minecraft:barrel","minecraft:bee_nest","minecraft:beehive","minecraft:beetroots","minecraft:big_dripleaf","minecraft:big_dripleaf_stem","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wall_sign","minecraft:birch_wood","minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_orchid","minecraft:blue_wall_banner","minecraft:bookshelf","minecraft:brown_banner","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_wall_banner","minecraft:campfire","minecraft:carrots","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:chest","minecraft:chorus_flower","minecraft:chorus_plant","minecraft:cocoa","minecraft:composter","minecraft:cornflower","minecraft:crafting_table","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crimson_wall_sign","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:dandelion","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wall_sign","minecraft:dark_oak_wood","minecraft:daylight_detector","minecraft:dead_bush","minecraft:fern","minecraft:fletching_table","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:glow_lichen","minecraft:grass","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:hanging_roots","minecraft:jack_o_lantern","minecraft:jukebox","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wall_sign","minecraft:jungle_wood","minecraft:ladder","minecraft:large_fern","minecraft:lectern","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:melon","minecraft:melon_stem","minecraft:mushroom_stem","minecraft:nether_wart","minecraft:note_block","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wall_sign","minecraft:oak_wood","minecraft:orange_banner","minecraft:orange_tulip","minecraft:orange_wall_banner","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_banner","minecraft:pink_tulip","minecraft:pink_wall_banner","minecraft:poppy","minecraft:potatoes","minecraft:pumpkin","minecraft:pumpkin_stem","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_tulip","minecraft:red_wall_banner","minecraft:rose_bush","minecraft:scaffolding","minecraft:small_dripleaf","minecraft:smithing_table","minecraft:soul_campfire","minecraft:spore_blossom","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wall_sign","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:sugar_cane","minecraft:sunflower","minecraft:sweet_berry_bush","minecraft:tall_grass","minecraft:trapped_chest","minecraft:twisting_vines","minecraft:twisting_vines_plant","minecraft:vine","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wall_sign","minecraft:weeping_vines","minecraft:weeping_vines_plant","minecraft:wheat","minecraft:white_banner","minecraft:white_tulip","minecraft:white_wall_banner","minecraft:wither_rose","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:mineable/hoe":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:dried_kelp_block","minecraft:flowering_azalea_leaves","minecraft:hay_block","minecraft:jungle_leaves","minecraft:moss_block","minecraft:moss_carpet","minecraft:nether_wart_block","minecraft:oak_leaves","minecraft:sculk_sensor","minecraft:shroomlight","minecraft:sponge","minecraft:spruce_leaves","minecraft:target","minecraft:warped_wart_block","minecraft:wet_sponge"],"minecraft:mineable/pickaxe":["minecraft:activator_rail","minecraft:amethyst_block","minecraft:amethyst_cluster","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:basalt","minecraft:bell","minecraft:black_concrete","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_terracotta","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blue_concrete","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_shulker_box","minecraft:blue_terracotta","minecraft:bone_block","minecraft:brain_coral_block","minecraft:brewing_stand","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_concrete","minecraft:brown_glazed_terracotta","minecraft:brown_shulker_box","minecraft:brown_terracotta","minecraft:bubble_coral_block","minecraft:budding_amethyst","minecraft:calcite","minecraft:cauldron","minecraft:chain","minecraft:chipped_anvil","minecraft:chiseled_deepslate","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:coal_block","minecraft:coal_ore","minecraft:cobbled_deepslate","minecraft:cobbled_deepslate_slab","minecraft:cobbled_deepslate_stairs","minecraft:cobbled_deepslate_wall","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:copper_block","minecraft:copper_ore","minecraft:cracked_deepslate_bricks","minecraft:cracked_deepslate_tiles","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crimson_nylium","minecraft:crying_obsidian","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_concrete","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_terracotta","minecraft:damaged_anvil","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_brain_coral_wall_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bubble_coral_wall_fan","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_fire_coral_wall_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_horn_coral_wall_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:dead_tube_coral_wall_fan","minecraft:deepslate","minecraft:deepslate_brick_slab","minecraft:deepslate_brick_stairs","minecraft:deepslate_brick_wall","minecraft:deepslate_bricks","minecraft:deepslate_coal_ore","minecraft:deepslate_copper_ore","minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:deepslate_redstone_ore","minecraft:deepslate_tile_slab","minecraft:deepslate_tile_stairs","minecraft:deepslate_tile_wall","minecraft:deepslate_tiles","minecraft:detector_rail","minecraft:diamond_block","minecraft:diamond_ore","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dispenser","minecraft:dripstone_block","minecraft:dropper","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanting_table","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:fire_coral_block","minecraft:furnace","minecraft:gilded_blackstone","minecraft:gold_block","minecraft:gold_ore","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:gray_concrete","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_terracotta","minecraft:green_concrete","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_terracotta","minecraft:grindstone","minecraft:heavy_weighted_pressure_plate","minecraft:hopper","minecraft:horn_coral_block","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_deepslate","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_door","minecraft:iron_ore","minecraft:iron_trapdoor","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_ore","minecraft:large_amethyst_bud","minecraft:lava_cauldron","minecraft:light_blue_concrete","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_terracotta","minecraft:light_gray_concrete","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_terracotta","minecraft:light_weighted_pressure_plate","minecraft:lightning_rod","minecraft:lime_concrete","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_terracotta","minecraft:lodestone","minecraft:magenta_concrete","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_terracotta","minecraft:magma_block","minecraft:medium_amethyst_bud","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:netherite_block","minecraft:netherrack","minecraft:observer","minecraft:obsidian","minecraft:orange_concrete","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_terracotta","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:packed_ice","minecraft:petrified_oak_slab","minecraft:pink_concrete","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_terracotta","minecraft:piston","minecraft:piston_head","minecraft:pointed_dripstone","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_deepslate","minecraft:polished_deepslate_slab","minecraft:polished_deepslate_stairs","minecraft:polished_deepslate_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:powder_snow_cauldron","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:purple_concrete","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_terracotta","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rail","minecraft:raw_copper_block","minecraft:raw_gold_block","minecraft:raw_iron_block","minecraft:red_concrete","minecraft:red_glazed_terracotta","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_terracotta","minecraft:redstone_block","minecraft:redstone_ore","minecraft:respawn_anchor","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:shulker_box","minecraft:small_amethyst_bud","minecraft:smoker","minecraft:smooth_basalt","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:soul_lantern","minecraft:spawner","minecraft:sticky_piston","minecraft:stone","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_pressure_plate","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stonecutter","minecraft:terracotta","minecraft:tube_coral_block","minecraft:tuff","minecraft:warped_nylium","minecraft:water_cauldron","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs","minecraft:white_concrete","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_terracotta","minecraft:yellow_concrete","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_terracotta"],"minecraft:mineable/shovel":["minecraft:black_concrete_powder","minecraft:blue_concrete_powder","minecraft:brown_concrete_powder","minecraft:clay","minecraft:coarse_dirt","minecraft:cyan_concrete_powder","minecraft:dirt","minecraft:dirt_path","minecraft:farmland","minecraft:grass_block","minecraft:gravel","minecraft:gray_concrete_powder","minecraft:green_concrete_powder","minecraft:light_blue_concrete_powder","minecraft:light_gray_concrete_powder","minecraft:lime_concrete_powder","minecraft:magenta_concrete_powder","minecraft:mycelium","minecraft:orange_concrete_powder","minecraft:pink_concrete_powder","minecraft:podzol","minecraft:purple_concrete_powder","minecraft:red_concrete_powder","minecraft:red_sand","minecraft:rooted_dirt","minecraft:sand","minecraft:snow","minecraft:snow_block","minecraft:soul_sand","minecraft:soul_soil","minecraft:white_concrete_powder","minecraft:yellow_concrete_powder"],"minecraft:moss_replaceable":["minecraft:andesite","minecraft:cave_vines","minecraft:cave_vines_plant","minecraft:coarse_dirt","minecraft:deepslate","minecraft:diorite","minecraft:dirt","minecraft:granite","minecraft:grass_block","minecraft:moss_block","minecraft:mycelium","minecraft:podzol","minecraft:rooted_dirt","minecraft:stone","minecraft:tuff"],"minecraft:mushroom_grow_block":["minecraft:crimson_nylium","minecraft:mycelium","minecraft:podzol","minecraft:warped_nylium"],"minecraft:needs_diamond_tool":["minecraft:ancient_debris","minecraft:crying_obsidian","minecraft:netherite_block","minecraft:obsidian","minecraft:respawn_anchor"],"minecraft:needs_iron_tool":["minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_redstone_ore","minecraft:diamond_block","minecraft:diamond_ore","minecraft:emerald_block","minecraft:emerald_ore","minecraft:gold_block","minecraft:gold_ore","minecraft:raw_gold_block","minecraft:redstone_ore"],"minecraft:needs_stone_tool":["minecraft:copper_block","minecraft:copper_ore","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:deepslate_copper_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:iron_block","minecraft:iron_ore","minecraft:lapis_block","minecraft:lapis_ore","minecraft:lightning_rod","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:raw_copper_block","minecraft:raw_iron_block","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crimson_wall_sign","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wall_sign"],"minecraft:nylium":["minecraft:crimson_nylium","minecraft:warped_nylium"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:occludes_vibration_signals":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_fire","minecraft:soul_lantern","minecraft:soul_torch","minecraft:soul_wall_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:portals":["minecraft:end_gateway","minecraft:end_portal","minecraft:nether_portal"],"minecraft:pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:light_weighted_pressure_plate","minecraft:oak_pressure_plate","minecraft:polished_blackstone_pressure_plate","minecraft:spruce_pressure_plate","minecraft:stone_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:prevent_mob_spawning_inside":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:redstone_ores":["minecraft:deepslate_redstone_ore","minecraft:redstone_ore"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:azalea","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:flowering_azalea","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:shulker_boxes":["minecraft:black_shulker_box","minecraft:blue_shulker_box","minecraft:brown_shulker_box","minecraft:cyan_shulker_box","minecraft:gray_shulker_box","minecraft:green_shulker_box","minecraft:light_blue_shulker_box","minecraft:light_gray_shulker_box","minecraft:lime_shulker_box","minecraft:magenta_shulker_box","minecraft:orange_shulker_box","minecraft:pink_shulker_box","minecraft:purple_shulker_box","minecraft:red_shulker_box","minecraft:shulker_box","minecraft:white_shulker_box","minecraft:yellow_shulker_box"],"minecraft:signs":["minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:warped_sign","minecraft:warped_wall_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobbled_deepslate_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_copper_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:exposed_cut_copper_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:oxidized_cut_copper_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_deepslate_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:weathered_cut_copper_slab"],"minecraft:small_dripleaf_placeable":["minecraft:clay","minecraft:moss_block"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:snow":["minecraft:powder_snow","minecraft:snow","minecraft:snow_block"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:soul_speed_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobbled_deepslate_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:cut_copper_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:exposed_cut_copper_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_deepslate_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_cut_copper_stairs"],"minecraft:standing_signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_ore_replaceables":["minecraft:andesite","minecraft:diorite","minecraft:granite","minecraft:stone"],"minecraft:stone_pressure_plates":["minecraft:polished_blackstone_pressure_plate","minecraft:stone_pressure_plate"],"minecraft:strider_warm_blocks":["minecraft:lava"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:underwater_bonemeals":["minecraft:brain_coral","minecraft:brain_coral_fan","minecraft:brain_coral_wall_fan","minecraft:bubble_coral","minecraft:bubble_coral_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral","minecraft:fire_coral_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral","minecraft:horn_coral_fan","minecraft:horn_coral_wall_fan","minecraft:seagrass","minecraft:tube_coral","minecraft:tube_coral_fan","minecraft:tube_coral_wall_fan"],"minecraft:unstable_bottom_center":["minecraft:acacia_fence_gate","minecraft:birch_fence_gate","minecraft:crimson_fence_gate","minecraft:dark_oak_fence_gate","minecraft:jungle_fence_gate","minecraft:oak_fence_gate","minecraft:spruce_fence_gate","minecraft:warped_fence_gate"],"minecraft:valid_spawn":["minecraft:grass_block","minecraft:podzol"],"minecraft:wall_corals":["minecraft:brain_coral_wall_fan","minecraft:bubble_coral_wall_fan","minecraft:fire_coral_wall_fan","minecraft:horn_coral_wall_fan","minecraft:tube_coral_wall_fan"],"minecraft:wall_post_override":["minecraft:acacia_pressure_plate","minecraft:acacia_sign","minecraft:acacia_wall_sign","minecraft:birch_pressure_plate","minecraft:birch_sign","minecraft:birch_wall_sign","minecraft:black_banner","minecraft:black_wall_banner","minecraft:blue_banner","minecraft:blue_wall_banner","minecraft:brown_banner","minecraft:brown_wall_banner","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_wall_sign","minecraft:cyan_banner","minecraft:cyan_wall_banner","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sign","minecraft:dark_oak_wall_sign","minecraft:gray_banner","minecraft:gray_wall_banner","minecraft:green_banner","minecraft:green_wall_banner","minecraft:heavy_weighted_pressure_plate","minecraft:jungle_pressure_plate","minecraft:jungle_sign","minecraft:jungle_wall_sign","minecraft:light_blue_banner","minecraft:light_blue_wall_banner","minecraft:light_gray_banner","minecraft:light_gray_wall_banner","minecraft:light_weighted_pressure_plate","minecraft:lime_banner","minecraft:lime_wall_banner","minecraft:magenta_banner","minecraft:magenta_wall_banner","minecraft:oak_pressure_plate","minecraft:oak_sign","minecraft:oak_wall_sign","minecraft:orange_banner","minecraft:orange_wall_banner","minecraft:pink_banner","minecraft:pink_wall_banner","minecraft:polished_blackstone_pressure_plate","minecraft:purple_banner","minecraft:purple_wall_banner","minecraft:red_banner","minecraft:red_wall_banner","minecraft:redstone_torch","minecraft:soul_torch","minecraft:spruce_pressure_plate","minecraft:spruce_sign","minecraft:spruce_wall_sign","minecraft:stone_pressure_plate","minecraft:torch","minecraft:tripwire","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_wall_sign","minecraft:white_banner","minecraft:white_wall_banner","minecraft:yellow_banner","minecraft:yellow_wall_banner"],"minecraft:wall_signs":["minecraft:acacia_wall_sign","minecraft:birch_wall_sign","minecraft:crimson_wall_sign","minecraft:dark_oak_wall_sign","minecraft:jungle_wall_sign","minecraft:oak_wall_sign","minecraft:spruce_wall_sign","minecraft:warped_wall_sign"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobbled_deepslate_wall","minecraft:cobblestone_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:polished_deepslate_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wart_blocks":["minecraft:nether_wart_block","minecraft:warped_wart_block"],"minecraft:wither_immune":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:jigsaw","minecraft:moving_piston","minecraft:repeating_command_block","minecraft:structure_block"],"minecraft:wither_summon_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]},"entities":["minecraft:area_effect_cloud","minecraft:armor_stand","minecraft:arrow","minecraft:axolotl","minecraft:bat","minecraft:bee","minecraft:blaze","minecraft:boat","minecraft:cat","minecraft:cave_spider","minecraft:chest_minecart","minecraft:chicken","minecraft:cod","minecraft:command_block_minecart","minecraft:cow","minecraft:creeper","minecraft:dolphin","minecraft:donkey","minecraft:dragon_fireball","minecraft:drowned","minecraft:egg","minecraft:elder_guardian","minecraft:end_crystal","minecraft:ender_dragon","minecraft:ender_pearl","minecraft:enderman","minecraft:endermite","minecraft:evoker","minecraft:evoker_fangs","minecraft:experience_bottle","minecraft:experience_orb","minecraft:eye_of_ender","minecraft:falling_block","minecraft:fireball","minecraft:firework_rocket","minecraft:fishing_bobber","minecraft:fox","minecraft:furnace_minecart","minecraft:ghast","minecraft:giant","minecraft:glow_item_frame","minecraft:glow_squid","minecraft:goat","minecraft:guardian","minecraft:hoglin","minecraft:hopper_minecart","minecraft:horse","minecraft:husk","minecraft:illusioner","minecraft:iron_golem","minecraft:item","minecraft:item_frame","minecraft:leash_knot","minecraft:lightning_bolt","minecraft:llama","minecraft:llama_spit","minecraft:magma_cube","minecraft:marker","minecraft:minecart","minecraft:mooshroom","minecraft:mule","minecraft:ocelot","minecraft:painting","minecraft:panda","minecraft:parrot","minecraft:phantom","minecraft:pig","minecraft:piglin","minecraft:piglin_brute","minecraft:pillager","minecraft:player","minecraft:polar_bear","minecraft:potion","minecraft:pufferfish","minecraft:rabbit","minecraft:ravager","minecraft:salmon","minecraft:sheep","minecraft:shulker","minecraft:shulker_bullet","minecraft:silverfish","minecraft:skeleton","minecraft:skeleton_horse","minecraft:slime","minecraft:small_fireball","minecraft:snow_golem","minecraft:snowball","minecraft:spawner_minecart","minecraft:spectral_arrow","minecraft:spider","minecraft:squid","minecraft:stray","minecraft:strider","minecraft:tnt","minecraft:tnt_minecart","minecraft:trader_llama","minecraft:trident","minecraft:tropical_fish","minecraft:turtle","minecraft:vex","minecraft:villager","minecraft:vindicator","minecraft:wandering_trader","minecraft:witch","minecraft:wither","minecraft:wither_skeleton","minecraft:wither_skull","minecraft:wolf","minecraft:zoglin","minecraft:zombie","minecraft:zombie_horse","minecraft:zombie_villager","minecraft:zombified_piglin"],"entitytags":{"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow"],"minecraft:axolotl_always_hostiles":["minecraft:drowned","minecraft:elder_guardian","minecraft:guardian"],"minecraft:axolotl_hunt_targets":["minecraft:cod","minecraft:glow_squid","minecraft:pufferfish","minecraft:salmon","minecraft:squid","minecraft:tropical_fish"],"minecraft:beehive_inhabitors":["minecraft:bee"],"minecraft:freeze_hurts_extra_types":["minecraft:blaze","minecraft:magma_cube","minecraft:strider"],"minecraft:freeze_immune_entity_types":["minecraft:polar_bear","minecraft:snow_golem","minecraft:stray","minecraft:wither"],"minecraft:impact_projectiles":["minecraft:arrow","minecraft:dragon_fireball","minecraft:egg","minecraft:fireball","minecraft:small_fireball","minecraft:snowball","minecraft:spectral_arrow","minecraft:trident","minecraft:wither_skull"],"minecraft:powder_snow_walkable_mobs":["minecraft:endermite","minecraft:fox","minecraft:rabbit","minecraft:silverfish"],"minecraft:raiders":["minecraft:evoker","minecraft:illusioner","minecraft:pillager","minecraft:ravager","minecraft:vindicator","minecraft:witch"],"minecraft:skeletons":["minecraft:skeleton","minecraft:stray","minecraft:wither_skeleton"]},"items":["minecraft:acacia_boat","minecraft:acacia_button","minecraft:acacia_door","minecraft:acacia_fence","minecraft:acacia_fence_gate","minecraft:acacia_leaves","minecraft:acacia_log","minecraft:acacia_planks","minecraft:acacia_pressure_plate","minecraft:acacia_sapling","minecraft:acacia_sign","minecraft:acacia_slab","minecraft:acacia_stairs","minecraft:acacia_trapdoor","minecraft:acacia_wood","minecraft:activator_rail","minecraft:air","minecraft:allium","minecraft:amethyst_block","minecraft:amethyst_cluster","minecraft:amethyst_shard","minecraft:ancient_debris","minecraft:andesite","minecraft:andesite_slab","minecraft:andesite_stairs","minecraft:andesite_wall","minecraft:anvil","minecraft:apple","minecraft:armor_stand","minecraft:arrow","minecraft:axolotl_bucket","minecraft:axolotl_spawn_egg","minecraft:azalea","minecraft:azalea_leaves","minecraft:azure_bluet","minecraft:baked_potato","minecraft:bamboo","minecraft:barrel","minecraft:barrier","minecraft:basalt","minecraft:bat_spawn_egg","minecraft:beacon","minecraft:bedrock","minecraft:bee_nest","minecraft:bee_spawn_egg","minecraft:beef","minecraft:beehive","minecraft:beetroot","minecraft:beetroot_seeds","minecraft:beetroot_soup","minecraft:bell","minecraft:big_dripleaf","minecraft:birch_boat","minecraft:birch_button","minecraft:birch_door","minecraft:birch_fence","minecraft:birch_fence_gate","minecraft:birch_leaves","minecraft:birch_log","minecraft:birch_planks","minecraft:birch_pressure_plate","minecraft:birch_sapling","minecraft:birch_sign","minecraft:birch_slab","minecraft:birch_stairs","minecraft:birch_trapdoor","minecraft:birch_wood","minecraft:black_banner","minecraft:black_bed","minecraft:black_candle","minecraft:black_carpet","minecraft:black_concrete","minecraft:black_concrete_powder","minecraft:black_dye","minecraft:black_glazed_terracotta","minecraft:black_shulker_box","minecraft:black_stained_glass","minecraft:black_stained_glass_pane","minecraft:black_terracotta","minecraft:black_wool","minecraft:blackstone","minecraft:blackstone_slab","minecraft:blackstone_stairs","minecraft:blackstone_wall","minecraft:blast_furnace","minecraft:blaze_powder","minecraft:blaze_rod","minecraft:blaze_spawn_egg","minecraft:blue_banner","minecraft:blue_bed","minecraft:blue_candle","minecraft:blue_carpet","minecraft:blue_concrete","minecraft:blue_concrete_powder","minecraft:blue_dye","minecraft:blue_glazed_terracotta","minecraft:blue_ice","minecraft:blue_orchid","minecraft:blue_shulker_box","minecraft:blue_stained_glass","minecraft:blue_stained_glass_pane","minecraft:blue_terracotta","minecraft:blue_wool","minecraft:bone","minecraft:bone_block","minecraft:bone_meal","minecraft:book","minecraft:bookshelf","minecraft:bow","minecraft:bowl","minecraft:brain_coral","minecraft:brain_coral_block","minecraft:brain_coral_fan","minecraft:bread","minecraft:brewing_stand","minecraft:brick","minecraft:brick_slab","minecraft:brick_stairs","minecraft:brick_wall","minecraft:bricks","minecraft:brown_banner","minecraft:brown_bed","minecraft:brown_candle","minecraft:brown_carpet","minecraft:brown_concrete","minecraft:brown_concrete_powder","minecraft:brown_dye","minecraft:brown_glazed_terracotta","minecraft:brown_mushroom","minecraft:brown_mushroom_block","minecraft:brown_shulker_box","minecraft:brown_stained_glass","minecraft:brown_stained_glass_pane","minecraft:brown_terracotta","minecraft:brown_wool","minecraft:bubble_coral","minecraft:bubble_coral_block","minecraft:bubble_coral_fan","minecraft:bucket","minecraft:budding_amethyst","minecraft:bundle","minecraft:cactus","minecraft:cake","minecraft:calcite","minecraft:campfire","minecraft:candle","minecraft:carrot","minecraft:carrot_on_a_stick","minecraft:cartography_table","minecraft:carved_pumpkin","minecraft:cat_spawn_egg","minecraft:cauldron","minecraft:cave_spider_spawn_egg","minecraft:chain","minecraft:chain_command_block","minecraft:chainmail_boots","minecraft:chainmail_chestplate","minecraft:chainmail_helmet","minecraft:chainmail_leggings","minecraft:charcoal","minecraft:chest","minecraft:chest_minecart","minecraft:chicken","minecraft:chicken_spawn_egg","minecraft:chipped_anvil","minecraft:chiseled_deepslate","minecraft:chiseled_nether_bricks","minecraft:chiseled_polished_blackstone","minecraft:chiseled_quartz_block","minecraft:chiseled_red_sandstone","minecraft:chiseled_sandstone","minecraft:chiseled_stone_bricks","minecraft:chorus_flower","minecraft:chorus_fruit","minecraft:chorus_plant","minecraft:clay","minecraft:clay_ball","minecraft:clock","minecraft:coal","minecraft:coal_block","minecraft:coal_ore","minecraft:coarse_dirt","minecraft:cobbled_deepslate","minecraft:cobbled_deepslate_slab","minecraft:cobbled_deepslate_stairs","minecraft:cobbled_deepslate_wall","minecraft:cobblestone","minecraft:cobblestone_slab","minecraft:cobblestone_stairs","minecraft:cobblestone_wall","minecraft:cobweb","minecraft:cocoa_beans","minecraft:cod","minecraft:cod_bucket","minecraft:cod_spawn_egg","minecraft:command_block","minecraft:command_block_minecart","minecraft:comparator","minecraft:compass","minecraft:composter","minecraft:conduit","minecraft:cooked_beef","minecraft:cooked_chicken","minecraft:cooked_cod","minecraft:cooked_mutton","minecraft:cooked_porkchop","minecraft:cooked_rabbit","minecraft:cooked_salmon","minecraft:cookie","minecraft:copper_block","minecraft:copper_ingot","minecraft:copper_ore","minecraft:cornflower","minecraft:cow_spawn_egg","minecraft:cracked_deepslate_bricks","minecraft:cracked_deepslate_tiles","minecraft:cracked_nether_bricks","minecraft:cracked_polished_blackstone_bricks","minecraft:cracked_stone_bricks","minecraft:crafting_table","minecraft:creeper_banner_pattern","minecraft:creeper_head","minecraft:creeper_spawn_egg","minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_fungus","minecraft:crimson_hyphae","minecraft:crimson_nylium","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_roots","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:crossbow","minecraft:crying_obsidian","minecraft:cut_copper","minecraft:cut_copper_slab","minecraft:cut_copper_stairs","minecraft:cut_red_sandstone","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone","minecraft:cut_sandstone_slab","minecraft:cyan_banner","minecraft:cyan_bed","minecraft:cyan_candle","minecraft:cyan_carpet","minecraft:cyan_concrete","minecraft:cyan_concrete_powder","minecraft:cyan_dye","minecraft:cyan_glazed_terracotta","minecraft:cyan_shulker_box","minecraft:cyan_stained_glass","minecraft:cyan_stained_glass_pane","minecraft:cyan_terracotta","minecraft:cyan_wool","minecraft:damaged_anvil","minecraft:dandelion","minecraft:dark_oak_boat","minecraft:dark_oak_button","minecraft:dark_oak_door","minecraft:dark_oak_fence","minecraft:dark_oak_fence_gate","minecraft:dark_oak_leaves","minecraft:dark_oak_log","minecraft:dark_oak_planks","minecraft:dark_oak_pressure_plate","minecraft:dark_oak_sapling","minecraft:dark_oak_sign","minecraft:dark_oak_slab","minecraft:dark_oak_stairs","minecraft:dark_oak_trapdoor","minecraft:dark_oak_wood","minecraft:dark_prismarine","minecraft:dark_prismarine_slab","minecraft:dark_prismarine_stairs","minecraft:daylight_detector","minecraft:dead_brain_coral","minecraft:dead_brain_coral_block","minecraft:dead_brain_coral_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_block","minecraft:dead_bubble_coral_fan","minecraft:dead_bush","minecraft:dead_fire_coral","minecraft:dead_fire_coral_block","minecraft:dead_fire_coral_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_block","minecraft:dead_horn_coral_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_block","minecraft:dead_tube_coral_fan","minecraft:debug_stick","minecraft:deepslate","minecraft:deepslate_brick_slab","minecraft:deepslate_brick_stairs","minecraft:deepslate_brick_wall","minecraft:deepslate_bricks","minecraft:deepslate_coal_ore","minecraft:deepslate_copper_ore","minecraft:deepslate_diamond_ore","minecraft:deepslate_emerald_ore","minecraft:deepslate_gold_ore","minecraft:deepslate_iron_ore","minecraft:deepslate_lapis_ore","minecraft:deepslate_redstone_ore","minecraft:deepslate_tile_slab","minecraft:deepslate_tile_stairs","minecraft:deepslate_tile_wall","minecraft:deepslate_tiles","minecraft:detector_rail","minecraft:diamond","minecraft:diamond_axe","minecraft:diamond_block","minecraft:diamond_boots","minecraft:diamond_chestplate","minecraft:diamond_helmet","minecraft:diamond_hoe","minecraft:diamond_horse_armor","minecraft:diamond_leggings","minecraft:diamond_ore","minecraft:diamond_pickaxe","minecraft:diamond_shovel","minecraft:diamond_sword","minecraft:diorite","minecraft:diorite_slab","minecraft:diorite_stairs","minecraft:diorite_wall","minecraft:dirt","minecraft:dirt_path","minecraft:dispenser","minecraft:dolphin_spawn_egg","minecraft:donkey_spawn_egg","minecraft:dragon_breath","minecraft:dragon_egg","minecraft:dragon_head","minecraft:dried_kelp","minecraft:dried_kelp_block","minecraft:dripstone_block","minecraft:dropper","minecraft:drowned_spawn_egg","minecraft:egg","minecraft:elder_guardian_spawn_egg","minecraft:elytra","minecraft:emerald","minecraft:emerald_block","minecraft:emerald_ore","minecraft:enchanted_book","minecraft:enchanted_golden_apple","minecraft:enchanting_table","minecraft:end_crystal","minecraft:end_portal_frame","minecraft:end_rod","minecraft:end_stone","minecraft:end_stone_brick_slab","minecraft:end_stone_brick_stairs","minecraft:end_stone_brick_wall","minecraft:end_stone_bricks","minecraft:ender_chest","minecraft:ender_eye","minecraft:ender_pearl","minecraft:enderman_spawn_egg","minecraft:endermite_spawn_egg","minecraft:evoker_spawn_egg","minecraft:experience_bottle","minecraft:exposed_copper","minecraft:exposed_cut_copper","minecraft:exposed_cut_copper_slab","minecraft:exposed_cut_copper_stairs","minecraft:farmland","minecraft:feather","minecraft:fermented_spider_eye","minecraft:fern","minecraft:filled_map","minecraft:fire_charge","minecraft:fire_coral","minecraft:fire_coral_block","minecraft:fire_coral_fan","minecraft:firework_rocket","minecraft:firework_star","minecraft:fishing_rod","minecraft:fletching_table","minecraft:flint","minecraft:flint_and_steel","minecraft:flower_banner_pattern","minecraft:flower_pot","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:fox_spawn_egg","minecraft:furnace","minecraft:furnace_minecart","minecraft:ghast_spawn_egg","minecraft:ghast_tear","minecraft:gilded_blackstone","minecraft:glass","minecraft:glass_bottle","minecraft:glass_pane","minecraft:glistering_melon_slice","minecraft:globe_banner_pattern","minecraft:glow_berries","minecraft:glow_ink_sac","minecraft:glow_item_frame","minecraft:glow_lichen","minecraft:glow_squid_spawn_egg","minecraft:glowstone","minecraft:glowstone_dust","minecraft:goat_spawn_egg","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_nugget","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:granite","minecraft:granite_slab","minecraft:granite_stairs","minecraft:granite_wall","minecraft:grass","minecraft:grass_block","minecraft:gravel","minecraft:gray_banner","minecraft:gray_bed","minecraft:gray_candle","minecraft:gray_carpet","minecraft:gray_concrete","minecraft:gray_concrete_powder","minecraft:gray_dye","minecraft:gray_glazed_terracotta","minecraft:gray_shulker_box","minecraft:gray_stained_glass","minecraft:gray_stained_glass_pane","minecraft:gray_terracotta","minecraft:gray_wool","minecraft:green_banner","minecraft:green_bed","minecraft:green_candle","minecraft:green_carpet","minecraft:green_concrete","minecraft:green_concrete_powder","minecraft:green_dye","minecraft:green_glazed_terracotta","minecraft:green_shulker_box","minecraft:green_stained_glass","minecraft:green_stained_glass_pane","minecraft:green_terracotta","minecraft:green_wool","minecraft:grindstone","minecraft:guardian_spawn_egg","minecraft:gunpowder","minecraft:hanging_roots","minecraft:hay_block","minecraft:heart_of_the_sea","minecraft:heavy_weighted_pressure_plate","minecraft:hoglin_spawn_egg","minecraft:honey_block","minecraft:honey_bottle","minecraft:honeycomb","minecraft:honeycomb_block","minecraft:hopper","minecraft:hopper_minecart","minecraft:horn_coral","minecraft:horn_coral_block","minecraft:horn_coral_fan","minecraft:horse_spawn_egg","minecraft:husk_spawn_egg","minecraft:ice","minecraft:infested_chiseled_stone_bricks","minecraft:infested_cobblestone","minecraft:infested_cracked_stone_bricks","minecraft:infested_deepslate","minecraft:infested_mossy_stone_bricks","minecraft:infested_stone","minecraft:infested_stone_bricks","minecraft:ink_sac","minecraft:iron_axe","minecraft:iron_bars","minecraft:iron_block","minecraft:iron_boots","minecraft:iron_chestplate","minecraft:iron_door","minecraft:iron_helmet","minecraft:iron_hoe","minecraft:iron_horse_armor","minecraft:iron_ingot","minecraft:iron_leggings","minecraft:iron_nugget","minecraft:iron_ore","minecraft:iron_pickaxe","minecraft:iron_shovel","minecraft:iron_sword","minecraft:iron_trapdoor","minecraft:item_frame","minecraft:jack_o_lantern","minecraft:jigsaw","minecraft:jukebox","minecraft:jungle_boat","minecraft:jungle_button","minecraft:jungle_door","minecraft:jungle_fence","minecraft:jungle_fence_gate","minecraft:jungle_leaves","minecraft:jungle_log","minecraft:jungle_planks","minecraft:jungle_pressure_plate","minecraft:jungle_sapling","minecraft:jungle_sign","minecraft:jungle_slab","minecraft:jungle_stairs","minecraft:jungle_trapdoor","minecraft:jungle_wood","minecraft:kelp","minecraft:knowledge_book","minecraft:ladder","minecraft:lantern","minecraft:lapis_block","minecraft:lapis_lazuli","minecraft:lapis_ore","minecraft:large_amethyst_bud","minecraft:large_fern","minecraft:lava_bucket","minecraft:lead","minecraft:leather","minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings","minecraft:lectern","minecraft:lever","minecraft:light","minecraft:light_blue_banner","minecraft:light_blue_bed","minecraft:light_blue_candle","minecraft:light_blue_carpet","minecraft:light_blue_concrete","minecraft:light_blue_concrete_powder","minecraft:light_blue_dye","minecraft:light_blue_glazed_terracotta","minecraft:light_blue_shulker_box","minecraft:light_blue_stained_glass","minecraft:light_blue_stained_glass_pane","minecraft:light_blue_terracotta","minecraft:light_blue_wool","minecraft:light_gray_banner","minecraft:light_gray_bed","minecraft:light_gray_candle","minecraft:light_gray_carpet","minecraft:light_gray_concrete","minecraft:light_gray_concrete_powder","minecraft:light_gray_dye","minecraft:light_gray_glazed_terracotta","minecraft:light_gray_shulker_box","minecraft:light_gray_stained_glass","minecraft:light_gray_stained_glass_pane","minecraft:light_gray_terracotta","minecraft:light_gray_wool","minecraft:light_weighted_pressure_plate","minecraft:lightning_rod","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:lily_pad","minecraft:lime_banner","minecraft:lime_bed","minecraft:lime_candle","minecraft:lime_carpet","minecraft:lime_concrete","minecraft:lime_concrete_powder","minecraft:lime_dye","minecraft:lime_glazed_terracotta","minecraft:lime_shulker_box","minecraft:lime_stained_glass","minecraft:lime_stained_glass_pane","minecraft:lime_terracotta","minecraft:lime_wool","minecraft:lingering_potion","minecraft:llama_spawn_egg","minecraft:lodestone","minecraft:loom","minecraft:magenta_banner","minecraft:magenta_bed","minecraft:magenta_candle","minecraft:magenta_carpet","minecraft:magenta_concrete","minecraft:magenta_concrete_powder","minecraft:magenta_dye","minecraft:magenta_glazed_terracotta","minecraft:magenta_shulker_box","minecraft:magenta_stained_glass","minecraft:magenta_stained_glass_pane","minecraft:magenta_terracotta","minecraft:magenta_wool","minecraft:magma_block","minecraft:magma_cream","minecraft:magma_cube_spawn_egg","minecraft:map","minecraft:medium_amethyst_bud","minecraft:melon","minecraft:melon_seeds","minecraft:melon_slice","minecraft:milk_bucket","minecraft:minecart","minecraft:mojang_banner_pattern","minecraft:mooshroom_spawn_egg","minecraft:moss_block","minecraft:moss_carpet","minecraft:mossy_cobblestone","minecraft:mossy_cobblestone_slab","minecraft:mossy_cobblestone_stairs","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_slab","minecraft:mossy_stone_brick_stairs","minecraft:mossy_stone_brick_wall","minecraft:mossy_stone_bricks","minecraft:mule_spawn_egg","minecraft:mushroom_stem","minecraft:mushroom_stew","minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward","minecraft:mutton","minecraft:mycelium","minecraft:name_tag","minecraft:nautilus_shell","minecraft:nether_brick","minecraft:nether_brick_fence","minecraft:nether_brick_slab","minecraft:nether_brick_stairs","minecraft:nether_brick_wall","minecraft:nether_bricks","minecraft:nether_gold_ore","minecraft:nether_quartz_ore","minecraft:nether_sprouts","minecraft:nether_star","minecraft:nether_wart","minecraft:nether_wart_block","minecraft:netherite_axe","minecraft:netherite_block","minecraft:netherite_boots","minecraft:netherite_chestplate","minecraft:netherite_helmet","minecraft:netherite_hoe","minecraft:netherite_ingot","minecraft:netherite_leggings","minecraft:netherite_pickaxe","minecraft:netherite_scrap","minecraft:netherite_shovel","minecraft:netherite_sword","minecraft:netherrack","minecraft:note_block","minecraft:oak_boat","minecraft:oak_button","minecraft:oak_door","minecraft:oak_fence","minecraft:oak_fence_gate","minecraft:oak_leaves","minecraft:oak_log","minecraft:oak_planks","minecraft:oak_pressure_plate","minecraft:oak_sapling","minecraft:oak_sign","minecraft:oak_slab","minecraft:oak_stairs","minecraft:oak_trapdoor","minecraft:oak_wood","minecraft:observer","minecraft:obsidian","minecraft:ocelot_spawn_egg","minecraft:orange_banner","minecraft:orange_bed","minecraft:orange_candle","minecraft:orange_carpet","minecraft:orange_concrete","minecraft:orange_concrete_powder","minecraft:orange_dye","minecraft:orange_glazed_terracotta","minecraft:orange_shulker_box","minecraft:orange_stained_glass","minecraft:orange_stained_glass_pane","minecraft:orange_terracotta","minecraft:orange_tulip","minecraft:orange_wool","minecraft:oxeye_daisy","minecraft:oxidized_copper","minecraft:oxidized_cut_copper","minecraft:oxidized_cut_copper_slab","minecraft:oxidized_cut_copper_stairs","minecraft:packed_ice","minecraft:painting","minecraft:panda_spawn_egg","minecraft:paper","minecraft:parrot_spawn_egg","minecraft:peony","minecraft:petrified_oak_slab","minecraft:phantom_membrane","minecraft:phantom_spawn_egg","minecraft:pig_spawn_egg","minecraft:piglin_banner_pattern","minecraft:piglin_brute_spawn_egg","minecraft:piglin_spawn_egg","minecraft:pillager_spawn_egg","minecraft:pink_banner","minecraft:pink_bed","minecraft:pink_candle","minecraft:pink_carpet","minecraft:pink_concrete","minecraft:pink_concrete_powder","minecraft:pink_dye","minecraft:pink_glazed_terracotta","minecraft:pink_shulker_box","minecraft:pink_stained_glass","minecraft:pink_stained_glass_pane","minecraft:pink_terracotta","minecraft:pink_tulip","minecraft:pink_wool","minecraft:piston","minecraft:player_head","minecraft:podzol","minecraft:pointed_dripstone","minecraft:poisonous_potato","minecraft:polar_bear_spawn_egg","minecraft:polished_andesite","minecraft:polished_andesite_slab","minecraft:polished_andesite_stairs","minecraft:polished_basalt","minecraft:polished_blackstone","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_bricks","minecraft:polished_blackstone_button","minecraft:polished_blackstone_pressure_plate","minecraft:polished_blackstone_slab","minecraft:polished_blackstone_stairs","minecraft:polished_blackstone_wall","minecraft:polished_deepslate","minecraft:polished_deepslate_slab","minecraft:polished_deepslate_stairs","minecraft:polished_deepslate_wall","minecraft:polished_diorite","minecraft:polished_diorite_slab","minecraft:polished_diorite_stairs","minecraft:polished_granite","minecraft:polished_granite_slab","minecraft:polished_granite_stairs","minecraft:popped_chorus_fruit","minecraft:poppy","minecraft:porkchop","minecraft:potato","minecraft:potion","minecraft:powder_snow_bucket","minecraft:powered_rail","minecraft:prismarine","minecraft:prismarine_brick_slab","minecraft:prismarine_brick_stairs","minecraft:prismarine_bricks","minecraft:prismarine_crystals","minecraft:prismarine_shard","minecraft:prismarine_slab","minecraft:prismarine_stairs","minecraft:prismarine_wall","minecraft:pufferfish","minecraft:pufferfish_bucket","minecraft:pufferfish_spawn_egg","minecraft:pumpkin","minecraft:pumpkin_pie","minecraft:pumpkin_seeds","minecraft:purple_banner","minecraft:purple_bed","minecraft:purple_candle","minecraft:purple_carpet","minecraft:purple_concrete","minecraft:purple_concrete_powder","minecraft:purple_dye","minecraft:purple_glazed_terracotta","minecraft:purple_shulker_box","minecraft:purple_stained_glass","minecraft:purple_stained_glass_pane","minecraft:purple_terracotta","minecraft:purple_wool","minecraft:purpur_block","minecraft:purpur_pillar","minecraft:purpur_slab","minecraft:purpur_stairs","minecraft:quartz","minecraft:quartz_block","minecraft:quartz_bricks","minecraft:quartz_pillar","minecraft:quartz_slab","minecraft:quartz_stairs","minecraft:rabbit","minecraft:rabbit_foot","minecraft:rabbit_hide","minecraft:rabbit_spawn_egg","minecraft:rabbit_stew","minecraft:rail","minecraft:ravager_spawn_egg","minecraft:raw_copper","minecraft:raw_copper_block","minecraft:raw_gold","minecraft:raw_gold_block","minecraft:raw_iron","minecraft:raw_iron_block","minecraft:red_banner","minecraft:red_bed","minecraft:red_candle","minecraft:red_carpet","minecraft:red_concrete","minecraft:red_concrete_powder","minecraft:red_dye","minecraft:red_glazed_terracotta","minecraft:red_mushroom","minecraft:red_mushroom_block","minecraft:red_nether_brick_slab","minecraft:red_nether_brick_stairs","minecraft:red_nether_brick_wall","minecraft:red_nether_bricks","minecraft:red_sand","minecraft:red_sandstone","minecraft:red_sandstone_slab","minecraft:red_sandstone_stairs","minecraft:red_sandstone_wall","minecraft:red_shulker_box","minecraft:red_stained_glass","minecraft:red_stained_glass_pane","minecraft:red_terracotta","minecraft:red_tulip","minecraft:red_wool","minecraft:redstone","minecraft:redstone_block","minecraft:redstone_lamp","minecraft:redstone_ore","minecraft:redstone_torch","minecraft:repeater","minecraft:repeating_command_block","minecraft:respawn_anchor","minecraft:rooted_dirt","minecraft:rose_bush","minecraft:rotten_flesh","minecraft:saddle","minecraft:salmon","minecraft:salmon_bucket","minecraft:salmon_spawn_egg","minecraft:sand","minecraft:sandstone","minecraft:sandstone_slab","minecraft:sandstone_stairs","minecraft:sandstone_wall","minecraft:scaffolding","minecraft:sculk_sensor","minecraft:scute","minecraft:sea_lantern","minecraft:sea_pickle","minecraft:seagrass","minecraft:shears","minecraft:sheep_spawn_egg","minecraft:shield","minecraft:shroomlight","minecraft:shulker_box","minecraft:shulker_shell","minecraft:shulker_spawn_egg","minecraft:silverfish_spawn_egg","minecraft:skeleton_horse_spawn_egg","minecraft:skeleton_skull","minecraft:skeleton_spawn_egg","minecraft:skull_banner_pattern","minecraft:slime_ball","minecraft:slime_block","minecraft:slime_spawn_egg","minecraft:small_amethyst_bud","minecraft:small_dripleaf","minecraft:smithing_table","minecraft:smoker","minecraft:smooth_basalt","minecraft:smooth_quartz","minecraft:smooth_quartz_slab","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone","minecraft:smooth_red_sandstone_slab","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone","minecraft:smooth_sandstone_slab","minecraft:smooth_sandstone_stairs","minecraft:smooth_stone","minecraft:smooth_stone_slab","minecraft:snow","minecraft:snow_block","minecraft:snowball","minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_sand","minecraft:soul_soil","minecraft:soul_torch","minecraft:spawner","minecraft:spectral_arrow","minecraft:spider_eye","minecraft:spider_spawn_egg","minecraft:splash_potion","minecraft:sponge","minecraft:spore_blossom","minecraft:spruce_boat","minecraft:spruce_button","minecraft:spruce_door","minecraft:spruce_fence","minecraft:spruce_fence_gate","minecraft:spruce_leaves","minecraft:spruce_log","minecraft:spruce_planks","minecraft:spruce_pressure_plate","minecraft:spruce_sapling","minecraft:spruce_sign","minecraft:spruce_slab","minecraft:spruce_stairs","minecraft:spruce_trapdoor","minecraft:spruce_wood","minecraft:spyglass","minecraft:squid_spawn_egg","minecraft:stick","minecraft:sticky_piston","minecraft:stone","minecraft:stone_axe","minecraft:stone_brick_slab","minecraft:stone_brick_stairs","minecraft:stone_brick_wall","minecraft:stone_bricks","minecraft:stone_button","minecraft:stone_hoe","minecraft:stone_pickaxe","minecraft:stone_pressure_plate","minecraft:stone_shovel","minecraft:stone_slab","minecraft:stone_stairs","minecraft:stone_sword","minecraft:stonecutter","minecraft:stray_spawn_egg","minecraft:strider_spawn_egg","minecraft:string","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:structure_block","minecraft:structure_void","minecraft:sugar","minecraft:sugar_cane","minecraft:sunflower","minecraft:suspicious_stew","minecraft:sweet_berries","minecraft:tall_grass","minecraft:target","minecraft:terracotta","minecraft:tinted_glass","minecraft:tipped_arrow","minecraft:tnt","minecraft:tnt_minecart","minecraft:torch","minecraft:totem_of_undying","minecraft:trader_llama_spawn_egg","minecraft:trapped_chest","minecraft:trident","minecraft:tripwire_hook","minecraft:tropical_fish","minecraft:tropical_fish_bucket","minecraft:tropical_fish_spawn_egg","minecraft:tube_coral","minecraft:tube_coral_block","minecraft:tube_coral_fan","minecraft:tuff","minecraft:turtle_egg","minecraft:turtle_helmet","minecraft:turtle_spawn_egg","minecraft:twisting_vines","minecraft:vex_spawn_egg","minecraft:villager_spawn_egg","minecraft:vindicator_spawn_egg","minecraft:vine","minecraft:wandering_trader_spawn_egg","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_fungus","minecraft:warped_fungus_on_a_stick","minecraft:warped_hyphae","minecraft:warped_nylium","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_roots","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor","minecraft:warped_wart_block","minecraft:water_bucket","minecraft:waxed_copper_block","minecraft:waxed_cut_copper","minecraft:waxed_cut_copper_slab","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_copper","minecraft:waxed_exposed_cut_copper","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_copper","minecraft:waxed_oxidized_cut_copper","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_copper","minecraft:waxed_weathered_cut_copper","minecraft:waxed_weathered_cut_copper_slab","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_copper","minecraft:weathered_cut_copper","minecraft:weathered_cut_copper_slab","minecraft:weathered_cut_copper_stairs","minecraft:weeping_vines","minecraft:wet_sponge","minecraft:wheat","minecraft:wheat_seeds","minecraft:white_banner","minecraft:white_bed","minecraft:white_candle","minecraft:white_carpet","minecraft:white_concrete","minecraft:white_concrete_powder","minecraft:white_dye","minecraft:white_glazed_terracotta","minecraft:white_shulker_box","minecraft:white_stained_glass","minecraft:white_stained_glass_pane","minecraft:white_terracotta","minecraft:white_tulip","minecraft:white_wool","minecraft:witch_spawn_egg","minecraft:wither_rose","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_spawn_egg","minecraft:wolf_spawn_egg","minecraft:wooden_axe","minecraft:wooden_hoe","minecraft:wooden_pickaxe","minecraft:wooden_shovel","minecraft:wooden_sword","minecraft:writable_book","minecraft:written_book","minecraft:yellow_banner","minecraft:yellow_bed","minecraft:yellow_candle","minecraft:yellow_carpet","minecraft:yellow_concrete","minecraft:yellow_concrete_powder","minecraft:yellow_dye","minecraft:yellow_glazed_terracotta","minecraft:yellow_shulker_box","minecraft:yellow_stained_glass","minecraft:yellow_stained_glass_pane","minecraft:yellow_terracotta","minecraft:yellow_wool","minecraft:zoglin_spawn_egg","minecraft:zombie_head","minecraft:zombie_horse_spawn_egg","minecraft:zombie_spawn_egg","minecraft:zombie_villager_spawn_egg","minecraft:zombified_piglin_spawn_egg"],"itemtags":{"minecraft:acacia_logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood"],"minecraft:anvil":["minecraft:anvil","minecraft:chipped_anvil","minecraft:damaged_anvil"],"minecraft:arrows":["minecraft:arrow","minecraft:spectral_arrow","minecraft:tipped_arrow"],"minecraft:axolotl_tempt_items":["minecraft:tropical_fish_bucket"],"minecraft:banners":["minecraft:black_banner","minecraft:blue_banner","minecraft:brown_banner","minecraft:cyan_banner","minecraft:gray_banner","minecraft:green_banner","minecraft:light_blue_banner","minecraft:light_gray_banner","minecraft:lime_banner","minecraft:magenta_banner","minecraft:orange_banner","minecraft:pink_banner","minecraft:purple_banner","minecraft:red_banner","minecraft:white_banner","minecraft:yellow_banner"],"minecraft:beacon_payment_items":["minecraft:diamond","minecraft:emerald","minecraft:gold_ingot","minecraft:iron_ingot","minecraft:netherite_ingot"],"minecraft:beds":["minecraft:black_bed","minecraft:blue_bed","minecraft:brown_bed","minecraft:cyan_bed","minecraft:gray_bed","minecraft:green_bed","minecraft:light_blue_bed","minecraft:light_gray_bed","minecraft:lime_bed","minecraft:magenta_bed","minecraft:orange_bed","minecraft:pink_bed","minecraft:purple_bed","minecraft:red_bed","minecraft:white_bed","minecraft:yellow_bed"],"minecraft:birch_logs":["minecraft:birch_log","minecraft:birch_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood"],"minecraft:boats":["minecraft:acacia_boat","minecraft:birch_boat","minecraft:dark_oak_boat","minecraft:jungle_boat","minecraft:oak_boat","minecraft:spruce_boat"],"minecraft:buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:polished_blackstone_button","minecraft:spruce_button","minecraft:stone_button","minecraft:warped_button"],"minecraft:candles":["minecraft:black_candle","minecraft:blue_candle","minecraft:brown_candle","minecraft:candle","minecraft:cyan_candle","minecraft:gray_candle","minecraft:green_candle","minecraft:light_blue_candle","minecraft:light_gray_candle","minecraft:lime_candle","minecraft:magenta_candle","minecraft:orange_candle","minecraft:pink_candle","minecraft:purple_candle","minecraft:red_candle","minecraft:white_candle","minecraft:yellow_candle"],"minecraft:carpets":["minecraft:black_carpet","minecraft:blue_carpet","minecraft:brown_carpet","minecraft:cyan_carpet","minecraft:gray_carpet","minecraft:green_carpet","minecraft:light_blue_carpet","minecraft:light_gray_carpet","minecraft:lime_carpet","minecraft:magenta_carpet","minecraft:orange_carpet","minecraft:pink_carpet","minecraft:purple_carpet","minecraft:red_carpet","minecraft:white_carpet","minecraft:yellow_carpet"],"minecraft:cluster_max_harvestables":["minecraft:diamond_pickaxe","minecraft:golden_pickaxe","minecraft:iron_pickaxe","minecraft:netherite_pickaxe","minecraft:stone_pickaxe","minecraft:wooden_pickaxe"],"minecraft:coal_ores":["minecraft:coal_ore","minecraft:deepslate_coal_ore"],"minecraft:coals":["minecraft:charcoal","minecraft:coal"],"minecraft:copper_ores":["minecraft:copper_ore","minecraft:deepslate_copper_ore"],"minecraft:creeper_drop_music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:crimson_stems":["minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem"],"minecraft:dark_oak_logs":["minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood"],"minecraft:diamond_ores":["minecraft:deepslate_diamond_ore","minecraft:diamond_ore"],"minecraft:doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:iron_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:emerald_ores":["minecraft:deepslate_emerald_ore","minecraft:emerald_ore"],"minecraft:fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:nether_brick_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:fishes":["minecraft:cod","minecraft:cooked_cod","minecraft:cooked_salmon","minecraft:pufferfish","minecraft:salmon","minecraft:tropical_fish"],"minecraft:flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:flowering_azalea","minecraft:flowering_azalea_leaves","minecraft:lilac","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:peony","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:rose_bush","minecraft:sunflower","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:fox_food":["minecraft:glow_berries","minecraft:sweet_berries"],"minecraft:freeze_immune_wearables":["minecraft:leather_boots","minecraft:leather_chestplate","minecraft:leather_helmet","minecraft:leather_horse_armor","minecraft:leather_leggings"],"minecraft:gold_ores":["minecraft:deepslate_gold_ore","minecraft:gold_ore","minecraft:nether_gold_ore"],"minecraft:ignored_by_piglin_babies":["minecraft:leather"],"minecraft:iron_ores":["minecraft:deepslate_iron_ore","minecraft:iron_ore"],"minecraft:jungle_logs":["minecraft:jungle_log","minecraft:jungle_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood"],"minecraft:lapis_ores":["minecraft:deepslate_lapis_ore","minecraft:lapis_ore"],"minecraft:leaves":["minecraft:acacia_leaves","minecraft:azalea_leaves","minecraft:birch_leaves","minecraft:dark_oak_leaves","minecraft:flowering_azalea_leaves","minecraft:jungle_leaves","minecraft:oak_leaves","minecraft:spruce_leaves"],"minecraft:lectern_books":["minecraft:writable_book","minecraft:written_book"],"minecraft:logs":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:crimson_hyphae","minecraft:crimson_stem","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:logs_that_burn":["minecraft:acacia_log","minecraft:acacia_wood","minecraft:birch_log","minecraft:birch_wood","minecraft:dark_oak_log","minecraft:dark_oak_wood","minecraft:jungle_log","minecraft:jungle_wood","minecraft:oak_log","minecraft:oak_wood","minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_acacia_log","minecraft:stripped_acacia_wood","minecraft:stripped_birch_log","minecraft:stripped_birch_wood","minecraft:stripped_dark_oak_log","minecraft:stripped_dark_oak_wood","minecraft:stripped_jungle_log","minecraft:stripped_jungle_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:music_discs":["minecraft:music_disc_11","minecraft:music_disc_13","minecraft:music_disc_blocks","minecraft:music_disc_cat","minecraft:music_disc_chirp","minecraft:music_disc_far","minecraft:music_disc_mall","minecraft:music_disc_mellohi","minecraft:music_disc_pigstep","minecraft:music_disc_stal","minecraft:music_disc_strad","minecraft:music_disc_wait","minecraft:music_disc_ward"],"minecraft:non_flammable_wood":["minecraft:crimson_button","minecraft:crimson_door","minecraft:crimson_fence","minecraft:crimson_fence_gate","minecraft:crimson_hyphae","minecraft:crimson_planks","minecraft:crimson_pressure_plate","minecraft:crimson_sign","minecraft:crimson_slab","minecraft:crimson_stairs","minecraft:crimson_stem","minecraft:crimson_trapdoor","minecraft:stripped_crimson_hyphae","minecraft:stripped_crimson_stem","minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_button","minecraft:warped_door","minecraft:warped_fence","minecraft:warped_fence_gate","minecraft:warped_hyphae","minecraft:warped_planks","minecraft:warped_pressure_plate","minecraft:warped_sign","minecraft:warped_slab","minecraft:warped_stairs","minecraft:warped_stem","minecraft:warped_trapdoor"],"minecraft:oak_logs":["minecraft:oak_log","minecraft:oak_wood","minecraft:stripped_oak_log","minecraft:stripped_oak_wood"],"minecraft:occludes_vibration_signals":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"],"minecraft:piglin_food":["minecraft:cooked_porkchop","minecraft:porkchop"],"minecraft:piglin_loved":["minecraft:bell","minecraft:clock","minecraft:deepslate_gold_ore","minecraft:enchanted_golden_apple","minecraft:gilded_blackstone","minecraft:glistering_melon_slice","minecraft:gold_block","minecraft:gold_ingot","minecraft:gold_ore","minecraft:golden_apple","minecraft:golden_axe","minecraft:golden_boots","minecraft:golden_carrot","minecraft:golden_chestplate","minecraft:golden_helmet","minecraft:golden_hoe","minecraft:golden_horse_armor","minecraft:golden_leggings","minecraft:golden_pickaxe","minecraft:golden_shovel","minecraft:golden_sword","minecraft:light_weighted_pressure_plate","minecraft:nether_gold_ore","minecraft:raw_gold","minecraft:raw_gold_block"],"minecraft:piglin_repellents":["minecraft:soul_campfire","minecraft:soul_lantern","minecraft:soul_torch"],"minecraft:planks":["minecraft:acacia_planks","minecraft:birch_planks","minecraft:crimson_planks","minecraft:dark_oak_planks","minecraft:jungle_planks","minecraft:oak_planks","minecraft:spruce_planks","minecraft:warped_planks"],"minecraft:rails":["minecraft:activator_rail","minecraft:detector_rail","minecraft:powered_rail","minecraft:rail"],"minecraft:redstone_ores":["minecraft:deepslate_redstone_ore","minecraft:redstone_ore"],"minecraft:sand":["minecraft:red_sand","minecraft:sand"],"minecraft:saplings":["minecraft:acacia_sapling","minecraft:azalea","minecraft:birch_sapling","minecraft:dark_oak_sapling","minecraft:flowering_azalea","minecraft:jungle_sapling","minecraft:oak_sapling","minecraft:spruce_sapling"],"minecraft:signs":["minecraft:acacia_sign","minecraft:birch_sign","minecraft:crimson_sign","minecraft:dark_oak_sign","minecraft:jungle_sign","minecraft:oak_sign","minecraft:spruce_sign","minecraft:warped_sign"],"minecraft:slabs":["minecraft:acacia_slab","minecraft:andesite_slab","minecraft:birch_slab","minecraft:blackstone_slab","minecraft:brick_slab","minecraft:cobbled_deepslate_slab","minecraft:cobblestone_slab","minecraft:crimson_slab","minecraft:cut_copper_slab","minecraft:cut_red_sandstone_slab","minecraft:cut_sandstone_slab","minecraft:dark_oak_slab","minecraft:dark_prismarine_slab","minecraft:deepslate_brick_slab","minecraft:deepslate_tile_slab","minecraft:diorite_slab","minecraft:end_stone_brick_slab","minecraft:exposed_cut_copper_slab","minecraft:granite_slab","minecraft:jungle_slab","minecraft:mossy_cobblestone_slab","minecraft:mossy_stone_brick_slab","minecraft:nether_brick_slab","minecraft:oak_slab","minecraft:oxidized_cut_copper_slab","minecraft:petrified_oak_slab","minecraft:polished_andesite_slab","minecraft:polished_blackstone_brick_slab","minecraft:polished_blackstone_slab","minecraft:polished_deepslate_slab","minecraft:polished_diorite_slab","minecraft:polished_granite_slab","minecraft:prismarine_brick_slab","minecraft:prismarine_slab","minecraft:purpur_slab","minecraft:quartz_slab","minecraft:red_nether_brick_slab","minecraft:red_sandstone_slab","minecraft:sandstone_slab","minecraft:smooth_quartz_slab","minecraft:smooth_red_sandstone_slab","minecraft:smooth_sandstone_slab","minecraft:smooth_stone_slab","minecraft:spruce_slab","minecraft:stone_brick_slab","minecraft:stone_slab","minecraft:warped_slab","minecraft:waxed_cut_copper_slab","minecraft:waxed_exposed_cut_copper_slab","minecraft:waxed_oxidized_cut_copper_slab","minecraft:waxed_weathered_cut_copper_slab","minecraft:weathered_cut_copper_slab"],"minecraft:small_flowers":["minecraft:allium","minecraft:azure_bluet","minecraft:blue_orchid","minecraft:cornflower","minecraft:dandelion","minecraft:lily_of_the_valley","minecraft:orange_tulip","minecraft:oxeye_daisy","minecraft:pink_tulip","minecraft:poppy","minecraft:red_tulip","minecraft:white_tulip","minecraft:wither_rose"],"minecraft:soul_fire_base_blocks":["minecraft:soul_sand","minecraft:soul_soil"],"minecraft:spruce_logs":["minecraft:spruce_log","minecraft:spruce_wood","minecraft:stripped_spruce_log","minecraft:stripped_spruce_wood"],"minecraft:stairs":["minecraft:acacia_stairs","minecraft:andesite_stairs","minecraft:birch_stairs","minecraft:blackstone_stairs","minecraft:brick_stairs","minecraft:cobbled_deepslate_stairs","minecraft:cobblestone_stairs","minecraft:crimson_stairs","minecraft:cut_copper_stairs","minecraft:dark_oak_stairs","minecraft:dark_prismarine_stairs","minecraft:deepslate_brick_stairs","minecraft:deepslate_tile_stairs","minecraft:diorite_stairs","minecraft:end_stone_brick_stairs","minecraft:exposed_cut_copper_stairs","minecraft:granite_stairs","minecraft:jungle_stairs","minecraft:mossy_cobblestone_stairs","minecraft:mossy_stone_brick_stairs","minecraft:nether_brick_stairs","minecraft:oak_stairs","minecraft:oxidized_cut_copper_stairs","minecraft:polished_andesite_stairs","minecraft:polished_blackstone_brick_stairs","minecraft:polished_blackstone_stairs","minecraft:polished_deepslate_stairs","minecraft:polished_diorite_stairs","minecraft:polished_granite_stairs","minecraft:prismarine_brick_stairs","minecraft:prismarine_stairs","minecraft:purpur_stairs","minecraft:quartz_stairs","minecraft:red_nether_brick_stairs","minecraft:red_sandstone_stairs","minecraft:sandstone_stairs","minecraft:smooth_quartz_stairs","minecraft:smooth_red_sandstone_stairs","minecraft:smooth_sandstone_stairs","minecraft:spruce_stairs","minecraft:stone_brick_stairs","minecraft:stone_stairs","minecraft:warped_stairs","minecraft:waxed_cut_copper_stairs","minecraft:waxed_exposed_cut_copper_stairs","minecraft:waxed_oxidized_cut_copper_stairs","minecraft:waxed_weathered_cut_copper_stairs","minecraft:weathered_cut_copper_stairs"],"minecraft:stone_bricks":["minecraft:chiseled_stone_bricks","minecraft:cracked_stone_bricks","minecraft:mossy_stone_bricks","minecraft:stone_bricks"],"minecraft:stone_crafting_materials":["minecraft:blackstone","minecraft:cobbled_deepslate","minecraft:cobblestone"],"minecraft:stone_tool_materials":["minecraft:blackstone","minecraft:cobbled_deepslate","minecraft:cobblestone"],"minecraft:tall_flowers":["minecraft:lilac","minecraft:peony","minecraft:rose_bush","minecraft:sunflower"],"minecraft:trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:iron_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:walls":["minecraft:andesite_wall","minecraft:blackstone_wall","minecraft:brick_wall","minecraft:cobbled_deepslate_wall","minecraft:cobblestone_wall","minecraft:deepslate_brick_wall","minecraft:deepslate_tile_wall","minecraft:diorite_wall","minecraft:end_stone_brick_wall","minecraft:granite_wall","minecraft:mossy_cobblestone_wall","minecraft:mossy_stone_brick_wall","minecraft:nether_brick_wall","minecraft:polished_blackstone_brick_wall","minecraft:polished_blackstone_wall","minecraft:polished_deepslate_wall","minecraft:prismarine_wall","minecraft:red_nether_brick_wall","minecraft:red_sandstone_wall","minecraft:sandstone_wall","minecraft:stone_brick_wall"],"minecraft:warped_stems":["minecraft:stripped_warped_hyphae","minecraft:stripped_warped_stem","minecraft:warped_hyphae","minecraft:warped_stem"],"minecraft:wooden_buttons":["minecraft:acacia_button","minecraft:birch_button","minecraft:crimson_button","minecraft:dark_oak_button","minecraft:jungle_button","minecraft:oak_button","minecraft:spruce_button","minecraft:warped_button"],"minecraft:wooden_doors":["minecraft:acacia_door","minecraft:birch_door","minecraft:crimson_door","minecraft:dark_oak_door","minecraft:jungle_door","minecraft:oak_door","minecraft:spruce_door","minecraft:warped_door"],"minecraft:wooden_fences":["minecraft:acacia_fence","minecraft:birch_fence","minecraft:crimson_fence","minecraft:dark_oak_fence","minecraft:jungle_fence","minecraft:oak_fence","minecraft:spruce_fence","minecraft:warped_fence"],"minecraft:wooden_pressure_plates":["minecraft:acacia_pressure_plate","minecraft:birch_pressure_plate","minecraft:crimson_pressure_plate","minecraft:dark_oak_pressure_plate","minecraft:jungle_pressure_plate","minecraft:oak_pressure_plate","minecraft:spruce_pressure_plate","minecraft:warped_pressure_plate"],"minecraft:wooden_slabs":["minecraft:acacia_slab","minecraft:birch_slab","minecraft:crimson_slab","minecraft:dark_oak_slab","minecraft:jungle_slab","minecraft:oak_slab","minecraft:spruce_slab","minecraft:warped_slab"],"minecraft:wooden_stairs":["minecraft:acacia_stairs","minecraft:birch_stairs","minecraft:crimson_stairs","minecraft:dark_oak_stairs","minecraft:jungle_stairs","minecraft:oak_stairs","minecraft:spruce_stairs","minecraft:warped_stairs"],"minecraft:wooden_trapdoors":["minecraft:acacia_trapdoor","minecraft:birch_trapdoor","minecraft:crimson_trapdoor","minecraft:dark_oak_trapdoor","minecraft:jungle_trapdoor","minecraft:oak_trapdoor","minecraft:spruce_trapdoor","minecraft:warped_trapdoor"],"minecraft:wool":["minecraft:black_wool","minecraft:blue_wool","minecraft:brown_wool","minecraft:cyan_wool","minecraft:gray_wool","minecraft:green_wool","minecraft:light_blue_wool","minecraft:light_gray_wool","minecraft:lime_wool","minecraft:magenta_wool","minecraft:orange_wool","minecraft:pink_wool","minecraft:purple_wool","minecraft:red_wool","minecraft:white_wool","minecraft:yellow_wool"]}} \ No newline at end of file diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java index 7b994f3f40..e318ef612c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/internal/Constants.java @@ -67,4 +67,9 @@ private Constants() { */ public static final int DATA_VERSION_MC_1_16 = 2566; + /** + * The DataVersion for Minecraft 1.17 + */ + public static final int DATA_VERSION_MC_1_17 = 2724; + } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java index 048804ebfb..fea11ab7d6 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/biome/BiomeTypes.java @@ -48,6 +48,7 @@ public final class BiomeTypes { @Nullable public static final BiomeType DESERT = get("minecraft:desert"); @Nullable public static final BiomeType DESERT_HILLS = get("minecraft:desert_hills"); @Nullable public static final BiomeType DESERT_LAKES = get("minecraft:desert_lakes"); + @Nullable public static final BiomeType DRIPSTONE_CAVES = get("minecraft:dripstone_caves"); @Nullable public static final BiomeType END_BARRENS = get("minecraft:end_barrens"); @Nullable public static final BiomeType END_HIGHLANDS = get("minecraft:end_highlands"); @Nullable public static final BiomeType END_MIDLANDS = get("minecraft:end_midlands"); @@ -66,6 +67,7 @@ public final class BiomeTypes { @Nullable public static final BiomeType JUNGLE_EDGE = get("minecraft:jungle_edge"); @Nullable public static final BiomeType JUNGLE_HILLS = get("minecraft:jungle_hills"); @Nullable public static final BiomeType LUKEWARM_OCEAN = get("minecraft:lukewarm_ocean"); + @Nullable public static final BiomeType LUSH_CAVES = get("minecraft:lush_caves"); @Nullable public static final BiomeType MODIFIED_BADLANDS_PLATEAU = get("minecraft:modified_badlands_plateau"); @Nullable public static final BiomeType MODIFIED_GRAVELLY_MOUNTAINS = get("minecraft:modified_gravelly_mountains"); @Nullable public static final BiomeType MODIFIED_JUNGLE = get("minecraft:modified_jungle"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java index 1789a47891..a6e7ae4023 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockCategories.java @@ -39,23 +39,37 @@ public final class BlockCategories { public static final BlockCategory BIRCH_LOGS = get("minecraft:birch_logs"); public static final BlockCategory BUTTONS = get("minecraft:buttons"); public static final BlockCategory CAMPFIRES = get("minecraft:campfires"); + public static final BlockCategory CANDLE_CAKES = get("minecraft:candle_cakes"); + public static final BlockCategory CANDLES = get("minecraft:candles"); public static final BlockCategory CARPETS = get("minecraft:carpets"); + public static final BlockCategory CAULDRONS = get("minecraft:cauldrons"); + public static final BlockCategory CAVE_VINES = get("minecraft:cave_vines"); public static final BlockCategory CLIMBABLE = get("minecraft:climbable"); + public static final BlockCategory COAL_ORES = get("minecraft:coal_ores"); + public static final BlockCategory COPPER_ORES = get("minecraft:copper_ores"); public static final BlockCategory CORAL_BLOCKS = get("minecraft:coral_blocks"); public static final BlockCategory CORAL_PLANTS = get("minecraft:coral_plants"); public static final BlockCategory CORALS = get("minecraft:corals"); public static final BlockCategory CRIMSON_STEMS = get("minecraft:crimson_stems"); public static final BlockCategory CROPS = get("minecraft:crops"); + public static final BlockCategory CRYSTAL_SOUND_BLOCKS = get("minecraft:crystal_sound_blocks"); public static final BlockCategory DARK_OAK_LOGS = get("minecraft:dark_oak_logs"); + public static final BlockCategory DEEPSLATE_ORE_REPLACEABLES = get("minecraft:deepslate_ore_replaceables"); + public static final BlockCategory DIAMOND_ORES = get("minecraft:diamond_ores"); + public static final BlockCategory DIRT = get("minecraft:dirt"); @Deprecated public static final BlockCategory DIRT_LIKE = get("minecraft:dirt_like"); public static final BlockCategory DOORS = get("minecraft:doors"); public static final BlockCategory DRAGON_IMMUNE = get("minecraft:dragon_immune"); + public static final BlockCategory DRIPSTONE_REPLACEABLE_BLOCKS = get("minecraft:dripstone_replaceable_blocks"); + public static final BlockCategory EMERALD_ORES = get("minecraft:emerald_ores"); public static final BlockCategory ENDERMAN_HOLDABLE = get("minecraft:enderman_holdable"); + public static final BlockCategory FEATURES_CANNOT_REPLACE = get("minecraft:features_cannot_replace"); public static final BlockCategory FENCE_GATES = get("minecraft:fence_gates"); public static final BlockCategory FENCES = get("minecraft:fences"); public static final BlockCategory FIRE = get("minecraft:fire"); public static final BlockCategory FLOWER_POTS = get("minecraft:flower_pots"); public static final BlockCategory FLOWERS = get("minecraft:flowers"); + public static final BlockCategory GEODE_INVALID_BLOCKS = get("minecraft:geode_invalid_blocks"); public static final BlockCategory GOLD_ORES = get("minecraft:gold_ores"); public static final BlockCategory GUARDED_BY_PIGLINS = get("minecraft:guarded_by_piglins"); public static final BlockCategory HOGLIN_REPELLENTS = get("minecraft:hoglin_repellents"); @@ -64,32 +78,50 @@ public final class BlockCategories { public static final BlockCategory INFINIBURN_END = get("minecraft:infiniburn_end"); public static final BlockCategory INFINIBURN_NETHER = get("minecraft:infiniburn_nether"); public static final BlockCategory INFINIBURN_OVERWORLD = get("minecraft:infiniburn_overworld"); + public static final BlockCategory INSIDE_STEP_SOUND_BLOCKS = get("minecraft:inside_step_sound_blocks"); + public static final BlockCategory IRON_ORES = get("minecraft:iron_ores"); public static final BlockCategory JUNGLE_LOGS = get("minecraft:jungle_logs"); + public static final BlockCategory LAPIS_ORES = get("minecraft:lapis_ores"); + public static final BlockCategory LAVA_POOL_STONE_REPLACEABLES = get("minecraft:lava_pool_stone_replaceables"); public static final BlockCategory LEAVES = get("minecraft:leaves"); public static final BlockCategory LOGS = get("minecraft:logs"); public static final BlockCategory LOGS_THAT_BURN = get("minecraft:logs_that_burn"); + public static final BlockCategory LUSH_GROUND_REPLACEABLE = get("minecraft:lush_ground_replaceable"); + public static final BlockCategory MINEABLE_AXE = get("minecraft:mineable/axe"); + public static final BlockCategory MINEABLE_HOE = get("minecraft:mineable/hoe"); + public static final BlockCategory MINEABLE_PICKAXE = get("minecraft:mineable/pickaxe"); + public static final BlockCategory MINEABLE_SHOVEL = get("minecraft:mineable/shovel"); + public static final BlockCategory MOSS_REPLACEABLE = get("minecraft:moss_replaceable"); public static final BlockCategory MUSHROOM_GROW_BLOCK = get("minecraft:mushroom_grow_block"); + public static final BlockCategory NEEDS_DIAMOND_TOOL = get("minecraft:needs_diamond_tool"); + public static final BlockCategory NEEDS_IRON_TOOL = get("minecraft:needs_iron_tool"); + public static final BlockCategory NEEDS_STONE_TOOL = get("minecraft:needs_stone_tool"); public static final BlockCategory NON_FLAMMABLE_WOOD = get("minecraft:non_flammable_wood"); public static final BlockCategory NYLIUM = get("minecraft:nylium"); public static final BlockCategory OAK_LOGS = get("minecraft:oak_logs"); + public static final BlockCategory OCCLUDES_VIBRATION_SIGNALS = get("minecraft:occludes_vibration_signals"); public static final BlockCategory PIGLIN_REPELLENTS = get("minecraft:piglin_repellents"); public static final BlockCategory PLANKS = get("minecraft:planks"); public static final BlockCategory PORTALS = get("minecraft:portals"); public static final BlockCategory PRESSURE_PLATES = get("minecraft:pressure_plates"); public static final BlockCategory PREVENT_MOB_SPAWNING_INSIDE = get("minecraft:prevent_mob_spawning_inside"); public static final BlockCategory RAILS = get("minecraft:rails"); + public static final BlockCategory REDSTONE_ORES = get("minecraft:redstone_ores"); public static final BlockCategory SAND = get("minecraft:sand"); public static final BlockCategory SAPLINGS = get("minecraft:saplings"); public static final BlockCategory SHULKER_BOXES = get("minecraft:shulker_boxes"); public static final BlockCategory SIGNS = get("minecraft:signs"); public static final BlockCategory SLABS = get("minecraft:slabs"); + public static final BlockCategory SMALL_DRIPLEAF_PLACEABLE = get("minecraft:small_dripleaf_placeable"); public static final BlockCategory SMALL_FLOWERS = get("minecraft:small_flowers"); + public static final BlockCategory SNOW = get("minecraft:snow"); public static final BlockCategory SOUL_FIRE_BASE_BLOCKS = get("minecraft:soul_fire_base_blocks"); public static final BlockCategory SOUL_SPEED_BLOCKS = get("minecraft:soul_speed_blocks"); public static final BlockCategory SPRUCE_LOGS = get("minecraft:spruce_logs"); public static final BlockCategory STAIRS = get("minecraft:stairs"); public static final BlockCategory STANDING_SIGNS = get("minecraft:standing_signs"); public static final BlockCategory STONE_BRICKS = get("minecraft:stone_bricks"); + public static final BlockCategory STONE_ORE_REPLACEABLES = get("minecraft:stone_ore_replaceables"); public static final BlockCategory STONE_PRESSURE_PLATES = get("minecraft:stone_pressure_plates"); public static final BlockCategory STRIDER_WARM_BLOCKS = get("minecraft:strider_warm_blocks"); public static final BlockCategory TALL_FLOWERS = get("minecraft:tall_flowers"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java index d0f3210a4c..3ebbf10d54 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/block/BlockTypes.java @@ -46,6 +46,8 @@ public final class BlockTypes { @Nullable public static final BlockType ACTIVATOR_RAIL = get("minecraft:activator_rail"); @Nullable public static final BlockType AIR = get("minecraft:air"); @Nullable public static final BlockType ALLIUM = get("minecraft:allium"); + @Nullable public static final BlockType AMETHYST_BLOCK = get("minecraft:amethyst_block"); + @Nullable public static final BlockType AMETHYST_CLUSTER = get("minecraft:amethyst_cluster"); @Nullable public static final BlockType ANCIENT_DEBRIS = get("minecraft:ancient_debris"); @Nullable public static final BlockType ANDESITE = get("minecraft:andesite"); @Nullable public static final BlockType ANDESITE_SLAB = get("minecraft:andesite_slab"); @@ -54,6 +56,8 @@ public final class BlockTypes { @Nullable public static final BlockType ANVIL = get("minecraft:anvil"); @Nullable public static final BlockType ATTACHED_MELON_STEM = get("minecraft:attached_melon_stem"); @Nullable public static final BlockType ATTACHED_PUMPKIN_STEM = get("minecraft:attached_pumpkin_stem"); + @Nullable public static final BlockType AZALEA = get("minecraft:azalea"); + @Nullable public static final BlockType AZALEA_LEAVES = get("minecraft:azalea_leaves"); @Nullable public static final BlockType AZURE_BLUET = get("minecraft:azure_bluet"); @Nullable public static final BlockType BAMBOO = get("minecraft:bamboo"); @Nullable public static final BlockType BAMBOO_SAPLING = get("minecraft:bamboo_sapling"); @@ -66,6 +70,8 @@ public final class BlockTypes { @Nullable public static final BlockType BEEHIVE = get("minecraft:beehive"); @Nullable public static final BlockType BEETROOTS = get("minecraft:beetroots"); @Nullable public static final BlockType BELL = get("minecraft:bell"); + @Nullable public static final BlockType BIG_DRIPLEAF = get("minecraft:big_dripleaf"); + @Nullable public static final BlockType BIG_DRIPLEAF_STEM = get("minecraft:big_dripleaf_stem"); @Nullable public static final BlockType BIRCH_BUTTON = get("minecraft:birch_button"); @Nullable public static final BlockType BIRCH_DOOR = get("minecraft:birch_door"); @Nullable public static final BlockType BIRCH_FENCE = get("minecraft:birch_fence"); @@ -83,6 +89,8 @@ public final class BlockTypes { @Nullable public static final BlockType BIRCH_WOOD = get("minecraft:birch_wood"); @Nullable public static final BlockType BLACK_BANNER = get("minecraft:black_banner"); @Nullable public static final BlockType BLACK_BED = get("minecraft:black_bed"); + @Nullable public static final BlockType BLACK_CANDLE = get("minecraft:black_candle"); + @Nullable public static final BlockType BLACK_CANDLE_CAKE = get("minecraft:black_candle_cake"); @Nullable public static final BlockType BLACK_CARPET = get("minecraft:black_carpet"); @Nullable public static final BlockType BLACK_CONCRETE = get("minecraft:black_concrete"); @Nullable public static final BlockType BLACK_CONCRETE_POWDER = get("minecraft:black_concrete_powder"); @@ -100,6 +108,8 @@ public final class BlockTypes { @Nullable public static final BlockType BLAST_FURNACE = get("minecraft:blast_furnace"); @Nullable public static final BlockType BLUE_BANNER = get("minecraft:blue_banner"); @Nullable public static final BlockType BLUE_BED = get("minecraft:blue_bed"); + @Nullable public static final BlockType BLUE_CANDLE = get("minecraft:blue_candle"); + @Nullable public static final BlockType BLUE_CANDLE_CAKE = get("minecraft:blue_candle_cake"); @Nullable public static final BlockType BLUE_CARPET = get("minecraft:blue_carpet"); @Nullable public static final BlockType BLUE_CONCRETE = get("minecraft:blue_concrete"); @Nullable public static final BlockType BLUE_CONCRETE_POWDER = get("minecraft:blue_concrete_powder"); @@ -125,6 +135,8 @@ public final class BlockTypes { @Nullable public static final BlockType BRICKS = get("minecraft:bricks"); @Nullable public static final BlockType BROWN_BANNER = get("minecraft:brown_banner"); @Nullable public static final BlockType BROWN_BED = get("minecraft:brown_bed"); + @Nullable public static final BlockType BROWN_CANDLE = get("minecraft:brown_candle"); + @Nullable public static final BlockType BROWN_CANDLE_CAKE = get("minecraft:brown_candle_cake"); @Nullable public static final BlockType BROWN_CARPET = get("minecraft:brown_carpet"); @Nullable public static final BlockType BROWN_CONCRETE = get("minecraft:brown_concrete"); @Nullable public static final BlockType BROWN_CONCRETE_POWDER = get("minecraft:brown_concrete_powder"); @@ -142,18 +154,25 @@ public final class BlockTypes { @Nullable public static final BlockType BUBBLE_CORAL_BLOCK = get("minecraft:bubble_coral_block"); @Nullable public static final BlockType BUBBLE_CORAL_FAN = get("minecraft:bubble_coral_fan"); @Nullable public static final BlockType BUBBLE_CORAL_WALL_FAN = get("minecraft:bubble_coral_wall_fan"); + @Nullable public static final BlockType BUDDING_AMETHYST = get("minecraft:budding_amethyst"); @Nullable public static final BlockType CACTUS = get("minecraft:cactus"); @Nullable public static final BlockType CAKE = get("minecraft:cake"); + @Nullable public static final BlockType CALCITE = get("minecraft:calcite"); @Nullable public static final BlockType CAMPFIRE = get("minecraft:campfire"); + @Nullable public static final BlockType CANDLE = get("minecraft:candle"); + @Nullable public static final BlockType CANDLE_CAKE = get("minecraft:candle_cake"); @Nullable public static final BlockType CARROTS = get("minecraft:carrots"); @Nullable public static final BlockType CARTOGRAPHY_TABLE = get("minecraft:cartography_table"); @Nullable public static final BlockType CARVED_PUMPKIN = get("minecraft:carved_pumpkin"); @Nullable public static final BlockType CAULDRON = get("minecraft:cauldron"); @Nullable public static final BlockType CAVE_AIR = get("minecraft:cave_air"); + @Nullable public static final BlockType CAVE_VINES = get("minecraft:cave_vines"); + @Nullable public static final BlockType CAVE_VINES_PLANT = get("minecraft:cave_vines_plant"); @Nullable public static final BlockType CHAIN = get("minecraft:chain"); @Nullable public static final BlockType CHAIN_COMMAND_BLOCK = get("minecraft:chain_command_block"); @Nullable public static final BlockType CHEST = get("minecraft:chest"); @Nullable public static final BlockType CHIPPED_ANVIL = get("minecraft:chipped_anvil"); + @Nullable public static final BlockType CHISELED_DEEPSLATE = get("minecraft:chiseled_deepslate"); @Nullable public static final BlockType CHISELED_NETHER_BRICKS = get("minecraft:chiseled_nether_bricks"); @Nullable public static final BlockType CHISELED_POLISHED_BLACKSTONE = get("minecraft:chiseled_polished_blackstone"); @Nullable public static final BlockType CHISELED_QUARTZ_BLOCK = get("minecraft:chiseled_quartz_block"); @@ -166,6 +185,10 @@ public final class BlockTypes { @Nullable public static final BlockType COAL_BLOCK = get("minecraft:coal_block"); @Nullable public static final BlockType COAL_ORE = get("minecraft:coal_ore"); @Nullable public static final BlockType COARSE_DIRT = get("minecraft:coarse_dirt"); + @Nullable public static final BlockType COBBLED_DEEPSLATE = get("minecraft:cobbled_deepslate"); + @Nullable public static final BlockType COBBLED_DEEPSLATE_SLAB = get("minecraft:cobbled_deepslate_slab"); + @Nullable public static final BlockType COBBLED_DEEPSLATE_STAIRS = get("minecraft:cobbled_deepslate_stairs"); + @Nullable public static final BlockType COBBLED_DEEPSLATE_WALL = get("minecraft:cobbled_deepslate_wall"); @Nullable public static final BlockType COBBLESTONE = get("minecraft:cobblestone"); @Nullable public static final BlockType COBBLESTONE_SLAB = get("minecraft:cobblestone_slab"); @Nullable public static final BlockType COBBLESTONE_STAIRS = get("minecraft:cobblestone_stairs"); @@ -176,7 +199,11 @@ public final class BlockTypes { @Nullable public static final BlockType COMPARATOR = get("minecraft:comparator"); @Nullable public static final BlockType COMPOSTER = get("minecraft:composter"); @Nullable public static final BlockType CONDUIT = get("minecraft:conduit"); + @Nullable public static final BlockType COPPER_BLOCK = get("minecraft:copper_block"); + @Nullable public static final BlockType COPPER_ORE = get("minecraft:copper_ore"); @Nullable public static final BlockType CORNFLOWER = get("minecraft:cornflower"); + @Nullable public static final BlockType CRACKED_DEEPSLATE_BRICKS = get("minecraft:cracked_deepslate_bricks"); + @Nullable public static final BlockType CRACKED_DEEPSLATE_TILES = get("minecraft:cracked_deepslate_tiles"); @Nullable public static final BlockType CRACKED_NETHER_BRICKS = get("minecraft:cracked_nether_bricks"); @Nullable public static final BlockType CRACKED_POLISHED_BLACKSTONE_BRICKS = get("minecraft:cracked_polished_blackstone_bricks"); @Nullable public static final BlockType CRACKED_STONE_BRICKS = get("minecraft:cracked_stone_bricks"); @@ -200,12 +227,17 @@ public final class BlockTypes { @Nullable public static final BlockType CRIMSON_TRAPDOOR = get("minecraft:crimson_trapdoor"); @Nullable public static final BlockType CRIMSON_WALL_SIGN = get("minecraft:crimson_wall_sign"); @Nullable public static final BlockType CRYING_OBSIDIAN = get("minecraft:crying_obsidian"); + @Nullable public static final BlockType CUT_COPPER = get("minecraft:cut_copper"); + @Nullable public static final BlockType CUT_COPPER_SLAB = get("minecraft:cut_copper_slab"); + @Nullable public static final BlockType CUT_COPPER_STAIRS = get("minecraft:cut_copper_stairs"); @Nullable public static final BlockType CUT_RED_SANDSTONE = get("minecraft:cut_red_sandstone"); @Nullable public static final BlockType CUT_RED_SANDSTONE_SLAB = get("minecraft:cut_red_sandstone_slab"); @Nullable public static final BlockType CUT_SANDSTONE = get("minecraft:cut_sandstone"); @Nullable public static final BlockType CUT_SANDSTONE_SLAB = get("minecraft:cut_sandstone_slab"); @Nullable public static final BlockType CYAN_BANNER = get("minecraft:cyan_banner"); @Nullable public static final BlockType CYAN_BED = get("minecraft:cyan_bed"); + @Nullable public static final BlockType CYAN_CANDLE = get("minecraft:cyan_candle"); + @Nullable public static final BlockType CYAN_CANDLE_CAKE = get("minecraft:cyan_candle_cake"); @Nullable public static final BlockType CYAN_CARPET = get("minecraft:cyan_carpet"); @Nullable public static final BlockType CYAN_CONCRETE = get("minecraft:cyan_concrete"); @Nullable public static final BlockType CYAN_CONCRETE_POWDER = get("minecraft:cyan_concrete_powder"); @@ -258,6 +290,23 @@ public final class BlockTypes { @Nullable public static final BlockType DEAD_TUBE_CORAL_BLOCK = get("minecraft:dead_tube_coral_block"); @Nullable public static final BlockType DEAD_TUBE_CORAL_FAN = get("minecraft:dead_tube_coral_fan"); @Nullable public static final BlockType DEAD_TUBE_CORAL_WALL_FAN = get("minecraft:dead_tube_coral_wall_fan"); + @Nullable public static final BlockType DEEPSLATE = get("minecraft:deepslate"); + @Nullable public static final BlockType DEEPSLATE_BRICK_SLAB = get("minecraft:deepslate_brick_slab"); + @Nullable public static final BlockType DEEPSLATE_BRICK_STAIRS = get("minecraft:deepslate_brick_stairs"); + @Nullable public static final BlockType DEEPSLATE_BRICK_WALL = get("minecraft:deepslate_brick_wall"); + @Nullable public static final BlockType DEEPSLATE_BRICKS = get("minecraft:deepslate_bricks"); + @Nullable public static final BlockType DEEPSLATE_COAL_ORE = get("minecraft:deepslate_coal_ore"); + @Nullable public static final BlockType DEEPSLATE_COPPER_ORE = get("minecraft:deepslate_copper_ore"); + @Nullable public static final BlockType DEEPSLATE_DIAMOND_ORE = get("minecraft:deepslate_diamond_ore"); + @Nullable public static final BlockType DEEPSLATE_EMERALD_ORE = get("minecraft:deepslate_emerald_ore"); + @Nullable public static final BlockType DEEPSLATE_GOLD_ORE = get("minecraft:deepslate_gold_ore"); + @Nullable public static final BlockType DEEPSLATE_IRON_ORE = get("minecraft:deepslate_iron_ore"); + @Nullable public static final BlockType DEEPSLATE_LAPIS_ORE = get("minecraft:deepslate_lapis_ore"); + @Nullable public static final BlockType DEEPSLATE_REDSTONE_ORE = get("minecraft:deepslate_redstone_ore"); + @Nullable public static final BlockType DEEPSLATE_TILE_SLAB = get("minecraft:deepslate_tile_slab"); + @Nullable public static final BlockType DEEPSLATE_TILE_STAIRS = get("minecraft:deepslate_tile_stairs"); + @Nullable public static final BlockType DEEPSLATE_TILE_WALL = get("minecraft:deepslate_tile_wall"); + @Nullable public static final BlockType DEEPSLATE_TILES = get("minecraft:deepslate_tiles"); @Nullable public static final BlockType DETECTOR_RAIL = get("minecraft:detector_rail"); @Nullable public static final BlockType DIAMOND_BLOCK = get("minecraft:diamond_block"); @Nullable public static final BlockType DIAMOND_ORE = get("minecraft:diamond_ore"); @@ -266,11 +315,13 @@ public final class BlockTypes { @Nullable public static final BlockType DIORITE_STAIRS = get("minecraft:diorite_stairs"); @Nullable public static final BlockType DIORITE_WALL = get("minecraft:diorite_wall"); @Nullable public static final BlockType DIRT = get("minecraft:dirt"); + @Nullable public static final BlockType DIRT_PATH = get("minecraft:dirt_path"); @Nullable public static final BlockType DISPENSER = get("minecraft:dispenser"); @Nullable public static final BlockType DRAGON_EGG = get("minecraft:dragon_egg"); @Nullable public static final BlockType DRAGON_HEAD = get("minecraft:dragon_head"); @Nullable public static final BlockType DRAGON_WALL_HEAD = get("minecraft:dragon_wall_head"); @Nullable public static final BlockType DRIED_KELP_BLOCK = get("minecraft:dried_kelp_block"); + @Nullable public static final BlockType DRIPSTONE_BLOCK = get("minecraft:dripstone_block"); @Nullable public static final BlockType DROPPER = get("minecraft:dropper"); @Nullable public static final BlockType EMERALD_BLOCK = get("minecraft:emerald_block"); @Nullable public static final BlockType EMERALD_ORE = get("minecraft:emerald_ore"); @@ -285,6 +336,10 @@ public final class BlockTypes { @Nullable public static final BlockType END_STONE_BRICK_WALL = get("minecraft:end_stone_brick_wall"); @Nullable public static final BlockType END_STONE_BRICKS = get("minecraft:end_stone_bricks"); @Nullable public static final BlockType ENDER_CHEST = get("minecraft:ender_chest"); + @Nullable public static final BlockType EXPOSED_COPPER = get("minecraft:exposed_copper"); + @Nullable public static final BlockType EXPOSED_CUT_COPPER = get("minecraft:exposed_cut_copper"); + @Nullable public static final BlockType EXPOSED_CUT_COPPER_SLAB = get("minecraft:exposed_cut_copper_slab"); + @Nullable public static final BlockType EXPOSED_CUT_COPPER_STAIRS = get("minecraft:exposed_cut_copper_stairs"); @Nullable public static final BlockType FARMLAND = get("minecraft:farmland"); @Nullable public static final BlockType FERN = get("minecraft:fern"); @Nullable public static final BlockType FIRE = get("minecraft:fire"); @@ -294,11 +349,14 @@ public final class BlockTypes { @Nullable public static final BlockType FIRE_CORAL_WALL_FAN = get("minecraft:fire_coral_wall_fan"); @Nullable public static final BlockType FLETCHING_TABLE = get("minecraft:fletching_table"); @Nullable public static final BlockType FLOWER_POT = get("minecraft:flower_pot"); + @Nullable public static final BlockType FLOWERING_AZALEA = get("minecraft:flowering_azalea"); + @Nullable public static final BlockType FLOWERING_AZALEA_LEAVES = get("minecraft:flowering_azalea_leaves"); @Nullable public static final BlockType FROSTED_ICE = get("minecraft:frosted_ice"); @Nullable public static final BlockType FURNACE = get("minecraft:furnace"); @Nullable public static final BlockType GILDED_BLACKSTONE = get("minecraft:gilded_blackstone"); @Nullable public static final BlockType GLASS = get("minecraft:glass"); @Nullable public static final BlockType GLASS_PANE = get("minecraft:glass_pane"); + @Nullable public static final BlockType GLOW_LICHEN = get("minecraft:glow_lichen"); @Nullable public static final BlockType GLOWSTONE = get("minecraft:glowstone"); @Nullable public static final BlockType GOLD_BLOCK = get("minecraft:gold_block"); @Nullable public static final BlockType GOLD_ORE = get("minecraft:gold_ore"); @@ -308,10 +366,12 @@ public final class BlockTypes { @Nullable public static final BlockType GRANITE_WALL = get("minecraft:granite_wall"); @Nullable public static final BlockType GRASS = get("minecraft:grass"); @Nullable public static final BlockType GRASS_BLOCK = get("minecraft:grass_block"); - @Nullable public static final BlockType GRASS_PATH = get("minecraft:grass_path"); + @Deprecated @Nullable public static final BlockType GRASS_PATH = get("minecraft:grass_path"); @Nullable public static final BlockType GRAVEL = get("minecraft:gravel"); @Nullable public static final BlockType GRAY_BANNER = get("minecraft:gray_banner"); @Nullable public static final BlockType GRAY_BED = get("minecraft:gray_bed"); + @Nullable public static final BlockType GRAY_CANDLE = get("minecraft:gray_candle"); + @Nullable public static final BlockType GRAY_CANDLE_CAKE = get("minecraft:gray_candle_cake"); @Nullable public static final BlockType GRAY_CARPET = get("minecraft:gray_carpet"); @Nullable public static final BlockType GRAY_CONCRETE = get("minecraft:gray_concrete"); @Nullable public static final BlockType GRAY_CONCRETE_POWDER = get("minecraft:gray_concrete_powder"); @@ -324,6 +384,8 @@ public final class BlockTypes { @Nullable public static final BlockType GRAY_WOOL = get("minecraft:gray_wool"); @Nullable public static final BlockType GREEN_BANNER = get("minecraft:green_banner"); @Nullable public static final BlockType GREEN_BED = get("minecraft:green_bed"); + @Nullable public static final BlockType GREEN_CANDLE = get("minecraft:green_candle"); + @Nullable public static final BlockType GREEN_CANDLE_CAKE = get("minecraft:green_candle_cake"); @Nullable public static final BlockType GREEN_CARPET = get("minecraft:green_carpet"); @Nullable public static final BlockType GREEN_CONCRETE = get("minecraft:green_concrete"); @Nullable public static final BlockType GREEN_CONCRETE_POWDER = get("minecraft:green_concrete_powder"); @@ -335,6 +397,7 @@ public final class BlockTypes { @Nullable public static final BlockType GREEN_WALL_BANNER = get("minecraft:green_wall_banner"); @Nullable public static final BlockType GREEN_WOOL = get("minecraft:green_wool"); @Nullable public static final BlockType GRINDSTONE = get("minecraft:grindstone"); + @Nullable public static final BlockType HANGING_ROOTS = get("minecraft:hanging_roots"); @Nullable public static final BlockType HAY_BLOCK = get("minecraft:hay_block"); @Nullable public static final BlockType HEAVY_WEIGHTED_PRESSURE_PLATE = get("minecraft:heavy_weighted_pressure_plate"); @Nullable public static final BlockType HONEY_BLOCK = get("minecraft:honey_block"); @@ -348,6 +411,7 @@ public final class BlockTypes { @Nullable public static final BlockType INFESTED_CHISELED_STONE_BRICKS = get("minecraft:infested_chiseled_stone_bricks"); @Nullable public static final BlockType INFESTED_COBBLESTONE = get("minecraft:infested_cobblestone"); @Nullable public static final BlockType INFESTED_CRACKED_STONE_BRICKS = get("minecraft:infested_cracked_stone_bricks"); + @Nullable public static final BlockType INFESTED_DEEPSLATE = get("minecraft:infested_deepslate"); @Nullable public static final BlockType INFESTED_MOSSY_STONE_BRICKS = get("minecraft:infested_mossy_stone_bricks"); @Nullable public static final BlockType INFESTED_STONE = get("minecraft:infested_stone"); @Nullable public static final BlockType INFESTED_STONE_BRICKS = get("minecraft:infested_stone_bricks"); @@ -380,12 +444,17 @@ public final class BlockTypes { @Nullable public static final BlockType LANTERN = get("minecraft:lantern"); @Nullable public static final BlockType LAPIS_BLOCK = get("minecraft:lapis_block"); @Nullable public static final BlockType LAPIS_ORE = get("minecraft:lapis_ore"); + @Nullable public static final BlockType LARGE_AMETHYST_BUD = get("minecraft:large_amethyst_bud"); @Nullable public static final BlockType LARGE_FERN = get("minecraft:large_fern"); @Nullable public static final BlockType LAVA = get("minecraft:lava"); + @Nullable public static final BlockType LAVA_CAULDRON = get("minecraft:lava_cauldron"); @Nullable public static final BlockType LECTERN = get("minecraft:lectern"); @Nullable public static final BlockType LEVER = get("minecraft:lever"); + @Nullable public static final BlockType LIGHT = get("minecraft:light"); @Nullable public static final BlockType LIGHT_BLUE_BANNER = get("minecraft:light_blue_banner"); @Nullable public static final BlockType LIGHT_BLUE_BED = get("minecraft:light_blue_bed"); + @Nullable public static final BlockType LIGHT_BLUE_CANDLE = get("minecraft:light_blue_candle"); + @Nullable public static final BlockType LIGHT_BLUE_CANDLE_CAKE = get("minecraft:light_blue_candle_cake"); @Nullable public static final BlockType LIGHT_BLUE_CARPET = get("minecraft:light_blue_carpet"); @Nullable public static final BlockType LIGHT_BLUE_CONCRETE = get("minecraft:light_blue_concrete"); @Nullable public static final BlockType LIGHT_BLUE_CONCRETE_POWDER = get("minecraft:light_blue_concrete_powder"); @@ -398,6 +467,8 @@ public final class BlockTypes { @Nullable public static final BlockType LIGHT_BLUE_WOOL = get("minecraft:light_blue_wool"); @Nullable public static final BlockType LIGHT_GRAY_BANNER = get("minecraft:light_gray_banner"); @Nullable public static final BlockType LIGHT_GRAY_BED = get("minecraft:light_gray_bed"); + @Nullable public static final BlockType LIGHT_GRAY_CANDLE = get("minecraft:light_gray_candle"); + @Nullable public static final BlockType LIGHT_GRAY_CANDLE_CAKE = get("minecraft:light_gray_candle_cake"); @Nullable public static final BlockType LIGHT_GRAY_CARPET = get("minecraft:light_gray_carpet"); @Nullable public static final BlockType LIGHT_GRAY_CONCRETE = get("minecraft:light_gray_concrete"); @Nullable public static final BlockType LIGHT_GRAY_CONCRETE_POWDER = get("minecraft:light_gray_concrete_powder"); @@ -409,11 +480,14 @@ public final class BlockTypes { @Nullable public static final BlockType LIGHT_GRAY_WALL_BANNER = get("minecraft:light_gray_wall_banner"); @Nullable public static final BlockType LIGHT_GRAY_WOOL = get("minecraft:light_gray_wool"); @Nullable public static final BlockType LIGHT_WEIGHTED_PRESSURE_PLATE = get("minecraft:light_weighted_pressure_plate"); + @Nullable public static final BlockType LIGHTNING_ROD = get("minecraft:lightning_rod"); @Nullable public static final BlockType LILAC = get("minecraft:lilac"); @Nullable public static final BlockType LILY_OF_THE_VALLEY = get("minecraft:lily_of_the_valley"); @Nullable public static final BlockType LILY_PAD = get("minecraft:lily_pad"); @Nullable public static final BlockType LIME_BANNER = get("minecraft:lime_banner"); @Nullable public static final BlockType LIME_BED = get("minecraft:lime_bed"); + @Nullable public static final BlockType LIME_CANDLE = get("minecraft:lime_candle"); + @Nullable public static final BlockType LIME_CANDLE_CAKE = get("minecraft:lime_candle_cake"); @Nullable public static final BlockType LIME_CARPET = get("minecraft:lime_carpet"); @Nullable public static final BlockType LIME_CONCRETE = get("minecraft:lime_concrete"); @Nullable public static final BlockType LIME_CONCRETE_POWDER = get("minecraft:lime_concrete_powder"); @@ -428,6 +502,8 @@ public final class BlockTypes { @Nullable public static final BlockType LOOM = get("minecraft:loom"); @Nullable public static final BlockType MAGENTA_BANNER = get("minecraft:magenta_banner"); @Nullable public static final BlockType MAGENTA_BED = get("minecraft:magenta_bed"); + @Nullable public static final BlockType MAGENTA_CANDLE = get("minecraft:magenta_candle"); + @Nullable public static final BlockType MAGENTA_CANDLE_CAKE = get("minecraft:magenta_candle_cake"); @Nullable public static final BlockType MAGENTA_CARPET = get("minecraft:magenta_carpet"); @Nullable public static final BlockType MAGENTA_CONCRETE = get("minecraft:magenta_concrete"); @Nullable public static final BlockType MAGENTA_CONCRETE_POWDER = get("minecraft:magenta_concrete_powder"); @@ -439,8 +515,11 @@ public final class BlockTypes { @Nullable public static final BlockType MAGENTA_WALL_BANNER = get("minecraft:magenta_wall_banner"); @Nullable public static final BlockType MAGENTA_WOOL = get("minecraft:magenta_wool"); @Nullable public static final BlockType MAGMA_BLOCK = get("minecraft:magma_block"); + @Nullable public static final BlockType MEDIUM_AMETHYST_BUD = get("minecraft:medium_amethyst_bud"); @Nullable public static final BlockType MELON = get("minecraft:melon"); @Nullable public static final BlockType MELON_STEM = get("minecraft:melon_stem"); + @Nullable public static final BlockType MOSS_BLOCK = get("minecraft:moss_block"); + @Nullable public static final BlockType MOSS_CARPET = get("minecraft:moss_carpet"); @Nullable public static final BlockType MOSSY_COBBLESTONE = get("minecraft:mossy_cobblestone"); @Nullable public static final BlockType MOSSY_COBBLESTONE_SLAB = get("minecraft:mossy_cobblestone_slab"); @Nullable public static final BlockType MOSSY_COBBLESTONE_STAIRS = get("minecraft:mossy_cobblestone_stairs"); @@ -485,6 +564,8 @@ public final class BlockTypes { @Nullable public static final BlockType OBSIDIAN = get("minecraft:obsidian"); @Nullable public static final BlockType ORANGE_BANNER = get("minecraft:orange_banner"); @Nullable public static final BlockType ORANGE_BED = get("minecraft:orange_bed"); + @Nullable public static final BlockType ORANGE_CANDLE = get("minecraft:orange_candle"); + @Nullable public static final BlockType ORANGE_CANDLE_CAKE = get("minecraft:orange_candle_cake"); @Nullable public static final BlockType ORANGE_CARPET = get("minecraft:orange_carpet"); @Nullable public static final BlockType ORANGE_CONCRETE = get("minecraft:orange_concrete"); @Nullable public static final BlockType ORANGE_CONCRETE_POWDER = get("minecraft:orange_concrete_powder"); @@ -497,11 +578,17 @@ public final class BlockTypes { @Nullable public static final BlockType ORANGE_WALL_BANNER = get("minecraft:orange_wall_banner"); @Nullable public static final BlockType ORANGE_WOOL = get("minecraft:orange_wool"); @Nullable public static final BlockType OXEYE_DAISY = get("minecraft:oxeye_daisy"); + @Nullable public static final BlockType OXIDIZED_COPPER = get("minecraft:oxidized_copper"); + @Nullable public static final BlockType OXIDIZED_CUT_COPPER = get("minecraft:oxidized_cut_copper"); + @Nullable public static final BlockType OXIDIZED_CUT_COPPER_SLAB = get("minecraft:oxidized_cut_copper_slab"); + @Nullable public static final BlockType OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:oxidized_cut_copper_stairs"); @Nullable public static final BlockType PACKED_ICE = get("minecraft:packed_ice"); @Nullable public static final BlockType PEONY = get("minecraft:peony"); @Nullable public static final BlockType PETRIFIED_OAK_SLAB = get("minecraft:petrified_oak_slab"); @Nullable public static final BlockType PINK_BANNER = get("minecraft:pink_banner"); @Nullable public static final BlockType PINK_BED = get("minecraft:pink_bed"); + @Nullable public static final BlockType PINK_CANDLE = get("minecraft:pink_candle"); + @Nullable public static final BlockType PINK_CANDLE_CAKE = get("minecraft:pink_candle_cake"); @Nullable public static final BlockType PINK_CARPET = get("minecraft:pink_carpet"); @Nullable public static final BlockType PINK_CONCRETE = get("minecraft:pink_concrete"); @Nullable public static final BlockType PINK_CONCRETE_POWDER = get("minecraft:pink_concrete_powder"); @@ -518,6 +605,7 @@ public final class BlockTypes { @Nullable public static final BlockType PLAYER_HEAD = get("minecraft:player_head"); @Nullable public static final BlockType PLAYER_WALL_HEAD = get("minecraft:player_wall_head"); @Nullable public static final BlockType PODZOL = get("minecraft:podzol"); + @Nullable public static final BlockType POINTED_DRIPSTONE = get("minecraft:pointed_dripstone"); @Nullable public static final BlockType POLISHED_ANDESITE = get("minecraft:polished_andesite"); @Nullable public static final BlockType POLISHED_ANDESITE_SLAB = get("minecraft:polished_andesite_slab"); @Nullable public static final BlockType POLISHED_ANDESITE_STAIRS = get("minecraft:polished_andesite_stairs"); @@ -532,6 +620,10 @@ public final class BlockTypes { @Nullable public static final BlockType POLISHED_BLACKSTONE_SLAB = get("minecraft:polished_blackstone_slab"); @Nullable public static final BlockType POLISHED_BLACKSTONE_STAIRS = get("minecraft:polished_blackstone_stairs"); @Nullable public static final BlockType POLISHED_BLACKSTONE_WALL = get("minecraft:polished_blackstone_wall"); + @Nullable public static final BlockType POLISHED_DEEPSLATE = get("minecraft:polished_deepslate"); + @Nullable public static final BlockType POLISHED_DEEPSLATE_SLAB = get("minecraft:polished_deepslate_slab"); + @Nullable public static final BlockType POLISHED_DEEPSLATE_STAIRS = get("minecraft:polished_deepslate_stairs"); + @Nullable public static final BlockType POLISHED_DEEPSLATE_WALL = get("minecraft:polished_deepslate_wall"); @Nullable public static final BlockType POLISHED_DIORITE = get("minecraft:polished_diorite"); @Nullable public static final BlockType POLISHED_DIORITE_SLAB = get("minecraft:polished_diorite_slab"); @Nullable public static final BlockType POLISHED_DIORITE_STAIRS = get("minecraft:polished_diorite_stairs"); @@ -542,6 +634,7 @@ public final class BlockTypes { @Nullable public static final BlockType POTATOES = get("minecraft:potatoes"); @Nullable public static final BlockType POTTED_ACACIA_SAPLING = get("minecraft:potted_acacia_sapling"); @Nullable public static final BlockType POTTED_ALLIUM = get("minecraft:potted_allium"); + @Nullable public static final BlockType POTTED_AZALEA_BUSH = get("minecraft:potted_azalea_bush"); @Nullable public static final BlockType POTTED_AZURE_BLUET = get("minecraft:potted_azure_bluet"); @Nullable public static final BlockType POTTED_BAMBOO = get("minecraft:potted_bamboo"); @Nullable public static final BlockType POTTED_BIRCH_SAPLING = get("minecraft:potted_birch_sapling"); @@ -555,6 +648,7 @@ public final class BlockTypes { @Nullable public static final BlockType POTTED_DARK_OAK_SAPLING = get("minecraft:potted_dark_oak_sapling"); @Nullable public static final BlockType POTTED_DEAD_BUSH = get("minecraft:potted_dead_bush"); @Nullable public static final BlockType POTTED_FERN = get("minecraft:potted_fern"); + @Nullable public static final BlockType POTTED_FLOWERING_AZALEA_BUSH = get("minecraft:potted_flowering_azalea_bush"); @Nullable public static final BlockType POTTED_JUNGLE_SAPLING = get("minecraft:potted_jungle_sapling"); @Nullable public static final BlockType POTTED_LILY_OF_THE_VALLEY = get("minecraft:potted_lily_of_the_valley"); @Nullable public static final BlockType POTTED_OAK_SAPLING = get("minecraft:potted_oak_sapling"); @@ -569,6 +663,8 @@ public final class BlockTypes { @Nullable public static final BlockType POTTED_WARPED_ROOTS = get("minecraft:potted_warped_roots"); @Nullable public static final BlockType POTTED_WHITE_TULIP = get("minecraft:potted_white_tulip"); @Nullable public static final BlockType POTTED_WITHER_ROSE = get("minecraft:potted_wither_rose"); + @Nullable public static final BlockType POWDER_SNOW = get("minecraft:powder_snow"); + @Nullable public static final BlockType POWDER_SNOW_CAULDRON = get("minecraft:powder_snow_cauldron"); @Nullable public static final BlockType POWERED_RAIL = get("minecraft:powered_rail"); @Nullable public static final BlockType PRISMARINE = get("minecraft:prismarine"); @Nullable public static final BlockType PRISMARINE_BRICK_SLAB = get("minecraft:prismarine_brick_slab"); @@ -581,6 +677,8 @@ public final class BlockTypes { @Nullable public static final BlockType PUMPKIN_STEM = get("minecraft:pumpkin_stem"); @Nullable public static final BlockType PURPLE_BANNER = get("minecraft:purple_banner"); @Nullable public static final BlockType PURPLE_BED = get("minecraft:purple_bed"); + @Nullable public static final BlockType PURPLE_CANDLE = get("minecraft:purple_candle"); + @Nullable public static final BlockType PURPLE_CANDLE_CAKE = get("minecraft:purple_candle_cake"); @Nullable public static final BlockType PURPLE_CARPET = get("minecraft:purple_carpet"); @Nullable public static final BlockType PURPLE_CONCRETE = get("minecraft:purple_concrete"); @Nullable public static final BlockType PURPLE_CONCRETE_POWDER = get("minecraft:purple_concrete_powder"); @@ -601,8 +699,13 @@ public final class BlockTypes { @Nullable public static final BlockType QUARTZ_SLAB = get("minecraft:quartz_slab"); @Nullable public static final BlockType QUARTZ_STAIRS = get("minecraft:quartz_stairs"); @Nullable public static final BlockType RAIL = get("minecraft:rail"); + @Nullable public static final BlockType RAW_COPPER_BLOCK = get("minecraft:raw_copper_block"); + @Nullable public static final BlockType RAW_GOLD_BLOCK = get("minecraft:raw_gold_block"); + @Nullable public static final BlockType RAW_IRON_BLOCK = get("minecraft:raw_iron_block"); @Nullable public static final BlockType RED_BANNER = get("minecraft:red_banner"); @Nullable public static final BlockType RED_BED = get("minecraft:red_bed"); + @Nullable public static final BlockType RED_CANDLE = get("minecraft:red_candle"); + @Nullable public static final BlockType RED_CANDLE_CAKE = get("minecraft:red_candle_cake"); @Nullable public static final BlockType RED_CARPET = get("minecraft:red_carpet"); @Nullable public static final BlockType RED_CONCRETE = get("minecraft:red_concrete"); @Nullable public static final BlockType RED_CONCRETE_POWDER = get("minecraft:red_concrete_powder"); @@ -634,6 +737,7 @@ public final class BlockTypes { @Nullable public static final BlockType REPEATER = get("minecraft:repeater"); @Nullable public static final BlockType REPEATING_COMMAND_BLOCK = get("minecraft:repeating_command_block"); @Nullable public static final BlockType RESPAWN_ANCHOR = get("minecraft:respawn_anchor"); + @Nullable public static final BlockType ROOTED_DIRT = get("minecraft:rooted_dirt"); @Nullable public static final BlockType ROSE_BUSH = get("minecraft:rose_bush"); @Nullable public static final BlockType SAND = get("minecraft:sand"); @Nullable public static final BlockType SANDSTONE = get("minecraft:sandstone"); @@ -641,6 +745,7 @@ public final class BlockTypes { @Nullable public static final BlockType SANDSTONE_STAIRS = get("minecraft:sandstone_stairs"); @Nullable public static final BlockType SANDSTONE_WALL = get("minecraft:sandstone_wall"); @Nullable public static final BlockType SCAFFOLDING = get("minecraft:scaffolding"); + @Nullable public static final BlockType SCULK_SENSOR = get("minecraft:sculk_sensor"); @Nullable public static final BlockType SEA_LANTERN = get("minecraft:sea_lantern"); @Nullable public static final BlockType SEA_PICKLE = get("minecraft:sea_pickle"); @Nullable public static final BlockType SEAGRASS = get("minecraft:seagrass"); @@ -650,8 +755,11 @@ public final class BlockTypes { @Nullable public static final BlockType SKELETON_SKULL = get("minecraft:skeleton_skull"); @Nullable public static final BlockType SKELETON_WALL_SKULL = get("minecraft:skeleton_wall_skull"); @Nullable public static final BlockType SLIME_BLOCK = get("minecraft:slime_block"); + @Nullable public static final BlockType SMALL_AMETHYST_BUD = get("minecraft:small_amethyst_bud"); + @Nullable public static final BlockType SMALL_DRIPLEAF = get("minecraft:small_dripleaf"); @Nullable public static final BlockType SMITHING_TABLE = get("minecraft:smithing_table"); @Nullable public static final BlockType SMOKER = get("minecraft:smoker"); + @Nullable public static final BlockType SMOOTH_BASALT = get("minecraft:smooth_basalt"); @Nullable public static final BlockType SMOOTH_QUARTZ = get("minecraft:smooth_quartz"); @Nullable public static final BlockType SMOOTH_QUARTZ_SLAB = get("minecraft:smooth_quartz_slab"); @Nullable public static final BlockType SMOOTH_QUARTZ_STAIRS = get("minecraft:smooth_quartz_stairs"); @@ -674,6 +782,7 @@ public final class BlockTypes { @Nullable public static final BlockType SOUL_WALL_TORCH = get("minecraft:soul_wall_torch"); @Nullable public static final BlockType SPAWNER = get("minecraft:spawner"); @Nullable public static final BlockType SPONGE = get("minecraft:sponge"); + @Nullable public static final BlockType SPORE_BLOSSOM = get("minecraft:spore_blossom"); @Nullable public static final BlockType SPRUCE_BUTTON = get("minecraft:spruce_button"); @Nullable public static final BlockType SPRUCE_DOOR = get("minecraft:spruce_door"); @Nullable public static final BlockType SPRUCE_FENCE = get("minecraft:spruce_fence"); @@ -725,6 +834,7 @@ public final class BlockTypes { @Nullable public static final BlockType TALL_SEAGRASS = get("minecraft:tall_seagrass"); @Nullable public static final BlockType TARGET = get("minecraft:target"); @Nullable public static final BlockType TERRACOTTA = get("minecraft:terracotta"); + @Nullable public static final BlockType TINTED_GLASS = get("minecraft:tinted_glass"); @Nullable public static final BlockType TNT = get("minecraft:tnt"); @Nullable public static final BlockType TORCH = get("minecraft:torch"); @Nullable public static final BlockType TRAPPED_CHEST = get("minecraft:trapped_chest"); @@ -734,6 +844,7 @@ public final class BlockTypes { @Nullable public static final BlockType TUBE_CORAL_BLOCK = get("minecraft:tube_coral_block"); @Nullable public static final BlockType TUBE_CORAL_FAN = get("minecraft:tube_coral_fan"); @Nullable public static final BlockType TUBE_CORAL_WALL_FAN = get("minecraft:tube_coral_wall_fan"); + @Nullable public static final BlockType TUFF = get("minecraft:tuff"); @Nullable public static final BlockType TURTLE_EGG = get("minecraft:turtle_egg"); @Nullable public static final BlockType TWISTING_VINES = get("minecraft:twisting_vines"); @Nullable public static final BlockType TWISTING_VINES_PLANT = get("minecraft:twisting_vines_plant"); @@ -759,12 +870,35 @@ public final class BlockTypes { @Nullable public static final BlockType WARPED_WALL_SIGN = get("minecraft:warped_wall_sign"); @Nullable public static final BlockType WARPED_WART_BLOCK = get("minecraft:warped_wart_block"); @Nullable public static final BlockType WATER = get("minecraft:water"); + @Nullable public static final BlockType WATER_CAULDRON = get("minecraft:water_cauldron"); + @Nullable public static final BlockType WAXED_COPPER_BLOCK = get("minecraft:waxed_copper_block"); + @Nullable public static final BlockType WAXED_CUT_COPPER = get("minecraft:waxed_cut_copper"); + @Nullable public static final BlockType WAXED_CUT_COPPER_SLAB = get("minecraft:waxed_cut_copper_slab"); + @Nullable public static final BlockType WAXED_CUT_COPPER_STAIRS = get("minecraft:waxed_cut_copper_stairs"); + @Nullable public static final BlockType WAXED_EXPOSED_COPPER = get("minecraft:waxed_exposed_copper"); + @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER = get("minecraft:waxed_exposed_cut_copper"); + @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_SLAB = get("minecraft:waxed_exposed_cut_copper_slab"); + @Nullable public static final BlockType WAXED_EXPOSED_CUT_COPPER_STAIRS = get("minecraft:waxed_exposed_cut_copper_stairs"); + @Nullable public static final BlockType WAXED_OXIDIZED_COPPER = get("minecraft:waxed_oxidized_copper"); + @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER = get("minecraft:waxed_oxidized_cut_copper"); + @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_SLAB = get("minecraft:waxed_oxidized_cut_copper_slab"); + @Nullable public static final BlockType WAXED_OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:waxed_oxidized_cut_copper_stairs"); + @Nullable public static final BlockType WAXED_WEATHERED_COPPER = get("minecraft:waxed_weathered_copper"); + @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER = get("minecraft:waxed_weathered_cut_copper"); + @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_SLAB = get("minecraft:waxed_weathered_cut_copper_slab"); + @Nullable public static final BlockType WAXED_WEATHERED_CUT_COPPER_STAIRS = get("minecraft:waxed_weathered_cut_copper_stairs"); + @Nullable public static final BlockType WEATHERED_COPPER = get("minecraft:weathered_copper"); + @Nullable public static final BlockType WEATHERED_CUT_COPPER = get("minecraft:weathered_cut_copper"); + @Nullable public static final BlockType WEATHERED_CUT_COPPER_SLAB = get("minecraft:weathered_cut_copper_slab"); + @Nullable public static final BlockType WEATHERED_CUT_COPPER_STAIRS = get("minecraft:weathered_cut_copper_stairs"); @Nullable public static final BlockType WEEPING_VINES = get("minecraft:weeping_vines"); @Nullable public static final BlockType WEEPING_VINES_PLANT = get("minecraft:weeping_vines_plant"); @Nullable public static final BlockType WET_SPONGE = get("minecraft:wet_sponge"); @Nullable public static final BlockType WHEAT = get("minecraft:wheat"); @Nullable public static final BlockType WHITE_BANNER = get("minecraft:white_banner"); @Nullable public static final BlockType WHITE_BED = get("minecraft:white_bed"); + @Nullable public static final BlockType WHITE_CANDLE = get("minecraft:white_candle"); + @Nullable public static final BlockType WHITE_CANDLE_CAKE = get("minecraft:white_candle_cake"); @Nullable public static final BlockType WHITE_CARPET = get("minecraft:white_carpet"); @Nullable public static final BlockType WHITE_CONCRETE = get("minecraft:white_concrete"); @Nullable public static final BlockType WHITE_CONCRETE_POWDER = get("minecraft:white_concrete_powder"); @@ -781,6 +915,8 @@ public final class BlockTypes { @Nullable public static final BlockType WITHER_SKELETON_WALL_SKULL = get("minecraft:wither_skeleton_wall_skull"); @Nullable public static final BlockType YELLOW_BANNER = get("minecraft:yellow_banner"); @Nullable public static final BlockType YELLOW_BED = get("minecraft:yellow_bed"); + @Nullable public static final BlockType YELLOW_CANDLE = get("minecraft:yellow_candle"); + @Nullable public static final BlockType YELLOW_CANDLE_CAKE = get("minecraft:yellow_candle_cake"); @Nullable public static final BlockType YELLOW_CARPET = get("minecraft:yellow_carpet"); @Nullable public static final BlockType YELLOW_CONCRETE = get("minecraft:yellow_concrete"); @Nullable public static final BlockType YELLOW_CONCRETE_POWDER = get("minecraft:yellow_concrete_powder"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java index d7bf8704fe..df253c9758 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/entity/EntityTypes.java @@ -31,6 +31,7 @@ public final class EntityTypes { @Nullable public static final EntityType AREA_EFFECT_CLOUD = get("minecraft:area_effect_cloud"); @Nullable public static final EntityType ARMOR_STAND = get("minecraft:armor_stand"); @Nullable public static final EntityType ARROW = get("minecraft:arrow"); + @Nullable public static final EntityType AXOLOTL = get("minecraft:axolotl"); @Nullable public static final EntityType BAT = get("minecraft:bat"); @Nullable public static final EntityType BEE = get("minecraft:bee"); @Nullable public static final EntityType BLAZE = get("minecraft:blaze"); @@ -67,6 +68,9 @@ public final class EntityTypes { @Nullable public static final EntityType FURNACE_MINECART = get("minecraft:furnace_minecart"); @Nullable public static final EntityType GHAST = get("minecraft:ghast"); @Nullable public static final EntityType GIANT = get("minecraft:giant"); + @Nullable public static final EntityType GLOW_ITEM_FRAME = get("minecraft:glow_item_frame"); + @Nullable public static final EntityType GLOW_SQUID = get("minecraft:glow_squid"); + @Nullable public static final EntityType GOAT = get("minecraft:goat"); @Nullable public static final EntityType GUARDIAN = get("minecraft:guardian"); @Nullable public static final EntityType HOGLIN = get("minecraft:hoglin"); @Nullable public static final EntityType HOPPER_MINECART = get("minecraft:hopper_minecart"); @@ -81,6 +85,7 @@ public final class EntityTypes { @Nullable public static final EntityType LLAMA = get("minecraft:llama"); @Nullable public static final EntityType LLAMA_SPIT = get("minecraft:llama_spit"); @Nullable public static final EntityType MAGMA_CUBE = get("minecraft:magma_cube"); + @Nullable public static final EntityType MARKER = get("minecraft:marker"); @Nullable public static final EntityType MINECART = get("minecraft:minecart"); @Nullable public static final EntityType MOOSHROOM = get("minecraft:mooshroom"); @Nullable public static final EntityType MULE = get("minecraft:mule"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java index 03b50763d3..3265bbdb2c 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemCategories.java @@ -29,24 +29,36 @@ public final class ItemCategories { public static final ItemCategory ACACIA_LOGS = get("minecraft:acacia_logs"); public static final ItemCategory ANVIL = get("minecraft:anvil"); public static final ItemCategory ARROWS = get("minecraft:arrows"); + public static final ItemCategory AXOLOTL_TEMPT_ITEMS = get("minecraft:axolotl_tempt_items"); public static final ItemCategory BANNERS = get("minecraft:banners"); public static final ItemCategory BEACON_PAYMENT_ITEMS = get("minecraft:beacon_payment_items"); public static final ItemCategory BEDS = get("minecraft:beds"); public static final ItemCategory BIRCH_LOGS = get("minecraft:birch_logs"); public static final ItemCategory BOATS = get("minecraft:boats"); public static final ItemCategory BUTTONS = get("minecraft:buttons"); + public static final ItemCategory CANDLES = get("minecraft:candles"); public static final ItemCategory CARPETS = get("minecraft:carpets"); + public static final ItemCategory CLUSTER_MAX_HARVESTABLES = get("minecraft:cluster_max_harvestables"); + public static final ItemCategory COAL_ORES = get("minecraft:coal_ores"); public static final ItemCategory COALS = get("minecraft:coals"); + public static final ItemCategory COPPER_ORES = get("minecraft:copper_ores"); public static final ItemCategory CREEPER_DROP_MUSIC_DISCS = get("minecraft:creeper_drop_music_discs"); public static final ItemCategory CRIMSON_STEMS = get("minecraft:crimson_stems"); public static final ItemCategory DARK_OAK_LOGS = get("minecraft:dark_oak_logs"); + public static final ItemCategory DIAMOND_ORES = get("minecraft:diamond_ores"); public static final ItemCategory DOORS = get("minecraft:doors"); + public static final ItemCategory EMERALD_ORES = get("minecraft:emerald_ores"); public static final ItemCategory FENCES = get("minecraft:fences"); public static final ItemCategory FISHES = get("minecraft:fishes"); public static final ItemCategory FLOWERS = get("minecraft:flowers"); + public static final ItemCategory FOX_FOOD = get("minecraft:fox_food"); + public static final ItemCategory FREEZE_IMMUNE_WEARABLES = get("minecraft:freeze_immune_wearables"); @Deprecated public static final ItemCategory FURNACE_MATERIALS = get("minecraft:furnace_materials"); public static final ItemCategory GOLD_ORES = get("minecraft:gold_ores"); + public static final ItemCategory IGNORED_BY_PIGLIN_BABIES = get("minecraft:ignored_by_piglin_babies"); + public static final ItemCategory IRON_ORES = get("minecraft:iron_ores"); public static final ItemCategory JUNGLE_LOGS = get("minecraft:jungle_logs"); + public static final ItemCategory LAPIS_ORES = get("minecraft:lapis_ores"); public static final ItemCategory LEAVES = get("minecraft:leaves"); public static final ItemCategory LECTERN_BOOKS = get("minecraft:lectern_books"); public static final ItemCategory LOGS = get("minecraft:logs"); @@ -54,10 +66,13 @@ public final class ItemCategories { public static final ItemCategory MUSIC_DISCS = get("minecraft:music_discs"); public static final ItemCategory NON_FLAMMABLE_WOOD = get("minecraft:non_flammable_wood"); public static final ItemCategory OAK_LOGS = get("minecraft:oak_logs"); + public static final ItemCategory OCCLUDES_VIBRATION_SIGNALS = get("minecraft:occludes_vibration_signals"); + public static final ItemCategory PIGLIN_FOOD = get("minecraft:piglin_food"); public static final ItemCategory PIGLIN_LOVED = get("minecraft:piglin_loved"); public static final ItemCategory PIGLIN_REPELLENTS = get("minecraft:piglin_repellents"); public static final ItemCategory PLANKS = get("minecraft:planks"); public static final ItemCategory RAILS = get("minecraft:rails"); + public static final ItemCategory REDSTONE_ORES = get("minecraft:redstone_ores"); public static final ItemCategory SAND = get("minecraft:sand"); public static final ItemCategory SAPLINGS = get("minecraft:saplings"); public static final ItemCategory SIGNS = get("minecraft:signs"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java index ab01f68cbd..d224b5048f 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/item/ItemTypes.java @@ -46,6 +46,9 @@ public final class ItemTypes { @Nullable public static final ItemType ACTIVATOR_RAIL = get("minecraft:activator_rail"); @Nullable public static final ItemType AIR = get("minecraft:air"); @Nullable public static final ItemType ALLIUM = get("minecraft:allium"); + @Nullable public static final ItemType AMETHYST_BLOCK = get("minecraft:amethyst_block"); + @Nullable public static final ItemType AMETHYST_CLUSTER = get("minecraft:amethyst_cluster"); + @Nullable public static final ItemType AMETHYST_SHARD = get("minecraft:amethyst_shard"); @Nullable public static final ItemType ANCIENT_DEBRIS = get("minecraft:ancient_debris"); @Nullable public static final ItemType ANDESITE = get("minecraft:andesite"); @Nullable public static final ItemType ANDESITE_SLAB = get("minecraft:andesite_slab"); @@ -55,6 +58,10 @@ public final class ItemTypes { @Nullable public static final ItemType APPLE = get("minecraft:apple"); @Nullable public static final ItemType ARMOR_STAND = get("minecraft:armor_stand"); @Nullable public static final ItemType ARROW = get("minecraft:arrow"); + @Nullable public static final ItemType AXOLOTL_BUCKET = get("minecraft:axolotl_bucket"); + @Nullable public static final ItemType AXOLOTL_SPAWN_EGG = get("minecraft:axolotl_spawn_egg"); + @Nullable public static final ItemType AZALEA = get("minecraft:azalea"); + @Nullable public static final ItemType AZALEA_LEAVES = get("minecraft:azalea_leaves"); @Nullable public static final ItemType AZURE_BLUET = get("minecraft:azure_bluet"); @Nullable public static final ItemType BAKED_POTATO = get("minecraft:baked_potato"); @Nullable public static final ItemType BAMBOO = get("minecraft:bamboo"); @@ -72,6 +79,7 @@ public final class ItemTypes { @Nullable public static final ItemType BEETROOT_SEEDS = get("minecraft:beetroot_seeds"); @Nullable public static final ItemType BEETROOT_SOUP = get("minecraft:beetroot_soup"); @Nullable public static final ItemType BELL = get("minecraft:bell"); + @Nullable public static final ItemType BIG_DRIPLEAF = get("minecraft:big_dripleaf"); @Nullable public static final ItemType BIRCH_BOAT = get("minecraft:birch_boat"); @Nullable public static final ItemType BIRCH_BUTTON = get("minecraft:birch_button"); @Nullable public static final ItemType BIRCH_DOOR = get("minecraft:birch_door"); @@ -89,6 +97,7 @@ public final class ItemTypes { @Nullable public static final ItemType BIRCH_WOOD = get("minecraft:birch_wood"); @Nullable public static final ItemType BLACK_BANNER = get("minecraft:black_banner"); @Nullable public static final ItemType BLACK_BED = get("minecraft:black_bed"); + @Nullable public static final ItemType BLACK_CANDLE = get("minecraft:black_candle"); @Nullable public static final ItemType BLACK_CARPET = get("minecraft:black_carpet"); @Nullable public static final ItemType BLACK_CONCRETE = get("minecraft:black_concrete"); @Nullable public static final ItemType BLACK_CONCRETE_POWDER = get("minecraft:black_concrete_powder"); @@ -109,6 +118,7 @@ public final class ItemTypes { @Nullable public static final ItemType BLAZE_SPAWN_EGG = get("minecraft:blaze_spawn_egg"); @Nullable public static final ItemType BLUE_BANNER = get("minecraft:blue_banner"); @Nullable public static final ItemType BLUE_BED = get("minecraft:blue_bed"); + @Nullable public static final ItemType BLUE_CANDLE = get("minecraft:blue_candle"); @Nullable public static final ItemType BLUE_CARPET = get("minecraft:blue_carpet"); @Nullable public static final ItemType BLUE_CONCRETE = get("minecraft:blue_concrete"); @Nullable public static final ItemType BLUE_CONCRETE_POWDER = get("minecraft:blue_concrete_powder"); @@ -140,6 +150,7 @@ public final class ItemTypes { @Nullable public static final ItemType BRICKS = get("minecraft:bricks"); @Nullable public static final ItemType BROWN_BANNER = get("minecraft:brown_banner"); @Nullable public static final ItemType BROWN_BED = get("minecraft:brown_bed"); + @Nullable public static final ItemType BROWN_CANDLE = get("minecraft:brown_candle"); @Nullable public static final ItemType BROWN_CARPET = get("minecraft:brown_carpet"); @Nullable public static final ItemType BROWN_CONCRETE = get("minecraft:brown_concrete"); @Nullable public static final ItemType BROWN_CONCRETE_POWDER = get("minecraft:brown_concrete_powder"); @@ -156,10 +167,14 @@ public final class ItemTypes { @Nullable public static final ItemType BUBBLE_CORAL_BLOCK = get("minecraft:bubble_coral_block"); @Nullable public static final ItemType BUBBLE_CORAL_FAN = get("minecraft:bubble_coral_fan"); @Nullable public static final ItemType BUCKET = get("minecraft:bucket"); + @Nullable public static final ItemType BUDDING_AMETHYST = get("minecraft:budding_amethyst"); + @Nullable public static final ItemType BUNDLE = get("minecraft:bundle"); @Nullable public static final ItemType CACTUS = get("minecraft:cactus"); @Deprecated @Nullable public static final ItemType CACTUS_GREEN = get("minecraft:cactus_green"); @Nullable public static final ItemType CAKE = get("minecraft:cake"); + @Nullable public static final ItemType CALCITE = get("minecraft:calcite"); @Nullable public static final ItemType CAMPFIRE = get("minecraft:campfire"); + @Nullable public static final ItemType CANDLE = get("minecraft:candle"); @Nullable public static final ItemType CARROT = get("minecraft:carrot"); @Nullable public static final ItemType CARROT_ON_A_STICK = get("minecraft:carrot_on_a_stick"); @Nullable public static final ItemType CARTOGRAPHY_TABLE = get("minecraft:cartography_table"); @@ -179,6 +194,7 @@ public final class ItemTypes { @Nullable public static final ItemType CHICKEN = get("minecraft:chicken"); @Nullable public static final ItemType CHICKEN_SPAWN_EGG = get("minecraft:chicken_spawn_egg"); @Nullable public static final ItemType CHIPPED_ANVIL = get("minecraft:chipped_anvil"); + @Nullable public static final ItemType CHISELED_DEEPSLATE = get("minecraft:chiseled_deepslate"); @Nullable public static final ItemType CHISELED_NETHER_BRICKS = get("minecraft:chiseled_nether_bricks"); @Nullable public static final ItemType CHISELED_POLISHED_BLACKSTONE = get("minecraft:chiseled_polished_blackstone"); @Nullable public static final ItemType CHISELED_QUARTZ_BLOCK = get("minecraft:chiseled_quartz_block"); @@ -195,6 +211,10 @@ public final class ItemTypes { @Nullable public static final ItemType COAL_BLOCK = get("minecraft:coal_block"); @Nullable public static final ItemType COAL_ORE = get("minecraft:coal_ore"); @Nullable public static final ItemType COARSE_DIRT = get("minecraft:coarse_dirt"); + @Nullable public static final ItemType COBBLED_DEEPSLATE = get("minecraft:cobbled_deepslate"); + @Nullable public static final ItemType COBBLED_DEEPSLATE_SLAB = get("minecraft:cobbled_deepslate_slab"); + @Nullable public static final ItemType COBBLED_DEEPSLATE_STAIRS = get("minecraft:cobbled_deepslate_stairs"); + @Nullable public static final ItemType COBBLED_DEEPSLATE_WALL = get("minecraft:cobbled_deepslate_wall"); @Nullable public static final ItemType COBBLESTONE = get("minecraft:cobblestone"); @Nullable public static final ItemType COBBLESTONE_SLAB = get("minecraft:cobblestone_slab"); @Nullable public static final ItemType COBBLESTONE_STAIRS = get("minecraft:cobblestone_stairs"); @@ -218,8 +238,13 @@ public final class ItemTypes { @Nullable public static final ItemType COOKED_RABBIT = get("minecraft:cooked_rabbit"); @Nullable public static final ItemType COOKED_SALMON = get("minecraft:cooked_salmon"); @Nullable public static final ItemType COOKIE = get("minecraft:cookie"); + @Nullable public static final ItemType COPPER_BLOCK = get("minecraft:copper_block"); + @Nullable public static final ItemType COPPER_INGOT = get("minecraft:copper_ingot"); + @Nullable public static final ItemType COPPER_ORE = get("minecraft:copper_ore"); @Nullable public static final ItemType CORNFLOWER = get("minecraft:cornflower"); @Nullable public static final ItemType COW_SPAWN_EGG = get("minecraft:cow_spawn_egg"); + @Nullable public static final ItemType CRACKED_DEEPSLATE_BRICKS = get("minecraft:cracked_deepslate_bricks"); + @Nullable public static final ItemType CRACKED_DEEPSLATE_TILES = get("minecraft:cracked_deepslate_tiles"); @Nullable public static final ItemType CRACKED_NETHER_BRICKS = get("minecraft:cracked_nether_bricks"); @Nullable public static final ItemType CRACKED_POLISHED_BLACKSTONE_BRICKS = get("minecraft:cracked_polished_blackstone_bricks"); @Nullable public static final ItemType CRACKED_STONE_BRICKS = get("minecraft:cracked_stone_bricks"); @@ -244,12 +269,16 @@ public final class ItemTypes { @Nullable public static final ItemType CRIMSON_TRAPDOOR = get("minecraft:crimson_trapdoor"); @Nullable public static final ItemType CROSSBOW = get("minecraft:crossbow"); @Nullable public static final ItemType CRYING_OBSIDIAN = get("minecraft:crying_obsidian"); + @Nullable public static final ItemType CUT_COPPER = get("minecraft:cut_copper"); + @Nullable public static final ItemType CUT_COPPER_SLAB = get("minecraft:cut_copper_slab"); + @Nullable public static final ItemType CUT_COPPER_STAIRS = get("minecraft:cut_copper_stairs"); @Nullable public static final ItemType CUT_RED_SANDSTONE = get("minecraft:cut_red_sandstone"); @Nullable public static final ItemType CUT_RED_SANDSTONE_SLAB = get("minecraft:cut_red_sandstone_slab"); @Nullable public static final ItemType CUT_SANDSTONE = get("minecraft:cut_sandstone"); @Nullable public static final ItemType CUT_SANDSTONE_SLAB = get("minecraft:cut_sandstone_slab"); @Nullable public static final ItemType CYAN_BANNER = get("minecraft:cyan_banner"); @Nullable public static final ItemType CYAN_BED = get("minecraft:cyan_bed"); + @Nullable public static final ItemType CYAN_CANDLE = get("minecraft:cyan_candle"); @Nullable public static final ItemType CYAN_CARPET = get("minecraft:cyan_carpet"); @Nullable public static final ItemType CYAN_CONCRETE = get("minecraft:cyan_concrete"); @Nullable public static final ItemType CYAN_CONCRETE_POWDER = get("minecraft:cyan_concrete_powder"); @@ -299,6 +328,23 @@ public final class ItemTypes { @Nullable public static final ItemType DEAD_TUBE_CORAL_BLOCK = get("minecraft:dead_tube_coral_block"); @Nullable public static final ItemType DEAD_TUBE_CORAL_FAN = get("minecraft:dead_tube_coral_fan"); @Nullable public static final ItemType DEBUG_STICK = get("minecraft:debug_stick"); + @Nullable public static final ItemType DEEPSLATE = get("minecraft:deepslate"); + @Nullable public static final ItemType DEEPSLATE_BRICK_SLAB = get("minecraft:deepslate_brick_slab"); + @Nullable public static final ItemType DEEPSLATE_BRICK_STAIRS = get("minecraft:deepslate_brick_stairs"); + @Nullable public static final ItemType DEEPSLATE_BRICK_WALL = get("minecraft:deepslate_brick_wall"); + @Nullable public static final ItemType DEEPSLATE_BRICKS = get("minecraft:deepslate_bricks"); + @Nullable public static final ItemType DEEPSLATE_COAL_ORE = get("minecraft:deepslate_coal_ore"); + @Nullable public static final ItemType DEEPSLATE_COPPER_ORE = get("minecraft:deepslate_copper_ore"); + @Nullable public static final ItemType DEEPSLATE_DIAMOND_ORE = get("minecraft:deepslate_diamond_ore"); + @Nullable public static final ItemType DEEPSLATE_EMERALD_ORE = get("minecraft:deepslate_emerald_ore"); + @Nullable public static final ItemType DEEPSLATE_GOLD_ORE = get("minecraft:deepslate_gold_ore"); + @Nullable public static final ItemType DEEPSLATE_IRON_ORE = get("minecraft:deepslate_iron_ore"); + @Nullable public static final ItemType DEEPSLATE_LAPIS_ORE = get("minecraft:deepslate_lapis_ore"); + @Nullable public static final ItemType DEEPSLATE_REDSTONE_ORE = get("minecraft:deepslate_redstone_ore"); + @Nullable public static final ItemType DEEPSLATE_TILE_SLAB = get("minecraft:deepslate_tile_slab"); + @Nullable public static final ItemType DEEPSLATE_TILE_STAIRS = get("minecraft:deepslate_tile_stairs"); + @Nullable public static final ItemType DEEPSLATE_TILE_WALL = get("minecraft:deepslate_tile_wall"); + @Nullable public static final ItemType DEEPSLATE_TILES = get("minecraft:deepslate_tiles"); @Nullable public static final ItemType DETECTOR_RAIL = get("minecraft:detector_rail"); @Nullable public static final ItemType DIAMOND = get("minecraft:diamond"); @Nullable public static final ItemType DIAMOND_AXE = get("minecraft:diamond_axe"); @@ -318,6 +364,7 @@ public final class ItemTypes { @Nullable public static final ItemType DIORITE_STAIRS = get("minecraft:diorite_stairs"); @Nullable public static final ItemType DIORITE_WALL = get("minecraft:diorite_wall"); @Nullable public static final ItemType DIRT = get("minecraft:dirt"); + @Nullable public static final ItemType DIRT_PATH = get("minecraft:dirt_path"); @Nullable public static final ItemType DISPENSER = get("minecraft:dispenser"); @Nullable public static final ItemType DOLPHIN_SPAWN_EGG = get("minecraft:dolphin_spawn_egg"); @Nullable public static final ItemType DONKEY_SPAWN_EGG = get("minecraft:donkey_spawn_egg"); @@ -326,6 +373,7 @@ public final class ItemTypes { @Nullable public static final ItemType DRAGON_HEAD = get("minecraft:dragon_head"); @Nullable public static final ItemType DRIED_KELP = get("minecraft:dried_kelp"); @Nullable public static final ItemType DRIED_KELP_BLOCK = get("minecraft:dried_kelp_block"); + @Nullable public static final ItemType DRIPSTONE_BLOCK = get("minecraft:dripstone_block"); @Nullable public static final ItemType DROPPER = get("minecraft:dropper"); @Nullable public static final ItemType DROWNED_SPAWN_EGG = get("minecraft:drowned_spawn_egg"); @Nullable public static final ItemType EGG = get("minecraft:egg"); @@ -352,6 +400,10 @@ public final class ItemTypes { @Nullable public static final ItemType ENDERMITE_SPAWN_EGG = get("minecraft:endermite_spawn_egg"); @Nullable public static final ItemType EVOKER_SPAWN_EGG = get("minecraft:evoker_spawn_egg"); @Nullable public static final ItemType EXPERIENCE_BOTTLE = get("minecraft:experience_bottle"); + @Nullable public static final ItemType EXPOSED_COPPER = get("minecraft:exposed_copper"); + @Nullable public static final ItemType EXPOSED_CUT_COPPER = get("minecraft:exposed_cut_copper"); + @Nullable public static final ItemType EXPOSED_CUT_COPPER_SLAB = get("minecraft:exposed_cut_copper_slab"); + @Nullable public static final ItemType EXPOSED_CUT_COPPER_STAIRS = get("minecraft:exposed_cut_copper_stairs"); @Nullable public static final ItemType FARMLAND = get("minecraft:farmland"); @Nullable public static final ItemType FEATHER = get("minecraft:feather"); @Nullable public static final ItemType FERMENTED_SPIDER_EYE = get("minecraft:fermented_spider_eye"); @@ -369,6 +421,8 @@ public final class ItemTypes { @Nullable public static final ItemType FLINT_AND_STEEL = get("minecraft:flint_and_steel"); @Nullable public static final ItemType FLOWER_BANNER_PATTERN = get("minecraft:flower_banner_pattern"); @Nullable public static final ItemType FLOWER_POT = get("minecraft:flower_pot"); + @Nullable public static final ItemType FLOWERING_AZALEA = get("minecraft:flowering_azalea"); + @Nullable public static final ItemType FLOWERING_AZALEA_LEAVES = get("minecraft:flowering_azalea_leaves"); @Nullable public static final ItemType FOX_SPAWN_EGG = get("minecraft:fox_spawn_egg"); @Nullable public static final ItemType FURNACE = get("minecraft:furnace"); @Nullable public static final ItemType FURNACE_MINECART = get("minecraft:furnace_minecart"); @@ -380,8 +434,14 @@ public final class ItemTypes { @Nullable public static final ItemType GLASS_PANE = get("minecraft:glass_pane"); @Nullable public static final ItemType GLISTERING_MELON_SLICE = get("minecraft:glistering_melon_slice"); @Nullable public static final ItemType GLOBE_BANNER_PATTERN = get("minecraft:globe_banner_pattern"); + @Nullable public static final ItemType GLOW_BERRIES = get("minecraft:glow_berries"); + @Nullable public static final ItemType GLOW_INK_SAC = get("minecraft:glow_ink_sac"); + @Nullable public static final ItemType GLOW_ITEM_FRAME = get("minecraft:glow_item_frame"); + @Nullable public static final ItemType GLOW_LICHEN = get("minecraft:glow_lichen"); + @Nullable public static final ItemType GLOW_SQUID_SPAWN_EGG = get("minecraft:glow_squid_spawn_egg"); @Nullable public static final ItemType GLOWSTONE = get("minecraft:glowstone"); @Nullable public static final ItemType GLOWSTONE_DUST = get("minecraft:glowstone_dust"); + @Nullable public static final ItemType GOAT_SPAWN_EGG = get("minecraft:goat_spawn_egg"); @Nullable public static final ItemType GOLD_BLOCK = get("minecraft:gold_block"); @Nullable public static final ItemType GOLD_INGOT = get("minecraft:gold_ingot"); @Nullable public static final ItemType GOLD_NUGGET = get("minecraft:gold_nugget"); @@ -404,10 +464,11 @@ public final class ItemTypes { @Nullable public static final ItemType GRANITE_WALL = get("minecraft:granite_wall"); @Nullable public static final ItemType GRASS = get("minecraft:grass"); @Nullable public static final ItemType GRASS_BLOCK = get("minecraft:grass_block"); - @Nullable public static final ItemType GRASS_PATH = get("minecraft:grass_path"); + @Deprecated @Nullable public static final ItemType GRASS_PATH = get("minecraft:grass_path"); @Nullable public static final ItemType GRAVEL = get("minecraft:gravel"); @Nullable public static final ItemType GRAY_BANNER = get("minecraft:gray_banner"); @Nullable public static final ItemType GRAY_BED = get("minecraft:gray_bed"); + @Nullable public static final ItemType GRAY_CANDLE = get("minecraft:gray_candle"); @Nullable public static final ItemType GRAY_CARPET = get("minecraft:gray_carpet"); @Nullable public static final ItemType GRAY_CONCRETE = get("minecraft:gray_concrete"); @Nullable public static final ItemType GRAY_CONCRETE_POWDER = get("minecraft:gray_concrete_powder"); @@ -420,6 +481,7 @@ public final class ItemTypes { @Nullable public static final ItemType GRAY_WOOL = get("minecraft:gray_wool"); @Nullable public static final ItemType GREEN_BANNER = get("minecraft:green_banner"); @Nullable public static final ItemType GREEN_BED = get("minecraft:green_bed"); + @Nullable public static final ItemType GREEN_CANDLE = get("minecraft:green_candle"); @Nullable public static final ItemType GREEN_CARPET = get("minecraft:green_carpet"); @Nullable public static final ItemType GREEN_CONCRETE = get("minecraft:green_concrete"); @Nullable public static final ItemType GREEN_CONCRETE_POWDER = get("minecraft:green_concrete_powder"); @@ -433,6 +495,7 @@ public final class ItemTypes { @Nullable public static final ItemType GRINDSTONE = get("minecraft:grindstone"); @Nullable public static final ItemType GUARDIAN_SPAWN_EGG = get("minecraft:guardian_spawn_egg"); @Nullable public static final ItemType GUNPOWDER = get("minecraft:gunpowder"); + @Nullable public static final ItemType HANGING_ROOTS = get("minecraft:hanging_roots"); @Nullable public static final ItemType HAY_BLOCK = get("minecraft:hay_block"); @Nullable public static final ItemType HEART_OF_THE_SEA = get("minecraft:heart_of_the_sea"); @Nullable public static final ItemType HEAVY_WEIGHTED_PRESSURE_PLATE = get("minecraft:heavy_weighted_pressure_plate"); @@ -452,6 +515,7 @@ public final class ItemTypes { @Nullable public static final ItemType INFESTED_CHISELED_STONE_BRICKS = get("minecraft:infested_chiseled_stone_bricks"); @Nullable public static final ItemType INFESTED_COBBLESTONE = get("minecraft:infested_cobblestone"); @Nullable public static final ItemType INFESTED_CRACKED_STONE_BRICKS = get("minecraft:infested_cracked_stone_bricks"); + @Nullable public static final ItemType INFESTED_DEEPSLATE = get("minecraft:infested_deepslate"); @Nullable public static final ItemType INFESTED_MOSSY_STONE_BRICKS = get("minecraft:infested_mossy_stone_bricks"); @Nullable public static final ItemType INFESTED_STONE = get("minecraft:infested_stone"); @Nullable public static final ItemType INFESTED_STONE_BRICKS = get("minecraft:infested_stone_bricks"); @@ -499,6 +563,7 @@ public final class ItemTypes { @Nullable public static final ItemType LAPIS_BLOCK = get("minecraft:lapis_block"); @Nullable public static final ItemType LAPIS_LAZULI = get("minecraft:lapis_lazuli"); @Nullable public static final ItemType LAPIS_ORE = get("minecraft:lapis_ore"); + @Nullable public static final ItemType LARGE_AMETHYST_BUD = get("minecraft:large_amethyst_bud"); @Nullable public static final ItemType LARGE_FERN = get("minecraft:large_fern"); @Nullable public static final ItemType LAVA_BUCKET = get("minecraft:lava_bucket"); @Nullable public static final ItemType LEAD = get("minecraft:lead"); @@ -510,8 +575,10 @@ public final class ItemTypes { @Nullable public static final ItemType LEATHER_LEGGINGS = get("minecraft:leather_leggings"); @Nullable public static final ItemType LECTERN = get("minecraft:lectern"); @Nullable public static final ItemType LEVER = get("minecraft:lever"); + @Nullable public static final ItemType LIGHT = get("minecraft:light"); @Nullable public static final ItemType LIGHT_BLUE_BANNER = get("minecraft:light_blue_banner"); @Nullable public static final ItemType LIGHT_BLUE_BED = get("minecraft:light_blue_bed"); + @Nullable public static final ItemType LIGHT_BLUE_CANDLE = get("minecraft:light_blue_candle"); @Nullable public static final ItemType LIGHT_BLUE_CARPET = get("minecraft:light_blue_carpet"); @Nullable public static final ItemType LIGHT_BLUE_CONCRETE = get("minecraft:light_blue_concrete"); @Nullable public static final ItemType LIGHT_BLUE_CONCRETE_POWDER = get("minecraft:light_blue_concrete_powder"); @@ -524,6 +591,7 @@ public final class ItemTypes { @Nullable public static final ItemType LIGHT_BLUE_WOOL = get("minecraft:light_blue_wool"); @Nullable public static final ItemType LIGHT_GRAY_BANNER = get("minecraft:light_gray_banner"); @Nullable public static final ItemType LIGHT_GRAY_BED = get("minecraft:light_gray_bed"); + @Nullable public static final ItemType LIGHT_GRAY_CANDLE = get("minecraft:light_gray_candle"); @Nullable public static final ItemType LIGHT_GRAY_CARPET = get("minecraft:light_gray_carpet"); @Nullable public static final ItemType LIGHT_GRAY_CONCRETE = get("minecraft:light_gray_concrete"); @Nullable public static final ItemType LIGHT_GRAY_CONCRETE_POWDER = get("minecraft:light_gray_concrete_powder"); @@ -535,11 +603,13 @@ public final class ItemTypes { @Nullable public static final ItemType LIGHT_GRAY_TERRACOTTA = get("minecraft:light_gray_terracotta"); @Nullable public static final ItemType LIGHT_GRAY_WOOL = get("minecraft:light_gray_wool"); @Nullable public static final ItemType LIGHT_WEIGHTED_PRESSURE_PLATE = get("minecraft:light_weighted_pressure_plate"); + @Nullable public static final ItemType LIGHTNING_ROD = get("minecraft:lightning_rod"); @Nullable public static final ItemType LILAC = get("minecraft:lilac"); @Nullable public static final ItemType LILY_OF_THE_VALLEY = get("minecraft:lily_of_the_valley"); @Nullable public static final ItemType LILY_PAD = get("minecraft:lily_pad"); @Nullable public static final ItemType LIME_BANNER = get("minecraft:lime_banner"); @Nullable public static final ItemType LIME_BED = get("minecraft:lime_bed"); + @Nullable public static final ItemType LIME_CANDLE = get("minecraft:lime_candle"); @Nullable public static final ItemType LIME_CARPET = get("minecraft:lime_carpet"); @Nullable public static final ItemType LIME_CONCRETE = get("minecraft:lime_concrete"); @Nullable public static final ItemType LIME_CONCRETE_POWDER = get("minecraft:lime_concrete_powder"); @@ -556,6 +626,7 @@ public final class ItemTypes { @Nullable public static final ItemType LOOM = get("minecraft:loom"); @Nullable public static final ItemType MAGENTA_BANNER = get("minecraft:magenta_banner"); @Nullable public static final ItemType MAGENTA_BED = get("minecraft:magenta_bed"); + @Nullable public static final ItemType MAGENTA_CANDLE = get("minecraft:magenta_candle"); @Nullable public static final ItemType MAGENTA_CARPET = get("minecraft:magenta_carpet"); @Nullable public static final ItemType MAGENTA_CONCRETE = get("minecraft:magenta_concrete"); @Nullable public static final ItemType MAGENTA_CONCRETE_POWDER = get("minecraft:magenta_concrete_powder"); @@ -570,6 +641,7 @@ public final class ItemTypes { @Nullable public static final ItemType MAGMA_CREAM = get("minecraft:magma_cream"); @Nullable public static final ItemType MAGMA_CUBE_SPAWN_EGG = get("minecraft:magma_cube_spawn_egg"); @Nullable public static final ItemType MAP = get("minecraft:map"); + @Nullable public static final ItemType MEDIUM_AMETHYST_BUD = get("minecraft:medium_amethyst_bud"); @Nullable public static final ItemType MELON = get("minecraft:melon"); @Nullable public static final ItemType MELON_SEEDS = get("minecraft:melon_seeds"); @Nullable public static final ItemType MELON_SLICE = get("minecraft:melon_slice"); @@ -577,6 +649,8 @@ public final class ItemTypes { @Nullable public static final ItemType MINECART = get("minecraft:minecart"); @Nullable public static final ItemType MOJANG_BANNER_PATTERN = get("minecraft:mojang_banner_pattern"); @Nullable public static final ItemType MOOSHROOM_SPAWN_EGG = get("minecraft:mooshroom_spawn_egg"); + @Nullable public static final ItemType MOSS_BLOCK = get("minecraft:moss_block"); + @Nullable public static final ItemType MOSS_CARPET = get("minecraft:moss_carpet"); @Nullable public static final ItemType MOSSY_COBBLESTONE = get("minecraft:mossy_cobblestone"); @Nullable public static final ItemType MOSSY_COBBLESTONE_SLAB = get("minecraft:mossy_cobblestone_slab"); @Nullable public static final ItemType MOSSY_COBBLESTONE_STAIRS = get("minecraft:mossy_cobblestone_stairs"); @@ -651,6 +725,7 @@ public final class ItemTypes { @Nullable public static final ItemType OCELOT_SPAWN_EGG = get("minecraft:ocelot_spawn_egg"); @Nullable public static final ItemType ORANGE_BANNER = get("minecraft:orange_banner"); @Nullable public static final ItemType ORANGE_BED = get("minecraft:orange_bed"); + @Nullable public static final ItemType ORANGE_CANDLE = get("minecraft:orange_candle"); @Nullable public static final ItemType ORANGE_CARPET = get("minecraft:orange_carpet"); @Nullable public static final ItemType ORANGE_CONCRETE = get("minecraft:orange_concrete"); @Nullable public static final ItemType ORANGE_CONCRETE_POWDER = get("minecraft:orange_concrete_powder"); @@ -663,6 +738,10 @@ public final class ItemTypes { @Nullable public static final ItemType ORANGE_TULIP = get("minecraft:orange_tulip"); @Nullable public static final ItemType ORANGE_WOOL = get("minecraft:orange_wool"); @Nullable public static final ItemType OXEYE_DAISY = get("minecraft:oxeye_daisy"); + @Nullable public static final ItemType OXIDIZED_COPPER = get("minecraft:oxidized_copper"); + @Nullable public static final ItemType OXIDIZED_CUT_COPPER = get("minecraft:oxidized_cut_copper"); + @Nullable public static final ItemType OXIDIZED_CUT_COPPER_SLAB = get("minecraft:oxidized_cut_copper_slab"); + @Nullable public static final ItemType OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:oxidized_cut_copper_stairs"); @Nullable public static final ItemType PACKED_ICE = get("minecraft:packed_ice"); @Nullable public static final ItemType PAINTING = get("minecraft:painting"); @Nullable public static final ItemType PANDA_SPAWN_EGG = get("minecraft:panda_spawn_egg"); @@ -679,6 +758,7 @@ public final class ItemTypes { @Nullable public static final ItemType PILLAGER_SPAWN_EGG = get("minecraft:pillager_spawn_egg"); @Nullable public static final ItemType PINK_BANNER = get("minecraft:pink_banner"); @Nullable public static final ItemType PINK_BED = get("minecraft:pink_bed"); + @Nullable public static final ItemType PINK_CANDLE = get("minecraft:pink_candle"); @Nullable public static final ItemType PINK_CARPET = get("minecraft:pink_carpet"); @Nullable public static final ItemType PINK_CONCRETE = get("minecraft:pink_concrete"); @Nullable public static final ItemType PINK_CONCRETE_POWDER = get("minecraft:pink_concrete_powder"); @@ -693,6 +773,7 @@ public final class ItemTypes { @Nullable public static final ItemType PISTON = get("minecraft:piston"); @Nullable public static final ItemType PLAYER_HEAD = get("minecraft:player_head"); @Nullable public static final ItemType PODZOL = get("minecraft:podzol"); + @Nullable public static final ItemType POINTED_DRIPSTONE = get("minecraft:pointed_dripstone"); @Nullable public static final ItemType POISONOUS_POTATO = get("minecraft:poisonous_potato"); @Nullable public static final ItemType POLAR_BEAR_SPAWN_EGG = get("minecraft:polar_bear_spawn_egg"); @Nullable public static final ItemType POLISHED_ANDESITE = get("minecraft:polished_andesite"); @@ -709,6 +790,10 @@ public final class ItemTypes { @Nullable public static final ItemType POLISHED_BLACKSTONE_SLAB = get("minecraft:polished_blackstone_slab"); @Nullable public static final ItemType POLISHED_BLACKSTONE_STAIRS = get("minecraft:polished_blackstone_stairs"); @Nullable public static final ItemType POLISHED_BLACKSTONE_WALL = get("minecraft:polished_blackstone_wall"); + @Nullable public static final ItemType POLISHED_DEEPSLATE = get("minecraft:polished_deepslate"); + @Nullable public static final ItemType POLISHED_DEEPSLATE_SLAB = get("minecraft:polished_deepslate_slab"); + @Nullable public static final ItemType POLISHED_DEEPSLATE_STAIRS = get("minecraft:polished_deepslate_stairs"); + @Nullable public static final ItemType POLISHED_DEEPSLATE_WALL = get("minecraft:polished_deepslate_wall"); @Nullable public static final ItemType POLISHED_DIORITE = get("minecraft:polished_diorite"); @Nullable public static final ItemType POLISHED_DIORITE_SLAB = get("minecraft:polished_diorite_slab"); @Nullable public static final ItemType POLISHED_DIORITE_STAIRS = get("minecraft:polished_diorite_stairs"); @@ -720,6 +805,7 @@ public final class ItemTypes { @Nullable public static final ItemType PORKCHOP = get("minecraft:porkchop"); @Nullable public static final ItemType POTATO = get("minecraft:potato"); @Nullable public static final ItemType POTION = get("minecraft:potion"); + @Nullable public static final ItemType POWDER_SNOW_BUCKET = get("minecraft:powder_snow_bucket"); @Nullable public static final ItemType POWERED_RAIL = get("minecraft:powered_rail"); @Nullable public static final ItemType PRISMARINE = get("minecraft:prismarine"); @Nullable public static final ItemType PRISMARINE_BRICK_SLAB = get("minecraft:prismarine_brick_slab"); @@ -738,6 +824,7 @@ public final class ItemTypes { @Nullable public static final ItemType PUMPKIN_SEEDS = get("minecraft:pumpkin_seeds"); @Nullable public static final ItemType PURPLE_BANNER = get("minecraft:purple_banner"); @Nullable public static final ItemType PURPLE_BED = get("minecraft:purple_bed"); + @Nullable public static final ItemType PURPLE_CANDLE = get("minecraft:purple_candle"); @Nullable public static final ItemType PURPLE_CARPET = get("minecraft:purple_carpet"); @Nullable public static final ItemType PURPLE_CONCRETE = get("minecraft:purple_concrete"); @Nullable public static final ItemType PURPLE_CONCRETE_POWDER = get("minecraft:purple_concrete_powder"); @@ -765,8 +852,15 @@ public final class ItemTypes { @Nullable public static final ItemType RABBIT_STEW = get("minecraft:rabbit_stew"); @Nullable public static final ItemType RAIL = get("minecraft:rail"); @Nullable public static final ItemType RAVAGER_SPAWN_EGG = get("minecraft:ravager_spawn_egg"); + @Nullable public static final ItemType RAW_COPPER = get("minecraft:raw_copper"); + @Nullable public static final ItemType RAW_COPPER_BLOCK = get("minecraft:raw_copper_block"); + @Nullable public static final ItemType RAW_GOLD = get("minecraft:raw_gold"); + @Nullable public static final ItemType RAW_GOLD_BLOCK = get("minecraft:raw_gold_block"); + @Nullable public static final ItemType RAW_IRON = get("minecraft:raw_iron"); + @Nullable public static final ItemType RAW_IRON_BLOCK = get("minecraft:raw_iron_block"); @Nullable public static final ItemType RED_BANNER = get("minecraft:red_banner"); @Nullable public static final ItemType RED_BED = get("minecraft:red_bed"); + @Nullable public static final ItemType RED_CANDLE = get("minecraft:red_candle"); @Nullable public static final ItemType RED_CARPET = get("minecraft:red_carpet"); @Nullable public static final ItemType RED_CONCRETE = get("minecraft:red_concrete"); @Nullable public static final ItemType RED_CONCRETE_POWDER = get("minecraft:red_concrete_powder"); @@ -797,6 +891,7 @@ public final class ItemTypes { @Nullable public static final ItemType REPEATER = get("minecraft:repeater"); @Nullable public static final ItemType REPEATING_COMMAND_BLOCK = get("minecraft:repeating_command_block"); @Nullable public static final ItemType RESPAWN_ANCHOR = get("minecraft:respawn_anchor"); + @Nullable public static final ItemType ROOTED_DIRT = get("minecraft:rooted_dirt"); @Nullable public static final ItemType ROSE_BUSH = get("minecraft:rose_bush"); @Deprecated @Nullable public static final ItemType ROSE_RED = get("minecraft:rose_red"); @Nullable public static final ItemType ROTTEN_FLESH = get("minecraft:rotten_flesh"); @@ -810,6 +905,7 @@ public final class ItemTypes { @Nullable public static final ItemType SANDSTONE_STAIRS = get("minecraft:sandstone_stairs"); @Nullable public static final ItemType SANDSTONE_WALL = get("minecraft:sandstone_wall"); @Nullable public static final ItemType SCAFFOLDING = get("minecraft:scaffolding"); + @Nullable public static final ItemType SCULK_SENSOR = get("minecraft:sculk_sensor"); @Nullable public static final ItemType SCUTE = get("minecraft:scute"); @Nullable public static final ItemType SEA_LANTERN = get("minecraft:sea_lantern"); @Nullable public static final ItemType SEA_PICKLE = get("minecraft:sea_pickle"); @@ -830,8 +926,11 @@ public final class ItemTypes { @Nullable public static final ItemType SLIME_BALL = get("minecraft:slime_ball"); @Nullable public static final ItemType SLIME_BLOCK = get("minecraft:slime_block"); @Nullable public static final ItemType SLIME_SPAWN_EGG = get("minecraft:slime_spawn_egg"); + @Nullable public static final ItemType SMALL_AMETHYST_BUD = get("minecraft:small_amethyst_bud"); + @Nullable public static final ItemType SMALL_DRIPLEAF = get("minecraft:small_dripleaf"); @Nullable public static final ItemType SMITHING_TABLE = get("minecraft:smithing_table"); @Nullable public static final ItemType SMOKER = get("minecraft:smoker"); + @Nullable public static final ItemType SMOOTH_BASALT = get("minecraft:smooth_basalt"); @Nullable public static final ItemType SMOOTH_QUARTZ = get("minecraft:smooth_quartz"); @Nullable public static final ItemType SMOOTH_QUARTZ_SLAB = get("minecraft:smooth_quartz_slab"); @Nullable public static final ItemType SMOOTH_QUARTZ_STAIRS = get("minecraft:smooth_quartz_stairs"); @@ -857,6 +956,7 @@ public final class ItemTypes { @Nullable public static final ItemType SPIDER_SPAWN_EGG = get("minecraft:spider_spawn_egg"); @Nullable public static final ItemType SPLASH_POTION = get("minecraft:splash_potion"); @Nullable public static final ItemType SPONGE = get("minecraft:sponge"); + @Nullable public static final ItemType SPORE_BLOSSOM = get("minecraft:spore_blossom"); @Nullable public static final ItemType SPRUCE_BOAT = get("minecraft:spruce_boat"); @Nullable public static final ItemType SPRUCE_BUTTON = get("minecraft:spruce_button"); @Nullable public static final ItemType SPRUCE_DOOR = get("minecraft:spruce_door"); @@ -872,6 +972,7 @@ public final class ItemTypes { @Nullable public static final ItemType SPRUCE_STAIRS = get("minecraft:spruce_stairs"); @Nullable public static final ItemType SPRUCE_TRAPDOOR = get("minecraft:spruce_trapdoor"); @Nullable public static final ItemType SPRUCE_WOOD = get("minecraft:spruce_wood"); + @Nullable public static final ItemType SPYGLASS = get("minecraft:spyglass"); @Nullable public static final ItemType SQUID_SPAWN_EGG = get("minecraft:squid_spawn_egg"); @Nullable public static final ItemType STICK = get("minecraft:stick"); @Nullable public static final ItemType STICKY_PISTON = get("minecraft:sticky_piston"); @@ -919,6 +1020,7 @@ public final class ItemTypes { @Nullable public static final ItemType TALL_GRASS = get("minecraft:tall_grass"); @Nullable public static final ItemType TARGET = get("minecraft:target"); @Nullable public static final ItemType TERRACOTTA = get("minecraft:terracotta"); + @Nullable public static final ItemType TINTED_GLASS = get("minecraft:tinted_glass"); @Nullable public static final ItemType TIPPED_ARROW = get("minecraft:tipped_arrow"); @Nullable public static final ItemType TNT = get("minecraft:tnt"); @Nullable public static final ItemType TNT_MINECART = get("minecraft:tnt_minecart"); @@ -934,6 +1036,7 @@ public final class ItemTypes { @Nullable public static final ItemType TUBE_CORAL = get("minecraft:tube_coral"); @Nullable public static final ItemType TUBE_CORAL_BLOCK = get("minecraft:tube_coral_block"); @Nullable public static final ItemType TUBE_CORAL_FAN = get("minecraft:tube_coral_fan"); + @Nullable public static final ItemType TUFF = get("minecraft:tuff"); @Nullable public static final ItemType TURTLE_EGG = get("minecraft:turtle_egg"); @Nullable public static final ItemType TURTLE_HELMET = get("minecraft:turtle_helmet"); @Nullable public static final ItemType TURTLE_SPAWN_EGG = get("minecraft:turtle_spawn_egg"); @@ -961,12 +1064,33 @@ public final class ItemTypes { @Nullable public static final ItemType WARPED_TRAPDOOR = get("minecraft:warped_trapdoor"); @Nullable public static final ItemType WARPED_WART_BLOCK = get("minecraft:warped_wart_block"); @Nullable public static final ItemType WATER_BUCKET = get("minecraft:water_bucket"); + @Nullable public static final ItemType WAXED_COPPER_BLOCK = get("minecraft:waxed_copper_block"); + @Nullable public static final ItemType WAXED_CUT_COPPER = get("minecraft:waxed_cut_copper"); + @Nullable public static final ItemType WAXED_CUT_COPPER_SLAB = get("minecraft:waxed_cut_copper_slab"); + @Nullable public static final ItemType WAXED_CUT_COPPER_STAIRS = get("minecraft:waxed_cut_copper_stairs"); + @Nullable public static final ItemType WAXED_EXPOSED_COPPER = get("minecraft:waxed_exposed_copper"); + @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER = get("minecraft:waxed_exposed_cut_copper"); + @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_SLAB = get("minecraft:waxed_exposed_cut_copper_slab"); + @Nullable public static final ItemType WAXED_EXPOSED_CUT_COPPER_STAIRS = get("minecraft:waxed_exposed_cut_copper_stairs"); + @Nullable public static final ItemType WAXED_OXIDIZED_COPPER = get("minecraft:waxed_oxidized_copper"); + @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER = get("minecraft:waxed_oxidized_cut_copper"); + @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_SLAB = get("minecraft:waxed_oxidized_cut_copper_slab"); + @Nullable public static final ItemType WAXED_OXIDIZED_CUT_COPPER_STAIRS = get("minecraft:waxed_oxidized_cut_copper_stairs"); + @Nullable public static final ItemType WAXED_WEATHERED_COPPER = get("minecraft:waxed_weathered_copper"); + @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER = get("minecraft:waxed_weathered_cut_copper"); + @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_SLAB = get("minecraft:waxed_weathered_cut_copper_slab"); + @Nullable public static final ItemType WAXED_WEATHERED_CUT_COPPER_STAIRS = get("minecraft:waxed_weathered_cut_copper_stairs"); + @Nullable public static final ItemType WEATHERED_COPPER = get("minecraft:weathered_copper"); + @Nullable public static final ItemType WEATHERED_CUT_COPPER = get("minecraft:weathered_cut_copper"); + @Nullable public static final ItemType WEATHERED_CUT_COPPER_SLAB = get("minecraft:weathered_cut_copper_slab"); + @Nullable public static final ItemType WEATHERED_CUT_COPPER_STAIRS = get("minecraft:weathered_cut_copper_stairs"); @Nullable public static final ItemType WEEPING_VINES = get("minecraft:weeping_vines"); @Nullable public static final ItemType WET_SPONGE = get("minecraft:wet_sponge"); @Nullable public static final ItemType WHEAT = get("minecraft:wheat"); @Nullable public static final ItemType WHEAT_SEEDS = get("minecraft:wheat_seeds"); @Nullable public static final ItemType WHITE_BANNER = get("minecraft:white_banner"); @Nullable public static final ItemType WHITE_BED = get("minecraft:white_bed"); + @Nullable public static final ItemType WHITE_CANDLE = get("minecraft:white_candle"); @Nullable public static final ItemType WHITE_CARPET = get("minecraft:white_carpet"); @Nullable public static final ItemType WHITE_CONCRETE = get("minecraft:white_concrete"); @Nullable public static final ItemType WHITE_CONCRETE_POWDER = get("minecraft:white_concrete_powder"); @@ -992,6 +1116,7 @@ public final class ItemTypes { @Nullable public static final ItemType WRITTEN_BOOK = get("minecraft:written_book"); @Nullable public static final ItemType YELLOW_BANNER = get("minecraft:yellow_banner"); @Nullable public static final ItemType YELLOW_BED = get("minecraft:yellow_bed"); + @Nullable public static final ItemType YELLOW_CANDLE = get("minecraft:yellow_candle"); @Nullable public static final ItemType YELLOW_CARPET = get("minecraft:yellow_carpet"); @Nullable public static final ItemType YELLOW_CONCRETE = get("minecraft:yellow_concrete"); @Nullable public static final ItemType YELLOW_CONCRETE_POWDER = get("minecraft:yellow_concrete_powder"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java index f325e4455f..e3a7e1bce7 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledBlockData.java @@ -83,7 +83,9 @@ private void loadFromResource() throws IOException { Gson gson = gsonBuilder.create(); URL url = null; final int dataVersion = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion(); - if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { + if (dataVersion >= Constants.DATA_VERSION_MC_1_17) { + url = resourceLoader.getResource(BundledBlockData.class, "blocks.117.json"); + } else if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { url = resourceLoader.getResource(BundledBlockData.class, "blocks.116.json"); } else if (dataVersion >= Constants.DATA_VERSION_MC_1_15) { url = resourceLoader.getResource(BundledBlockData.class, "blocks.115.json"); diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java index 9e5c6c0048..f3ec57d0e8 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/world/registry/BundledItemData.java @@ -83,7 +83,9 @@ private void loadFromResource() throws IOException { Gson gson = gsonBuilder.create(); URL url = null; final int dataVersion = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.WORLD_EDITING).getDataVersion(); - if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { + if (dataVersion >= Constants.DATA_VERSION_MC_1_17) { + url = resourceLoader.getResource(BundledBlockData.class, "items.117.json"); + } else if (dataVersion >= Constants.DATA_VERSION_MC_1_16) { url = resourceLoader.getResource(BundledBlockData.class, "items.116.json"); } else if (dataVersion >= Constants.DATA_VERSION_MC_1_15) { url = resourceLoader.getResource(BundledBlockData.class, "items.115.json"); diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.117.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.117.json new file mode 100644 index 0000000000..3378b745ed --- /dev/null +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/blocks.117.json @@ -0,0 +1 @@ +[{"id":"minecraft:acacia_button","localizedName":"Acacia Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_door","localizedName":"Acacia Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_fence","localizedName":"Acacia Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_fence_gate","localizedName":"Acacia Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_leaves","localizedName":"Acacia Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_log","localizedName":"Acacia Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_planks","localizedName":"Acacia Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_pressure_plate","localizedName":"Acacia Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_sapling","localizedName":"Acacia Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_sign","localizedName":"Acacia Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_slab","localizedName":"Acacia Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_stairs","localizedName":"Acacia Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_trapdoor","localizedName":"Acacia Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_wall_sign","localizedName":"Acacia Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:acacia_wood","localizedName":"Acacia Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:activator_rail","localizedName":"Activator Rail","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.7,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.7,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:air","localizedName":"Air","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:allium","localizedName":"Allium","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:amethyst_block","localizedName":"Block of Amethyst","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:amethyst_cluster","localizedName":"Amethyst Cluster","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":5,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:ancient_debris","localizedName":"Ancient Debris","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":30.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:andesite","localizedName":"Andesite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:andesite_slab","localizedName":"Andesite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:andesite_stairs","localizedName":"Andesite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:andesite_wall","localizedName":"Andesite Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:anvil","localizedName":"Anvil","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":true}},{"id":"minecraft:attached_melon_stem","localizedName":"Attached Melon Stem","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:attached_pumpkin_stem","localizedName":"Attached Pumpkin Stem","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:azalea","localizedName":"Azalea","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:azalea_leaves","localizedName":"Azalea Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:azure_bluet","localizedName":"Azure Bluet","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bamboo","localizedName":"Bamboo","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bamboo_sapling","localizedName":"Bamboo Shoot","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":false,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:barrel","localizedName":"Barrel","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:barrier","localizedName":"Barrier","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:basalt","localizedName":"Basalt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:beacon","localizedName":"Beacon","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bedrock","localizedName":"Bedrock","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bee_nest","localizedName":"Bee Nest","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:beehive","localizedName":"Beehive","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:beetroots","localizedName":"Beetroots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bell","localizedName":"Bell","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":5.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:big_dripleaf","localizedName":"Big Dripleaf","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:big_dripleaf_stem","localizedName":"Big Dripleaf Stem","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_button","localizedName":"Birch Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_door","localizedName":"Birch Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_fence","localizedName":"Birch Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_fence_gate","localizedName":"Birch Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_leaves","localizedName":"Birch Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_log","localizedName":"Birch Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_planks","localizedName":"Birch Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_pressure_plate","localizedName":"Birch Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_sapling","localizedName":"Birch Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_sign","localizedName":"Birch Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_slab","localizedName":"Birch Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_stairs","localizedName":"Birch Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_trapdoor","localizedName":"Birch Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_wall_sign","localizedName":"Birch Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:birch_wood","localizedName":"Birch Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_banner","localizedName":"Black Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_bed","localizedName":"Black Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_candle","localizedName":"Black Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_candle_cake","localizedName":"Cake with Black Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_carpet","localizedName":"Black Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_concrete","localizedName":"Black Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:black_concrete_powder","localizedName":"Black Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_glazed_terracotta","localizedName":"Black Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:black_shulker_box","localizedName":"Black Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_stained_glass","localizedName":"Black Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_stained_glass_pane","localizedName":"Black Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_terracotta","localizedName":"Black Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:black_wall_banner","localizedName":"Black Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:black_wool","localizedName":"Black Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blackstone","localizedName":"Blackstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blackstone_slab","localizedName":"Blackstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blackstone_stairs","localizedName":"Blackstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blackstone_wall","localizedName":"Blackstone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blast_furnace","localizedName":"Blast Furnace","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blue_banner","localizedName":"Blue Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_bed","localizedName":"Blue Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_candle","localizedName":"Blue Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_candle_cake","localizedName":"Cake with Blue Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_carpet","localizedName":"Blue Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_concrete","localizedName":"Blue Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blue_concrete_powder","localizedName":"Blue Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_glazed_terracotta","localizedName":"Blue Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blue_ice","localizedName":"Blue Ice","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a0a0ff","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.8,"slipperiness":0.989,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_orchid","localizedName":"Blue Orchid","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_shulker_box","localizedName":"Blue Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_stained_glass","localizedName":"Blue Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_stained_glass_pane","localizedName":"Blue Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_terracotta","localizedName":"Blue Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:blue_wall_banner","localizedName":"Blue Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:blue_wool","localizedName":"Blue Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bone_block","localizedName":"Bone Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:bookshelf","localizedName":"Bookshelf","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brain_coral","localizedName":"Brain Coral","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brain_coral_block","localizedName":"Brain Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brain_coral_fan","localizedName":"Brain Coral Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brain_coral_wall_fan","localizedName":"Brain Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brewing_stand","localizedName":"Brewing Stand","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":true,"lightValue":1,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brick_slab","localizedName":"Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brick_stairs","localizedName":"Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brick_wall","localizedName":"Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:bricks","localizedName":"Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brown_banner","localizedName":"Brown Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_bed","localizedName":"Brown Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_candle","localizedName":"Brown Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_candle_cake","localizedName":"Cake with Brown Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_carpet","localizedName":"Brown Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_concrete","localizedName":"Brown Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brown_concrete_powder","localizedName":"Brown Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_glazed_terracotta","localizedName":"Brown Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brown_mushroom","localizedName":"Brown Mushroom","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":1,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_mushroom_block","localizedName":"Brown Mushroom Block","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_shulker_box","localizedName":"Brown Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_stained_glass","localizedName":"Brown Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_stained_glass_pane","localizedName":"Brown Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_terracotta","localizedName":"Brown Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:brown_wall_banner","localizedName":"Brown Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:brown_wool","localizedName":"Brown Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bubble_column","localizedName":"Bubble Column","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":true,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bubble_coral","localizedName":"Bubble Coral","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bubble_coral_block","localizedName":"Bubble Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:bubble_coral_fan","localizedName":"Bubble Coral Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:bubble_coral_wall_fan","localizedName":"Bubble Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:budding_amethyst","localizedName":"Budding Amethyst","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cactus","localizedName":"Cactus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cake","localizedName":"Cake","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:calcite","localizedName":"Calcite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:campfire","localizedName":"Campfire","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":true,"lightValue":15,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:candle","localizedName":"Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:candle_cake","localizedName":"Cake with Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:carrots","localizedName":"Carrots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cartography_table","localizedName":"Cartography Table","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:carved_pumpkin","localizedName":"Carved Pumpkin","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cauldron","localizedName":"Cauldron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cave_air","localizedName":"Cave Air","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cave_vines","localizedName":"Cave Vines","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cave_vines_plant","localizedName":"Cave Vines Plant","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:chain","localizedName":"Chain","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chain_command_block","localizedName":"Chain Command Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chest","localizedName":"Chest","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:chipped_anvil","localizedName":"Chipped Anvil","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":true}},{"id":"minecraft:chiseled_deepslate","localizedName":"Chiseled Deepslate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_nether_bricks","localizedName":"Chiseled Nether Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_polished_blackstone","localizedName":"Chiseled Polished Blackstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_quartz_block","localizedName":"Chiseled Quartz Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_red_sandstone","localizedName":"Chiseled Red Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_sandstone","localizedName":"Chiseled Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chiseled_stone_bricks","localizedName":"Chiseled Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:chorus_flower","localizedName":"Chorus Flower","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:chorus_plant","localizedName":"Chorus Plant","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:clay","localizedName":"Clay","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:coal_block","localizedName":"Block of Coal","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:coal_ore","localizedName":"Coal Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:coarse_dirt","localizedName":"Coarse Dirt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cobbled_deepslate","localizedName":"Cobbled Deepslate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobbled_deepslate_slab","localizedName":"Cobbled Deepslate Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobbled_deepslate_stairs","localizedName":"Cobbled Deepslate Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobbled_deepslate_wall","localizedName":"Cobbled Deepslate Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobblestone","localizedName":"Cobblestone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobblestone_slab","localizedName":"Cobblestone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobblestone_stairs","localizedName":"Cobblestone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobblestone_wall","localizedName":"Cobblestone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cobweb","localizedName":"Cobweb","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":4.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cocoa","localizedName":"Cocoa","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:command_block","localizedName":"Command Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:comparator","localizedName":"Redstone Comparator","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:composter","localizedName":"Composter","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:conduit","localizedName":"Conduit","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:copper_block","localizedName":"Block of Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:copper_ore","localizedName":"Copper Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cornflower","localizedName":"Cornflower","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cracked_deepslate_bricks","localizedName":"Cracked Deepslate Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cracked_deepslate_tiles","localizedName":"Cracked Deepslate Tiles","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cracked_nether_bricks","localizedName":"Cracked Nether Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cracked_polished_blackstone_bricks","localizedName":"Cracked Polished Blackstone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cracked_stone_bricks","localizedName":"Cracked Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:crafting_table","localizedName":"Crafting Table","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:creeper_head","localizedName":"Creeper Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:creeper_wall_head","localizedName":"Creeper Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_button","localizedName":"Crimson Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_door","localizedName":"Crimson Door","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_fence","localizedName":"Crimson Fence","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_fence_gate","localizedName":"Crimson Fence Gate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_fungus","localizedName":"Crimson Fungus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_hyphae","localizedName":"Crimson Hyphae","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_nylium","localizedName":"Crimson Nylium","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:crimson_planks","localizedName":"Crimson Planks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_pressure_plate","localizedName":"Crimson Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_roots","localizedName":"Crimson Roots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_sign","localizedName":"Crimson Sign","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_slab","localizedName":"Crimson Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_stairs","localizedName":"Crimson Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_stem","localizedName":"Crimson Stem","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_trapdoor","localizedName":"Crimson Trapdoor","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crimson_wall_sign","localizedName":"Crimson Sign","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:crying_obsidian","localizedName":"Crying Obsidian","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":50.0,"hasContainer":false,"lightValue":10,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_copper","localizedName":"Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_copper_slab","localizedName":"Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_copper_stairs","localizedName":"Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_red_sandstone","localizedName":"Cut Red Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_red_sandstone_slab","localizedName":"Cut Red Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_sandstone","localizedName":"Cut Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cut_sandstone_slab","localizedName":"Cut Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cyan_banner","localizedName":"Cyan Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_bed","localizedName":"Cyan Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_candle","localizedName":"Cyan Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_candle_cake","localizedName":"Cake with Cyan Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_carpet","localizedName":"Cyan Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_concrete","localizedName":"Cyan Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cyan_concrete_powder","localizedName":"Cyan Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_glazed_terracotta","localizedName":"Cyan Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cyan_shulker_box","localizedName":"Cyan Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_stained_glass","localizedName":"Cyan Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_stained_glass_pane","localizedName":"Cyan Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_terracotta","localizedName":"Cyan Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:cyan_wall_banner","localizedName":"Cyan Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:cyan_wool","localizedName":"Cyan Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:damaged_anvil","localizedName":"Damaged Anvil","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":true}},{"id":"minecraft:dandelion","localizedName":"Dandelion","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_button","localizedName":"Dark Oak Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_door","localizedName":"Dark Oak Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_fence","localizedName":"Dark Oak Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_fence_gate","localizedName":"Dark Oak Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_leaves","localizedName":"Dark Oak Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_log","localizedName":"Dark Oak Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_planks","localizedName":"Dark Oak Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_pressure_plate","localizedName":"Dark Oak Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_sapling","localizedName":"Dark Oak Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_sign","localizedName":"Dark Oak Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_slab","localizedName":"Dark Oak Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_stairs","localizedName":"Dark Oak Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_trapdoor","localizedName":"Dark Oak Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_wall_sign","localizedName":"Dark Oak Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_oak_wood","localizedName":"Dark Oak Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dark_prismarine","localizedName":"Dark Prismarine","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dark_prismarine_slab","localizedName":"Dark Prismarine Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dark_prismarine_stairs","localizedName":"Dark Prismarine Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:daylight_detector","localizedName":"Daylight Detector","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dead_brain_coral","localizedName":"Dead Brain Coral","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_brain_coral_block","localizedName":"Dead Brain Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_brain_coral_fan","localizedName":"Dead Brain Coral Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_brain_coral_wall_fan","localizedName":"Dead Brain Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_bubble_coral","localizedName":"Dead Bubble Coral","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_bubble_coral_block","localizedName":"Dead Bubble Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_bubble_coral_fan","localizedName":"Dead Bubble Coral Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_bubble_coral_wall_fan","localizedName":"Dead Bubble Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_bush","localizedName":"Dead Bush","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dead_fire_coral","localizedName":"Dead Fire Coral","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_fire_coral_block","localizedName":"Dead Fire Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_fire_coral_fan","localizedName":"Dead Fire Coral Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_fire_coral_wall_fan","localizedName":"Dead Fire Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_horn_coral","localizedName":"Dead Horn Coral","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_horn_coral_block","localizedName":"Dead Horn Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_horn_coral_fan","localizedName":"Dead Horn Coral Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_horn_coral_wall_fan","localizedName":"Dead Horn Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_tube_coral","localizedName":"Dead Tube Coral","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_tube_coral_block","localizedName":"Dead Tube Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_tube_coral_fan","localizedName":"Dead Tube Coral Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dead_tube_coral_wall_fan","localizedName":"Dead Tube Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate","localizedName":"Deepslate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_brick_slab","localizedName":"Deepslate Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_brick_stairs","localizedName":"Deepslate Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_brick_wall","localizedName":"Deepslate Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_bricks","localizedName":"Deepslate Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_coal_ore","localizedName":"Deepslate Coal Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_copper_ore","localizedName":"Deepslate Copper Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_diamond_ore","localizedName":"Deepslate Diamond Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_emerald_ore","localizedName":"Deepslate Emerald Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_gold_ore","localizedName":"Deepslate Gold Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_iron_ore","localizedName":"Deepslate Iron Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_lapis_ore","localizedName":"Deepslate Lapis Lazuli Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_redstone_ore","localizedName":"Deepslate Redstone Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":4.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_tile_slab","localizedName":"Deepslate Tile Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_tile_stairs","localizedName":"Deepslate Tile Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_tile_wall","localizedName":"Deepslate Tile Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:deepslate_tiles","localizedName":"Deepslate Tiles","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:detector_rail","localizedName":"Detector Rail","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.7,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.7,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:diamond_block","localizedName":"Block of Diamond","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:diamond_ore","localizedName":"Diamond Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:diorite","localizedName":"Diorite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:diorite_slab","localizedName":"Diorite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:diorite_stairs","localizedName":"Diorite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:diorite_wall","localizedName":"Diorite Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dirt","localizedName":"Dirt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dirt_path","localizedName":"Dirt Path","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.65,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.65,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dispenser","localizedName":"Dispenser","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dragon_egg","localizedName":"Dragon Egg","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":1,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dragon_head","localizedName":"Dragon Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dragon_wall_head","localizedName":"Dragon Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dried_kelp_block","localizedName":"Dried Kelp Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:dripstone_block","localizedName":"Dripstone Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:dropper","localizedName":"Dropper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:emerald_block","localizedName":"Block of Emerald","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:emerald_ore","localizedName":"Emerald Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:enchanting_table","localizedName":"Enchanting Table","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:end_gateway","localizedName":"End Gateway","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:end_portal","localizedName":"End Portal","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:end_portal_frame","localizedName":"End Portal Frame","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":1,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:end_rod","localizedName":"End Rod","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":14,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:end_stone","localizedName":"End Stone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:end_stone_brick_slab","localizedName":"End Stone Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:end_stone_brick_stairs","localizedName":"End Stone Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:end_stone_brick_wall","localizedName":"End Stone Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:end_stone_bricks","localizedName":"End Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":9.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:ender_chest","localizedName":"Ender Chest","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":22.5,"hasContainer":false,"lightValue":7,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":600.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:exposed_copper","localizedName":"Exposed Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:exposed_cut_copper","localizedName":"Exposed Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:exposed_cut_copper_slab","localizedName":"Exposed Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:exposed_cut_copper_stairs","localizedName":"Exposed Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:farmland","localizedName":"Farmland","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fern","localizedName":"Fern","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fire","localizedName":"Fire","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fire_coral","localizedName":"Fire Coral","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fire_coral_block","localizedName":"Fire Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:fire_coral_fan","localizedName":"Fire Coral Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fire_coral_wall_fan","localizedName":"Fire Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:fletching_table","localizedName":"Fletching Table","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:flower_pot","localizedName":"Flower Pot","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:flowering_azalea","localizedName":"Flowering Azalea","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:flowering_azalea_leaves","localizedName":"Flowering Azalea Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:frosted_ice","localizedName":"Frosted Ice","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a0a0ff","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.98,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:furnace","localizedName":"Furnace","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:gilded_blackstone","localizedName":"Gilded Blackstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:glass","localizedName":"Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:glass_pane","localizedName":"Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:glow_lichen","localizedName":"Glow Lichen","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.2,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:glowstone","localizedName":"Glowstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gold_block","localizedName":"Block of Gold","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:gold_ore","localizedName":"Gold Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:granite","localizedName":"Granite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:granite_slab","localizedName":"Granite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:granite_stairs","localizedName":"Granite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:granite_wall","localizedName":"Granite Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:grass","localizedName":"Grass","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:grass_block","localizedName":"Grass Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gravel","localizedName":"Gravel","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_banner","localizedName":"Gray Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_bed","localizedName":"Gray Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_candle","localizedName":"Gray Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_candle_cake","localizedName":"Cake with Gray Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_carpet","localizedName":"Gray Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_concrete","localizedName":"Gray Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:gray_concrete_powder","localizedName":"Gray Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_glazed_terracotta","localizedName":"Gray Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:gray_shulker_box","localizedName":"Gray Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_stained_glass","localizedName":"Gray Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_stained_glass_pane","localizedName":"Gray Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_terracotta","localizedName":"Gray Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:gray_wall_banner","localizedName":"Gray Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:gray_wool","localizedName":"Gray Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_banner","localizedName":"Green Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_bed","localizedName":"Green Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_candle","localizedName":"Green Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_candle_cake","localizedName":"Cake with Green Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_carpet","localizedName":"Green Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_concrete","localizedName":"Green Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:green_concrete_powder","localizedName":"Green Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_glazed_terracotta","localizedName":"Green Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:green_shulker_box","localizedName":"Green Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_stained_glass","localizedName":"Green Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_stained_glass_pane","localizedName":"Green Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_terracotta","localizedName":"Green Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:green_wall_banner","localizedName":"Green Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:green_wool","localizedName":"Green Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:grindstone","localizedName":"Grindstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":true}},{"id":"minecraft:hanging_roots","localizedName":"Hanging Roots","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:hay_block","localizedName":"Hay Bale","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:heavy_weighted_pressure_plate","localizedName":"Heavy Weighted Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:honey_block","localizedName":"Honey Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:honeycomb_block","localizedName":"Honeycomb Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:hopper","localizedName":"Hopper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:horn_coral","localizedName":"Horn Coral","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:horn_coral_block","localizedName":"Horn Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:horn_coral_fan","localizedName":"Horn Coral Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:horn_coral_wall_fan","localizedName":"Horn Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:ice","localizedName":"Ice","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a0a0ff","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.98,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_chiseled_stone_bricks","localizedName":"Infested Chiseled Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_cobblestone","localizedName":"Infested Cobblestone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_cracked_stone_bricks","localizedName":"Infested Cracked Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_deepslate","localizedName":"Infested Deepslate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_mossy_stone_bricks","localizedName":"Infested Mossy Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_stone","localizedName":"Infested Stone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:infested_stone_bricks","localizedName":"Infested Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.75,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.75,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:iron_bars","localizedName":"Iron Bars","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:iron_block","localizedName":"Block of Iron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:iron_door","localizedName":"Iron Door","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":5.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:iron_ore","localizedName":"Iron Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:iron_trapdoor","localizedName":"Iron Trapdoor","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":5.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:jack_o_lantern","localizedName":"Jack o\u0027Lantern","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jigsaw","localizedName":"Jigsaw Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:jukebox","localizedName":"Jukebox","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_button","localizedName":"Jungle Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_door","localizedName":"Jungle Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_fence","localizedName":"Jungle Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_fence_gate","localizedName":"Jungle Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_leaves","localizedName":"Jungle Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_log","localizedName":"Jungle Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_planks","localizedName":"Jungle Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_pressure_plate","localizedName":"Jungle Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_sapling","localizedName":"Jungle Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_sign","localizedName":"Jungle Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_slab","localizedName":"Jungle Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_stairs","localizedName":"Jungle Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_trapdoor","localizedName":"Jungle Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_wall_sign","localizedName":"Jungle Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:jungle_wood","localizedName":"Jungle Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:kelp","localizedName":"Kelp","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:kelp_plant","localizedName":"Kelp Plant","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:ladder","localizedName":"Ladder","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lantern","localizedName":"Lantern","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lapis_block","localizedName":"Block of Lapis Lazuli","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lapis_ore","localizedName":"Lapis Lazuli Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:large_amethyst_bud","localizedName":"Large Amethyst Bud","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":4,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:large_fern","localizedName":"Large Fern","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lava","localizedName":"Lava","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":100.0,"hasContainer":false,"lightValue":15,"liquid":true,"mapColor":"#ff0000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":100.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lava_cauldron","localizedName":"Lava Cauldron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lectern","localizedName":"Lectern","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lever","localizedName":"Lever","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light","localizedName":"Light","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":3600000.8,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_banner","localizedName":"Light Blue Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_bed","localizedName":"Light Blue Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_candle","localizedName":"Light Blue Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_candle_cake","localizedName":"Cake with Light Blue Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_carpet","localizedName":"Light Blue Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_concrete","localizedName":"Light Blue Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_blue_concrete_powder","localizedName":"Light Blue Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_glazed_terracotta","localizedName":"Light Blue Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_blue_shulker_box","localizedName":"Light Blue Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_stained_glass","localizedName":"Light Blue Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_stained_glass_pane","localizedName":"Light Blue Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_terracotta","localizedName":"Light Blue Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_blue_wall_banner","localizedName":"Light Blue Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_blue_wool","localizedName":"Light Blue Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_banner","localizedName":"Light Gray Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_bed","localizedName":"Light Gray Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_candle","localizedName":"Light Gray Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_candle_cake","localizedName":"Cake with Light Gray Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_carpet","localizedName":"Light Gray Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_concrete","localizedName":"Light Gray Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_gray_concrete_powder","localizedName":"Light Gray Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_glazed_terracotta","localizedName":"Light Gray Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_gray_shulker_box","localizedName":"Light Gray Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_stained_glass","localizedName":"Light Gray Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_stained_glass_pane","localizedName":"Light Gray Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_terracotta","localizedName":"Light Gray Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:light_gray_wall_banner","localizedName":"Light Gray Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_gray_wool","localizedName":"Light Gray Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:light_weighted_pressure_plate","localizedName":"Light Weighted Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lightning_rod","localizedName":"Lightning Rod","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lilac","localizedName":"Lilac","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lily_of_the_valley","localizedName":"Lily of the Valley","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lily_pad","localizedName":"Lily Pad","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_banner","localizedName":"Lime Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_bed","localizedName":"Lime Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_candle","localizedName":"Lime Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_candle_cake","localizedName":"Cake with Lime Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_carpet","localizedName":"Lime Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_concrete","localizedName":"Lime Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lime_concrete_powder","localizedName":"Lime Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_glazed_terracotta","localizedName":"Lime Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lime_shulker_box","localizedName":"Lime Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_stained_glass","localizedName":"Lime Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_stained_glass_pane","localizedName":"Lime Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_terracotta","localizedName":"Lime Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:lime_wall_banner","localizedName":"Lime Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lime_wool","localizedName":"Lime Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:lodestone","localizedName":"Lodestone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":true}},{"id":"minecraft:loom","localizedName":"Loom","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_banner","localizedName":"Magenta Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_bed","localizedName":"Magenta Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_candle","localizedName":"Magenta Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_candle_cake","localizedName":"Cake with Magenta Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_carpet","localizedName":"Magenta Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_concrete","localizedName":"Magenta Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:magenta_concrete_powder","localizedName":"Magenta Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_glazed_terracotta","localizedName":"Magenta Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:magenta_shulker_box","localizedName":"Magenta Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_stained_glass","localizedName":"Magenta Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_stained_glass_pane","localizedName":"Magenta Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_terracotta","localizedName":"Magenta Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:magenta_wall_banner","localizedName":"Magenta Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magenta_wool","localizedName":"Magenta Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:magma_block","localizedName":"Magma Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":3,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:medium_amethyst_bud","localizedName":"Medium Amethyst Bud","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":2,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:melon","localizedName":"Melon","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:melon_stem","localizedName":"Melon Stem","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:moss_block","localizedName":"Moss Block","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:moss_carpet","localizedName":"Moss Carpet","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:mossy_cobblestone","localizedName":"Mossy Cobblestone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_cobblestone_slab","localizedName":"Mossy Cobblestone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_cobblestone_stairs","localizedName":"Mossy Cobblestone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_cobblestone_wall","localizedName":"Mossy Cobblestone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_stone_brick_slab","localizedName":"Mossy Stone Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_stone_brick_stairs","localizedName":"Mossy Stone Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_stone_brick_wall","localizedName":"Mossy Stone Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:mossy_stone_bricks","localizedName":"Mossy Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:moving_piston","localizedName":"Moving Piston","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:mushroom_stem","localizedName":"Mushroom Stem","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:mycelium","localizedName":"Mycelium","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:nether_brick_fence","localizedName":"Nether Brick Fence","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_brick_slab","localizedName":"Nether Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_brick_stairs","localizedName":"Nether Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_brick_wall","localizedName":"Nether Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_bricks","localizedName":"Nether Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_gold_ore","localizedName":"Nether Gold Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_portal","localizedName":"Nether Portal","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":-1.0,"hasContainer":false,"lightValue":11,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":true}},{"id":"minecraft:nether_quartz_ore","localizedName":"Nether Quartz Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:nether_sprouts","localizedName":"Nether Sprouts","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:nether_wart","localizedName":"Nether Wart","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:nether_wart_block","localizedName":"Nether Wart Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:netherite_block","localizedName":"Block of Netherite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":50.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:netherrack","localizedName":"Netherrack","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:note_block","localizedName":"Note Block","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_button","localizedName":"Oak Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_door","localizedName":"Oak Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_fence","localizedName":"Oak Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_fence_gate","localizedName":"Oak Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_leaves","localizedName":"Oak Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_log","localizedName":"Oak Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_planks","localizedName":"Oak Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_pressure_plate","localizedName":"Oak Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_sapling","localizedName":"Oak Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_sign","localizedName":"Oak Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_slab","localizedName":"Oak Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_stairs","localizedName":"Oak Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_trapdoor","localizedName":"Oak Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_wall_sign","localizedName":"Oak Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oak_wood","localizedName":"Oak Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:observer","localizedName":"Observer","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:obsidian","localizedName":"Obsidian","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":50.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:orange_banner","localizedName":"Orange Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_bed","localizedName":"Orange Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_candle","localizedName":"Orange Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_candle_cake","localizedName":"Cake with Orange Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_carpet","localizedName":"Orange Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_concrete","localizedName":"Orange Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:orange_concrete_powder","localizedName":"Orange Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_glazed_terracotta","localizedName":"Orange Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:orange_shulker_box","localizedName":"Orange Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_stained_glass","localizedName":"Orange Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_stained_glass_pane","localizedName":"Orange Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_terracotta","localizedName":"Orange Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:orange_tulip","localizedName":"Orange Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_wall_banner","localizedName":"Orange Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:orange_wool","localizedName":"Orange Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oxeye_daisy","localizedName":"Oxeye Daisy","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:oxidized_copper","localizedName":"Oxidized Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:oxidized_cut_copper","localizedName":"Oxidized Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:oxidized_cut_copper_slab","localizedName":"Oxidized Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:oxidized_cut_copper_stairs","localizedName":"Oxidized Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:packed_ice","localizedName":"Packed Ice","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a0a0ff","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.98,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:peony","localizedName":"Peony","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:petrified_oak_slab","localizedName":"Petrified Oak Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:pink_banner","localizedName":"Pink Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_bed","localizedName":"Pink Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_candle","localizedName":"Pink Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_candle_cake","localizedName":"Cake with Pink Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_carpet","localizedName":"Pink Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_concrete","localizedName":"Pink Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:pink_concrete_powder","localizedName":"Pink Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_glazed_terracotta","localizedName":"Pink Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:pink_shulker_box","localizedName":"Pink Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_stained_glass","localizedName":"Pink Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_stained_glass_pane","localizedName":"Pink Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_terracotta","localizedName":"Pink Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:pink_tulip","localizedName":"Pink Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_wall_banner","localizedName":"Pink Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pink_wool","localizedName":"Pink Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:piston","localizedName":"Piston","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:piston_head","localizedName":"Piston Head","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:player_head","localizedName":"Player Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:player_wall_head","localizedName":"Player Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:podzol","localizedName":"Podzol","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pointed_dripstone","localizedName":"Pointed Dripstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:polished_andesite","localizedName":"Polished Andesite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_andesite_slab","localizedName":"Polished Andesite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_andesite_stairs","localizedName":"Polished Andesite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_basalt","localizedName":"Polished Basalt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone","localizedName":"Polished Blackstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_brick_slab","localizedName":"Polished Blackstone Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_brick_stairs","localizedName":"Polished Blackstone Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_brick_wall","localizedName":"Polished Blackstone Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_bricks","localizedName":"Polished Blackstone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_button","localizedName":"Polished Blackstone Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:polished_blackstone_pressure_plate","localizedName":"Polished Blackstone Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_slab","localizedName":"Polished Blackstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_stairs","localizedName":"Polished Blackstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_blackstone_wall","localizedName":"Polished Blackstone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_deepslate","localizedName":"Polished Deepslate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_deepslate_slab","localizedName":"Polished Deepslate Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_deepslate_stairs","localizedName":"Polished Deepslate Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_deepslate_wall","localizedName":"Polished Deepslate Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_diorite","localizedName":"Polished Diorite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_diorite_slab","localizedName":"Polished Diorite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_diorite_stairs","localizedName":"Polished Diorite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_granite","localizedName":"Polished Granite","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_granite_slab","localizedName":"Polished Granite Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:polished_granite_stairs","localizedName":"Polished Granite Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:poppy","localizedName":"Poppy","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potatoes","localizedName":"Potatoes","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_acacia_sapling","localizedName":"Potted Acacia Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_allium","localizedName":"Potted Allium","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_azalea_bush","localizedName":"Potted Azalea","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_azure_bluet","localizedName":"Potted Azure Bluet","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_bamboo","localizedName":"Potted Bamboo","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_birch_sapling","localizedName":"Potted Birch Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_blue_orchid","localizedName":"Potted Blue Orchid","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_brown_mushroom","localizedName":"Potted Brown Mushroom","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_cactus","localizedName":"Potted Cactus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_cornflower","localizedName":"Potted Cornflower","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_crimson_fungus","localizedName":"Potted Crimson Fungus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_crimson_roots","localizedName":"Potted Crimson Roots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_dandelion","localizedName":"Potted Dandelion","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_dark_oak_sapling","localizedName":"Potted Dark Oak Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_dead_bush","localizedName":"Potted Dead Bush","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_fern","localizedName":"Potted Fern","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_flowering_azalea_bush","localizedName":"Potted Flowering Azalea","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_jungle_sapling","localizedName":"Potted Jungle Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_lily_of_the_valley","localizedName":"Potted Lily of the Valley","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_oak_sapling","localizedName":"Potted Oak Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_orange_tulip","localizedName":"Potted Orange Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_oxeye_daisy","localizedName":"Potted Oxeye Daisy","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_pink_tulip","localizedName":"Potted Pink Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_poppy","localizedName":"Potted Poppy","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_red_mushroom","localizedName":"Potted Red Mushroom","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_red_tulip","localizedName":"Potted Red Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_spruce_sapling","localizedName":"Potted Spruce Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_warped_fungus","localizedName":"Potted Warped Fungus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_warped_roots","localizedName":"Potted Warped Roots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_white_tulip","localizedName":"Potted White Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:potted_wither_rose","localizedName":"Potted Wither Rose","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:powder_snow","localizedName":"Powder Snow","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#ffffff","movementBlocker":false,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.25,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:powder_snow_cauldron","localizedName":"Powder Snow Cauldron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:powered_rail","localizedName":"Powered Rail","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.7,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.7,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:prismarine","localizedName":"Prismarine","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_brick_slab","localizedName":"Prismarine Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_brick_stairs","localizedName":"Prismarine Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_bricks","localizedName":"Prismarine Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_slab","localizedName":"Prismarine Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_stairs","localizedName":"Prismarine Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:prismarine_wall","localizedName":"Prismarine Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:pumpkin","localizedName":"Pumpkin","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:pumpkin_stem","localizedName":"Pumpkin Stem","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_banner","localizedName":"Purple Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_bed","localizedName":"Purple Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_candle","localizedName":"Purple Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_candle_cake","localizedName":"Cake with Purple Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_carpet","localizedName":"Purple Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_concrete","localizedName":"Purple Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purple_concrete_powder","localizedName":"Purple Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_glazed_terracotta","localizedName":"Purple Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purple_shulker_box","localizedName":"Purple Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_stained_glass","localizedName":"Purple Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_stained_glass_pane","localizedName":"Purple Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_terracotta","localizedName":"Purple Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purple_wall_banner","localizedName":"Purple Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purple_wool","localizedName":"Purple Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:purpur_block","localizedName":"Purpur Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purpur_pillar","localizedName":"Purpur Pillar","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purpur_slab","localizedName":"Purpur Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:purpur_stairs","localizedName":"Purpur Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:quartz_block","localizedName":"Block of Quartz","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:quartz_bricks","localizedName":"Quartz Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:quartz_pillar","localizedName":"Quartz Pillar","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:quartz_slab","localizedName":"Quartz Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:quartz_stairs","localizedName":"Quartz Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:rail","localizedName":"Rail","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.7,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.7,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:raw_copper_block","localizedName":"Block of Raw Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:raw_gold_block","localizedName":"Block of Raw Gold","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:raw_iron_block","localizedName":"Block of Raw Iron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_banner","localizedName":"Red Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_bed","localizedName":"Red Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_candle","localizedName":"Red Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_candle_cake","localizedName":"Cake with Red Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_carpet","localizedName":"Red Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_concrete","localizedName":"Red Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_concrete_powder","localizedName":"Red Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_glazed_terracotta","localizedName":"Red Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_mushroom","localizedName":"Red Mushroom","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_mushroom_block","localizedName":"Red Mushroom Block","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_nether_brick_slab","localizedName":"Red Nether Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_nether_brick_stairs","localizedName":"Red Nether Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_nether_brick_wall","localizedName":"Red Nether Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_nether_bricks","localizedName":"Red Nether Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_sand","localizedName":"Red Sand","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_sandstone","localizedName":"Red Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_sandstone_slab","localizedName":"Red Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_sandstone_stairs","localizedName":"Red Sandstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_sandstone_wall","localizedName":"Red Sandstone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_shulker_box","localizedName":"Red Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_stained_glass","localizedName":"Red Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_stained_glass_pane","localizedName":"Red Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_terracotta","localizedName":"Red Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:red_tulip","localizedName":"Red Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_wall_banner","localizedName":"Red Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:red_wool","localizedName":"Red Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:redstone_block","localizedName":"Block of Redstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:redstone_lamp","localizedName":"Redstone Lamp","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:redstone_ore","localizedName":"Redstone Ore","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:redstone_torch","localizedName":"Redstone Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":7,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:redstone_wall_torch","localizedName":"Redstone Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":7,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:redstone_wire","localizedName":"Redstone Wire","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:repeater","localizedName":"Redstone Repeater","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:repeating_command_block","localizedName":"Repeating Command Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:respawn_anchor","localizedName":"Respawn Anchor","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":50.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1200.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:rooted_dirt","localizedName":"Rooted Dirt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:rose_bush","localizedName":"Rose Bush","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sand","localizedName":"Sand","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sandstone","localizedName":"Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:sandstone_slab","localizedName":"Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:sandstone_stairs","localizedName":"Sandstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:sandstone_wall","localizedName":"Sandstone Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:scaffolding","localizedName":"Scaffolding","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":true,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sculk_sensor","localizedName":"Sculk Sensor","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":1,"liquid":false,"mapColor":"#191919","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sea_lantern","localizedName":"Sea Lantern","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sea_pickle","localizedName":"Sea Pickle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":6,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:seagrass","localizedName":"Seagrass","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:shroomlight","localizedName":"Shroomlight","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":15,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:shulker_box","localizedName":"Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:skeleton_skull","localizedName":"Skeleton Skull","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:skeleton_wall_skull","localizedName":"Skeleton Skull","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:slime_block","localizedName":"Slime Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a4a8b8","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.8,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:small_amethyst_bud","localizedName":"Small Amethyst Bud","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":1,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:small_dripleaf","localizedName":"Small Dripleaf","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:smithing_table","localizedName":"Smithing Table","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:smoker","localizedName":"Smoker","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_basalt","localizedName":"Smooth Basalt","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_quartz","localizedName":"Smooth Quartz Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_quartz_slab","localizedName":"Smooth Quartz Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_quartz_stairs","localizedName":"Smooth Quartz Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_red_sandstone","localizedName":"Smooth Red Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_red_sandstone_slab","localizedName":"Smooth Red Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_red_sandstone_stairs","localizedName":"Smooth Red Sandstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_sandstone","localizedName":"Smooth Sandstone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_sandstone_slab","localizedName":"Smooth Sandstone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_sandstone_stairs","localizedName":"Smooth Sandstone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_stone","localizedName":"Smooth Stone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:smooth_stone_slab","localizedName":"Smooth Stone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:snow","localizedName":"Snow","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#ffffff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:snow_block","localizedName":"Snow Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#ffffff","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:soul_campfire","localizedName":"Soul Campfire","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":true,"lightValue":10,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:soul_fire","localizedName":"Soul Fire","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":10,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:soul_lantern","localizedName":"Soul Lantern","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":10,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:soul_sand","localizedName":"Soul Sand","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:soul_soil","localizedName":"Soul Soil","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#976d4d","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:soul_torch","localizedName":"Soul Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":10,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:soul_wall_torch","localizedName":"Soul Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":10,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spawner","localizedName":"Spawner","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":5.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":5.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:sponge","localizedName":"Sponge","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#e5e533","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spore_blossom","localizedName":"Spore Blossom","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_button","localizedName":"Spruce Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_door","localizedName":"Spruce Door","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_fence","localizedName":"Spruce Fence","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_fence_gate","localizedName":"Spruce Fence Gate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_leaves","localizedName":"Spruce Leaves","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":true,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_log","localizedName":"Spruce Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_planks","localizedName":"Spruce Planks","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_pressure_plate","localizedName":"Spruce Pressure Plate","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_sapling","localizedName":"Spruce Sapling","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_sign","localizedName":"Spruce Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_slab","localizedName":"Spruce Slab","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_stairs","localizedName":"Spruce Stairs","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_trapdoor","localizedName":"Spruce Trapdoor","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_wall_sign","localizedName":"Spruce Sign","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:spruce_wood","localizedName":"Spruce Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sticky_piston","localizedName":"Sticky Piston","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":true}},{"id":"minecraft:stone","localizedName":"Stone","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_brick_slab","localizedName":"Stone Brick Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_brick_stairs","localizedName":"Stone Brick Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_brick_wall","localizedName":"Stone Brick Wall","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_bricks","localizedName":"Stone Bricks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_button","localizedName":"Stone Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stone_pressure_plate","localizedName":"Stone Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_slab","localizedName":"Stone Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stone_stairs","localizedName":"Stone Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stonecutter","localizedName":"Stonecutter","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:stripped_acacia_log","localizedName":"Stripped Acacia Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_acacia_wood","localizedName":"Stripped Acacia Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_birch_log","localizedName":"Stripped Birch Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_birch_wood","localizedName":"Stripped Birch Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_crimson_hyphae","localizedName":"Stripped Crimson Hyphae","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_crimson_stem","localizedName":"Stripped Crimson Stem","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_dark_oak_log","localizedName":"Stripped Dark Oak Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_dark_oak_wood","localizedName":"Stripped Dark Oak Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_jungle_log","localizedName":"Stripped Jungle Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_jungle_wood","localizedName":"Stripped Jungle Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_oak_log","localizedName":"Stripped Oak Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_oak_wood","localizedName":"Stripped Oak Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_spruce_log","localizedName":"Stripped Spruce Log","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_spruce_wood","localizedName":"Stripped Spruce Wood","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_warped_hyphae","localizedName":"Stripped Warped Hyphae","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:stripped_warped_stem","localizedName":"Stripped Warped Stem","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:structure_block","localizedName":"Structure Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":-1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3600000.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:structure_void","localizedName":"Structure Void","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sugar_cane","localizedName":"Sugar Cane","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sunflower","localizedName":"Sunflower","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:sweet_berry_bush","localizedName":"Sweet Berry Bush","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tall_grass","localizedName":"Tall Grass","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tall_seagrass","localizedName":"Tall Seagrass","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:target","localizedName":"Target","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:terracotta","localizedName":"Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:tinted_glass","localizedName":"Tinted Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tnt","localizedName":"TNT","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#ff0000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:torch","localizedName":"Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":14,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:trapped_chest","localizedName":"Trapped Chest","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":2.5,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":2.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tripwire","localizedName":"Tripwire","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tripwire_hook","localizedName":"Tripwire Hook","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tube_coral","localizedName":"Tube Coral","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tube_coral_block","localizedName":"Tube Coral Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:tube_coral_fan","localizedName":"Tube Coral Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tube_coral_wall_fan","localizedName":"Tube Coral Wall Fan","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:tuff","localizedName":"Tuff","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:turtle_egg","localizedName":"Turtle Egg","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:twisting_vines","localizedName":"Twisting Vines","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:twisting_vines_plant","localizedName":"Twisting Vines Plant","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:vine","localizedName":"Vines","material":{"burnable":true,"fragileWhenPushed":true,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.2,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:void_air","localizedName":"Void Air","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wall_torch","localizedName":"Torch","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":14,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_button","localizedName":"Warped Button","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_door","localizedName":"Warped Door","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_fence","localizedName":"Warped Fence","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_fence_gate","localizedName":"Warped Fence Gate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_fungus","localizedName":"Warped Fungus","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_hyphae","localizedName":"Warped Hyphae","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_nylium","localizedName":"Warped Nylium","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.4,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:warped_planks","localizedName":"Warped Planks","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_pressure_plate","localizedName":"Warped Pressure Plate","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":true,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_roots","localizedName":"Warped Roots","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_sign","localizedName":"Warped Sign","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_slab","localizedName":"Warped Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_stairs","localizedName":"Warped Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_stem","localizedName":"Warped Stem","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_trapdoor","localizedName":"Warped Trapdoor","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":3.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_wall_sign","localizedName":"Warped Sign","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:warped_wart_block","localizedName":"Warped Wart Block","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#7fb238","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:water","localizedName":"Water","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":100.0,"hasContainer":false,"lightValue":0,"liquid":true,"mapColor":"#4040ff","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":true,"resistance":100.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:water_cauldron","localizedName":"Water Cauldron","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_copper_block","localizedName":"Waxed Block of Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_cut_copper","localizedName":"Waxed Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_cut_copper_slab","localizedName":"Waxed Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_cut_copper_stairs","localizedName":"Waxed Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_exposed_copper","localizedName":"Waxed Exposed Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_exposed_cut_copper","localizedName":"Waxed Exposed Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_exposed_cut_copper_slab","localizedName":"Waxed Exposed Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_exposed_cut_copper_stairs","localizedName":"Waxed Exposed Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_oxidized_copper","localizedName":"Waxed Oxidized Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_oxidized_cut_copper","localizedName":"Waxed Oxidized Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_oxidized_cut_copper_slab","localizedName":"Waxed Oxidized Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_oxidized_cut_copper_stairs","localizedName":"Waxed Oxidized Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_weathered_copper","localizedName":"Waxed Weathered Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_weathered_cut_copper","localizedName":"Waxed Weathered Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_weathered_cut_copper_slab","localizedName":"Waxed Weathered Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:waxed_weathered_cut_copper_stairs","localizedName":"Waxed Weathered Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:weathered_copper","localizedName":"Weathered Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:weathered_cut_copper","localizedName":"Weathered Cut Copper","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:weathered_cut_copper_slab","localizedName":"Weathered Cut Copper Slab","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:weathered_cut_copper_stairs","localizedName":"Weathered Cut Copper Stairs","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":3.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#a7a7a7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":6.0,"slipperiness":0.6,"solid":true,"ticksRandomly":true,"toolRequired":true,"unpushable":false}},{"id":"minecraft:weeping_vines","localizedName":"Weeping Vines","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:weeping_vines_plant","localizedName":"Weeping Vines Plant","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wet_sponge","localizedName":"Wet Sponge","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.6,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#e5e533","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.6,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wheat","localizedName":"Wheat Crops","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":true,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_banner","localizedName":"White Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_bed","localizedName":"White Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_candle","localizedName":"White Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_candle_cake","localizedName":"Cake with White Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_carpet","localizedName":"White Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_concrete","localizedName":"White Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:white_concrete_powder","localizedName":"White Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_glazed_terracotta","localizedName":"White Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:white_shulker_box","localizedName":"White Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_stained_glass","localizedName":"White Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_stained_glass_pane","localizedName":"White Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_terracotta","localizedName":"White Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:white_tulip","localizedName":"White Tulip","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_wall_banner","localizedName":"White Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:white_wool","localizedName":"White Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wither_rose","localizedName":"Wither Rose","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#007c00","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wither_skeleton_skull","localizedName":"Wither Skeleton Skull","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:wither_skeleton_wall_skull","localizedName":"Wither Skeleton Skull","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_banner","localizedName":"Yellow Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_bed","localizedName":"Yellow Bed","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.2,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_candle","localizedName":"Yellow Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_candle_cake","localizedName":"Cake with Yellow Candle","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_carpet","localizedName":"Yellow Carpet","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":0.1,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.1,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_concrete","localizedName":"Yellow Concrete","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:yellow_concrete_powder","localizedName":"Yellow Concrete Powder","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.5,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#f7e9a3","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.5,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_glazed_terracotta","localizedName":"Yellow Glazed Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.4,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.4,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:yellow_shulker_box","localizedName":"Yellow Shulker Box","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":2.0,"hasContainer":true,"lightValue":0,"liquid":false,"mapColor":"#7f3fb2","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":2.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_stained_glass","localizedName":"Yellow Stained Glass","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_stained_glass_pane","localizedName":"Yellow Stained Glass Pane","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":false,"hardness":0.3,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":true,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.3,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_terracotta","localizedName":"Yellow Terracotta","material":{"burnable":false,"fragileWhenPushed":false,"fullCube":true,"hardness":1.25,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#707070","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":4.2,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":true,"unpushable":false}},{"id":"minecraft:yellow_wall_banner","localizedName":"Yellow Banner","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#8f7748","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:yellow_wool","localizedName":"Yellow Wool","material":{"burnable":true,"fragileWhenPushed":false,"fullCube":true,"hardness":0.8,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#c7c7c7","movementBlocker":true,"opaque":true,"powerSource":false,"replacedDuringPlacement":false,"resistance":0.8,"slipperiness":0.6,"solid":true,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:zombie_head","localizedName":"Zombie Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}},{"id":"minecraft:zombie_wall_head","localizedName":"Zombie Head","material":{"burnable":false,"fragileWhenPushed":true,"fullCube":false,"hardness":1.0,"hasContainer":false,"lightValue":0,"liquid":false,"mapColor":"#000000","movementBlocker":false,"opaque":false,"powerSource":false,"replacedDuringPlacement":false,"resistance":1.0,"slipperiness":0.6,"solid":false,"ticksRandomly":false,"toolRequired":false,"unpushable":false}}] \ No newline at end of file diff --git a/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.117.json b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.117.json new file mode 100644 index 0000000000..d11bafadd8 --- /dev/null +++ b/worldedit-core/src/main/resources/com/sk89q/worldedit/world/registry/items.117.json @@ -0,0 +1 @@ +[{"id":"minecraft:acacia_boat","localizedName":"Acacia Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.acacia_boat"},{"id":"minecraft:acacia_button","localizedName":"Acacia Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_button"},{"id":"minecraft:acacia_door","localizedName":"Acacia Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_door"},{"id":"minecraft:acacia_fence","localizedName":"Acacia Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_fence"},{"id":"minecraft:acacia_fence_gate","localizedName":"Acacia Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_fence_gate"},{"id":"minecraft:acacia_leaves","localizedName":"Acacia Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_leaves"},{"id":"minecraft:acacia_log","localizedName":"Acacia Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_log"},{"id":"minecraft:acacia_planks","localizedName":"Acacia Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_planks"},{"id":"minecraft:acacia_pressure_plate","localizedName":"Acacia Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_pressure_plate"},{"id":"minecraft:acacia_sapling","localizedName":"Acacia Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_sapling"},{"id":"minecraft:acacia_sign","localizedName":"Acacia Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.acacia_sign"},{"id":"minecraft:acacia_slab","localizedName":"Acacia Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_slab"},{"id":"minecraft:acacia_stairs","localizedName":"Acacia Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_stairs"},{"id":"minecraft:acacia_trapdoor","localizedName":"Acacia Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_trapdoor"},{"id":"minecraft:acacia_wood","localizedName":"Acacia Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.acacia_wood"},{"id":"minecraft:activator_rail","localizedName":"Activator Rail","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.activator_rail"},{"id":"minecraft:air","localizedName":"Air","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.air"},{"id":"minecraft:allium","localizedName":"Allium","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.allium"},{"id":"minecraft:amethyst_block","localizedName":"Block of Amethyst","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.amethyst_block"},{"id":"minecraft:amethyst_cluster","localizedName":"Amethyst Cluster","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.amethyst_cluster"},{"id":"minecraft:amethyst_shard","localizedName":"Amethyst Shard","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.amethyst_shard"},{"id":"minecraft:ancient_debris","localizedName":"Ancient Debris","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.ancient_debris"},{"id":"minecraft:andesite","localizedName":"Andesite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.andesite"},{"id":"minecraft:andesite_slab","localizedName":"Andesite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.andesite_slab"},{"id":"minecraft:andesite_stairs","localizedName":"Andesite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.andesite_stairs"},{"id":"minecraft:andesite_wall","localizedName":"Andesite Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.andesite_wall"},{"id":"minecraft:anvil","localizedName":"Anvil","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.anvil"},{"id":"minecraft:apple","localizedName":"Apple","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.apple"},{"id":"minecraft:armor_stand","localizedName":"Armor Stand","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.armor_stand"},{"id":"minecraft:arrow","localizedName":"Arrow","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.arrow"},{"id":"minecraft:axolotl_bucket","localizedName":"Bucket of Axolotl","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.axolotl_bucket"},{"id":"minecraft:axolotl_spawn_egg","localizedName":"Axolotl Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.axolotl_spawn_egg"},{"id":"minecraft:azalea","localizedName":"Azalea","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.azalea"},{"id":"minecraft:azalea_leaves","localizedName":"Azalea Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.azalea_leaves"},{"id":"minecraft:azure_bluet","localizedName":"Azure Bluet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.azure_bluet"},{"id":"minecraft:baked_potato","localizedName":"Baked Potato","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.baked_potato"},{"id":"minecraft:bamboo","localizedName":"Bamboo","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bamboo"},{"id":"minecraft:barrel","localizedName":"Barrel","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.barrel"},{"id":"minecraft:barrier","localizedName":"Barrier","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.barrier"},{"id":"minecraft:basalt","localizedName":"Basalt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.basalt"},{"id":"minecraft:bat_spawn_egg","localizedName":"Bat Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bat_spawn_egg"},{"id":"minecraft:beacon","localizedName":"Beacon","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.beacon"},{"id":"minecraft:bedrock","localizedName":"Bedrock","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bedrock"},{"id":"minecraft:bee_nest","localizedName":"Bee Nest","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bee_nest"},{"id":"minecraft:bee_spawn_egg","localizedName":"Bee Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bee_spawn_egg"},{"id":"minecraft:beef","localizedName":"Raw Beef","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.beef"},{"id":"minecraft:beehive","localizedName":"Beehive","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.beehive"},{"id":"minecraft:beetroot","localizedName":"Beetroot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.beetroot"},{"id":"minecraft:beetroot_seeds","localizedName":"Beetroot Seeds","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.beetroot_seeds"},{"id":"minecraft:beetroot_soup","localizedName":"Beetroot Soup","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.beetroot_soup"},{"id":"minecraft:bell","localizedName":"Bell","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bell"},{"id":"minecraft:big_dripleaf","localizedName":"Big Dripleaf","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.big_dripleaf"},{"id":"minecraft:birch_boat","localizedName":"Birch Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.birch_boat"},{"id":"minecraft:birch_button","localizedName":"Birch Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_button"},{"id":"minecraft:birch_door","localizedName":"Birch Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_door"},{"id":"minecraft:birch_fence","localizedName":"Birch Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_fence"},{"id":"minecraft:birch_fence_gate","localizedName":"Birch Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_fence_gate"},{"id":"minecraft:birch_leaves","localizedName":"Birch Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_leaves"},{"id":"minecraft:birch_log","localizedName":"Birch Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_log"},{"id":"minecraft:birch_planks","localizedName":"Birch Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_planks"},{"id":"minecraft:birch_pressure_plate","localizedName":"Birch Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_pressure_plate"},{"id":"minecraft:birch_sapling","localizedName":"Birch Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_sapling"},{"id":"minecraft:birch_sign","localizedName":"Birch Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.birch_sign"},{"id":"minecraft:birch_slab","localizedName":"Birch Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_slab"},{"id":"minecraft:birch_stairs","localizedName":"Birch Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_stairs"},{"id":"minecraft:birch_trapdoor","localizedName":"Birch Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_trapdoor"},{"id":"minecraft:birch_wood","localizedName":"Birch Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.birch_wood"},{"id":"minecraft:black_banner","localizedName":"Black Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.black_banner"},{"id":"minecraft:black_bed","localizedName":"Black Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.black_bed"},{"id":"minecraft:black_candle","localizedName":"Black Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_candle"},{"id":"minecraft:black_carpet","localizedName":"Black Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_carpet"},{"id":"minecraft:black_concrete","localizedName":"Black Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_concrete"},{"id":"minecraft:black_concrete_powder","localizedName":"Black Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_concrete_powder"},{"id":"minecraft:black_dye","localizedName":"Black Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.black_dye"},{"id":"minecraft:black_glazed_terracotta","localizedName":"Black Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_glazed_terracotta"},{"id":"minecraft:black_shulker_box","localizedName":"Black Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.black_shulker_box"},{"id":"minecraft:black_stained_glass","localizedName":"Black Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_stained_glass"},{"id":"minecraft:black_stained_glass_pane","localizedName":"Black Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_stained_glass_pane"},{"id":"minecraft:black_terracotta","localizedName":"Black Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_terracotta"},{"id":"minecraft:black_wool","localizedName":"Black Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.black_wool"},{"id":"minecraft:blackstone","localizedName":"Blackstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blackstone"},{"id":"minecraft:blackstone_slab","localizedName":"Blackstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blackstone_slab"},{"id":"minecraft:blackstone_stairs","localizedName":"Blackstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blackstone_stairs"},{"id":"minecraft:blackstone_wall","localizedName":"Blackstone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blackstone_wall"},{"id":"minecraft:blast_furnace","localizedName":"Blast Furnace","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blast_furnace"},{"id":"minecraft:blaze_powder","localizedName":"Blaze Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.blaze_powder"},{"id":"minecraft:blaze_rod","localizedName":"Blaze Rod","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.blaze_rod"},{"id":"minecraft:blaze_spawn_egg","localizedName":"Blaze Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.blaze_spawn_egg"},{"id":"minecraft:blue_banner","localizedName":"Blue Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.blue_banner"},{"id":"minecraft:blue_bed","localizedName":"Blue Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.blue_bed"},{"id":"minecraft:blue_candle","localizedName":"Blue Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_candle"},{"id":"minecraft:blue_carpet","localizedName":"Blue Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_carpet"},{"id":"minecraft:blue_concrete","localizedName":"Blue Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_concrete"},{"id":"minecraft:blue_concrete_powder","localizedName":"Blue Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_concrete_powder"},{"id":"minecraft:blue_dye","localizedName":"Blue Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.blue_dye"},{"id":"minecraft:blue_glazed_terracotta","localizedName":"Blue Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_glazed_terracotta"},{"id":"minecraft:blue_ice","localizedName":"Blue Ice","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_ice"},{"id":"minecraft:blue_orchid","localizedName":"Blue Orchid","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_orchid"},{"id":"minecraft:blue_shulker_box","localizedName":"Blue Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.blue_shulker_box"},{"id":"minecraft:blue_stained_glass","localizedName":"Blue Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_stained_glass"},{"id":"minecraft:blue_stained_glass_pane","localizedName":"Blue Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_stained_glass_pane"},{"id":"minecraft:blue_terracotta","localizedName":"Blue Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_terracotta"},{"id":"minecraft:blue_wool","localizedName":"Blue Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.blue_wool"},{"id":"minecraft:bone","localizedName":"Bone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bone"},{"id":"minecraft:bone_block","localizedName":"Bone Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bone_block"},{"id":"minecraft:bone_meal","localizedName":"Bone Meal","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bone_meal"},{"id":"minecraft:book","localizedName":"Book","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.book"},{"id":"minecraft:bookshelf","localizedName":"Bookshelf","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bookshelf"},{"id":"minecraft:bow","localizedName":"Bow","maxDamage":384,"maxStackSize":1,"unlocalizedName":"item.minecraft.bow"},{"id":"minecraft:bowl","localizedName":"Bowl","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bowl"},{"id":"minecraft:brain_coral","localizedName":"Brain Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brain_coral"},{"id":"minecraft:brain_coral_block","localizedName":"Brain Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brain_coral_block"},{"id":"minecraft:brain_coral_fan","localizedName":"Brain Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brain_coral_fan"},{"id":"minecraft:bread","localizedName":"Bread","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.bread"},{"id":"minecraft:brewing_stand","localizedName":"Brewing Stand","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brewing_stand"},{"id":"minecraft:brick","localizedName":"Brick","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.brick"},{"id":"minecraft:brick_slab","localizedName":"Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brick_slab"},{"id":"minecraft:brick_stairs","localizedName":"Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brick_stairs"},{"id":"minecraft:brick_wall","localizedName":"Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brick_wall"},{"id":"minecraft:bricks","localizedName":"Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bricks"},{"id":"minecraft:brown_banner","localizedName":"Brown Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.brown_banner"},{"id":"minecraft:brown_bed","localizedName":"Brown Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.brown_bed"},{"id":"minecraft:brown_candle","localizedName":"Brown Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_candle"},{"id":"minecraft:brown_carpet","localizedName":"Brown Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_carpet"},{"id":"minecraft:brown_concrete","localizedName":"Brown Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_concrete"},{"id":"minecraft:brown_concrete_powder","localizedName":"Brown Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_concrete_powder"},{"id":"minecraft:brown_dye","localizedName":"Brown Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.brown_dye"},{"id":"minecraft:brown_glazed_terracotta","localizedName":"Brown Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_glazed_terracotta"},{"id":"minecraft:brown_mushroom","localizedName":"Brown Mushroom","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_mushroom"},{"id":"minecraft:brown_mushroom_block","localizedName":"Brown Mushroom Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_mushroom_block"},{"id":"minecraft:brown_shulker_box","localizedName":"Brown Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.brown_shulker_box"},{"id":"minecraft:brown_stained_glass","localizedName":"Brown Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_stained_glass"},{"id":"minecraft:brown_stained_glass_pane","localizedName":"Brown Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_stained_glass_pane"},{"id":"minecraft:brown_terracotta","localizedName":"Brown Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_terracotta"},{"id":"minecraft:brown_wool","localizedName":"Brown Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.brown_wool"},{"id":"minecraft:bubble_coral","localizedName":"Bubble Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bubble_coral"},{"id":"minecraft:bubble_coral_block","localizedName":"Bubble Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bubble_coral_block"},{"id":"minecraft:bubble_coral_fan","localizedName":"Bubble Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.bubble_coral_fan"},{"id":"minecraft:bucket","localizedName":"Bucket","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.bucket"},{"id":"minecraft:budding_amethyst","localizedName":"Budding Amethyst","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.budding_amethyst"},{"id":"minecraft:bundle","localizedName":"Bundle","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.bundle"},{"id":"minecraft:cactus","localizedName":"Cactus","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cactus"},{"id":"minecraft:cake","localizedName":"Cake","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.cake"},{"id":"minecraft:calcite","localizedName":"Calcite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.calcite"},{"id":"minecraft:campfire","localizedName":"Campfire","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.campfire"},{"id":"minecraft:candle","localizedName":"Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.candle"},{"id":"minecraft:carrot","localizedName":"Carrot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.carrot"},{"id":"minecraft:carrot_on_a_stick","localizedName":"Carrot on a Stick","maxDamage":25,"maxStackSize":1,"unlocalizedName":"item.minecraft.carrot_on_a_stick"},{"id":"minecraft:cartography_table","localizedName":"Cartography Table","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cartography_table"},{"id":"minecraft:carved_pumpkin","localizedName":"Carved Pumpkin","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.carved_pumpkin"},{"id":"minecraft:cat_spawn_egg","localizedName":"Cat Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cat_spawn_egg"},{"id":"minecraft:cauldron","localizedName":"Cauldron","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cauldron"},{"id":"minecraft:cave_spider_spawn_egg","localizedName":"Cave Spider Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cave_spider_spawn_egg"},{"id":"minecraft:chain","localizedName":"Chain","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chain"},{"id":"minecraft:chain_command_block","localizedName":"Chain Command Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chain_command_block"},{"id":"minecraft:chainmail_boots","localizedName":"Chainmail Boots","maxDamage":195,"maxStackSize":1,"unlocalizedName":"item.minecraft.chainmail_boots"},{"id":"minecraft:chainmail_chestplate","localizedName":"Chainmail Chestplate","maxDamage":240,"maxStackSize":1,"unlocalizedName":"item.minecraft.chainmail_chestplate"},{"id":"minecraft:chainmail_helmet","localizedName":"Chainmail Helmet","maxDamage":165,"maxStackSize":1,"unlocalizedName":"item.minecraft.chainmail_helmet"},{"id":"minecraft:chainmail_leggings","localizedName":"Chainmail Leggings","maxDamage":225,"maxStackSize":1,"unlocalizedName":"item.minecraft.chainmail_leggings"},{"id":"minecraft:charcoal","localizedName":"Charcoal","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.charcoal"},{"id":"minecraft:chest","localizedName":"Chest","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chest"},{"id":"minecraft:chest_minecart","localizedName":"Minecart with Chest","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.chest_minecart"},{"id":"minecraft:chicken","localizedName":"Raw Chicken","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.chicken"},{"id":"minecraft:chicken_spawn_egg","localizedName":"Chicken Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.chicken_spawn_egg"},{"id":"minecraft:chipped_anvil","localizedName":"Chipped Anvil","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chipped_anvil"},{"id":"minecraft:chiseled_deepslate","localizedName":"Chiseled Deepslate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_deepslate"},{"id":"minecraft:chiseled_nether_bricks","localizedName":"Chiseled Nether Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_nether_bricks"},{"id":"minecraft:chiseled_polished_blackstone","localizedName":"Chiseled Polished Blackstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_polished_blackstone"},{"id":"minecraft:chiseled_quartz_block","localizedName":"Chiseled Quartz Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_quartz_block"},{"id":"minecraft:chiseled_red_sandstone","localizedName":"Chiseled Red Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_red_sandstone"},{"id":"minecraft:chiseled_sandstone","localizedName":"Chiseled Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_sandstone"},{"id":"minecraft:chiseled_stone_bricks","localizedName":"Chiseled Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chiseled_stone_bricks"},{"id":"minecraft:chorus_flower","localizedName":"Chorus Flower","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chorus_flower"},{"id":"minecraft:chorus_fruit","localizedName":"Chorus Fruit","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.chorus_fruit"},{"id":"minecraft:chorus_plant","localizedName":"Chorus Plant","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.chorus_plant"},{"id":"minecraft:clay","localizedName":"Clay","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.clay"},{"id":"minecraft:clay_ball","localizedName":"Clay Ball","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.clay_ball"},{"id":"minecraft:clock","localizedName":"Clock","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.clock"},{"id":"minecraft:coal","localizedName":"Coal","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.coal"},{"id":"minecraft:coal_block","localizedName":"Block of Coal","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.coal_block"},{"id":"minecraft:coal_ore","localizedName":"Coal Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.coal_ore"},{"id":"minecraft:coarse_dirt","localizedName":"Coarse Dirt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.coarse_dirt"},{"id":"minecraft:cobbled_deepslate","localizedName":"Cobbled Deepslate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobbled_deepslate"},{"id":"minecraft:cobbled_deepslate_slab","localizedName":"Cobbled Deepslate Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobbled_deepslate_slab"},{"id":"minecraft:cobbled_deepslate_stairs","localizedName":"Cobbled Deepslate Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobbled_deepslate_stairs"},{"id":"minecraft:cobbled_deepslate_wall","localizedName":"Cobbled Deepslate Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobbled_deepslate_wall"},{"id":"minecraft:cobblestone","localizedName":"Cobblestone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobblestone"},{"id":"minecraft:cobblestone_slab","localizedName":"Cobblestone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobblestone_slab"},{"id":"minecraft:cobblestone_stairs","localizedName":"Cobblestone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobblestone_stairs"},{"id":"minecraft:cobblestone_wall","localizedName":"Cobblestone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobblestone_wall"},{"id":"minecraft:cobweb","localizedName":"Cobweb","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cobweb"},{"id":"minecraft:cocoa_beans","localizedName":"Cocoa Beans","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cocoa_beans"},{"id":"minecraft:cod","localizedName":"Raw Cod","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cod"},{"id":"minecraft:cod_bucket","localizedName":"Bucket of Cod","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.cod_bucket"},{"id":"minecraft:cod_spawn_egg","localizedName":"Cod Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cod_spawn_egg"},{"id":"minecraft:command_block","localizedName":"Command Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.command_block"},{"id":"minecraft:command_block_minecart","localizedName":"Minecart with Command Block","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.command_block_minecart"},{"id":"minecraft:comparator","localizedName":"Redstone Comparator","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.comparator"},{"id":"minecraft:compass","localizedName":"Compass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.compass"},{"id":"minecraft:composter","localizedName":"Composter","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.composter"},{"id":"minecraft:conduit","localizedName":"Conduit","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.conduit"},{"id":"minecraft:cooked_beef","localizedName":"Steak","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_beef"},{"id":"minecraft:cooked_chicken","localizedName":"Cooked Chicken","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_chicken"},{"id":"minecraft:cooked_cod","localizedName":"Cooked Cod","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_cod"},{"id":"minecraft:cooked_mutton","localizedName":"Cooked Mutton","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_mutton"},{"id":"minecraft:cooked_porkchop","localizedName":"Cooked Porkchop","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_porkchop"},{"id":"minecraft:cooked_rabbit","localizedName":"Cooked Rabbit","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_rabbit"},{"id":"minecraft:cooked_salmon","localizedName":"Cooked Salmon","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cooked_salmon"},{"id":"minecraft:cookie","localizedName":"Cookie","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cookie"},{"id":"minecraft:copper_block","localizedName":"Block of Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.copper_block"},{"id":"minecraft:copper_ingot","localizedName":"Copper Ingot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.copper_ingot"},{"id":"minecraft:copper_ore","localizedName":"Copper Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.copper_ore"},{"id":"minecraft:cornflower","localizedName":"Cornflower","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cornflower"},{"id":"minecraft:cow_spawn_egg","localizedName":"Cow Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cow_spawn_egg"},{"id":"minecraft:cracked_deepslate_bricks","localizedName":"Cracked Deepslate Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cracked_deepslate_bricks"},{"id":"minecraft:cracked_deepslate_tiles","localizedName":"Cracked Deepslate Tiles","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cracked_deepslate_tiles"},{"id":"minecraft:cracked_nether_bricks","localizedName":"Cracked Nether Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cracked_nether_bricks"},{"id":"minecraft:cracked_polished_blackstone_bricks","localizedName":"Cracked Polished Blackstone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cracked_polished_blackstone_bricks"},{"id":"minecraft:cracked_stone_bricks","localizedName":"Cracked Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cracked_stone_bricks"},{"id":"minecraft:crafting_table","localizedName":"Crafting Table","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crafting_table"},{"id":"minecraft:creeper_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.creeper_banner_pattern"},{"id":"minecraft:creeper_head","localizedName":"Creeper Head","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.creeper_head"},{"id":"minecraft:creeper_spawn_egg","localizedName":"Creeper Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.creeper_spawn_egg"},{"id":"minecraft:crimson_button","localizedName":"Crimson Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_button"},{"id":"minecraft:crimson_door","localizedName":"Crimson Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_door"},{"id":"minecraft:crimson_fence","localizedName":"Crimson Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_fence"},{"id":"minecraft:crimson_fence_gate","localizedName":"Crimson Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_fence_gate"},{"id":"minecraft:crimson_fungus","localizedName":"Crimson Fungus","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_fungus"},{"id":"minecraft:crimson_hyphae","localizedName":"Crimson Hyphae","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_hyphae"},{"id":"minecraft:crimson_nylium","localizedName":"Crimson Nylium","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_nylium"},{"id":"minecraft:crimson_planks","localizedName":"Crimson Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_planks"},{"id":"minecraft:crimson_pressure_plate","localizedName":"Crimson Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_pressure_plate"},{"id":"minecraft:crimson_roots","localizedName":"Crimson Roots","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_roots"},{"id":"minecraft:crimson_sign","localizedName":"Crimson Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.crimson_sign"},{"id":"minecraft:crimson_slab","localizedName":"Crimson Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_slab"},{"id":"minecraft:crimson_stairs","localizedName":"Crimson Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_stairs"},{"id":"minecraft:crimson_stem","localizedName":"Crimson Stem","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_stem"},{"id":"minecraft:crimson_trapdoor","localizedName":"Crimson Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crimson_trapdoor"},{"id":"minecraft:crossbow","localizedName":"Crossbow","maxDamage":326,"maxStackSize":1,"unlocalizedName":"item.minecraft.crossbow"},{"id":"minecraft:crying_obsidian","localizedName":"Crying Obsidian","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.crying_obsidian"},{"id":"minecraft:cut_copper","localizedName":"Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_copper"},{"id":"minecraft:cut_copper_slab","localizedName":"Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_copper_slab"},{"id":"minecraft:cut_copper_stairs","localizedName":"Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_copper_stairs"},{"id":"minecraft:cut_red_sandstone","localizedName":"Cut Red Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_red_sandstone"},{"id":"minecraft:cut_red_sandstone_slab","localizedName":"Cut Red Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_red_sandstone_slab"},{"id":"minecraft:cut_sandstone","localizedName":"Cut Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_sandstone"},{"id":"minecraft:cut_sandstone_slab","localizedName":"Cut Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cut_sandstone_slab"},{"id":"minecraft:cyan_banner","localizedName":"Cyan Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.cyan_banner"},{"id":"minecraft:cyan_bed","localizedName":"Cyan Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.cyan_bed"},{"id":"minecraft:cyan_candle","localizedName":"Cyan Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_candle"},{"id":"minecraft:cyan_carpet","localizedName":"Cyan Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_carpet"},{"id":"minecraft:cyan_concrete","localizedName":"Cyan Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_concrete"},{"id":"minecraft:cyan_concrete_powder","localizedName":"Cyan Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_concrete_powder"},{"id":"minecraft:cyan_dye","localizedName":"Cyan Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.cyan_dye"},{"id":"minecraft:cyan_glazed_terracotta","localizedName":"Cyan Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_glazed_terracotta"},{"id":"minecraft:cyan_shulker_box","localizedName":"Cyan Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.cyan_shulker_box"},{"id":"minecraft:cyan_stained_glass","localizedName":"Cyan Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_stained_glass"},{"id":"minecraft:cyan_stained_glass_pane","localizedName":"Cyan Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_stained_glass_pane"},{"id":"minecraft:cyan_terracotta","localizedName":"Cyan Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_terracotta"},{"id":"minecraft:cyan_wool","localizedName":"Cyan Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.cyan_wool"},{"id":"minecraft:damaged_anvil","localizedName":"Damaged Anvil","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.damaged_anvil"},{"id":"minecraft:dandelion","localizedName":"Dandelion","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dandelion"},{"id":"minecraft:dark_oak_boat","localizedName":"Dark Oak Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.dark_oak_boat"},{"id":"minecraft:dark_oak_button","localizedName":"Dark Oak Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_button"},{"id":"minecraft:dark_oak_door","localizedName":"Dark Oak Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_door"},{"id":"minecraft:dark_oak_fence","localizedName":"Dark Oak Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_fence"},{"id":"minecraft:dark_oak_fence_gate","localizedName":"Dark Oak Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_fence_gate"},{"id":"minecraft:dark_oak_leaves","localizedName":"Dark Oak Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_leaves"},{"id":"minecraft:dark_oak_log","localizedName":"Dark Oak Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_log"},{"id":"minecraft:dark_oak_planks","localizedName":"Dark Oak Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_planks"},{"id":"minecraft:dark_oak_pressure_plate","localizedName":"Dark Oak Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_pressure_plate"},{"id":"minecraft:dark_oak_sapling","localizedName":"Dark Oak Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_sapling"},{"id":"minecraft:dark_oak_sign","localizedName":"Dark Oak Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.dark_oak_sign"},{"id":"minecraft:dark_oak_slab","localizedName":"Dark Oak Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_slab"},{"id":"minecraft:dark_oak_stairs","localizedName":"Dark Oak Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_stairs"},{"id":"minecraft:dark_oak_trapdoor","localizedName":"Dark Oak Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_trapdoor"},{"id":"minecraft:dark_oak_wood","localizedName":"Dark Oak Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_oak_wood"},{"id":"minecraft:dark_prismarine","localizedName":"Dark Prismarine","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_prismarine"},{"id":"minecraft:dark_prismarine_slab","localizedName":"Dark Prismarine Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_prismarine_slab"},{"id":"minecraft:dark_prismarine_stairs","localizedName":"Dark Prismarine Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dark_prismarine_stairs"},{"id":"minecraft:daylight_detector","localizedName":"Daylight Detector","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.daylight_detector"},{"id":"minecraft:dead_brain_coral","localizedName":"Dead Brain Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_brain_coral"},{"id":"minecraft:dead_brain_coral_block","localizedName":"Dead Brain Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_brain_coral_block"},{"id":"minecraft:dead_brain_coral_fan","localizedName":"Dead Brain Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_brain_coral_fan"},{"id":"minecraft:dead_bubble_coral","localizedName":"Dead Bubble Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_bubble_coral"},{"id":"minecraft:dead_bubble_coral_block","localizedName":"Dead Bubble Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_bubble_coral_block"},{"id":"minecraft:dead_bubble_coral_fan","localizedName":"Dead Bubble Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_bubble_coral_fan"},{"id":"minecraft:dead_bush","localizedName":"Dead Bush","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_bush"},{"id":"minecraft:dead_fire_coral","localizedName":"Dead Fire Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_fire_coral"},{"id":"minecraft:dead_fire_coral_block","localizedName":"Dead Fire Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_fire_coral_block"},{"id":"minecraft:dead_fire_coral_fan","localizedName":"Dead Fire Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_fire_coral_fan"},{"id":"minecraft:dead_horn_coral","localizedName":"Dead Horn Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_horn_coral"},{"id":"minecraft:dead_horn_coral_block","localizedName":"Dead Horn Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_horn_coral_block"},{"id":"minecraft:dead_horn_coral_fan","localizedName":"Dead Horn Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_horn_coral_fan"},{"id":"minecraft:dead_tube_coral","localizedName":"Dead Tube Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_tube_coral"},{"id":"minecraft:dead_tube_coral_block","localizedName":"Dead Tube Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_tube_coral_block"},{"id":"minecraft:dead_tube_coral_fan","localizedName":"Dead Tube Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dead_tube_coral_fan"},{"id":"minecraft:debug_stick","localizedName":"Debug Stick","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.debug_stick"},{"id":"minecraft:deepslate","localizedName":"Deepslate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate"},{"id":"minecraft:deepslate_brick_slab","localizedName":"Deepslate Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_brick_slab"},{"id":"minecraft:deepslate_brick_stairs","localizedName":"Deepslate Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_brick_stairs"},{"id":"minecraft:deepslate_brick_wall","localizedName":"Deepslate Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_brick_wall"},{"id":"minecraft:deepslate_bricks","localizedName":"Deepslate Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_bricks"},{"id":"minecraft:deepslate_coal_ore","localizedName":"Deepslate Coal Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_coal_ore"},{"id":"minecraft:deepslate_copper_ore","localizedName":"Deepslate Copper Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_copper_ore"},{"id":"minecraft:deepslate_diamond_ore","localizedName":"Deepslate Diamond Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_diamond_ore"},{"id":"minecraft:deepslate_emerald_ore","localizedName":"Deepslate Emerald Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_emerald_ore"},{"id":"minecraft:deepslate_gold_ore","localizedName":"Deepslate Gold Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_gold_ore"},{"id":"minecraft:deepslate_iron_ore","localizedName":"Deepslate Iron Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_iron_ore"},{"id":"minecraft:deepslate_lapis_ore","localizedName":"Deepslate Lapis Lazuli Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_lapis_ore"},{"id":"minecraft:deepslate_redstone_ore","localizedName":"Deepslate Redstone Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_redstone_ore"},{"id":"minecraft:deepslate_tile_slab","localizedName":"Deepslate Tile Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_tile_slab"},{"id":"minecraft:deepslate_tile_stairs","localizedName":"Deepslate Tile Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_tile_stairs"},{"id":"minecraft:deepslate_tile_wall","localizedName":"Deepslate Tile Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_tile_wall"},{"id":"minecraft:deepslate_tiles","localizedName":"Deepslate Tiles","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.deepslate_tiles"},{"id":"minecraft:detector_rail","localizedName":"Detector Rail","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.detector_rail"},{"id":"minecraft:diamond","localizedName":"Diamond","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.diamond"},{"id":"minecraft:diamond_axe","localizedName":"Diamond Axe","maxDamage":1561,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_axe"},{"id":"minecraft:diamond_block","localizedName":"Block of Diamond","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diamond_block"},{"id":"minecraft:diamond_boots","localizedName":"Diamond Boots","maxDamage":429,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_boots"},{"id":"minecraft:diamond_chestplate","localizedName":"Diamond Chestplate","maxDamage":528,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_chestplate"},{"id":"minecraft:diamond_helmet","localizedName":"Diamond Helmet","maxDamage":363,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_helmet"},{"id":"minecraft:diamond_hoe","localizedName":"Diamond Hoe","maxDamage":1561,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_hoe"},{"id":"minecraft:diamond_horse_armor","localizedName":"Diamond Horse Armor","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_horse_armor"},{"id":"minecraft:diamond_leggings","localizedName":"Diamond Leggings","maxDamage":495,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_leggings"},{"id":"minecraft:diamond_ore","localizedName":"Diamond Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diamond_ore"},{"id":"minecraft:diamond_pickaxe","localizedName":"Diamond Pickaxe","maxDamage":1561,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_pickaxe"},{"id":"minecraft:diamond_shovel","localizedName":"Diamond Shovel","maxDamage":1561,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_shovel"},{"id":"minecraft:diamond_sword","localizedName":"Diamond Sword","maxDamage":1561,"maxStackSize":1,"unlocalizedName":"item.minecraft.diamond_sword"},{"id":"minecraft:diorite","localizedName":"Diorite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diorite"},{"id":"minecraft:diorite_slab","localizedName":"Diorite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diorite_slab"},{"id":"minecraft:diorite_stairs","localizedName":"Diorite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diorite_stairs"},{"id":"minecraft:diorite_wall","localizedName":"Diorite Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.diorite_wall"},{"id":"minecraft:dirt","localizedName":"Dirt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dirt"},{"id":"minecraft:dirt_path","localizedName":"Dirt Path","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dirt_path"},{"id":"minecraft:dispenser","localizedName":"Dispenser","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dispenser"},{"id":"minecraft:dolphin_spawn_egg","localizedName":"Dolphin Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.dolphin_spawn_egg"},{"id":"minecraft:donkey_spawn_egg","localizedName":"Donkey Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.donkey_spawn_egg"},{"id":"minecraft:dragon_breath","localizedName":"Dragon\u0027s Breath","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.dragon_breath"},{"id":"minecraft:dragon_egg","localizedName":"Dragon Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dragon_egg"},{"id":"minecraft:dragon_head","localizedName":"Dragon Head","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dragon_head"},{"id":"minecraft:dried_kelp","localizedName":"Dried Kelp","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.dried_kelp"},{"id":"minecraft:dried_kelp_block","localizedName":"Dried Kelp Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dried_kelp_block"},{"id":"minecraft:dripstone_block","localizedName":"Dripstone Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dripstone_block"},{"id":"minecraft:dropper","localizedName":"Dropper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.dropper"},{"id":"minecraft:drowned_spawn_egg","localizedName":"Drowned Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.drowned_spawn_egg"},{"id":"minecraft:egg","localizedName":"Egg","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.egg"},{"id":"minecraft:elder_guardian_spawn_egg","localizedName":"Elder Guardian Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.elder_guardian_spawn_egg"},{"id":"minecraft:elytra","localizedName":"Elytra","maxDamage":432,"maxStackSize":1,"unlocalizedName":"item.minecraft.elytra"},{"id":"minecraft:emerald","localizedName":"Emerald","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.emerald"},{"id":"minecraft:emerald_block","localizedName":"Block of Emerald","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.emerald_block"},{"id":"minecraft:emerald_ore","localizedName":"Emerald Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.emerald_ore"},{"id":"minecraft:enchanted_book","localizedName":"Enchanted Book","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.enchanted_book"},{"id":"minecraft:enchanted_golden_apple","localizedName":"Enchanted Golden Apple","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.enchanted_golden_apple"},{"id":"minecraft:enchanting_table","localizedName":"Enchanting Table","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.enchanting_table"},{"id":"minecraft:end_crystal","localizedName":"End Crystal","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.end_crystal"},{"id":"minecraft:end_portal_frame","localizedName":"End Portal Frame","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_portal_frame"},{"id":"minecraft:end_rod","localizedName":"End Rod","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_rod"},{"id":"minecraft:end_stone","localizedName":"End Stone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_stone"},{"id":"minecraft:end_stone_brick_slab","localizedName":"End Stone Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_stone_brick_slab"},{"id":"minecraft:end_stone_brick_stairs","localizedName":"End Stone Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_stone_brick_stairs"},{"id":"minecraft:end_stone_brick_wall","localizedName":"End Stone Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_stone_brick_wall"},{"id":"minecraft:end_stone_bricks","localizedName":"End Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.end_stone_bricks"},{"id":"minecraft:ender_chest","localizedName":"Ender Chest","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.ender_chest"},{"id":"minecraft:ender_eye","localizedName":"Eye of Ender","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ender_eye"},{"id":"minecraft:ender_pearl","localizedName":"Ender Pearl","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.ender_pearl"},{"id":"minecraft:enderman_spawn_egg","localizedName":"Enderman Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.enderman_spawn_egg"},{"id":"minecraft:endermite_spawn_egg","localizedName":"Endermite Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.endermite_spawn_egg"},{"id":"minecraft:evoker_spawn_egg","localizedName":"Evoker Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.evoker_spawn_egg"},{"id":"minecraft:experience_bottle","localizedName":"Bottle o\u0027 Enchanting","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.experience_bottle"},{"id":"minecraft:exposed_copper","localizedName":"Exposed Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.exposed_copper"},{"id":"minecraft:exposed_cut_copper","localizedName":"Exposed Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.exposed_cut_copper"},{"id":"minecraft:exposed_cut_copper_slab","localizedName":"Exposed Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.exposed_cut_copper_slab"},{"id":"minecraft:exposed_cut_copper_stairs","localizedName":"Exposed Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.exposed_cut_copper_stairs"},{"id":"minecraft:farmland","localizedName":"Farmland","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.farmland"},{"id":"minecraft:feather","localizedName":"Feather","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.feather"},{"id":"minecraft:fermented_spider_eye","localizedName":"Fermented Spider Eye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.fermented_spider_eye"},{"id":"minecraft:fern","localizedName":"Fern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.fern"},{"id":"minecraft:filled_map","localizedName":"Map","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.filled_map"},{"id":"minecraft:fire_charge","localizedName":"Fire Charge","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.fire_charge"},{"id":"minecraft:fire_coral","localizedName":"Fire Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.fire_coral"},{"id":"minecraft:fire_coral_block","localizedName":"Fire Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.fire_coral_block"},{"id":"minecraft:fire_coral_fan","localizedName":"Fire Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.fire_coral_fan"},{"id":"minecraft:firework_rocket","localizedName":"Firework Rocket","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.firework_rocket"},{"id":"minecraft:firework_star","localizedName":"Firework Star","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.firework_star"},{"id":"minecraft:fishing_rod","localizedName":"Fishing Rod","maxDamage":64,"maxStackSize":1,"unlocalizedName":"item.minecraft.fishing_rod"},{"id":"minecraft:fletching_table","localizedName":"Fletching Table","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.fletching_table"},{"id":"minecraft:flint","localizedName":"Flint","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.flint"},{"id":"minecraft:flint_and_steel","localizedName":"Flint and Steel","maxDamage":64,"maxStackSize":1,"unlocalizedName":"item.minecraft.flint_and_steel"},{"id":"minecraft:flower_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.flower_banner_pattern"},{"id":"minecraft:flower_pot","localizedName":"Flower Pot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.flower_pot"},{"id":"minecraft:flowering_azalea","localizedName":"Flowering Azalea","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.flowering_azalea"},{"id":"minecraft:flowering_azalea_leaves","localizedName":"Flowering Azalea Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.flowering_azalea_leaves"},{"id":"minecraft:fox_spawn_egg","localizedName":"Fox Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.fox_spawn_egg"},{"id":"minecraft:furnace","localizedName":"Furnace","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.furnace"},{"id":"minecraft:furnace_minecart","localizedName":"Minecart with Furnace","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.furnace_minecart"},{"id":"minecraft:ghast_spawn_egg","localizedName":"Ghast Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ghast_spawn_egg"},{"id":"minecraft:ghast_tear","localizedName":"Ghast Tear","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ghast_tear"},{"id":"minecraft:gilded_blackstone","localizedName":"Gilded Blackstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gilded_blackstone"},{"id":"minecraft:glass","localizedName":"Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.glass"},{"id":"minecraft:glass_bottle","localizedName":"Glass Bottle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glass_bottle"},{"id":"minecraft:glass_pane","localizedName":"Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.glass_pane"},{"id":"minecraft:glistering_melon_slice","localizedName":"Glistering Melon Slice","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glistering_melon_slice"},{"id":"minecraft:globe_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.globe_banner_pattern"},{"id":"minecraft:glow_berries","localizedName":"Glow Berries","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glow_berries"},{"id":"minecraft:glow_ink_sac","localizedName":"Glow Ink Sac","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glow_ink_sac"},{"id":"minecraft:glow_item_frame","localizedName":"Glow Item Frame","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glow_item_frame"},{"id":"minecraft:glow_lichen","localizedName":"Glow Lichen","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.glow_lichen"},{"id":"minecraft:glow_squid_spawn_egg","localizedName":"Glow Squid Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glow_squid_spawn_egg"},{"id":"minecraft:glowstone","localizedName":"Glowstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.glowstone"},{"id":"minecraft:glowstone_dust","localizedName":"Glowstone Dust","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.glowstone_dust"},{"id":"minecraft:goat_spawn_egg","localizedName":"Goat Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.goat_spawn_egg"},{"id":"minecraft:gold_block","localizedName":"Block of Gold","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gold_block"},{"id":"minecraft:gold_ingot","localizedName":"Gold Ingot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.gold_ingot"},{"id":"minecraft:gold_nugget","localizedName":"Gold Nugget","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.gold_nugget"},{"id":"minecraft:gold_ore","localizedName":"Gold Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gold_ore"},{"id":"minecraft:golden_apple","localizedName":"Golden Apple","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.golden_apple"},{"id":"minecraft:golden_axe","localizedName":"Golden Axe","maxDamage":32,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_axe"},{"id":"minecraft:golden_boots","localizedName":"Golden Boots","maxDamage":91,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_boots"},{"id":"minecraft:golden_carrot","localizedName":"Golden Carrot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.golden_carrot"},{"id":"minecraft:golden_chestplate","localizedName":"Golden Chestplate","maxDamage":112,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_chestplate"},{"id":"minecraft:golden_helmet","localizedName":"Golden Helmet","maxDamage":77,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_helmet"},{"id":"minecraft:golden_hoe","localizedName":"Golden Hoe","maxDamage":32,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_hoe"},{"id":"minecraft:golden_horse_armor","localizedName":"Golden Horse Armor","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_horse_armor"},{"id":"minecraft:golden_leggings","localizedName":"Golden Leggings","maxDamage":105,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_leggings"},{"id":"minecraft:golden_pickaxe","localizedName":"Golden Pickaxe","maxDamage":32,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_pickaxe"},{"id":"minecraft:golden_shovel","localizedName":"Golden Shovel","maxDamage":32,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_shovel"},{"id":"minecraft:golden_sword","localizedName":"Golden Sword","maxDamage":32,"maxStackSize":1,"unlocalizedName":"item.minecraft.golden_sword"},{"id":"minecraft:granite","localizedName":"Granite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.granite"},{"id":"minecraft:granite_slab","localizedName":"Granite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.granite_slab"},{"id":"minecraft:granite_stairs","localizedName":"Granite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.granite_stairs"},{"id":"minecraft:granite_wall","localizedName":"Granite Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.granite_wall"},{"id":"minecraft:grass","localizedName":"Grass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.grass"},{"id":"minecraft:grass_block","localizedName":"Grass Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.grass_block"},{"id":"minecraft:gravel","localizedName":"Gravel","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gravel"},{"id":"minecraft:gray_banner","localizedName":"Gray Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.gray_banner"},{"id":"minecraft:gray_bed","localizedName":"Gray Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.gray_bed"},{"id":"minecraft:gray_candle","localizedName":"Gray Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_candle"},{"id":"minecraft:gray_carpet","localizedName":"Gray Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_carpet"},{"id":"minecraft:gray_concrete","localizedName":"Gray Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_concrete"},{"id":"minecraft:gray_concrete_powder","localizedName":"Gray Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_concrete_powder"},{"id":"minecraft:gray_dye","localizedName":"Gray Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.gray_dye"},{"id":"minecraft:gray_glazed_terracotta","localizedName":"Gray Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_glazed_terracotta"},{"id":"minecraft:gray_shulker_box","localizedName":"Gray Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.gray_shulker_box"},{"id":"minecraft:gray_stained_glass","localizedName":"Gray Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_stained_glass"},{"id":"minecraft:gray_stained_glass_pane","localizedName":"Gray Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_stained_glass_pane"},{"id":"minecraft:gray_terracotta","localizedName":"Gray Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_terracotta"},{"id":"minecraft:gray_wool","localizedName":"Gray Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.gray_wool"},{"id":"minecraft:green_banner","localizedName":"Green Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.green_banner"},{"id":"minecraft:green_bed","localizedName":"Green Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.green_bed"},{"id":"minecraft:green_candle","localizedName":"Green Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_candle"},{"id":"minecraft:green_carpet","localizedName":"Green Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_carpet"},{"id":"minecraft:green_concrete","localizedName":"Green Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_concrete"},{"id":"minecraft:green_concrete_powder","localizedName":"Green Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_concrete_powder"},{"id":"minecraft:green_dye","localizedName":"Green Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.green_dye"},{"id":"minecraft:green_glazed_terracotta","localizedName":"Green Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_glazed_terracotta"},{"id":"minecraft:green_shulker_box","localizedName":"Green Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.green_shulker_box"},{"id":"minecraft:green_stained_glass","localizedName":"Green Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_stained_glass"},{"id":"minecraft:green_stained_glass_pane","localizedName":"Green Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_stained_glass_pane"},{"id":"minecraft:green_terracotta","localizedName":"Green Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_terracotta"},{"id":"minecraft:green_wool","localizedName":"Green Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.green_wool"},{"id":"minecraft:grindstone","localizedName":"Grindstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.grindstone"},{"id":"minecraft:guardian_spawn_egg","localizedName":"Guardian Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.guardian_spawn_egg"},{"id":"minecraft:gunpowder","localizedName":"Gunpowder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.gunpowder"},{"id":"minecraft:hanging_roots","localizedName":"Hanging Roots","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.hanging_roots"},{"id":"minecraft:hay_block","localizedName":"Hay Bale","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.hay_block"},{"id":"minecraft:heart_of_the_sea","localizedName":"Heart of the Sea","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.heart_of_the_sea"},{"id":"minecraft:heavy_weighted_pressure_plate","localizedName":"Heavy Weighted Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.heavy_weighted_pressure_plate"},{"id":"minecraft:hoglin_spawn_egg","localizedName":"Hoglin Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.hoglin_spawn_egg"},{"id":"minecraft:honey_block","localizedName":"Honey Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.honey_block"},{"id":"minecraft:honey_bottle","localizedName":"Honey Bottle","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.honey_bottle"},{"id":"minecraft:honeycomb","localizedName":"Honeycomb","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.honeycomb"},{"id":"minecraft:honeycomb_block","localizedName":"Honeycomb Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.honeycomb_block"},{"id":"minecraft:hopper","localizedName":"Hopper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.hopper"},{"id":"minecraft:hopper_minecart","localizedName":"Minecart with Hopper","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.hopper_minecart"},{"id":"minecraft:horn_coral","localizedName":"Horn Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.horn_coral"},{"id":"minecraft:horn_coral_block","localizedName":"Horn Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.horn_coral_block"},{"id":"minecraft:horn_coral_fan","localizedName":"Horn Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.horn_coral_fan"},{"id":"minecraft:horse_spawn_egg","localizedName":"Horse Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.horse_spawn_egg"},{"id":"minecraft:husk_spawn_egg","localizedName":"Husk Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.husk_spawn_egg"},{"id":"minecraft:ice","localizedName":"Ice","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.ice"},{"id":"minecraft:infested_chiseled_stone_bricks","localizedName":"Infested Chiseled Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_chiseled_stone_bricks"},{"id":"minecraft:infested_cobblestone","localizedName":"Infested Cobblestone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_cobblestone"},{"id":"minecraft:infested_cracked_stone_bricks","localizedName":"Infested Cracked Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_cracked_stone_bricks"},{"id":"minecraft:infested_deepslate","localizedName":"Infested Deepslate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_deepslate"},{"id":"minecraft:infested_mossy_stone_bricks","localizedName":"Infested Mossy Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_mossy_stone_bricks"},{"id":"minecraft:infested_stone","localizedName":"Infested Stone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_stone"},{"id":"minecraft:infested_stone_bricks","localizedName":"Infested Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.infested_stone_bricks"},{"id":"minecraft:ink_sac","localizedName":"Ink Sac","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ink_sac"},{"id":"minecraft:iron_axe","localizedName":"Iron Axe","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_axe"},{"id":"minecraft:iron_bars","localizedName":"Iron Bars","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.iron_bars"},{"id":"minecraft:iron_block","localizedName":"Block of Iron","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.iron_block"},{"id":"minecraft:iron_boots","localizedName":"Iron Boots","maxDamage":195,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_boots"},{"id":"minecraft:iron_chestplate","localizedName":"Iron Chestplate","maxDamage":240,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_chestplate"},{"id":"minecraft:iron_door","localizedName":"Iron Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.iron_door"},{"id":"minecraft:iron_helmet","localizedName":"Iron Helmet","maxDamage":165,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_helmet"},{"id":"minecraft:iron_hoe","localizedName":"Iron Hoe","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_hoe"},{"id":"minecraft:iron_horse_armor","localizedName":"Iron Horse Armor","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_horse_armor"},{"id":"minecraft:iron_ingot","localizedName":"Iron Ingot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.iron_ingot"},{"id":"minecraft:iron_leggings","localizedName":"Iron Leggings","maxDamage":225,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_leggings"},{"id":"minecraft:iron_nugget","localizedName":"Iron Nugget","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.iron_nugget"},{"id":"minecraft:iron_ore","localizedName":"Iron Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.iron_ore"},{"id":"minecraft:iron_pickaxe","localizedName":"Iron Pickaxe","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_pickaxe"},{"id":"minecraft:iron_shovel","localizedName":"Iron Shovel","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_shovel"},{"id":"minecraft:iron_sword","localizedName":"Iron Sword","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.iron_sword"},{"id":"minecraft:iron_trapdoor","localizedName":"Iron Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.iron_trapdoor"},{"id":"minecraft:item_frame","localizedName":"Item Frame","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.item_frame"},{"id":"minecraft:jack_o_lantern","localizedName":"Jack o\u0027Lantern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jack_o_lantern"},{"id":"minecraft:jigsaw","localizedName":"Jigsaw Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jigsaw"},{"id":"minecraft:jukebox","localizedName":"Jukebox","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jukebox"},{"id":"minecraft:jungle_boat","localizedName":"Jungle Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.jungle_boat"},{"id":"minecraft:jungle_button","localizedName":"Jungle Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_button"},{"id":"minecraft:jungle_door","localizedName":"Jungle Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_door"},{"id":"minecraft:jungle_fence","localizedName":"Jungle Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_fence"},{"id":"minecraft:jungle_fence_gate","localizedName":"Jungle Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_fence_gate"},{"id":"minecraft:jungle_leaves","localizedName":"Jungle Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_leaves"},{"id":"minecraft:jungle_log","localizedName":"Jungle Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_log"},{"id":"minecraft:jungle_planks","localizedName":"Jungle Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_planks"},{"id":"minecraft:jungle_pressure_plate","localizedName":"Jungle Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_pressure_plate"},{"id":"minecraft:jungle_sapling","localizedName":"Jungle Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_sapling"},{"id":"minecraft:jungle_sign","localizedName":"Jungle Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.jungle_sign"},{"id":"minecraft:jungle_slab","localizedName":"Jungle Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_slab"},{"id":"minecraft:jungle_stairs","localizedName":"Jungle Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_stairs"},{"id":"minecraft:jungle_trapdoor","localizedName":"Jungle Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_trapdoor"},{"id":"minecraft:jungle_wood","localizedName":"Jungle Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.jungle_wood"},{"id":"minecraft:kelp","localizedName":"Kelp","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.kelp"},{"id":"minecraft:knowledge_book","localizedName":"Knowledge Book","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.knowledge_book"},{"id":"minecraft:ladder","localizedName":"Ladder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.ladder"},{"id":"minecraft:lantern","localizedName":"Lantern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lantern"},{"id":"minecraft:lapis_block","localizedName":"Block of Lapis Lazuli","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lapis_block"},{"id":"minecraft:lapis_lazuli","localizedName":"Lapis Lazuli","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.lapis_lazuli"},{"id":"minecraft:lapis_ore","localizedName":"Lapis Lazuli Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lapis_ore"},{"id":"minecraft:large_amethyst_bud","localizedName":"Large Amethyst Bud","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.large_amethyst_bud"},{"id":"minecraft:large_fern","localizedName":"Large Fern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.large_fern"},{"id":"minecraft:lava_bucket","localizedName":"Lava Bucket","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.lava_bucket"},{"id":"minecraft:lead","localizedName":"Lead","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.lead"},{"id":"minecraft:leather","localizedName":"Leather","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.leather"},{"id":"minecraft:leather_boots","localizedName":"Leather Boots","maxDamage":65,"maxStackSize":1,"unlocalizedName":"item.minecraft.leather_boots"},{"id":"minecraft:leather_chestplate","localizedName":"Leather Tunic","maxDamage":80,"maxStackSize":1,"unlocalizedName":"item.minecraft.leather_chestplate"},{"id":"minecraft:leather_helmet","localizedName":"Leather Cap","maxDamage":55,"maxStackSize":1,"unlocalizedName":"item.minecraft.leather_helmet"},{"id":"minecraft:leather_horse_armor","localizedName":"Leather Horse Armor","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.leather_horse_armor"},{"id":"minecraft:leather_leggings","localizedName":"Leather Pants","maxDamage":75,"maxStackSize":1,"unlocalizedName":"item.minecraft.leather_leggings"},{"id":"minecraft:lectern","localizedName":"Lectern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lectern"},{"id":"minecraft:lever","localizedName":"Lever","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lever"},{"id":"minecraft:light","localizedName":"Light","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light"},{"id":"minecraft:light_blue_banner","localizedName":"Light Blue Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.light_blue_banner"},{"id":"minecraft:light_blue_bed","localizedName":"Light Blue Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.light_blue_bed"},{"id":"minecraft:light_blue_candle","localizedName":"Light Blue Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_candle"},{"id":"minecraft:light_blue_carpet","localizedName":"Light Blue Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_carpet"},{"id":"minecraft:light_blue_concrete","localizedName":"Light Blue Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_concrete"},{"id":"minecraft:light_blue_concrete_powder","localizedName":"Light Blue Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_concrete_powder"},{"id":"minecraft:light_blue_dye","localizedName":"Light Blue Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.light_blue_dye"},{"id":"minecraft:light_blue_glazed_terracotta","localizedName":"Light Blue Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_glazed_terracotta"},{"id":"minecraft:light_blue_shulker_box","localizedName":"Light Blue Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.light_blue_shulker_box"},{"id":"minecraft:light_blue_stained_glass","localizedName":"Light Blue Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_stained_glass"},{"id":"minecraft:light_blue_stained_glass_pane","localizedName":"Light Blue Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_stained_glass_pane"},{"id":"minecraft:light_blue_terracotta","localizedName":"Light Blue Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_terracotta"},{"id":"minecraft:light_blue_wool","localizedName":"Light Blue Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_blue_wool"},{"id":"minecraft:light_gray_banner","localizedName":"Light Gray Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.light_gray_banner"},{"id":"minecraft:light_gray_bed","localizedName":"Light Gray Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.light_gray_bed"},{"id":"minecraft:light_gray_candle","localizedName":"Light Gray Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_candle"},{"id":"minecraft:light_gray_carpet","localizedName":"Light Gray Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_carpet"},{"id":"minecraft:light_gray_concrete","localizedName":"Light Gray Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_concrete"},{"id":"minecraft:light_gray_concrete_powder","localizedName":"Light Gray Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_concrete_powder"},{"id":"minecraft:light_gray_dye","localizedName":"Light Gray Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.light_gray_dye"},{"id":"minecraft:light_gray_glazed_terracotta","localizedName":"Light Gray Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_glazed_terracotta"},{"id":"minecraft:light_gray_shulker_box","localizedName":"Light Gray Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.light_gray_shulker_box"},{"id":"minecraft:light_gray_stained_glass","localizedName":"Light Gray Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_stained_glass"},{"id":"minecraft:light_gray_stained_glass_pane","localizedName":"Light Gray Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_stained_glass_pane"},{"id":"minecraft:light_gray_terracotta","localizedName":"Light Gray Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_terracotta"},{"id":"minecraft:light_gray_wool","localizedName":"Light Gray Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_gray_wool"},{"id":"minecraft:light_weighted_pressure_plate","localizedName":"Light Weighted Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.light_weighted_pressure_plate"},{"id":"minecraft:lightning_rod","localizedName":"Lightning Rod","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lightning_rod"},{"id":"minecraft:lilac","localizedName":"Lilac","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lilac"},{"id":"minecraft:lily_of_the_valley","localizedName":"Lily of the Valley","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lily_of_the_valley"},{"id":"minecraft:lily_pad","localizedName":"Lily Pad","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lily_pad"},{"id":"minecraft:lime_banner","localizedName":"Lime Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.lime_banner"},{"id":"minecraft:lime_bed","localizedName":"Lime Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.lime_bed"},{"id":"minecraft:lime_candle","localizedName":"Lime Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_candle"},{"id":"minecraft:lime_carpet","localizedName":"Lime Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_carpet"},{"id":"minecraft:lime_concrete","localizedName":"Lime Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_concrete"},{"id":"minecraft:lime_concrete_powder","localizedName":"Lime Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_concrete_powder"},{"id":"minecraft:lime_dye","localizedName":"Lime Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.lime_dye"},{"id":"minecraft:lime_glazed_terracotta","localizedName":"Lime Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_glazed_terracotta"},{"id":"minecraft:lime_shulker_box","localizedName":"Lime Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.lime_shulker_box"},{"id":"minecraft:lime_stained_glass","localizedName":"Lime Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_stained_glass"},{"id":"minecraft:lime_stained_glass_pane","localizedName":"Lime Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_stained_glass_pane"},{"id":"minecraft:lime_terracotta","localizedName":"Lime Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_terracotta"},{"id":"minecraft:lime_wool","localizedName":"Lime Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lime_wool"},{"id":"minecraft:lingering_potion","localizedName":"Lingering Water Bottle","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.lingering_potion.effect.water"},{"id":"minecraft:llama_spawn_egg","localizedName":"Llama Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.llama_spawn_egg"},{"id":"minecraft:lodestone","localizedName":"Lodestone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.lodestone"},{"id":"minecraft:loom","localizedName":"Loom","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.loom"},{"id":"minecraft:magenta_banner","localizedName":"Magenta Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.magenta_banner"},{"id":"minecraft:magenta_bed","localizedName":"Magenta Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.magenta_bed"},{"id":"minecraft:magenta_candle","localizedName":"Magenta Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_candle"},{"id":"minecraft:magenta_carpet","localizedName":"Magenta Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_carpet"},{"id":"minecraft:magenta_concrete","localizedName":"Magenta Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_concrete"},{"id":"minecraft:magenta_concrete_powder","localizedName":"Magenta Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_concrete_powder"},{"id":"minecraft:magenta_dye","localizedName":"Magenta Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.magenta_dye"},{"id":"minecraft:magenta_glazed_terracotta","localizedName":"Magenta Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_glazed_terracotta"},{"id":"minecraft:magenta_shulker_box","localizedName":"Magenta Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.magenta_shulker_box"},{"id":"minecraft:magenta_stained_glass","localizedName":"Magenta Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_stained_glass"},{"id":"minecraft:magenta_stained_glass_pane","localizedName":"Magenta Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_stained_glass_pane"},{"id":"minecraft:magenta_terracotta","localizedName":"Magenta Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_terracotta"},{"id":"minecraft:magenta_wool","localizedName":"Magenta Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magenta_wool"},{"id":"minecraft:magma_block","localizedName":"Magma Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.magma_block"},{"id":"minecraft:magma_cream","localizedName":"Magma Cream","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.magma_cream"},{"id":"minecraft:magma_cube_spawn_egg","localizedName":"Magma Cube Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.magma_cube_spawn_egg"},{"id":"minecraft:map","localizedName":"Empty Map","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.map"},{"id":"minecraft:medium_amethyst_bud","localizedName":"Medium Amethyst Bud","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.medium_amethyst_bud"},{"id":"minecraft:melon","localizedName":"Melon","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.melon"},{"id":"minecraft:melon_seeds","localizedName":"Melon Seeds","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.melon_seeds"},{"id":"minecraft:melon_slice","localizedName":"Melon Slice","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.melon_slice"},{"id":"minecraft:milk_bucket","localizedName":"Milk Bucket","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.milk_bucket"},{"id":"minecraft:minecart","localizedName":"Minecart","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.minecart"},{"id":"minecraft:mojang_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.mojang_banner_pattern"},{"id":"minecraft:mooshroom_spawn_egg","localizedName":"Mooshroom Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.mooshroom_spawn_egg"},{"id":"minecraft:moss_block","localizedName":"Moss Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.moss_block"},{"id":"minecraft:moss_carpet","localizedName":"Moss Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.moss_carpet"},{"id":"minecraft:mossy_cobblestone","localizedName":"Mossy Cobblestone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_cobblestone"},{"id":"minecraft:mossy_cobblestone_slab","localizedName":"Mossy Cobblestone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_cobblestone_slab"},{"id":"minecraft:mossy_cobblestone_stairs","localizedName":"Mossy Cobblestone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_cobblestone_stairs"},{"id":"minecraft:mossy_cobblestone_wall","localizedName":"Mossy Cobblestone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_cobblestone_wall"},{"id":"minecraft:mossy_stone_brick_slab","localizedName":"Mossy Stone Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_stone_brick_slab"},{"id":"minecraft:mossy_stone_brick_stairs","localizedName":"Mossy Stone Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_stone_brick_stairs"},{"id":"minecraft:mossy_stone_brick_wall","localizedName":"Mossy Stone Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_stone_brick_wall"},{"id":"minecraft:mossy_stone_bricks","localizedName":"Mossy Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mossy_stone_bricks"},{"id":"minecraft:mule_spawn_egg","localizedName":"Mule Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.mule_spawn_egg"},{"id":"minecraft:mushroom_stem","localizedName":"Mushroom Stem","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mushroom_stem"},{"id":"minecraft:mushroom_stew","localizedName":"Mushroom Stew","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.mushroom_stew"},{"id":"minecraft:music_disc_11","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_11"},{"id":"minecraft:music_disc_13","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_13"},{"id":"minecraft:music_disc_blocks","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_blocks"},{"id":"minecraft:music_disc_cat","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_cat"},{"id":"minecraft:music_disc_chirp","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_chirp"},{"id":"minecraft:music_disc_far","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_far"},{"id":"minecraft:music_disc_mall","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_mall"},{"id":"minecraft:music_disc_mellohi","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_mellohi"},{"id":"minecraft:music_disc_pigstep","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_pigstep"},{"id":"minecraft:music_disc_stal","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_stal"},{"id":"minecraft:music_disc_strad","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_strad"},{"id":"minecraft:music_disc_wait","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_wait"},{"id":"minecraft:music_disc_ward","localizedName":"Music Disc","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.music_disc_ward"},{"id":"minecraft:mutton","localizedName":"Raw Mutton","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.mutton"},{"id":"minecraft:mycelium","localizedName":"Mycelium","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.mycelium"},{"id":"minecraft:name_tag","localizedName":"Name Tag","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.name_tag"},{"id":"minecraft:nautilus_shell","localizedName":"Nautilus Shell","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.nautilus_shell"},{"id":"minecraft:nether_brick","localizedName":"Nether Brick","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.nether_brick"},{"id":"minecraft:nether_brick_fence","localizedName":"Nether Brick Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_brick_fence"},{"id":"minecraft:nether_brick_slab","localizedName":"Nether Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_brick_slab"},{"id":"minecraft:nether_brick_stairs","localizedName":"Nether Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_brick_stairs"},{"id":"minecraft:nether_brick_wall","localizedName":"Nether Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_brick_wall"},{"id":"minecraft:nether_bricks","localizedName":"Nether Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_bricks"},{"id":"minecraft:nether_gold_ore","localizedName":"Nether Gold Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_gold_ore"},{"id":"minecraft:nether_quartz_ore","localizedName":"Nether Quartz Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_quartz_ore"},{"id":"minecraft:nether_sprouts","localizedName":"Nether Sprouts","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_sprouts"},{"id":"minecraft:nether_star","localizedName":"Nether Star","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.nether_star"},{"id":"minecraft:nether_wart","localizedName":"Nether Wart","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.nether_wart"},{"id":"minecraft:nether_wart_block","localizedName":"Nether Wart Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.nether_wart_block"},{"id":"minecraft:netherite_axe","localizedName":"Netherite Axe","maxDamage":2031,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_axe"},{"id":"minecraft:netherite_block","localizedName":"Block of Netherite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.netherite_block"},{"id":"minecraft:netherite_boots","localizedName":"Netherite Boots","maxDamage":481,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_boots"},{"id":"minecraft:netherite_chestplate","localizedName":"Netherite Chestplate","maxDamage":592,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_chestplate"},{"id":"minecraft:netherite_helmet","localizedName":"Netherite Helmet","maxDamage":407,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_helmet"},{"id":"minecraft:netherite_hoe","localizedName":"Netherite Hoe","maxDamage":2031,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_hoe"},{"id":"minecraft:netherite_ingot","localizedName":"Netherite Ingot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.netherite_ingot"},{"id":"minecraft:netherite_leggings","localizedName":"Netherite Leggings","maxDamage":555,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_leggings"},{"id":"minecraft:netherite_pickaxe","localizedName":"Netherite Pickaxe","maxDamage":2031,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_pickaxe"},{"id":"minecraft:netherite_scrap","localizedName":"Netherite Scrap","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.netherite_scrap"},{"id":"minecraft:netherite_shovel","localizedName":"Netherite Shovel","maxDamage":2031,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_shovel"},{"id":"minecraft:netherite_sword","localizedName":"Netherite Sword","maxDamage":2031,"maxStackSize":1,"unlocalizedName":"item.minecraft.netherite_sword"},{"id":"minecraft:netherrack","localizedName":"Netherrack","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.netherrack"},{"id":"minecraft:note_block","localizedName":"Note Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.note_block"},{"id":"minecraft:oak_boat","localizedName":"Oak Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.oak_boat"},{"id":"minecraft:oak_button","localizedName":"Oak Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_button"},{"id":"minecraft:oak_door","localizedName":"Oak Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_door"},{"id":"minecraft:oak_fence","localizedName":"Oak Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_fence"},{"id":"minecraft:oak_fence_gate","localizedName":"Oak Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_fence_gate"},{"id":"minecraft:oak_leaves","localizedName":"Oak Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_leaves"},{"id":"minecraft:oak_log","localizedName":"Oak Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_log"},{"id":"minecraft:oak_planks","localizedName":"Oak Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_planks"},{"id":"minecraft:oak_pressure_plate","localizedName":"Oak Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_pressure_plate"},{"id":"minecraft:oak_sapling","localizedName":"Oak Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_sapling"},{"id":"minecraft:oak_sign","localizedName":"Oak Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.oak_sign"},{"id":"minecraft:oak_slab","localizedName":"Oak Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_slab"},{"id":"minecraft:oak_stairs","localizedName":"Oak Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_stairs"},{"id":"minecraft:oak_trapdoor","localizedName":"Oak Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_trapdoor"},{"id":"minecraft:oak_wood","localizedName":"Oak Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oak_wood"},{"id":"minecraft:observer","localizedName":"Observer","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.observer"},{"id":"minecraft:obsidian","localizedName":"Obsidian","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.obsidian"},{"id":"minecraft:ocelot_spawn_egg","localizedName":"Ocelot Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ocelot_spawn_egg"},{"id":"minecraft:orange_banner","localizedName":"Orange Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.orange_banner"},{"id":"minecraft:orange_bed","localizedName":"Orange Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.orange_bed"},{"id":"minecraft:orange_candle","localizedName":"Orange Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_candle"},{"id":"minecraft:orange_carpet","localizedName":"Orange Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_carpet"},{"id":"minecraft:orange_concrete","localizedName":"Orange Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_concrete"},{"id":"minecraft:orange_concrete_powder","localizedName":"Orange Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_concrete_powder"},{"id":"minecraft:orange_dye","localizedName":"Orange Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.orange_dye"},{"id":"minecraft:orange_glazed_terracotta","localizedName":"Orange Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_glazed_terracotta"},{"id":"minecraft:orange_shulker_box","localizedName":"Orange Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.orange_shulker_box"},{"id":"minecraft:orange_stained_glass","localizedName":"Orange Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_stained_glass"},{"id":"minecraft:orange_stained_glass_pane","localizedName":"Orange Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_stained_glass_pane"},{"id":"minecraft:orange_terracotta","localizedName":"Orange Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_terracotta"},{"id":"minecraft:orange_tulip","localizedName":"Orange Tulip","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_tulip"},{"id":"minecraft:orange_wool","localizedName":"Orange Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.orange_wool"},{"id":"minecraft:oxeye_daisy","localizedName":"Oxeye Daisy","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oxeye_daisy"},{"id":"minecraft:oxidized_copper","localizedName":"Oxidized Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oxidized_copper"},{"id":"minecraft:oxidized_cut_copper","localizedName":"Oxidized Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oxidized_cut_copper"},{"id":"minecraft:oxidized_cut_copper_slab","localizedName":"Oxidized Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oxidized_cut_copper_slab"},{"id":"minecraft:oxidized_cut_copper_stairs","localizedName":"Oxidized Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.oxidized_cut_copper_stairs"},{"id":"minecraft:packed_ice","localizedName":"Packed Ice","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.packed_ice"},{"id":"minecraft:painting","localizedName":"Painting","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.painting"},{"id":"minecraft:panda_spawn_egg","localizedName":"Panda Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.panda_spawn_egg"},{"id":"minecraft:paper","localizedName":"Paper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.paper"},{"id":"minecraft:parrot_spawn_egg","localizedName":"Parrot Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.parrot_spawn_egg"},{"id":"minecraft:peony","localizedName":"Peony","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.peony"},{"id":"minecraft:petrified_oak_slab","localizedName":"Petrified Oak Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.petrified_oak_slab"},{"id":"minecraft:phantom_membrane","localizedName":"Phantom Membrane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.phantom_membrane"},{"id":"minecraft:phantom_spawn_egg","localizedName":"Phantom Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.phantom_spawn_egg"},{"id":"minecraft:pig_spawn_egg","localizedName":"Pig Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pig_spawn_egg"},{"id":"minecraft:piglin_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.piglin_banner_pattern"},{"id":"minecraft:piglin_brute_spawn_egg","localizedName":"Piglin Brute Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.piglin_brute_spawn_egg"},{"id":"minecraft:piglin_spawn_egg","localizedName":"Piglin Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.piglin_spawn_egg"},{"id":"minecraft:pillager_spawn_egg","localizedName":"Pillager Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pillager_spawn_egg"},{"id":"minecraft:pink_banner","localizedName":"Pink Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.pink_banner"},{"id":"minecraft:pink_bed","localizedName":"Pink Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.pink_bed"},{"id":"minecraft:pink_candle","localizedName":"Pink Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_candle"},{"id":"minecraft:pink_carpet","localizedName":"Pink Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_carpet"},{"id":"minecraft:pink_concrete","localizedName":"Pink Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_concrete"},{"id":"minecraft:pink_concrete_powder","localizedName":"Pink Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_concrete_powder"},{"id":"minecraft:pink_dye","localizedName":"Pink Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pink_dye"},{"id":"minecraft:pink_glazed_terracotta","localizedName":"Pink Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_glazed_terracotta"},{"id":"minecraft:pink_shulker_box","localizedName":"Pink Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.pink_shulker_box"},{"id":"minecraft:pink_stained_glass","localizedName":"Pink Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_stained_glass"},{"id":"minecraft:pink_stained_glass_pane","localizedName":"Pink Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_stained_glass_pane"},{"id":"minecraft:pink_terracotta","localizedName":"Pink Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_terracotta"},{"id":"minecraft:pink_tulip","localizedName":"Pink Tulip","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_tulip"},{"id":"minecraft:pink_wool","localizedName":"Pink Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pink_wool"},{"id":"minecraft:piston","localizedName":"Piston","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.piston"},{"id":"minecraft:player_head","localizedName":"Player Head","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.player_head"},{"id":"minecraft:podzol","localizedName":"Podzol","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.podzol"},{"id":"minecraft:pointed_dripstone","localizedName":"Pointed Dripstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pointed_dripstone"},{"id":"minecraft:poisonous_potato","localizedName":"Poisonous Potato","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.poisonous_potato"},{"id":"minecraft:polar_bear_spawn_egg","localizedName":"Polar Bear Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.polar_bear_spawn_egg"},{"id":"minecraft:polished_andesite","localizedName":"Polished Andesite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_andesite"},{"id":"minecraft:polished_andesite_slab","localizedName":"Polished Andesite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_andesite_slab"},{"id":"minecraft:polished_andesite_stairs","localizedName":"Polished Andesite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_andesite_stairs"},{"id":"minecraft:polished_basalt","localizedName":"Polished Basalt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_basalt"},{"id":"minecraft:polished_blackstone","localizedName":"Polished Blackstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone"},{"id":"minecraft:polished_blackstone_brick_slab","localizedName":"Polished Blackstone Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_brick_slab"},{"id":"minecraft:polished_blackstone_brick_stairs","localizedName":"Polished Blackstone Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_brick_stairs"},{"id":"minecraft:polished_blackstone_brick_wall","localizedName":"Polished Blackstone Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_brick_wall"},{"id":"minecraft:polished_blackstone_bricks","localizedName":"Polished Blackstone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_bricks"},{"id":"minecraft:polished_blackstone_button","localizedName":"Polished Blackstone Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_button"},{"id":"minecraft:polished_blackstone_pressure_plate","localizedName":"Polished Blackstone Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_pressure_plate"},{"id":"minecraft:polished_blackstone_slab","localizedName":"Polished Blackstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_slab"},{"id":"minecraft:polished_blackstone_stairs","localizedName":"Polished Blackstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_stairs"},{"id":"minecraft:polished_blackstone_wall","localizedName":"Polished Blackstone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_blackstone_wall"},{"id":"minecraft:polished_deepslate","localizedName":"Polished Deepslate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_deepslate"},{"id":"minecraft:polished_deepslate_slab","localizedName":"Polished Deepslate Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_deepslate_slab"},{"id":"minecraft:polished_deepslate_stairs","localizedName":"Polished Deepslate Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_deepslate_stairs"},{"id":"minecraft:polished_deepslate_wall","localizedName":"Polished Deepslate Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_deepslate_wall"},{"id":"minecraft:polished_diorite","localizedName":"Polished Diorite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_diorite"},{"id":"minecraft:polished_diorite_slab","localizedName":"Polished Diorite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_diorite_slab"},{"id":"minecraft:polished_diorite_stairs","localizedName":"Polished Diorite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_diorite_stairs"},{"id":"minecraft:polished_granite","localizedName":"Polished Granite","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_granite"},{"id":"minecraft:polished_granite_slab","localizedName":"Polished Granite Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_granite_slab"},{"id":"minecraft:polished_granite_stairs","localizedName":"Polished Granite Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.polished_granite_stairs"},{"id":"minecraft:popped_chorus_fruit","localizedName":"Popped Chorus Fruit","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.popped_chorus_fruit"},{"id":"minecraft:poppy","localizedName":"Poppy","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.poppy"},{"id":"minecraft:porkchop","localizedName":"Raw Porkchop","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.porkchop"},{"id":"minecraft:potato","localizedName":"Potato","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.potato"},{"id":"minecraft:potion","localizedName":"Water Bottle","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.potion.effect.water"},{"id":"minecraft:powder_snow_bucket","localizedName":"Powder Snow Bucket","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.powder_snow_bucket"},{"id":"minecraft:powered_rail","localizedName":"Powered Rail","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.powered_rail"},{"id":"minecraft:prismarine","localizedName":"Prismarine","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine"},{"id":"minecraft:prismarine_brick_slab","localizedName":"Prismarine Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_brick_slab"},{"id":"minecraft:prismarine_brick_stairs","localizedName":"Prismarine Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_brick_stairs"},{"id":"minecraft:prismarine_bricks","localizedName":"Prismarine Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_bricks"},{"id":"minecraft:prismarine_crystals","localizedName":"Prismarine Crystals","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.prismarine_crystals"},{"id":"minecraft:prismarine_shard","localizedName":"Prismarine Shard","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.prismarine_shard"},{"id":"minecraft:prismarine_slab","localizedName":"Prismarine Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_slab"},{"id":"minecraft:prismarine_stairs","localizedName":"Prismarine Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_stairs"},{"id":"minecraft:prismarine_wall","localizedName":"Prismarine Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.prismarine_wall"},{"id":"minecraft:pufferfish","localizedName":"Pufferfish","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pufferfish"},{"id":"minecraft:pufferfish_bucket","localizedName":"Bucket of Pufferfish","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.pufferfish_bucket"},{"id":"minecraft:pufferfish_spawn_egg","localizedName":"Pufferfish Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pufferfish_spawn_egg"},{"id":"minecraft:pumpkin","localizedName":"Pumpkin","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.pumpkin"},{"id":"minecraft:pumpkin_pie","localizedName":"Pumpkin Pie","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pumpkin_pie"},{"id":"minecraft:pumpkin_seeds","localizedName":"Pumpkin Seeds","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.pumpkin_seeds"},{"id":"minecraft:purple_banner","localizedName":"Purple Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.purple_banner"},{"id":"minecraft:purple_bed","localizedName":"Purple Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.purple_bed"},{"id":"minecraft:purple_candle","localizedName":"Purple Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_candle"},{"id":"minecraft:purple_carpet","localizedName":"Purple Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_carpet"},{"id":"minecraft:purple_concrete","localizedName":"Purple Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_concrete"},{"id":"minecraft:purple_concrete_powder","localizedName":"Purple Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_concrete_powder"},{"id":"minecraft:purple_dye","localizedName":"Purple Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.purple_dye"},{"id":"minecraft:purple_glazed_terracotta","localizedName":"Purple Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_glazed_terracotta"},{"id":"minecraft:purple_shulker_box","localizedName":"Purple Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.purple_shulker_box"},{"id":"minecraft:purple_stained_glass","localizedName":"Purple Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_stained_glass"},{"id":"minecraft:purple_stained_glass_pane","localizedName":"Purple Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_stained_glass_pane"},{"id":"minecraft:purple_terracotta","localizedName":"Purple Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_terracotta"},{"id":"minecraft:purple_wool","localizedName":"Purple Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purple_wool"},{"id":"minecraft:purpur_block","localizedName":"Purpur Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purpur_block"},{"id":"minecraft:purpur_pillar","localizedName":"Purpur Pillar","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purpur_pillar"},{"id":"minecraft:purpur_slab","localizedName":"Purpur Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purpur_slab"},{"id":"minecraft:purpur_stairs","localizedName":"Purpur Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.purpur_stairs"},{"id":"minecraft:quartz","localizedName":"Nether Quartz","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.quartz"},{"id":"minecraft:quartz_block","localizedName":"Block of Quartz","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.quartz_block"},{"id":"minecraft:quartz_bricks","localizedName":"Quartz Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.quartz_bricks"},{"id":"minecraft:quartz_pillar","localizedName":"Quartz Pillar","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.quartz_pillar"},{"id":"minecraft:quartz_slab","localizedName":"Quartz Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.quartz_slab"},{"id":"minecraft:quartz_stairs","localizedName":"Quartz Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.quartz_stairs"},{"id":"minecraft:rabbit","localizedName":"Raw Rabbit","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.rabbit"},{"id":"minecraft:rabbit_foot","localizedName":"Rabbit\u0027s Foot","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.rabbit_foot"},{"id":"minecraft:rabbit_hide","localizedName":"Rabbit Hide","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.rabbit_hide"},{"id":"minecraft:rabbit_spawn_egg","localizedName":"Rabbit Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.rabbit_spawn_egg"},{"id":"minecraft:rabbit_stew","localizedName":"Rabbit Stew","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.rabbit_stew"},{"id":"minecraft:rail","localizedName":"Rail","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.rail"},{"id":"minecraft:ravager_spawn_egg","localizedName":"Ravager Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.ravager_spawn_egg"},{"id":"minecraft:raw_copper","localizedName":"Raw Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.raw_copper"},{"id":"minecraft:raw_copper_block","localizedName":"Block of Raw Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.raw_copper_block"},{"id":"minecraft:raw_gold","localizedName":"Raw Gold","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.raw_gold"},{"id":"minecraft:raw_gold_block","localizedName":"Block of Raw Gold","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.raw_gold_block"},{"id":"minecraft:raw_iron","localizedName":"Raw Iron","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.raw_iron"},{"id":"minecraft:raw_iron_block","localizedName":"Block of Raw Iron","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.raw_iron_block"},{"id":"minecraft:red_banner","localizedName":"Red Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.red_banner"},{"id":"minecraft:red_bed","localizedName":"Red Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.red_bed"},{"id":"minecraft:red_candle","localizedName":"Red Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_candle"},{"id":"minecraft:red_carpet","localizedName":"Red Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_carpet"},{"id":"minecraft:red_concrete","localizedName":"Red Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_concrete"},{"id":"minecraft:red_concrete_powder","localizedName":"Red Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_concrete_powder"},{"id":"minecraft:red_dye","localizedName":"Red Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.red_dye"},{"id":"minecraft:red_glazed_terracotta","localizedName":"Red Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_glazed_terracotta"},{"id":"minecraft:red_mushroom","localizedName":"Red Mushroom","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_mushroom"},{"id":"minecraft:red_mushroom_block","localizedName":"Red Mushroom Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_mushroom_block"},{"id":"minecraft:red_nether_brick_slab","localizedName":"Red Nether Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_nether_brick_slab"},{"id":"minecraft:red_nether_brick_stairs","localizedName":"Red Nether Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_nether_brick_stairs"},{"id":"minecraft:red_nether_brick_wall","localizedName":"Red Nether Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_nether_brick_wall"},{"id":"minecraft:red_nether_bricks","localizedName":"Red Nether Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_nether_bricks"},{"id":"minecraft:red_sand","localizedName":"Red Sand","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_sand"},{"id":"minecraft:red_sandstone","localizedName":"Red Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_sandstone"},{"id":"minecraft:red_sandstone_slab","localizedName":"Red Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_sandstone_slab"},{"id":"minecraft:red_sandstone_stairs","localizedName":"Red Sandstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_sandstone_stairs"},{"id":"minecraft:red_sandstone_wall","localizedName":"Red Sandstone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_sandstone_wall"},{"id":"minecraft:red_shulker_box","localizedName":"Red Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.red_shulker_box"},{"id":"minecraft:red_stained_glass","localizedName":"Red Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_stained_glass"},{"id":"minecraft:red_stained_glass_pane","localizedName":"Red Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_stained_glass_pane"},{"id":"minecraft:red_terracotta","localizedName":"Red Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_terracotta"},{"id":"minecraft:red_tulip","localizedName":"Red Tulip","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_tulip"},{"id":"minecraft:red_wool","localizedName":"Red Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.red_wool"},{"id":"minecraft:redstone","localizedName":"Redstone Dust","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.redstone"},{"id":"minecraft:redstone_block","localizedName":"Block of Redstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.redstone_block"},{"id":"minecraft:redstone_lamp","localizedName":"Redstone Lamp","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.redstone_lamp"},{"id":"minecraft:redstone_ore","localizedName":"Redstone Ore","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.redstone_ore"},{"id":"minecraft:redstone_torch","localizedName":"Redstone Torch","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.redstone_torch"},{"id":"minecraft:repeater","localizedName":"Redstone Repeater","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.repeater"},{"id":"minecraft:repeating_command_block","localizedName":"Repeating Command Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.repeating_command_block"},{"id":"minecraft:respawn_anchor","localizedName":"Respawn Anchor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.respawn_anchor"},{"id":"minecraft:rooted_dirt","localizedName":"Rooted Dirt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.rooted_dirt"},{"id":"minecraft:rose_bush","localizedName":"Rose Bush","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.rose_bush"},{"id":"minecraft:rotten_flesh","localizedName":"Rotten Flesh","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.rotten_flesh"},{"id":"minecraft:saddle","localizedName":"Saddle","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.saddle"},{"id":"minecraft:salmon","localizedName":"Raw Salmon","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.salmon"},{"id":"minecraft:salmon_bucket","localizedName":"Bucket of Salmon","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.salmon_bucket"},{"id":"minecraft:salmon_spawn_egg","localizedName":"Salmon Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.salmon_spawn_egg"},{"id":"minecraft:sand","localizedName":"Sand","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sand"},{"id":"minecraft:sandstone","localizedName":"Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sandstone"},{"id":"minecraft:sandstone_slab","localizedName":"Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sandstone_slab"},{"id":"minecraft:sandstone_stairs","localizedName":"Sandstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sandstone_stairs"},{"id":"minecraft:sandstone_wall","localizedName":"Sandstone Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sandstone_wall"},{"id":"minecraft:scaffolding","localizedName":"Scaffolding","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.scaffolding"},{"id":"minecraft:sculk_sensor","localizedName":"Sculk Sensor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sculk_sensor"},{"id":"minecraft:scute","localizedName":"Scute","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.scute"},{"id":"minecraft:sea_lantern","localizedName":"Sea Lantern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sea_lantern"},{"id":"minecraft:sea_pickle","localizedName":"Sea Pickle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sea_pickle"},{"id":"minecraft:seagrass","localizedName":"Seagrass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.seagrass"},{"id":"minecraft:shears","localizedName":"Shears","maxDamage":238,"maxStackSize":1,"unlocalizedName":"item.minecraft.shears"},{"id":"minecraft:sheep_spawn_egg","localizedName":"Sheep Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.sheep_spawn_egg"},{"id":"minecraft:shield","localizedName":"Shield","maxDamage":336,"maxStackSize":1,"unlocalizedName":"item.minecraft.shield"},{"id":"minecraft:shroomlight","localizedName":"Shroomlight","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.shroomlight"},{"id":"minecraft:shulker_box","localizedName":"Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.shulker_box"},{"id":"minecraft:shulker_shell","localizedName":"Shulker Shell","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.shulker_shell"},{"id":"minecraft:shulker_spawn_egg","localizedName":"Shulker Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.shulker_spawn_egg"},{"id":"minecraft:silverfish_spawn_egg","localizedName":"Silverfish Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.silverfish_spawn_egg"},{"id":"minecraft:skeleton_horse_spawn_egg","localizedName":"Skeleton Horse Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.skeleton_horse_spawn_egg"},{"id":"minecraft:skeleton_skull","localizedName":"Skeleton Skull","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.skeleton_skull"},{"id":"minecraft:skeleton_spawn_egg","localizedName":"Skeleton Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.skeleton_spawn_egg"},{"id":"minecraft:skull_banner_pattern","localizedName":"Banner Pattern","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.skull_banner_pattern"},{"id":"minecraft:slime_ball","localizedName":"Slimeball","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.slime_ball"},{"id":"minecraft:slime_block","localizedName":"Slime Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.slime_block"},{"id":"minecraft:slime_spawn_egg","localizedName":"Slime Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.slime_spawn_egg"},{"id":"minecraft:small_amethyst_bud","localizedName":"Small Amethyst Bud","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.small_amethyst_bud"},{"id":"minecraft:small_dripleaf","localizedName":"Small Dripleaf","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.small_dripleaf"},{"id":"minecraft:smithing_table","localizedName":"Smithing Table","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smithing_table"},{"id":"minecraft:smoker","localizedName":"Smoker","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smoker"},{"id":"minecraft:smooth_basalt","localizedName":"Smooth Basalt","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_basalt"},{"id":"minecraft:smooth_quartz","localizedName":"Smooth Quartz Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_quartz"},{"id":"minecraft:smooth_quartz_slab","localizedName":"Smooth Quartz Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_quartz_slab"},{"id":"minecraft:smooth_quartz_stairs","localizedName":"Smooth Quartz Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_quartz_stairs"},{"id":"minecraft:smooth_red_sandstone","localizedName":"Smooth Red Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_red_sandstone"},{"id":"minecraft:smooth_red_sandstone_slab","localizedName":"Smooth Red Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_red_sandstone_slab"},{"id":"minecraft:smooth_red_sandstone_stairs","localizedName":"Smooth Red Sandstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_red_sandstone_stairs"},{"id":"minecraft:smooth_sandstone","localizedName":"Smooth Sandstone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_sandstone"},{"id":"minecraft:smooth_sandstone_slab","localizedName":"Smooth Sandstone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_sandstone_slab"},{"id":"minecraft:smooth_sandstone_stairs","localizedName":"Smooth Sandstone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_sandstone_stairs"},{"id":"minecraft:smooth_stone","localizedName":"Smooth Stone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_stone"},{"id":"minecraft:smooth_stone_slab","localizedName":"Smooth Stone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.smooth_stone_slab"},{"id":"minecraft:snow","localizedName":"Snow","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.snow"},{"id":"minecraft:snow_block","localizedName":"Snow Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.snow_block"},{"id":"minecraft:snowball","localizedName":"Snowball","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.snowball"},{"id":"minecraft:soul_campfire","localizedName":"Soul Campfire","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.soul_campfire"},{"id":"minecraft:soul_lantern","localizedName":"Soul Lantern","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.soul_lantern"},{"id":"minecraft:soul_sand","localizedName":"Soul Sand","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.soul_sand"},{"id":"minecraft:soul_soil","localizedName":"Soul Soil","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.soul_soil"},{"id":"minecraft:soul_torch","localizedName":"Soul Torch","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.soul_torch"},{"id":"minecraft:spawner","localizedName":"Spawner","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spawner"},{"id":"minecraft:spectral_arrow","localizedName":"Spectral Arrow","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.spectral_arrow"},{"id":"minecraft:spider_eye","localizedName":"Spider Eye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.spider_eye"},{"id":"minecraft:spider_spawn_egg","localizedName":"Spider Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.spider_spawn_egg"},{"id":"minecraft:splash_potion","localizedName":"Splash Water Bottle","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.splash_potion.effect.water"},{"id":"minecraft:sponge","localizedName":"Sponge","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sponge"},{"id":"minecraft:spore_blossom","localizedName":"Spore Blossom","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spore_blossom"},{"id":"minecraft:spruce_boat","localizedName":"Spruce Boat","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.spruce_boat"},{"id":"minecraft:spruce_button","localizedName":"Spruce Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_button"},{"id":"minecraft:spruce_door","localizedName":"Spruce Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_door"},{"id":"minecraft:spruce_fence","localizedName":"Spruce Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_fence"},{"id":"minecraft:spruce_fence_gate","localizedName":"Spruce Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_fence_gate"},{"id":"minecraft:spruce_leaves","localizedName":"Spruce Leaves","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_leaves"},{"id":"minecraft:spruce_log","localizedName":"Spruce Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_log"},{"id":"minecraft:spruce_planks","localizedName":"Spruce Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_planks"},{"id":"minecraft:spruce_pressure_plate","localizedName":"Spruce Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_pressure_plate"},{"id":"minecraft:spruce_sapling","localizedName":"Spruce Sapling","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_sapling"},{"id":"minecraft:spruce_sign","localizedName":"Spruce Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.spruce_sign"},{"id":"minecraft:spruce_slab","localizedName":"Spruce Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_slab"},{"id":"minecraft:spruce_stairs","localizedName":"Spruce Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_stairs"},{"id":"minecraft:spruce_trapdoor","localizedName":"Spruce Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_trapdoor"},{"id":"minecraft:spruce_wood","localizedName":"Spruce Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.spruce_wood"},{"id":"minecraft:spyglass","localizedName":"Spyglass","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.spyglass"},{"id":"minecraft:squid_spawn_egg","localizedName":"Squid Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.squid_spawn_egg"},{"id":"minecraft:stick","localizedName":"Stick","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.stick"},{"id":"minecraft:sticky_piston","localizedName":"Sticky Piston","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sticky_piston"},{"id":"minecraft:stone","localizedName":"Stone","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone"},{"id":"minecraft:stone_axe","localizedName":"Stone Axe","maxDamage":131,"maxStackSize":1,"unlocalizedName":"item.minecraft.stone_axe"},{"id":"minecraft:stone_brick_slab","localizedName":"Stone Brick Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_brick_slab"},{"id":"minecraft:stone_brick_stairs","localizedName":"Stone Brick Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_brick_stairs"},{"id":"minecraft:stone_brick_wall","localizedName":"Stone Brick Wall","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_brick_wall"},{"id":"minecraft:stone_bricks","localizedName":"Stone Bricks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_bricks"},{"id":"minecraft:stone_button","localizedName":"Stone Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_button"},{"id":"minecraft:stone_hoe","localizedName":"Stone Hoe","maxDamage":131,"maxStackSize":1,"unlocalizedName":"item.minecraft.stone_hoe"},{"id":"minecraft:stone_pickaxe","localizedName":"Stone Pickaxe","maxDamage":131,"maxStackSize":1,"unlocalizedName":"item.minecraft.stone_pickaxe"},{"id":"minecraft:stone_pressure_plate","localizedName":"Stone Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_pressure_plate"},{"id":"minecraft:stone_shovel","localizedName":"Stone Shovel","maxDamage":131,"maxStackSize":1,"unlocalizedName":"item.minecraft.stone_shovel"},{"id":"minecraft:stone_slab","localizedName":"Stone Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_slab"},{"id":"minecraft:stone_stairs","localizedName":"Stone Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stone_stairs"},{"id":"minecraft:stone_sword","localizedName":"Stone Sword","maxDamage":131,"maxStackSize":1,"unlocalizedName":"item.minecraft.stone_sword"},{"id":"minecraft:stonecutter","localizedName":"Stonecutter","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stonecutter"},{"id":"minecraft:stray_spawn_egg","localizedName":"Stray Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.stray_spawn_egg"},{"id":"minecraft:strider_spawn_egg","localizedName":"Strider Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.strider_spawn_egg"},{"id":"minecraft:string","localizedName":"String","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.string"},{"id":"minecraft:stripped_acacia_log","localizedName":"Stripped Acacia Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_acacia_log"},{"id":"minecraft:stripped_acacia_wood","localizedName":"Stripped Acacia Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_acacia_wood"},{"id":"minecraft:stripped_birch_log","localizedName":"Stripped Birch Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_birch_log"},{"id":"minecraft:stripped_birch_wood","localizedName":"Stripped Birch Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_birch_wood"},{"id":"minecraft:stripped_crimson_hyphae","localizedName":"Stripped Crimson Hyphae","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_crimson_hyphae"},{"id":"minecraft:stripped_crimson_stem","localizedName":"Stripped Crimson Stem","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_crimson_stem"},{"id":"minecraft:stripped_dark_oak_log","localizedName":"Stripped Dark Oak Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_dark_oak_log"},{"id":"minecraft:stripped_dark_oak_wood","localizedName":"Stripped Dark Oak Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_dark_oak_wood"},{"id":"minecraft:stripped_jungle_log","localizedName":"Stripped Jungle Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_jungle_log"},{"id":"minecraft:stripped_jungle_wood","localizedName":"Stripped Jungle Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_jungle_wood"},{"id":"minecraft:stripped_oak_log","localizedName":"Stripped Oak Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_oak_log"},{"id":"minecraft:stripped_oak_wood","localizedName":"Stripped Oak Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_oak_wood"},{"id":"minecraft:stripped_spruce_log","localizedName":"Stripped Spruce Log","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_spruce_log"},{"id":"minecraft:stripped_spruce_wood","localizedName":"Stripped Spruce Wood","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_spruce_wood"},{"id":"minecraft:stripped_warped_hyphae","localizedName":"Stripped Warped Hyphae","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_warped_hyphae"},{"id":"minecraft:stripped_warped_stem","localizedName":"Stripped Warped Stem","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.stripped_warped_stem"},{"id":"minecraft:structure_block","localizedName":"Structure Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.structure_block"},{"id":"minecraft:structure_void","localizedName":"Structure Void","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.structure_void"},{"id":"minecraft:sugar","localizedName":"Sugar","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.sugar"},{"id":"minecraft:sugar_cane","localizedName":"Sugar Cane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sugar_cane"},{"id":"minecraft:sunflower","localizedName":"Sunflower","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.sunflower"},{"id":"minecraft:suspicious_stew","localizedName":"Suspicious Stew","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.suspicious_stew"},{"id":"minecraft:sweet_berries","localizedName":"Sweet Berries","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.sweet_berries"},{"id":"minecraft:tall_grass","localizedName":"Tall Grass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tall_grass"},{"id":"minecraft:target","localizedName":"Target","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.target"},{"id":"minecraft:terracotta","localizedName":"Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.terracotta"},{"id":"minecraft:tinted_glass","localizedName":"Tinted Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tinted_glass"},{"id":"minecraft:tipped_arrow","localizedName":"Arrow of Poison","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.tipped_arrow.effect.poison"},{"id":"minecraft:tnt","localizedName":"TNT","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tnt"},{"id":"minecraft:tnt_minecart","localizedName":"Minecart with TNT","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.tnt_minecart"},{"id":"minecraft:torch","localizedName":"Torch","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.torch"},{"id":"minecraft:totem_of_undying","localizedName":"Totem of Undying","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.totem_of_undying"},{"id":"minecraft:trader_llama_spawn_egg","localizedName":"Trader Llama Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.trader_llama_spawn_egg"},{"id":"minecraft:trapped_chest","localizedName":"Trapped Chest","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.trapped_chest"},{"id":"minecraft:trident","localizedName":"Trident","maxDamage":250,"maxStackSize":1,"unlocalizedName":"item.minecraft.trident"},{"id":"minecraft:tripwire_hook","localizedName":"Tripwire Hook","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tripwire_hook"},{"id":"minecraft:tropical_fish","localizedName":"Tropical Fish","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.tropical_fish"},{"id":"minecraft:tropical_fish_bucket","localizedName":"Bucket of Tropical Fish","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.tropical_fish_bucket"},{"id":"minecraft:tropical_fish_spawn_egg","localizedName":"Tropical Fish Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.tropical_fish_spawn_egg"},{"id":"minecraft:tube_coral","localizedName":"Tube Coral","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tube_coral"},{"id":"minecraft:tube_coral_block","localizedName":"Tube Coral Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tube_coral_block"},{"id":"minecraft:tube_coral_fan","localizedName":"Tube Coral Fan","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tube_coral_fan"},{"id":"minecraft:tuff","localizedName":"Tuff","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.tuff"},{"id":"minecraft:turtle_egg","localizedName":"Turtle Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.turtle_egg"},{"id":"minecraft:turtle_helmet","localizedName":"Turtle Shell","maxDamage":275,"maxStackSize":1,"unlocalizedName":"item.minecraft.turtle_helmet"},{"id":"minecraft:turtle_spawn_egg","localizedName":"Turtle Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.turtle_spawn_egg"},{"id":"minecraft:twisting_vines","localizedName":"Twisting Vines","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.twisting_vines"},{"id":"minecraft:vex_spawn_egg","localizedName":"Vex Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.vex_spawn_egg"},{"id":"minecraft:villager_spawn_egg","localizedName":"Villager Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.villager_spawn_egg"},{"id":"minecraft:vindicator_spawn_egg","localizedName":"Vindicator Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.vindicator_spawn_egg"},{"id":"minecraft:vine","localizedName":"Vines","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.vine"},{"id":"minecraft:wandering_trader_spawn_egg","localizedName":"Wandering Trader Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.wandering_trader_spawn_egg"},{"id":"minecraft:warped_button","localizedName":"Warped Button","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_button"},{"id":"minecraft:warped_door","localizedName":"Warped Door","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_door"},{"id":"minecraft:warped_fence","localizedName":"Warped Fence","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_fence"},{"id":"minecraft:warped_fence_gate","localizedName":"Warped Fence Gate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_fence_gate"},{"id":"minecraft:warped_fungus","localizedName":"Warped Fungus","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_fungus"},{"id":"minecraft:warped_fungus_on_a_stick","localizedName":"Warped Fungus on a Stick","maxDamage":100,"maxStackSize":1,"unlocalizedName":"item.minecraft.warped_fungus_on_a_stick"},{"id":"minecraft:warped_hyphae","localizedName":"Warped Hyphae","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_hyphae"},{"id":"minecraft:warped_nylium","localizedName":"Warped Nylium","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_nylium"},{"id":"minecraft:warped_planks","localizedName":"Warped Planks","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_planks"},{"id":"minecraft:warped_pressure_plate","localizedName":"Warped Pressure Plate","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_pressure_plate"},{"id":"minecraft:warped_roots","localizedName":"Warped Roots","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_roots"},{"id":"minecraft:warped_sign","localizedName":"Warped Sign","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.warped_sign"},{"id":"minecraft:warped_slab","localizedName":"Warped Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_slab"},{"id":"minecraft:warped_stairs","localizedName":"Warped Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_stairs"},{"id":"minecraft:warped_stem","localizedName":"Warped Stem","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_stem"},{"id":"minecraft:warped_trapdoor","localizedName":"Warped Trapdoor","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_trapdoor"},{"id":"minecraft:warped_wart_block","localizedName":"Warped Wart Block","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.warped_wart_block"},{"id":"minecraft:water_bucket","localizedName":"Water Bucket","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.water_bucket"},{"id":"minecraft:waxed_copper_block","localizedName":"Waxed Block of Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_copper_block"},{"id":"minecraft:waxed_cut_copper","localizedName":"Waxed Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_cut_copper"},{"id":"minecraft:waxed_cut_copper_slab","localizedName":"Waxed Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_cut_copper_slab"},{"id":"minecraft:waxed_cut_copper_stairs","localizedName":"Waxed Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_cut_copper_stairs"},{"id":"minecraft:waxed_exposed_copper","localizedName":"Waxed Exposed Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_exposed_copper"},{"id":"minecraft:waxed_exposed_cut_copper","localizedName":"Waxed Exposed Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_exposed_cut_copper"},{"id":"minecraft:waxed_exposed_cut_copper_slab","localizedName":"Waxed Exposed Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_exposed_cut_copper_slab"},{"id":"minecraft:waxed_exposed_cut_copper_stairs","localizedName":"Waxed Exposed Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_exposed_cut_copper_stairs"},{"id":"minecraft:waxed_oxidized_copper","localizedName":"Waxed Oxidized Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_oxidized_copper"},{"id":"minecraft:waxed_oxidized_cut_copper","localizedName":"Waxed Oxidized Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_oxidized_cut_copper"},{"id":"minecraft:waxed_oxidized_cut_copper_slab","localizedName":"Waxed Oxidized Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_oxidized_cut_copper_slab"},{"id":"minecraft:waxed_oxidized_cut_copper_stairs","localizedName":"Waxed Oxidized Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_oxidized_cut_copper_stairs"},{"id":"minecraft:waxed_weathered_copper","localizedName":"Waxed Weathered Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_weathered_copper"},{"id":"minecraft:waxed_weathered_cut_copper","localizedName":"Waxed Weathered Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_weathered_cut_copper"},{"id":"minecraft:waxed_weathered_cut_copper_slab","localizedName":"Waxed Weathered Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_weathered_cut_copper_slab"},{"id":"minecraft:waxed_weathered_cut_copper_stairs","localizedName":"Waxed Weathered Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.waxed_weathered_cut_copper_stairs"},{"id":"minecraft:weathered_copper","localizedName":"Weathered Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.weathered_copper"},{"id":"minecraft:weathered_cut_copper","localizedName":"Weathered Cut Copper","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.weathered_cut_copper"},{"id":"minecraft:weathered_cut_copper_slab","localizedName":"Weathered Cut Copper Slab","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.weathered_cut_copper_slab"},{"id":"minecraft:weathered_cut_copper_stairs","localizedName":"Weathered Cut Copper Stairs","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.weathered_cut_copper_stairs"},{"id":"minecraft:weeping_vines","localizedName":"Weeping Vines","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.weeping_vines"},{"id":"minecraft:wet_sponge","localizedName":"Wet Sponge","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.wet_sponge"},{"id":"minecraft:wheat","localizedName":"Wheat","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.wheat"},{"id":"minecraft:wheat_seeds","localizedName":"Wheat Seeds","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.wheat_seeds"},{"id":"minecraft:white_banner","localizedName":"White Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.white_banner"},{"id":"minecraft:white_bed","localizedName":"White Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.white_bed"},{"id":"minecraft:white_candle","localizedName":"White Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_candle"},{"id":"minecraft:white_carpet","localizedName":"White Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_carpet"},{"id":"minecraft:white_concrete","localizedName":"White Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_concrete"},{"id":"minecraft:white_concrete_powder","localizedName":"White Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_concrete_powder"},{"id":"minecraft:white_dye","localizedName":"White Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.white_dye"},{"id":"minecraft:white_glazed_terracotta","localizedName":"White Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_glazed_terracotta"},{"id":"minecraft:white_shulker_box","localizedName":"White Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.white_shulker_box"},{"id":"minecraft:white_stained_glass","localizedName":"White Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_stained_glass"},{"id":"minecraft:white_stained_glass_pane","localizedName":"White Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_stained_glass_pane"},{"id":"minecraft:white_terracotta","localizedName":"White Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_terracotta"},{"id":"minecraft:white_tulip","localizedName":"White Tulip","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_tulip"},{"id":"minecraft:white_wool","localizedName":"White Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.white_wool"},{"id":"minecraft:witch_spawn_egg","localizedName":"Witch Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.witch_spawn_egg"},{"id":"minecraft:wither_rose","localizedName":"Wither Rose","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.wither_rose"},{"id":"minecraft:wither_skeleton_skull","localizedName":"Wither Skeleton Skull","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.wither_skeleton_skull"},{"id":"minecraft:wither_skeleton_spawn_egg","localizedName":"Wither Skeleton Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.wither_skeleton_spawn_egg"},{"id":"minecraft:wolf_spawn_egg","localizedName":"Wolf Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.wolf_spawn_egg"},{"id":"minecraft:wooden_axe","localizedName":"Wooden Axe","maxDamage":59,"maxStackSize":1,"unlocalizedName":"item.minecraft.wooden_axe"},{"id":"minecraft:wooden_hoe","localizedName":"Wooden Hoe","maxDamage":59,"maxStackSize":1,"unlocalizedName":"item.minecraft.wooden_hoe"},{"id":"minecraft:wooden_pickaxe","localizedName":"Wooden Pickaxe","maxDamage":59,"maxStackSize":1,"unlocalizedName":"item.minecraft.wooden_pickaxe"},{"id":"minecraft:wooden_shovel","localizedName":"Wooden Shovel","maxDamage":59,"maxStackSize":1,"unlocalizedName":"item.minecraft.wooden_shovel"},{"id":"minecraft:wooden_sword","localizedName":"Wooden Sword","maxDamage":59,"maxStackSize":1,"unlocalizedName":"item.minecraft.wooden_sword"},{"id":"minecraft:writable_book","localizedName":"Book and Quill","maxDamage":0,"maxStackSize":1,"unlocalizedName":"item.minecraft.writable_book"},{"id":"minecraft:written_book","localizedName":"Written Book","maxDamage":0,"maxStackSize":16,"unlocalizedName":"item.minecraft.written_book"},{"id":"minecraft:yellow_banner","localizedName":"Yellow Banner","maxDamage":0,"maxStackSize":16,"unlocalizedName":"block.minecraft.yellow_banner"},{"id":"minecraft:yellow_bed","localizedName":"Yellow Bed","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.yellow_bed"},{"id":"minecraft:yellow_candle","localizedName":"Yellow Candle","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_candle"},{"id":"minecraft:yellow_carpet","localizedName":"Yellow Carpet","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_carpet"},{"id":"minecraft:yellow_concrete","localizedName":"Yellow Concrete","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_concrete"},{"id":"minecraft:yellow_concrete_powder","localizedName":"Yellow Concrete Powder","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_concrete_powder"},{"id":"minecraft:yellow_dye","localizedName":"Yellow Dye","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.yellow_dye"},{"id":"minecraft:yellow_glazed_terracotta","localizedName":"Yellow Glazed Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_glazed_terracotta"},{"id":"minecraft:yellow_shulker_box","localizedName":"Yellow Shulker Box","maxDamage":0,"maxStackSize":1,"unlocalizedName":"block.minecraft.yellow_shulker_box"},{"id":"minecraft:yellow_stained_glass","localizedName":"Yellow Stained Glass","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_stained_glass"},{"id":"minecraft:yellow_stained_glass_pane","localizedName":"Yellow Stained Glass Pane","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_stained_glass_pane"},{"id":"minecraft:yellow_terracotta","localizedName":"Yellow Terracotta","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_terracotta"},{"id":"minecraft:yellow_wool","localizedName":"Yellow Wool","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.yellow_wool"},{"id":"minecraft:zoglin_spawn_egg","localizedName":"Zoglin Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.zoglin_spawn_egg"},{"id":"minecraft:zombie_head","localizedName":"Zombie Head","maxDamage":0,"maxStackSize":64,"unlocalizedName":"block.minecraft.zombie_head"},{"id":"minecraft:zombie_horse_spawn_egg","localizedName":"Zombie Horse Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.zombie_horse_spawn_egg"},{"id":"minecraft:zombie_spawn_egg","localizedName":"Zombie Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.zombie_spawn_egg"},{"id":"minecraft:zombie_villager_spawn_egg","localizedName":"Zombie Villager Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.zombie_villager_spawn_egg"},{"id":"minecraft:zombified_piglin_spawn_egg","localizedName":"Zombified Piglin Spawn Egg","maxDamage":0,"maxStackSize":64,"unlocalizedName":"item.minecraft.zombified_piglin_spawn_egg"}] \ No newline at end of file From 8cc6e7159b68444e2a6b1f395164862b3f80bb65 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Jun 2021 12:45:38 -0700 Subject: [PATCH 107/813] Allow upgrading snakeyaml --- worldedit-core/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index ced8192dbe..a5a2484393 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -29,7 +29,7 @@ configurations { dependencies { constraints { "implementation"( "org.yaml:snakeyaml") { - version { strictly("1.26") } + version { strictly("[1.26,2.0)") } because("Bukkit provides SnakeYaml") } } @@ -37,7 +37,7 @@ dependencies { "api"(project(":worldedit-libs:core")) "implementation"("de.schlichtherle:truezip:6.8.4") "implementation"("org.mozilla:rhino-runtime:1.7.13") - "implementation"("org.yaml:snakeyaml") + "implementation"("org.yaml:snakeyaml:1.26") "implementation"("com.google.guava:guava") "implementation"("com.google.code.findbugs:jsr305:1.3.9") "implementation"("com.google.code.gson:gson") From a0a3e0f5f15de9e3fe7de0763355df26bb2677ea Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Jun 2021 13:58:58 -0700 Subject: [PATCH 108/813] De-parameterize vector tests --- .../worldedit/math/BlockVector3Test.java | 15 +- .../util/collection/BlockMapTest.java | 613 +++++++++++------- .../util/collection/PositionListTest.java | 99 +-- .../util/test/VariedVectorGenerator.java | 23 +- .../worldedit/util/test/VariedVectorPair.java | 32 + .../worldedit/util/test/VariedVectors.java | 87 --- 6 files changed, 500 insertions(+), 369 deletions(-) create mode 100644 worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorPair.java delete mode 100644 worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/math/BlockVector3Test.java b/worldedit-core/src/test/java/com/sk89q/worldedit/math/BlockVector3Test.java index 7828b8c862..d670949360 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/math/BlockVector3Test.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/math/BlockVector3Test.java @@ -19,18 +19,25 @@ package com.sk89q.worldedit.math; -import com.sk89q.worldedit.util.test.VariedVectors; +import com.sk89q.worldedit.util.test.VariedVectorGenerator; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @DisplayName("A 3D block vector") public class BlockVector3Test { - @VariedVectors.Test(capToVanilla = true, divisionsXZ = 25, divisionsY = 25) + @Test @DisplayName("survives a round-trip through long-packing") - void longPackingRoundTrip(BlockVector3 vec) { - assertEquals(vec, BlockVector3.fromLongPackedForm(vec.toLongPackedForm())); + void longPackingRoundTrip() { + new VariedVectorGenerator(true, 25, 25).makeVectorsStream() + .forEach(vec -> + assertEquals( + vec, + BlockVector3.fromLongPackedForm(vec.toLongPackedForm()) + ) + ); } } diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java index 21fed28d33..ef465feab5 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java @@ -29,7 +29,6 @@ import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.Registry; import com.sk89q.worldedit.util.test.VariedVectorGenerator; -import com.sk89q.worldedit.util.test.VariedVectors; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; @@ -111,21 +110,22 @@ private static void registerBlock(String id) { private final BaseBlock air = checkNotNull(BlockTypes.AIR).getDefaultState().toBaseBlock(); private final BaseBlock oakWood = checkNotNull(BlockTypes.OAK_WOOD).getDefaultState().toBaseBlock(); - private final BlockMap map = BlockMap.createForBaseBlock(); + private AutoCloseable mocks; @BeforeEach void setUp() { - MockitoAnnotations.initMocks(this); + mocks = MockitoAnnotations.openMocks(this); } @AfterEach - void tearDown() { - map.clear(); + void tearDown() throws Exception { + mocks.close(); } @Test @DisplayName("throws ClassCastException if invalid argument to get") void throwsFromGetOnInvalidArgument() { + BlockMap map = BlockMap.createForBaseBlock(); assertThrows(ClassCastException.class, () -> map.get("")); } @@ -136,30 +136,35 @@ class WhenCreated { @Test @DisplayName("is empty") void isEmpty() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(0, map.size()); } @Test @DisplayName("is equal to another empty map") void isEqualToEmptyMap() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(ImmutableMap.of(), map); } @Test @DisplayName("has the same hashCode as another empty map") void isHashCodeEqualToEmptyMap() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(ImmutableMap.of().hashCode(), map.hashCode()); } @Test @DisplayName("returns `null` from get") void returnsNullFromGet() { + BlockMap map = BlockMap.createForBaseBlock(); assertNull(map.get(BlockVector3.ZERO)); } @Test @DisplayName("contains no keys") void containsNoKeys() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(0, map.keySet().size()); assertFalse(map.containsKey(BlockVector3.ZERO)); } @@ -167,6 +172,7 @@ void containsNoKeys() { @Test @DisplayName("contains no values") void containsNoValues() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(0, map.values().size()); assertFalse(map.containsValue(air)); } @@ -174,32 +180,41 @@ void containsNoValues() { @Test @DisplayName("contains no entries") void containsNoEntries() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(0, map.entrySet().size()); } @Test @DisplayName("returns the default value from getOrDefault") void returnsDefaultFromGetOrDefault() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(air, map.getOrDefault(BlockVector3.ZERO, air)); } @Test @DisplayName("never calls the forEach action") - void neverCallsForEachAction() { - map.forEach(biConsumer); - verifyNoMoreInteractions(biConsumer); + void neverCallsForEachAction() throws Exception { + try (AutoCloseable ignored = MockitoAnnotations.openMocks(this)) { + BlockMap map = BlockMap.createForBaseBlock(); + map.forEach(biConsumer); + verifyNoMoreInteractions(biConsumer); + } } @Test @DisplayName("never calls the replaceAll function") - void neverCallsReplaceAllFunction() { - map.replaceAll(biFunction); - verifyNoMoreInteractions(biFunction); + void neverCallsReplaceAllFunction() throws Exception { + try (AutoCloseable ignored = MockitoAnnotations.openMocks(this)) { + BlockMap map = BlockMap.createForBaseBlock(); + map.replaceAll(biFunction); + verifyNoMoreInteractions(biFunction); + } } @Test @DisplayName("inserts on putIfAbsent") void insertOnPutIfAbsent() { + BlockMap map = BlockMap.createForBaseBlock(); assertNull(map.putIfAbsent(BlockVector3.ZERO, air)); assertEquals(1, map.size()); assertEquals(air, map.get(BlockVector3.ZERO)); @@ -208,18 +223,21 @@ void insertOnPutIfAbsent() { @Test @DisplayName("remove(key) returns null") void removeKeyReturnsNull() { + BlockMap map = BlockMap.createForBaseBlock(); assertNull(map.remove(BlockVector3.ZERO)); } @Test @DisplayName("remove(key, value) returns false") void removeKeyValueReturnsFalse() { + BlockMap map = BlockMap.createForBaseBlock(); assertFalse(map.remove(BlockVector3.ZERO, air)); } @Test @DisplayName("does nothing on replace") void doesNothingOnReplace() { + BlockMap map = BlockMap.createForBaseBlock(); assertNull(map.replace(BlockVector3.ZERO, air)); assertEquals(0, map.size()); assertFalse(map.replace(BlockVector3.ZERO, null, air)); @@ -229,6 +247,7 @@ void doesNothingOnReplace() { @Test @DisplayName("inserts on computeIfAbsent") void insertOnComputeIfAbsent() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(air, map.computeIfAbsent(BlockVector3.ZERO, k -> air)); assertEquals(1, map.size()); assertEquals(air, map.get(BlockVector3.ZERO)); @@ -237,6 +256,7 @@ void insertOnComputeIfAbsent() { @Test @DisplayName("inserts on compute") void insertOnCompute() { + BlockMap map = BlockMap.createForBaseBlock(); assertEquals(air, map.compute(BlockVector3.ZERO, (k, v) -> air)); assertEquals(1, map.size()); assertEquals(air, map.get(BlockVector3.ZERO)); @@ -245,17 +265,21 @@ void insertOnCompute() { @Test @DisplayName("does nothing on computeIfPresent") void doesNothingOnComputeIfPresent() { + BlockMap map = BlockMap.createForBaseBlock(); assertNull(map.computeIfPresent(BlockVector3.ZERO, (k, v) -> air)); assertEquals(0, map.size()); } @Test @DisplayName("inserts on merge, without calling merge function") - void insertsOnMerge() { - assertEquals(air, map.merge(BlockVector3.ZERO, air, mergeFunction)); - assertEquals(1, map.size()); - assertEquals(air, map.get(BlockVector3.ZERO)); - verifyNoMoreInteractions(mergeFunction); + void insertsOnMerge() throws Exception { + try (AutoCloseable ignored = MockitoAnnotations.openMocks(this)) { + BlockMap map = BlockMap.createForBaseBlock(); + assertEquals(air, map.merge(BlockVector3.ZERO, air, mergeFunction)); + assertEquals(1, map.size()); + assertEquals(air, map.get(BlockVector3.ZERO)); + verifyNoMoreInteractions(mergeFunction); + } } } @@ -264,328 +288,450 @@ void insertsOnMerge() { @DisplayName("after having an entry added") class AfterEntryAdded { - // Note: This section of tests would really benefit from - // being able to parameterize classes. It's not part of JUnit - // yet though: https://github.com/junit-team/junit5/issues/878 + private final VariedVectorGenerator generator = new VariedVectorGenerator(); - @VariedVectors.Test + @Test @DisplayName("has a size of one") - void hasSizeOne(BlockVector3 vec) { - map.put(vec, air); - assertEquals(1, map.size()); + void hasSizeOne() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(1, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("is equal to another map with the same entry") - void isEqualToSimilarMap(BlockVector3 vec) { - map.put(vec, air); - assertEquals(ImmutableMap.of(vec, air), map); + void isEqualToSimilarMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(ImmutableMap.of(vec, air), map); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("is not equal to another map with a different key") - void isNotEqualToDifferentKeyMap(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertNotEquals(ImmutableMap.of(nonMatch, air), map); + void isNotEqualToDifferentKeyMap() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(ImmutableMap.of(nonMatch, air), map); + }); } - @VariedVectors.Test + @Test @DisplayName("is not equal to another map with a different value") - void isNotEqualToDifferentValueMap(BlockVector3 vec) { - map.put(vec, air); - assertNotEquals(ImmutableMap.of(vec, oakWood), map); + void isNotEqualToDifferentValueMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(ImmutableMap.of(vec, oakWood), map); + }); } - @VariedVectors.Test + @Test @DisplayName("is not equal to an empty map") - void isNotEqualToEmptyMap(BlockVector3 vec) { - map.put(vec, air); - assertNotEquals(ImmutableMap.of(), map); + void isNotEqualToEmptyMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(ImmutableMap.of(), map); + }); } - @VariedVectors.Test + @Test @DisplayName("has the same hashCode as another map with the same entry") - void isHashCodeEqualToSimilarMap(BlockVector3 vec) { - map.put(vec, air); - assertEquals(ImmutableMap.of(vec, air).hashCode(), map.hashCode()); + void isHashCodeEqualToSimilarMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(ImmutableMap.of(vec, air).hashCode(), map.hashCode()); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("has a different hashCode from another map with a different key") - void isHashCodeNotEqualToDifferentKeyMap(BlockVector3 vec, BlockVector3 nonMatch) { - assumeFalse(vec.hashCode() == nonMatch.hashCode(), - "Vectors have equivalent hashCodes, maps will too."); - map.put(vec, air); - assertNotEquals(ImmutableMap.of(nonMatch, air).hashCode(), map.hashCode()); + void isHashCodeNotEqualToDifferentKeyMap() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + assumeFalse(vec.hashCode() == nonMatch.hashCode(), + "Vectors have equivalent hashCodes, maps will too."); + map.put(vec, air); + assertNotEquals(ImmutableMap.of(nonMatch, air).hashCode(), map.hashCode()); + }); } - @VariedVectors.Test + @Test @DisplayName("has a different hashCode from another map with a different value") - void isHashCodeNotEqualToDifferentValueMap(BlockVector3 vec) { - map.put(vec, air); - assertNotEquals(ImmutableMap.of(vec, oakWood).hashCode(), map.hashCode()); + void isHashCodeNotEqualToDifferentValueMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(ImmutableMap.of(vec, oakWood).hashCode(), map.hashCode()); + }); } - @VariedVectors.Test + @Test @DisplayName("has a different hashCode from an empty map") - void isHashCodeNotEqualToEmptyMap(BlockVector3 vec) { - map.put(vec, air); - assertNotEquals(ImmutableMap.of().hashCode(), map.hashCode()); + void isHashCodeNotEqualToEmptyMap() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(ImmutableMap.of().hashCode(), map.hashCode()); + }); } - @VariedVectors.Test + @Test @DisplayName("returns value from get") - void returnsValueFromGet(BlockVector3 vec) { - map.put(vec, air); - assertEquals(air, map.get(vec)); + void returnsValueFromGet() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("returns `null` from get with different key") - void returnsValueFromGet(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertNotEquals(air, map.get(nonMatch)); + void returnsValueFromGetDifferentKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNotEquals(air, map.get(nonMatch)); + }); } - @VariedVectors.Test + @Test @DisplayName("contains the key") - void containsTheKey(BlockVector3 vec) { - map.put(vec, air); - assertEquals(1, map.keySet().size()); - assertTrue(map.keySet().contains(vec)); - assertTrue(map.containsKey(vec)); + void containsTheKey() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(1, map.keySet().size()); + assertTrue(map.keySet().contains(vec)); + assertTrue(map.containsKey(vec)); + }); } - @VariedVectors.Test + @Test @DisplayName("contains the value") - void containsTheValue(BlockVector3 vec) { - map.put(vec, air); - assertEquals(1, map.values().size()); - assertTrue(map.values().contains(air)); - assertTrue(map.containsValue(air)); + void containsTheValue() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(1, map.values().size()); + assertTrue(map.values().contains(air)); + assertTrue(map.containsValue(air)); + }); } - @VariedVectors.Test + @Test @DisplayName("contains the entry") - void containsTheEntry(BlockVector3 vec) { - map.put(vec, air); - assertEquals(1, map.entrySet().size()); - assertEquals(new AbstractMap.SimpleImmutableEntry<>(vec, air), map.entrySet().iterator().next()); + void containsTheEntry() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(1, map.entrySet().size()); + assertEquals(new AbstractMap.SimpleImmutableEntry<>(vec, air), map.entrySet().iterator().next()); + }); } - @VariedVectors.Test + @Test @DisplayName("returns the provided value from getOrDefault") - void returnsProvidedFromGetOrDefault(BlockVector3 vec) { - map.put(vec, air); - assertEquals(air, map.getOrDefault(vec, oakWood)); + void returnsProvidedFromGetOrDefault() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(air, map.getOrDefault(vec, oakWood)); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("returns the default value from getOrDefault with a different key") - void returnsDefaultFromGetOrDefaultWrongKey(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertEquals(oakWood, map.getOrDefault(nonMatch, oakWood)); + void returnsDefaultFromGetOrDefaultWrongKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.getOrDefault(nonMatch, oakWood)); + }); } - @VariedVectors.Test + @Test @DisplayName("calls the forEach action once") - void neverCallsForEachAction(BlockVector3 vec) { - map.put(vec, air); - map.forEach(biConsumer); - verify(biConsumer).accept(vec, air); - verifyNoMoreInteractions(biConsumer); + void neverCallsForEachAction() { + generator.makeVectorsStream().forEach(vec -> { + try (AutoCloseable ignored = MockitoAnnotations.openMocks(this)) { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + map.forEach(biConsumer); + verify(biConsumer).accept(vec, air); + verifyNoMoreInteractions(biConsumer); + } catch (Exception e) { + throw new AssertionError(e); + } + }); } - @VariedVectors.Test + @Test @DisplayName("replaces value using replaceAll") - void neverCallsReplaceAllFunction(BlockVector3 vec) { - map.put(vec, air); - map.replaceAll((v, b) -> oakWood); - assertEquals(oakWood, map.get(vec)); + void neverCallsReplaceAllFunction() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + map.replaceAll((v, b) -> oakWood); + assertEquals(oakWood, map.get(vec)); + }); } - @VariedVectors.Test + @Test @DisplayName("does not insert on `putIfAbsent`") - void noInsertOnPutIfAbsent(BlockVector3 vec) { - map.put(vec, air); - assertEquals(air, map.putIfAbsent(vec, oakWood)); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + void noInsertOnPutIfAbsent() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(air, map.putIfAbsent(vec, oakWood)); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("inserts on `putIfAbsent` to a different key") - void insertOnPutIfAbsentDifferentKey(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertNull(map.putIfAbsent(nonMatch, oakWood)); - assertEquals(2, map.size()); - assertEquals(air, map.get(vec)); - assertEquals(oakWood, map.get(nonMatch)); + void insertOnPutIfAbsentDifferentKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNull(map.putIfAbsent(nonMatch, oakWood)); + assertEquals(2, map.size()); + assertEquals(air, map.get(vec)); + assertEquals(oakWood, map.get(nonMatch)); + }); } - @VariedVectors.Test + @Test @DisplayName("remove(key) returns the old value") - void removeKeyReturnsOldValue(BlockVector3 vec) { - map.put(vec, air); - assertEquals(air, map.remove(vec)); - assertEquals(0, map.size()); + void removeKeyReturnsOldValue() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(air, map.remove(vec)); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("keySet().remove(key) removes the entry from the map") - void keySetRemovePassesThrough(BlockVector3 vec) { - map.put(vec, air); - assertTrue(map.keySet().remove(vec)); - assertEquals(0, map.size()); + void keySetRemovePassesThrough() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertTrue(map.keySet().remove(vec)); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("entrySet().iterator().remove() removes the entry from the map") - void entrySetIteratorRemovePassesThrough(BlockVector3 vec) { - map.put(vec, air); - Iterator> iterator = map.entrySet().iterator(); - assertTrue(iterator.hasNext()); - Map.Entry entry = iterator.next(); - assertEquals(entry.getKey(), vec); - iterator.remove(); - assertEquals(0, map.size()); + void entrySetIteratorRemovePassesThrough() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + Iterator> iterator = map.entrySet().iterator(); + assertTrue(iterator.hasNext()); + Map.Entry entry = iterator.next(); + assertEquals(entry.getKey(), vec); + iterator.remove(); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("remove(nonMatch) returns null") - void removeNonMatchingKeyReturnsNull(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertNull(map.remove(nonMatch)); - assertEquals(1, map.size()); + void removeNonMatchingKeyReturnsNull() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertNull(map.remove(nonMatch)); + assertEquals(1, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("remove(key, value) returns true") - void removeKeyValueReturnsTrue(BlockVector3 vec) { - map.put(vec, air); - assertTrue(map.remove(vec, air)); - assertEquals(0, map.size()); + void removeKeyValueReturnsTrue() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertTrue(map.remove(vec, air)); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("remove(key, value) returns false for wrong value") - void removeKeyValueReturnsFalseWrongValue(BlockVector3 vec) { - map.put(vec, air); - assertFalse(map.remove(vec, oakWood)); - assertEquals(1, map.size()); + void removeKeyValueReturnsFalseWrongValue() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertFalse(map.remove(vec, oakWood)); + assertEquals(1, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("replaces value at key") - void replacesValueAtKey(BlockVector3 vec) { - map.put(vec, air); + void replacesValueAtKey() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); - assertEquals(air, map.replace(vec, oakWood)); - assertEquals(1, map.size()); - assertEquals(oakWood, map.get(vec)); + assertEquals(air, map.replace(vec, oakWood)); + assertEquals(1, map.size()); + assertEquals(oakWood, map.get(vec)); - assertTrue(map.replace(vec, oakWood, air)); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + assertTrue(map.replace(vec, oakWood, air)); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("does not replace value at different key") - void doesNotReplaceAtDifferentKey(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); + void doesNotReplaceAtDifferentKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); - assertNull(map.replace(nonMatch, oakWood)); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + assertNull(map.replace(nonMatch, oakWood)); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); - assertFalse(map.replace(nonMatch, air, oakWood)); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + assertFalse(map.replace(nonMatch, air, oakWood)); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test + @Test @DisplayName("does not insert on computeIfAbsent") - void doesNotInsertComputeIfAbsent(BlockVector3 vec) { - map.put(vec, air); - assertEquals(air, map.computeIfAbsent(vec, k -> { - assertEquals(vec, k); - return oakWood; - })); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + void doesNotInsertComputeIfAbsent() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(air, map.computeIfAbsent(vec, k -> { + assertEquals(vec, k); + return oakWood; + })); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("inserts on computeIfAbsent with different key") - void insertsOnComputeIfAbsentDifferentKey(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertEquals(oakWood, map.computeIfAbsent(nonMatch, k -> { - assertEquals(nonMatch, k); - return oakWood; - })); - assertEquals(2, map.size()); - assertEquals(air, map.get(vec)); - assertEquals(oakWood, map.get(nonMatch)); + void insertsOnComputeIfAbsentDifferentKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.computeIfAbsent(nonMatch, k -> { + assertEquals(nonMatch, k); + return oakWood; + })); + assertEquals(2, map.size()); + assertEquals(air, map.get(vec)); + assertEquals(oakWood, map.get(nonMatch)); + }); } - @VariedVectors.Test + @Test @DisplayName("replaces on compute") - void replaceOnCompute(BlockVector3 vec) { - map.put(vec, air); - assertEquals(oakWood, map.compute(vec, (k, v) -> { - assertEquals(vec, k); - assertEquals(air, v); - return oakWood; - })); - assertEquals(1, map.size()); - assertEquals(oakWood, map.get(vec)); - assertNull(map.compute(vec, (k, v) -> null)); - assertEquals(0, map.size()); + void replaceOnCompute() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.compute(vec, (k, v) -> { + assertEquals(vec, k); + assertEquals(air, v); + return oakWood; + })); + assertEquals(1, map.size()); + assertEquals(oakWood, map.get(vec)); + assertNull(map.compute(vec, (k, v) -> null)); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test(provideNonMatching = true) + @Test @DisplayName("inserts on compute with different key") - void insertOnComputeDifferentKey(BlockVector3 vec, BlockVector3 nonMatch) { - map.put(vec, air); - assertEquals(oakWood, map.compute(nonMatch, (k, v) -> { - assertEquals(nonMatch, k); - assertNull(v); - return oakWood; - })); - assertEquals(2, map.size()); - assertEquals(air, map.get(vec)); - assertEquals(oakWood, map.get(nonMatch)); - assertNull(map.compute(nonMatch, (k, v) -> null)); - assertEquals(1, map.size()); - assertEquals(air, map.get(vec)); + void insertOnComputeDifferentKey() { + generator.makePairedVectorsStream().forEach(pair -> { + BlockVector3 vec = pair.first; + BlockVector3 nonMatch = pair.second; + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.compute(nonMatch, (k, v) -> { + assertEquals(nonMatch, k); + assertNull(v); + return oakWood; + })); + assertEquals(2, map.size()); + assertEquals(air, map.get(vec)); + assertEquals(oakWood, map.get(nonMatch)); + assertNull(map.compute(nonMatch, (k, v) -> null)); + assertEquals(1, map.size()); + assertEquals(air, map.get(vec)); + }); } - @VariedVectors.Test + @Test @DisplayName("replaces on computeIfPresent") - void replacesOnComputeIfPresent(BlockVector3 vec) { - map.put(vec, air); - assertEquals(oakWood, map.computeIfPresent(vec, (k, v) -> { - assertEquals(vec, k); - assertEquals(air, v); - return oakWood; - })); - assertEquals(1, map.size()); - assertEquals(oakWood, map.get(vec)); - assertNull(map.computeIfPresent(vec, (k, v) -> null)); - assertEquals(0, map.size()); + void replacesOnComputeIfPresent() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.computeIfPresent(vec, (k, v) -> { + assertEquals(vec, k); + assertEquals(air, v); + return oakWood; + })); + assertEquals(1, map.size()); + assertEquals(oakWood, map.get(vec)); + assertNull(map.computeIfPresent(vec, (k, v) -> null)); + assertEquals(0, map.size()); + }); } - @VariedVectors.Test + @Test @DisplayName("inserts on merge, with call to merge function") - void insertsOnMerge(BlockVector3 vec) { - map.put(vec, air); - assertEquals(oakWood, map.merge(vec, oakWood, (o, n) -> { - assertEquals(air, o); - assertEquals(oakWood, n); - return n; - })); - assertEquals(1, map.size()); - assertEquals(oakWood, map.get(vec)); + void insertsOnMerge() { + generator.makeVectorsStream().forEach(vec -> { + BlockMap map = BlockMap.createForBaseBlock(); + map.put(vec, air); + assertEquals(oakWood, map.merge(vec, oakWood, (o, n) -> { + assertEquals(air, o); + assertEquals(oakWood, n); + return n; + })); + assertEquals(1, map.size()); + assertEquals(oakWood, map.get(vec)); + }); } } @@ -593,6 +739,7 @@ void insertsOnMerge(BlockVector3 vec) { @Test @DisplayName("contains all inserted vectors") void containsAllInsertedVectors() { + BlockMap map = BlockMap.createForBaseBlock(); Set allVectors = new VariedVectorGenerator() .makeVectorsStream() .collect(Collectors.toSet()); diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/PositionListTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/PositionListTest.java index e3452113f1..fda8d867d5 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/PositionListTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/PositionListTest.java @@ -19,9 +19,9 @@ package com.sk89q.worldedit.util.collection; -import com.sk89q.worldedit.math.BlockVector3; -import com.sk89q.worldedit.util.test.VariedVectors; +import com.sk89q.worldedit.util.test.VariedVectorGenerator; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -29,70 +29,91 @@ abstract class PositionListTest { static class Long extends PositionListTest { - protected Long() { - super(new LongPositionList()); + @Override + protected PositionList createPositionList() { + return new LongPositionList(); } } static class Vector extends PositionListTest { - protected Vector() { - super(new VectorPositionList()); + @Override + protected PositionList createPositionList() { + return new VectorPositionList(); } } - private final PositionList positionList; + private final VariedVectorGenerator generator = new VariedVectorGenerator(true); - protected PositionListTest(PositionList positionList) { - this.positionList = positionList; - } + protected abstract PositionList createPositionList(); - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling add(vec) increases size by 1") - void addIncreasesSizeByOne(BlockVector3 vec) { - positionList.add(vec); - assertEquals(1, positionList.size()); + void addIncreasesSizeByOne() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertEquals(1, positionList.size()); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling get(0) after add(vec) returns vec") - void canGetVectorAfterAdd(BlockVector3 vec) { - positionList.add(vec); - assertEquals(vec, positionList.get(0)); + void canGetVectorAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertEquals(vec, positionList.get(0)); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling iterator().hasNext() after add(vec) returns true") - void hasNextAfterAdd(BlockVector3 vec) { - positionList.add(vec); - assertTrue(positionList.iterator().hasNext()); + void hasNextAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertTrue(positionList.iterator().hasNext()); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling iterator().next() after add(vec) returns vec") - void nextAfterAdd(BlockVector3 vec) { - positionList.add(vec); - assertEquals(vec, positionList.iterator().next()); + void nextAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertEquals(vec, positionList.iterator().next()); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling reverseIterator().hasNext() after add(vec) returns true") - void reverseHasNextAfterAdd(BlockVector3 vec) { - positionList.add(vec); - assertTrue(positionList.reverseIterator().hasNext()); + void reverseHasNextAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertTrue(positionList.reverseIterator().hasNext()); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling reverseIterator().next() after add(vec) returns vec") - void reverseNextAfterAdd(BlockVector3 vec) { - positionList.add(vec); - assertEquals(vec, positionList.reverseIterator().next()); + void reverseNextAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + assertEquals(vec, positionList.reverseIterator().next()); + }); } - @VariedVectors.Test(capToVanilla = true) + @Test @DisplayName("calling clear() after add(vec) makes the size() zero") - void clearAfterAdd(BlockVector3 vec) { - positionList.add(vec); - positionList.clear(); - assertEquals(0, positionList.size()); + void clearAfterAdd() { + generator.makeVectorsStream().forEach(vec -> { + PositionList positionList = createPositionList(); + positionList.add(vec); + positionList.clear(); + assertEquals(0, positionList.size()); + }); } } diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java index e7acc67ad9..b22465fe5c 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorGenerator.java @@ -30,12 +30,10 @@ public class VariedVectorGenerator { - // For better coverage assurance, increase these values for a local Gradle run. - // Don't do it for IntelliJ, it'll probably run out of memory. private static final int DEFAULT_DIVISIONS_XZ = - Integer.getInteger("variedvecs.divisions.xz", 2); + Integer.getInteger("variedvecs.divisions.xz", 10); private static final int DEFAULT_DIVISIONS_Y = - Integer.getInteger("variedvecs.divisions.y", 2); + Integer.getInteger("variedvecs.divisions.y", 10); public final int divisionsXZ; public final int divisionsY; @@ -46,7 +44,11 @@ public class VariedVectorGenerator { public final Set alwaysInclude; public VariedVectorGenerator() { - this(false, -1, -1); + this(false); + } + + public VariedVectorGenerator(boolean vanilla) { + this(vanilla, -1, -1); } public VariedVectorGenerator(boolean vanilla, int divisionsXZ, int divisionsY) { @@ -68,7 +70,16 @@ public Stream makeVectorsStream() { return Stream.concat( alwaysInclude.stream(), Streams.stream(generateVectors()).filter(v -> !alwaysInclude.contains(v)) - ); + ).parallel(); + } + + /** + * Gives two vectors from {@link #makeVectorsStream()} that aren't the same. + */ + public Stream makePairedVectorsStream() { + return makeVectorsStream() + .flatMap(vec -> makeVectorsStream().filter(v -> !v.equals(vec)) + .map(v -> new VariedVectorPair(vec, v))); } private Iterator generateVectors() { diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorPair.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorPair.java new file mode 100644 index 0000000000..2d55b7b0d1 --- /dev/null +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectorPair.java @@ -0,0 +1,32 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.test; + +import com.sk89q.worldedit.math.BlockVector3; + +public class VariedVectorPair { + public final BlockVector3 first; + public final BlockVector3 second; + + public VariedVectorPair(BlockVector3 first, BlockVector3 second) { + this.first = first; + this.second = second; + } +} diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java deleted file mode 100644 index 3201e8c7ba..0000000000 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/VariedVectors.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * WorldEdit, a Minecraft world manipulation toolkit - * Copyright (C) sk89q - * Copyright (C) WorldEdit team and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package com.sk89q.worldedit.util.test; - -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.ArgumentsProvider; -import org.junit.jupiter.params.provider.ArgumentsSource; -import org.junit.jupiter.params.support.AnnotationConsumer; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.util.stream.Stream; - -/** - * Argument provider for various vectors. - */ -public final class VariedVectors implements ArgumentsProvider, AnnotationConsumer { - - @Target({ ElementType.ANNOTATION_TYPE, ElementType.METHOD }) - @Retention(RetentionPolicy.RUNTIME) - @Documented - @ArgumentsSource(VariedVectors.class) - @ParameterizedTest(name = ParameterizedTest.ARGUMENTS_PLACEHOLDER) - public @interface Test { - - /** - * If {@code true}, provide a non-matching vector from - * the existing vectors set as well. This will nearly - * square the number of tests executed, since it will - * test every non-matching vector. - */ - boolean provideNonMatching() default false; - - /** - * If {@code true}, only provide vectors inside the range of Vanilla MC. - * This sets the Y range [-2048, 2048). - */ - boolean capToVanilla() default false; - - int divisionsXZ() default -1; - - int divisionsY() default -1; - - } - - private boolean provideNonMatching; - private VariedVectorGenerator generator; - - @Override - public void accept(Test test) { - provideNonMatching = test.provideNonMatching(); - generator = new VariedVectorGenerator(test.capToVanilla(), test.divisionsXZ(), test.divisionsY()); - } - - @Override - public Stream provideArguments(ExtensionContext context) { - if (provideNonMatching) { - return generator.makeVectorsStream() - .flatMap(vec -> generator.makeVectorsStream().filter(v -> !v.equals(vec)) - .map(v -> Arguments.of(vec, v))); - } - return generator.makeVectorsStream().map(Arguments::of); - } - -} From bf78034628cb5f4922a775d2e38f73316993eb75 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Jun 2021 14:01:04 -0700 Subject: [PATCH 109/813] Drop enforcedPlatform to platform --- worldedit-bukkit/build.gradle.kts | 2 +- worldedit-fabric/build.gradle.kts | 2 +- worldedit-forge/build.gradle.kts | 2 +- worldedit-sponge/build.gradle.kts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 9eaeec4e48..2b086e539c 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { exclude("junit", "junit") } - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Spigot provides Log4J (sort of, not in API, implicitly part of server)") }) "implementation"("org.apache.logging.log4j:log4j-api") diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index e7c6cfce6a..60398d6384 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -46,7 +46,7 @@ repositories { dependencies { "api"(project(":worldedit-core")) - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Mojang provides Log4J at 2.14.1") }) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index f499af0218..472f21dbdf 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -27,7 +27,7 @@ configurations.all { dependencies { "api"(project(":worldedit-core")) - "implementation"(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Mojang provides Log4J at 2.14.1") }) diff --git a/worldedit-sponge/build.gradle.kts b/worldedit-sponge/build.gradle.kts index 939452916a..aa2cb0da82 100644 --- a/worldedit-sponge/build.gradle.kts +++ b/worldedit-sponge/build.gradle.kts @@ -23,7 +23,7 @@ dependencies { api("org.spongepowered:spongeapi:7.1.0") { exclude(group = "org.slf4j", module = "slf4j-api") } - implementation(enforcedPlatform("org.apache.logging.log4j:log4j-bom:2.14.1") { + implementation(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Sponge 8 (will?) provides Log4J at 2.14.1") }) api("org.apache.logging.log4j:log4j-api") From 4d6c1973f3ffdc54be6d0fb8ef8419c98bfa598c Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Jun 2021 14:12:09 -0700 Subject: [PATCH 110/813] Parallelize tests properly --- .../expression/BaseExpressionTest.java | 3 +++ .../util/collection/BlockMapTest.java | 8 +++++- .../worldedit/util/test/ResourceLockKeys.java | 27 +++++++++++++++++++ .../test/resources/junit-platform.properties | 2 +- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 worldedit-core/src/test/java/com/sk89q/worldedit/util/test/ResourceLockKeys.java diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java index 712d918bdc..694e447f7f 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/internal/expression/BaseExpressionTest.java @@ -25,8 +25,10 @@ import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.extension.platform.Platform; import com.sk89q.worldedit.extension.platform.Preference; +import com.sk89q.worldedit.util.test.ResourceLockKeys; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.parallel.ResourceLock; import java.util.function.Function; import java.util.stream.Collectors; @@ -39,6 +41,7 @@ /** * Common setup code for expression tests. */ +@ResourceLock(ResourceLockKeys.WORLDEDIT_PLATFORM) class BaseExpressionTest { static double readSlot(Expression expr, String name) { diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java index ef465feab5..4cdb25ea23 100644 --- a/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/collection/BlockMapTest.java @@ -28,6 +28,7 @@ import com.sk89q.worldedit.extension.platform.Preference; import com.sk89q.worldedit.math.BlockVector3; import com.sk89q.worldedit.registry.Registry; +import com.sk89q.worldedit.util.test.ResourceLockKeys; import com.sk89q.worldedit.util.test.VariedVectorGenerator; import com.sk89q.worldedit.world.block.BaseBlock; import com.sk89q.worldedit.world.block.BlockType; @@ -40,6 +41,9 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.parallel.Execution; +import org.junit.jupiter.api.parallel.ExecutionMode; +import org.junit.jupiter.api.parallel.ResourceLock; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -67,6 +71,8 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; +@Execution(ExecutionMode.CONCURRENT) +@ResourceLock(ResourceLockKeys.WORLDEDIT_PLATFORM) @DisplayName("An ordered block map") class BlockMapTest { @@ -468,7 +474,7 @@ void returnsDefaultFromGetOrDefaultWrongKey() { @Test @DisplayName("calls the forEach action once") void neverCallsForEachAction() { - generator.makeVectorsStream().forEach(vec -> { + generator.makeVectorsStream().sequential().forEach(vec -> { try (AutoCloseable ignored = MockitoAnnotations.openMocks(this)) { BlockMap map = BlockMap.createForBaseBlock(); map.put(vec, air); diff --git a/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/ResourceLockKeys.java b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/ResourceLockKeys.java new file mode 100644 index 0000000000..b0eb01de98 --- /dev/null +++ b/worldedit-core/src/test/java/com/sk89q/worldedit/util/test/ResourceLockKeys.java @@ -0,0 +1,27 @@ +/* + * WorldEdit, a Minecraft world manipulation toolkit + * Copyright (C) sk89q + * Copyright (C) WorldEdit team and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.sk89q.worldedit.util.test; + +public class ResourceLockKeys { + public static final String WORLDEDIT_PLATFORM = "WORLDEDIT_PLATFORM"; + + private ResourceLockKeys() { + } +} diff --git a/worldedit-core/src/test/resources/junit-platform.properties b/worldedit-core/src/test/resources/junit-platform.properties index 31bfedd9e0..ee7c4fad33 100644 --- a/worldedit-core/src/test/resources/junit-platform.properties +++ b/worldedit-core/src/test/resources/junit-platform.properties @@ -2,4 +2,4 @@ junit.jupiter.execution.parallel.enabled=true junit.jupiter.execution.parallel.mode.default=concurrent junit.jupiter.execution.parallel.mode.classes.default=same_thread junit.jupiter.execution.parallel.config.strategy=dynamic -junit.jupiter.execution.parallel.config.dynamic.factor=1 +junit.jupiter.execution.parallel.config.dynamic.factor=4 From 3393d2701c68fdeb171bcf5a4a3a4fac8ce559fc Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Fri, 11 Jun 2021 14:46:10 -0700 Subject: [PATCH 111/813] Try require for snake yaml --- worldedit-core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index a5a2484393..ba099f21e4 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -29,7 +29,7 @@ configurations { dependencies { constraints { "implementation"( "org.yaml:snakeyaml") { - version { strictly("[1.26,2.0)") } + version { require("1.26") } because("Bukkit provides SnakeYaml") } } From 2beeec228b9606cefc436833ff06e7e74594bd94 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 12 Jun 2021 00:32:56 -0700 Subject: [PATCH 112/813] Update cdist --- crowdin-distributor.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crowdin-distributor.sh b/crowdin-distributor.sh index 0171f85e53..564dfe011c 100755 --- a/crowdin-distributor.sh +++ b/crowdin-distributor.sh @@ -2,7 +2,7 @@ set -e # For snapshots, please specify the full version (with date and time) -cdist_version="0.1.0-20201128.225038-7" +cdist_version="0.1.0-20210612.072458-9" cdist_path_version="$cdist_version" if [ -n "${cdist_version#*-}" ]; then @@ -20,5 +20,5 @@ export CROWDIN_DISTRIBUTOR_MODULE="worldedit-lang" ## Full path to the source file, will be uploaded to crowdin, must already have uploaded at least once (will not create a new file) export CROWDIN_DISTRIBUTOR_SOURCE_FILE="./worldedit-core/src/main/resources/lang/strings.json" # Artifactory & Build Number is set by CI -export CROWDIN_DISTRIBUTOR_OPTS="--enable-preview" +export CROWDIN_DISTRIBUTOR_OPTS="" "./build/crowdin-distributor-$cdist_path_version/bin/crowdin-distributor" From e2ad0427ef98fc68e67775a94275e539c163eefe Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 12 Jun 2021 00:45:38 -0700 Subject: [PATCH 113/813] Update bundled language files --- worldedit-core/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index ba099f21e4..57930ccf87 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -59,7 +59,7 @@ dependencies { "compileOnly"("com.google.auto.value:auto-value-annotations:${Versions.AUTO_VALUE}") "annotationProcessor"("com.google.auto.value:auto-value:${Versions.AUTO_VALUE}") - "languageFiles"("${project.group}:worldedit-lang:7.2.1:68@zip") + "languageFiles"("${project.group}:worldedit-lang:7.2.6:289@zip") "testRuntimeOnly"("org.apache.logging.log4j:log4j-core:2.14.1") } From 47b64257fb3eca95bd3078cd916b156fe5d0d41d Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 12 Jun 2021 20:39:38 -0700 Subject: [PATCH 114/813] Restrict the weird forge maven to known content --- buildSrc/build.gradle.kts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index e0215f73cd..9bb4cb22ac 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,10 +8,6 @@ plugins { repositories { mavenCentral() gradlePluginPortal() - maven { - name = "Forge Maven" - url = uri("https://maven.minecraftforge.net/") - } maven { name = "Fabric" url = uri("https://maven.fabricmc.net/") @@ -24,6 +20,13 @@ repositories { name = "EngineHub Repository" url = uri("https://maven.enginehub.org/repo/") } + maven { + name = "Forge Maven" + url = uri("https://maven.minecraftforge.net/") + content { + includeGroupByRegex("net\\.minecraftforge\\..*") + } + } } val properties = Properties().also { props -> From 043c3315aa984e6d845ead4c9e372fabaf0bb8aa Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sun, 13 Jun 2021 11:32:38 -0700 Subject: [PATCH 115/813] Fix Scuffed POMs (#1779) * Repair fabric POM * Fix-up a ton of publishing errors * Remove shadow jar from publishing * Remove shadow application from platform/core --- buildSrc/build.gradle.kts | 2 +- buildSrc/src/main/kotlin/PlatformConfig.kt | 11 ++- settings.gradle.kts | 3 +- worldedit-bukkit/build.gradle.kts | 22 ++++- worldedit-core/build.gradle.kts | 7 ++ worldedit-fabric/build.gradle.kts | 31 ++----- worldedit-forge/build.gradle.kts | 101 ++++++++++++++------- worldedit-mod/build.gradle.kts | 6 +- 8 files changed, 113 insertions(+), 70 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 9bb4cb22ac..302d78f8f2 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -44,7 +44,7 @@ dependencies { implementation("com.github.jengelman.gradle.plugins:shadow:6.1.0") implementation("org.jfrog.buildinfo:build-info-extractor-gradle:4.21.0") implementation("org.spongepowered:SpongeGradle:0.11.5") - // implementation("net.minecraftforge.gradle:ForgeGradle:4.1.12") + implementation("net.minecraftforge.gradle:ForgeGradle:5.0.9") implementation("net.fabricmc:fabric-loom:$loomVersion") implementation("net.fabricmc:sponge-mixin:$mixinVersion") implementation("org.enginehub.gradle:gradle-codecov-plugin:0.1.0") diff --git a/buildSrc/src/main/kotlin/PlatformConfig.kt b/buildSrc/src/main/kotlin/PlatformConfig.kt index 8ecb9344c5..15e6991b3e 100644 --- a/buildSrc/src/main/kotlin/PlatformConfig.kt +++ b/buildSrc/src/main/kotlin/PlatformConfig.kt @@ -1,5 +1,6 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import org.gradle.api.Project +import org.gradle.api.component.AdhocComponentWithVariants import org.gradle.api.plugins.JavaPluginExtension import org.gradle.api.plugins.quality.CheckstyleExtension import org.gradle.api.publish.PublishingExtension @@ -32,7 +33,6 @@ fun Project.applyPlatformAndCoreConfiguration() { apply(plugin = "idea") apply(plugin = "maven-publish") apply(plugin = "checkstyle") - apply(plugin = "com.github.johnrengelman.shadow") apply(plugin = "com.jfrog.artifactory") ext["internalVersion"] = "$version+${rootProject.ext["gitCommitHash"]}" @@ -82,7 +82,7 @@ fun Project.applyPlatformAndCoreConfiguration() { the().withJavadocJar() - if (name == "worldedit-core" || name == "worldedit-bukkit") { + if (name in setOf("worldedit-core", "worldedit-bukkit", "worldedit-fabric")) { the().withSourcesJar() } @@ -93,7 +93,6 @@ fun Project.applyPlatformAndCoreConfiguration() { configure { publications { register("maven") { - from(components["java"]) versionMapping { usage("java-api") { fromResolutionOf("runtimeClasspath") @@ -110,6 +109,7 @@ fun Project.applyPlatformAndCoreConfiguration() { } fun Project.applyShadowConfiguration() { + apply(plugin = "com.github.johnrengelman.shadow") tasks.named("shadowJar") { archiveClassifier.set("dist") dependencies { @@ -124,6 +124,11 @@ fun Project.applyShadowConfiguration() { exclude("META-INF/maven/**") minimize() } + val javaComponent = components["java"] as AdhocComponentWithVariants + // I don't think we want this published (it's the shadow jar) + javaComponent.withVariantsFromConfiguration(configurations["shadowRuntimeElements"]) { + skip() + } } private val CLASSPATH = listOf("truezip", "truevfs", "js") diff --git a/settings.gradle.kts b/settings.gradle.kts index 05a48affc1..a37fe1ca6b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,8 +2,7 @@ rootProject.name = "worldedit" include("worldedit-libs") -// Forge has been removed until FG 5 is available. -listOf("bukkit", "core", "sponge", "fabric", "cli").forEach { +listOf("bukkit", "core", "sponge", "fabric", "forge", "cli").forEach { include("worldedit-libs:$it") include("worldedit-$it") } diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index 2b086e539c..b15997eba8 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -18,17 +18,27 @@ configurations.all { } } +val localImplementation = configurations.create("localImplementation") { + description = "Dependencies used locally, but provided by the runtime Bukkit implementation" + isCanBeConsumed = false + isCanBeResolved = false +} +configurations["compileOnly"].extendsFrom(localImplementation) +configurations["testImplementation"].extendsFrom(localImplementation) + dependencies { "api"(project(":worldedit-core")) "api"(project(":worldedit-libs:bukkit")) - "api"("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") { + // Technically this is api, but everyone should already have some form of the bukkit API + // Avoid pulling in another one, especially one so outdated. + "localImplementation"("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") { exclude("junit", "junit") } - "implementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { + "localImplementation"(platform("org.apache.logging.log4j:log4j-bom:2.14.1") { because("Spigot provides Log4J (sort of, not in API, implicitly part of server)") }) - "implementation"("org.apache.logging.log4j:log4j-api") + "localImplementation"("org.apache.logging.log4j:log4j-api") "compileOnly"("org.jetbrains:annotations:20.1.0") "compileOnly"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") { @@ -81,3 +91,9 @@ tasks.named("shadowJar") { tasks.named("assemble").configure { dependsOn("shadowJar") } + +configure { + publications.named("maven") { + from(components["java"]) + } +} diff --git a/worldedit-core/build.gradle.kts b/worldedit-core/build.gradle.kts index 57930ccf87..70f1ae2b4c 100644 --- a/worldedit-core/build.gradle.kts +++ b/worldedit-core/build.gradle.kts @@ -120,3 +120,10 @@ tasks.named("processResources") { into("lang") } } + +configure { + publications.named("maven") { + artifactId = the().archivesBaseName + from(components["java"]) + } +} diff --git a/worldedit-fabric/build.gradle.kts b/worldedit-fabric/build.gradle.kts index 60398d6384..8ede61641e 100644 --- a/worldedit-fabric/build.gradle.kts +++ b/worldedit-fabric/build.gradle.kts @@ -116,6 +116,12 @@ configure { configure { publications.named("maven") { artifactId = the().archivesBaseName + artifact(tasks.named("jar")) { + builtBy(tasks.named("remapJar")) + } + artifact(tasks.named("sourcesJar")) { + builtBy(tasks.named("remapSourcesJar")) + } } } @@ -138,31 +144,6 @@ tasks.named("shadowJar") { } } -tasks.register("deobfJar") { - from(sourceSets["main"].output) - archiveClassifier.set("dev") -} - -val deobfElements = configurations.register("deobfElements") { - isVisible = false - description = "De-obfuscated elements for libs" - isCanBeResolved = false - isCanBeConsumed = true - attributes { - attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) - attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) - attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) - attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) - attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) - } - outgoing.artifact(tasks.named("deobfJar")) -} - -val javaComponent = components["java"] as AdhocComponentWithVariants -javaComponent.addVariantsFromConfiguration(deobfElements.get()) { - mapToMavenScope("runtime") -} - tasks.register("remapShadowJar") { val shadowJar = tasks.getByName("shadowJar") dependsOn(shadowJar) diff --git a/worldedit-forge/build.gradle.kts b/worldedit-forge/build.gradle.kts index 472f21dbdf..d9ea915bdb 100644 --- a/worldedit-forge/build.gradle.kts +++ b/worldedit-forge/build.gradle.kts @@ -36,8 +36,8 @@ dependencies { configure { mappings(mapOf( - "channel" to "snapshot", - "version" to "20200514-$mappingsMinecraftVersion" + "channel" to "snapshot", + "version" to "20200514-$mappingsMinecraftVersion" )) accessTransformer(file("src/main/resources/META-INF/accesstransformer.cfg")) @@ -45,8 +45,8 @@ configure { runs { val runConfig = Action { properties(mapOf( - "forge.logging.markers" to "SCAN,REGISTRIES,REGISTRYDUMP", - "forge.logging.console.level" to "debug" + "forge.logging.markers" to "SCAN,REGISTRIES,REGISTRYDUMP", + "forge.logging.console.level" to "debug" )) workingDirectory = project.file("run").canonicalPath source(sourceSets["main"]) @@ -60,19 +60,79 @@ configure { configure { archivesBaseName = "$archivesBaseName-mc$minecraftVersion" } + +val javaComponent = components["java"] as AdhocComponentWithVariants +javaComponent.withVariantsFromConfiguration(configurations["apiElements"]) { + skip() +} + +javaComponent.withVariantsFromConfiguration(configurations["runtimeElements"]) { + skip() +} +tasks.register("deobfJar") { + from(sourceSets["main"].output) + archiveClassifier.set("dev") +} + +val reobfApiElements = configurations.register("reobfApiElements") { + isVisible = false + description = "Re-obfuscated API elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) + } + outgoing.artifact(tasks.named("jar")) { + builtBy(project.provider { tasks.named("reobfJar") }) + } + extendsFrom(configurations["api"]) +} + +javaComponent.addVariantsFromConfiguration(reobfApiElements.get()) { + mapToMavenScope("compile") +} + +val reobfRuntimeElements = configurations.register("reobfRuntimeElements") { + isVisible = false + description = "Re-obfuscated runtime elements for libs" + isCanBeResolved = false + isCanBeConsumed = true + attributes { + attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_RUNTIME)) + attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) + attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) + attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) + attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) + } + outgoing.artifact(tasks.named("jar")) { + builtBy(project.provider { tasks.named("reobfJar") }) + } + extendsFrom(configurations["reobfApiElements"]) + extendsFrom(configurations["runtimeClasspath"].copy { d -> d.group != "net.minecraftforge" }) +} + +javaComponent.addVariantsFromConfiguration(reobfRuntimeElements.get()) { + mapToMavenScope("runtime") +} + configure { publications.named("maven") { artifactId = the().archivesBaseName + from(components["java"]) } } tasks.named("processResources") { // this will ensure that this task is redone when the versions change. val properties = mapOf( - "version" to project.ext["internalVersion"], - "forgeVersion" to forgeVersion, - "minecraftVersion" to minecraftVersion, - "nextMajorMinecraftVersion" to nextMajorMinecraftVersion + "version" to project.ext["internalVersion"], + "forgeVersion" to forgeVersion, + "minecraftVersion" to minecraftVersion, + "nextMajorMinecraftVersion" to nextMajorMinecraftVersion ) properties.forEach { (key, value) -> inputs.property(key, value) @@ -106,28 +166,3 @@ afterEvaluate { mappings = tasks.getByName("createMcpToSrg").output } } - -tasks.register("deobfJar") { - from(sourceSets["main"].output) - archiveClassifier.set("dev") -} - -val deobfElements = configurations.register("deobfElements") { - isVisible = false - description = "De-obfuscated elements for libs" - isCanBeResolved = false - isCanBeConsumed = true - attributes { - attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage.JAVA_API)) - attribute(Category.CATEGORY_ATTRIBUTE, project.objects.named(Category.LIBRARY)) - attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling.EXTERNAL)) - attribute(LibraryElements.LIBRARY_ELEMENTS_ATTRIBUTE, project.objects.named(LibraryElements.JAR)) - attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 8) - } - outgoing.artifact(tasks.named("deobfJar")) -} - -val javaComponent = components["java"] as AdhocComponentWithVariants -javaComponent.addVariantsFromConfiguration(deobfElements.get()) { - mapToMavenScope("runtime") -} diff --git a/worldedit-mod/build.gradle.kts b/worldedit-mod/build.gradle.kts index b5b006597a..66fa8cd67b 100644 --- a/worldedit-mod/build.gradle.kts +++ b/worldedit-mod/build.gradle.kts @@ -9,11 +9,11 @@ applyCommonConfiguration() tasks.register("jar") { val remapFabric = project(":worldedit-fabric").tasks.named("remapShadowJar") dependsOn( - remapFabric//, - //project(":worldedit-forge").tasks.named("reobfShadowJar") + remapFabric, + project(":worldedit-forge").tasks.named("reobfShadowJar") ) from(zipTree({remapFabric.get().archiveFile})) - //from(zipTree({project(":worldedit-forge").tasks.getByName("shadowJar").outputs.files.singleFile})) + from(zipTree({project(":worldedit-forge").tasks.getByName("shadowJar").outputs.files.singleFile})) duplicatesStrategy = DuplicatesStrategy.EXCLUDE archiveClassifier.set("dist") From a57f66f7cc5ac7ae3521738bdf1c3e8119731cb2 Mon Sep 17 00:00:00 2001 From: wizjany Date: Sun, 13 Jun 2021 15:40:19 -0400 Subject: [PATCH 116/813] Fix watchdog, add negative y support. (#1782) --- .../bukkit/BukkitServerInterface.java | 2 +- .../sk89q/worldedit/bukkit/BukkitWorld.java | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java index 6602887f09..ae76bc252d 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitServerInterface.java @@ -125,7 +125,7 @@ public int schedule(long delay, long period, Runnable task) { @Override public Watchdog getWatchdog() { - return watchdog.valueOrThrow(); + return watchdog.value().orElse(null); } @Override diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index b0790a0845..d2562f551f 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -59,6 +59,8 @@ import org.bukkit.inventory.InventoryHolder; import java.lang.ref.WeakReference; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.nio.file.Path; import java.util.ArrayList; import java.util.EnumMap; @@ -76,6 +78,9 @@ public class BukkitWorld extends AbstractWorld { private static final Logger LOGGER = LogManagerCompat.getLogger(); private static final boolean HAS_3D_BIOMES; + private static final boolean HAS_MIN_Y; + private static final Method GET_MIN_Y; + private int minY; private static final Map effects = new HashMap<>(); @@ -94,6 +99,16 @@ public class BukkitWorld extends AbstractWorld { temp = false; } HAS_3D_BIOMES = temp; + Method tempGetMinY; + try { + tempGetMinY = World.class.getMethod("getMinHeight"); + temp = true; + } catch (NoSuchMethodException e) { + tempGetMinY = null; + temp = false; + } + GET_MIN_Y = tempGetMinY; + HAS_MIN_Y = temp; } private final WeakReference worldRef; @@ -112,6 +127,13 @@ public BukkitWorld(World world) { } else { this.worldNativeAccess = null; } + if (HAS_MIN_Y) { + try { + minY = (int) GET_MIN_Y.invoke(world); + } catch (IllegalAccessException | InvocationTargetException e) { + minY = super.getMinY(); + } + } } @Override @@ -350,6 +372,15 @@ public int getMaxY() { return getWorld().getMaxHeight() - 1; } + @Override + public int getMinY() { + /*if (HAS_MIN_Y) { + return getWorld().getMinHeight(); + } + return super.getMinY();*/ + return minY; + } + @SuppressWarnings("deprecation") @Override public void fixAfterFastMode(Iterable chunks) { From eb7b79c94904ac82c1d6a581256041d0c0e858c8 Mon Sep 17 00:00:00 2001 From: JOO200 Date: Wed, 16 Jun 2021 21:35:16 +0200 Subject: [PATCH 117/813] Use require instead of strictly to reduce problems with mojang/bukkit updates (#1787) --- buildSrc/src/main/kotlin/CommonConfig.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/CommonConfig.kt b/buildSrc/src/main/kotlin/CommonConfig.kt index 4037b7da1b..063154d614 100644 --- a/buildSrc/src/main/kotlin/CommonConfig.kt +++ b/buildSrc/src/main/kotlin/CommonConfig.kt @@ -46,15 +46,15 @@ fun Project.applyCommonConfiguration() { continue } add(conf.name, "com.google.guava:guava") { - version { strictly(Versions.GUAVA) } + version { require(Versions.GUAVA) } because("Mojang provides Guava") } add(conf.name, "com.google.code.gson:gson") { - version { strictly(Versions.GSON) } + version { require(Versions.GSON) } because("Mojang provides Gson") } add(conf.name, "it.unimi.dsi:fastutil") { - version { strictly(Versions.FAST_UTIL) } + version { require(Versions.FAST_UTIL) } because("Mojang provides FastUtil") } } From 183ae4a1407eede1cb091815605d524b250ab4a4 Mon Sep 17 00:00:00 2001 From: BloodEko <2sicherheit@gmx.de> Date: Tue, 22 Jun 2021 00:07:59 +0200 Subject: [PATCH 118/813] Improve mask api (#1793) * Improve mask api * Revert javadocs change --- .../java/com/sk89q/worldedit/function/mask/BiomeMask.java | 6 ------ .../sk89q/worldedit/function/mask/BlockCategoryMask.java | 6 ------ .../java/com/sk89q/worldedit/function/mask/BlockMask.java | 6 ------ .../com/sk89q/worldedit/function/mask/BlockStateMask.java | 6 ------ .../com/sk89q/worldedit/function/mask/BlockTypeMask.java | 6 ------ .../sk89q/worldedit/function/mask/BoundedHeightMask.java | 6 ------ .../sk89q/worldedit/function/mask/ExistingBlockMask.java | 6 ------ .../main/java/com/sk89q/worldedit/function/mask/Mask.java | 5 ++++- .../java/com/sk89q/worldedit/function/mask/RegionMask.java | 6 ------ .../com/sk89q/worldedit/function/mask/SolidBlockMask.java | 6 ------ 10 files changed, 4 insertions(+), 55 deletions(-) diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java index 0418573b16..fdf23dd9c2 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BiomeMask.java @@ -96,10 +96,4 @@ public boolean test(BlockVector3 vector) { return biomes.contains(biome); } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockCategoryMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockCategoryMask.java index 2479b96852..55da924ed0 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockCategoryMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockCategoryMask.java @@ -44,10 +44,4 @@ public BlockCategoryMask(Extent extent, BlockCategory category) { public boolean test(BlockVector3 vector) { return category.contains(getExtent().getBlock(vector)); } - - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java index 5f08c29c00..40c771e4e9 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockMask.java @@ -105,10 +105,4 @@ public boolean test(BlockVector3 vector) { return false; } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java index 44a311ff3e..4e02358603 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockStateMask.java @@ -61,10 +61,4 @@ public boolean test(BlockVector3 vector) { return checkProps.entrySet().stream() .allMatch(entry -> block.getState(entry.getKey()) == entry.getValue()); } - - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java index 3f66fc1ea5..1992340803 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BlockTypeMask.java @@ -96,10 +96,4 @@ public Collection getBlocks() { public boolean test(BlockVector3 vector) { return blocks.contains(getExtent().getBlock(vector).getBlockType()); } - - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java index 10e969c796..a868eef281 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/BoundedHeightMask.java @@ -51,10 +51,4 @@ public boolean test(BlockVector3 vector) { return vector.getY() >= minY && vector.getY() <= maxY; } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java index 7619c15ffe..66fae33bab 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/ExistingBlockMask.java @@ -44,10 +44,4 @@ public boolean test(BlockVector3 vector) { return !getExtent().getBlock(vector).getBlockType().getMaterial().isAir(); } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java index 4fc9a40bb3..d45fc26351 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/Mask.java @@ -26,6 +26,7 @@ /** * Tests whether a given vector meets a criteria. */ +@FunctionalInterface public interface Mask { /** @@ -42,6 +43,8 @@ public interface Mask { * @return a 2D mask version or {@code null} if this mask can't be 2D */ @Nullable - Mask2D toMask2D(); + default Mask2D toMask2D() { + return null; + } } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java index a3f0032c1a..1b03c279b4 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/RegionMask.java @@ -66,10 +66,4 @@ public boolean test(BlockVector3 vector) { return region.contains(vector); } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java index 158d653100..e639b38445 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/function/mask/SolidBlockMask.java @@ -38,10 +38,4 @@ public boolean test(BlockVector3 vector) { return block.getBlockType().getMaterial().isMovementBlocker(); } - @Nullable - @Override - public Mask2D toMask2D() { - return null; - } - } From 43da91ad92591af2b17c36c6b480ddbad4909e4b Mon Sep 17 00:00:00 2001 From: wizjany Date: Tue, 22 Jun 2021 17:13:47 -0400 Subject: [PATCH 119/813] Remove method reflection for getMinHeight in BukkitWorld. (#1796) * Remove reflective use of the getMinHeight method in BukkitWorld. Which requires dep updates to 1.17, which may currently break this build? * Tell Gradle we can read Java 16 JARs Co-authored-by: Octavia Togami --- worldedit-bukkit/build.gradle.kts | 8 +++++-- .../sk89q/worldedit/bukkit/BukkitWorld.java | 21 +++---------------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/worldedit-bukkit/build.gradle.kts b/worldedit-bukkit/build.gradle.kts index b15997eba8..073e0c9011 100644 --- a/worldedit-bukkit/build.gradle.kts +++ b/worldedit-bukkit/build.gradle.kts @@ -26,12 +26,16 @@ val localImplementation = configurations.create("localImplementation") { configurations["compileOnly"].extendsFrom(localImplementation) configurations["testImplementation"].extendsFrom(localImplementation) +configurations.all { + attributes.attribute(TargetJvmVersion.TARGET_JVM_VERSION_ATTRIBUTE, 16) +} + dependencies { "api"(project(":worldedit-core")) "api"(project(":worldedit-libs:bukkit")) // Technically this is api, but everyone should already have some form of the bukkit API // Avoid pulling in another one, especially one so outdated. - "localImplementation"("org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT") { + "localImplementation"("org.spigotmc:spigot-api:1.17-R0.1-SNAPSHOT") { exclude("junit", "junit") } @@ -41,7 +45,7 @@ dependencies { "localImplementation"("org.apache.logging.log4j:log4j-api") "compileOnly"("org.jetbrains:annotations:20.1.0") - "compileOnly"("com.destroystokyo.paper:paper-api:1.16.1-R0.1-SNAPSHOT") { + "compileOnly"("io.papermc.paper:paper-api:1.17-R0.1-SNAPSHOT") { exclude(group = "org.slf4j", module = "slf4j-api") } "implementation"("io.papermc:paperlib:1.0.6") diff --git a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java index d2562f551f..4a0a357a0c 100644 --- a/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java +++ b/worldedit-bukkit/src/main/java/com/sk89q/worldedit/bukkit/BukkitWorld.java @@ -59,8 +59,6 @@ import org.bukkit.inventory.InventoryHolder; import java.lang.ref.WeakReference; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.nio.file.Path; import java.util.ArrayList; import java.util.EnumMap; @@ -79,8 +77,6 @@ public class BukkitWorld extends AbstractWorld { private static final boolean HAS_3D_BIOMES; private static final boolean HAS_MIN_Y; - private static final Method GET_MIN_Y; - private int minY; private static final Map effects = new HashMap<>(); @@ -99,15 +95,12 @@ public class BukkitWorld extends AbstractWorld { temp = false; } HAS_3D_BIOMES = temp; - Method tempGetMinY; try { - tempGetMinY = World.class.getMethod("getMinHeight"); + World.class.getMethod("getMinHeight"); temp = true; } catch (NoSuchMethodException e) { - tempGetMinY = null; temp = false; } - GET_MIN_Y = tempGetMinY; HAS_MIN_Y = temp; } @@ -127,13 +120,6 @@ public BukkitWorld(World world) { } else { this.worldNativeAccess = null; } - if (HAS_MIN_Y) { - try { - minY = (int) GET_MIN_Y.invoke(world); - } catch (IllegalAccessException | InvocationTargetException e) { - minY = super.getMinY(); - } - } } @Override @@ -374,11 +360,10 @@ public int getMaxY() { @Override public int getMinY() { - /*if (HAS_MIN_Y) { + if (HAS_MIN_Y) { return getWorld().getMinHeight(); } - return super.getMinY();*/ - return minY; + return super.getMinY(); } @SuppressWarnings("deprecation") From 728a15239582eb132ec78a72c8a22978e2c17ad0 Mon Sep 17 00:00:00 2001 From: Octavia Togami Date: Sat, 26 Jun 2021 14:59:21 -0700 Subject: [PATCH 120/813] Skip notify if chunk section doesn't exist (#1794) * Skip notify if chunk section doesn't exist * Include forge in this change * Pass chunk to mark/notify directly, update adapters. Co-authored-by: wizjany --- .../src/main/resources/worldedit-adapters.jar | Bin 560912 -> 561648 bytes .../internal/wna/WorldNativeAccess.java | 8 ++++---- .../internal/FabricWorldNativeAccess.java | 13 +++++++++---- .../internal/ForgeWorldNativeAccess.java | 13 +++++++++---- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/worldedit-bukkit/src/main/resources/worldedit-adapters.jar b/worldedit-bukkit/src/main/resources/worldedit-adapters.jar index 6cd3e628370de8ca30b210fbe0a554563c709196..f0107569b2de49af2870b4d7b376d022ed4478fe 100644 GIT binary patch delta 33919 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

P%}2#h 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� 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