diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a6f89c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target/ \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..d5d7c0c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,17 @@ +# Contributing + +## Building + +Install JDK and Maven + +Run: + +``` +mvn clean package +``` + +# Creative Tab List + +Creative tab ordering is generated via a Fabric mod. + +Example Mod: https://github.com/itzTheMeow/creative-tab-dumper diff --git a/README.md b/README.md index e03a4ff..52571d3 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,7 @@ Modular Storage System is a comprehensive Minecraft storage plugin. It provides ### Sorting Options - **Alphabetical Sort**: Default sorting mode, organizes items A-Z - **Quantity Sort**: Click the name tag button to sort by item count (highest first) +- **Creative Menu Sort**: Click the button again to sort the same way the creative menu is organized - **Persistent Settings**: Sort preference is saved per terminal location ![TerminalSortingFeature.png](media%2FTerminalSortingFeature.png) diff --git a/src/main/java/org/jamesphbennett/modularstoragesystem/gui/GUIManager.java b/src/main/java/org/jamesphbennett/modularstoragesystem/gui/GUIManager.java index a3cba52..d1e8a32 100644 --- a/src/main/java/org/jamesphbennett/modularstoragesystem/gui/GUIManager.java +++ b/src/main/java/org/jamesphbennett/modularstoragesystem/gui/GUIManager.java @@ -10,6 +10,7 @@ import org.bukkit.block.Container; import org.bukkit.scheduler.BukkitRunnable; import org.jamesphbennett.modularstoragesystem.ModularStorageSystem; +import org.jamesphbennett.modularstoragesystem.gui.TerminalGUI.SortModes; import java.util.Map; import java.util.Set; @@ -30,7 +31,7 @@ public class GUIManager { private final Map searchTimeoutTasks = new ConcurrentHashMap<>(); private static final int SEARCH_TIMEOUT_SECONDS = 10; private final Map terminalSearchTerms = new ConcurrentHashMap<>(); - private final Map terminalQuantitySort = new ConcurrentHashMap<>(); + private final Map terminalSortMode = new ConcurrentHashMap<>(); private final Map playersAwaitingPlayerInput = new ConcurrentHashMap<>(); private final Map playerInputTimeoutTasks = new ConcurrentHashMap<>(); @@ -364,20 +365,20 @@ public void setTerminalSearchTerm(Location terminalLocation, String searchTerm) /** * Get saved quantity sort setting for a terminal location */ - public boolean getTerminalQuantitySort(Location terminalLocation) { - return terminalQuantitySort.getOrDefault(getTerminalKey(terminalLocation), false); + public SortModes getTerminalSortMode(Location terminalLocation) { + return terminalSortMode.getOrDefault(getTerminalKey(terminalLocation), SortModes.ALPHABETICAL); } /** - * Save quantity sort setting for a terminal location + * Save sort mode setting for a terminal location */ - public void setTerminalQuantitySort(Location terminalLocation, boolean quantitySort) { + public void setTerminalSortMode(Location terminalLocation, SortModes sortMode) { String key = getTerminalKey(terminalLocation); - if (quantitySort) { - terminalQuantitySort.put(key, true); + if (sortMode != SortModes.ALPHABETICAL) { + terminalSortMode.put(key, sortMode); plugin.debugLog("Saved quantity sort setting for terminal at " + key); } else { - terminalQuantitySort.remove(key); + terminalSortMode.remove(key); plugin.debugLog("Cleared quantity sort setting for terminal at " + key + " (using default alphabetical)"); } } @@ -934,7 +935,7 @@ public void closeAllGUIs() { playersAwaitingPlayerInput.clear(); playerInputTimeoutTasks.clear(); terminalSearchTerms.clear(); - terminalQuantitySort.clear(); + terminalSortMode.clear(); } } \ No newline at end of file diff --git a/src/main/java/org/jamesphbennett/modularstoragesystem/gui/TerminalGUI.java b/src/main/java/org/jamesphbennett/modularstoragesystem/gui/TerminalGUI.java index c7a690e..a26cfcf 100644 --- a/src/main/java/org/jamesphbennett/modularstoragesystem/gui/TerminalGUI.java +++ b/src/main/java/org/jamesphbennett/modularstoragesystem/gui/TerminalGUI.java @@ -25,6 +25,12 @@ public class TerminalGUI implements Listener { + public enum SortModes { + ALPHABETICAL, + QUANTITY, + CREATIVE, + } + private final ModularStorageSystem plugin; private final Location terminalLocation; private final String networkId; @@ -41,7 +47,7 @@ public class TerminalGUI implements Listener { private boolean isSearchActive = false; // Sorting functionality - private boolean isQuantitySortActive; // false = alphabetical, true = quantity + private SortModes sortMode; // Click rate limiting to prevent DB spam - 200ms cooldown private final Map clickCooldowns = new ConcurrentHashMap<>(); @@ -64,8 +70,8 @@ public TerminalGUI(ModularStorageSystem plugin, Location terminalLocation, Strin } // Check for saved sorting preference for this terminal location - this.isQuantitySortActive = plugin.getGUIManager().getTerminalQuantitySort(terminalLocation); - if (isQuantitySortActive) { + this.sortMode = plugin.getGUIManager().getTerminalSortMode(terminalLocation); + if (sortMode != SortModes.ALPHABETICAL) { plugin.debugLog("debug.gui.sort-saved", "key", terminalLocation.toString()); } @@ -127,28 +133,27 @@ private void updateSearchButton() { } private void updateSortingButton() { - ItemStack sortButton = new ItemStack(Material.NAME_TAG); - ItemMeta sortMeta = sortButton.getItemMeta(); - - if (isQuantitySortActive) { - // Quantity sorting is active - sortMeta.displayName(plugin.getMessageManager().getMessageComponent(null, "gui.terminal.sorting.quantity")); - List sortLore = new ArrayList<>(); - sortLore.add(Component.empty()); - sortLore.add(plugin.getMessageManager().getMessageComponent(null, "gui.terminal.sorting.to-alphabetical")); - sortMeta.lore(sortLore); + ItemStack sortButton = new ItemStack(switch (sortMode) { + case ALPHABETICAL -> Material.NAME_TAG; + case QUANTITY -> Material.HOPPER; + case CREATIVE -> Material.STRUCTURE_BLOCK; + }); - // Add glowing effect - sortMeta.addEnchant(Enchantment.UNBREAKING, 1, true); - sortMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS); - } else { - // Alphabetical sorting is active (default) - sortMeta.displayName(plugin.getMessageManager().getMessageComponent(null, "gui.terminal.sorting.alphabetical")); - List sortLore = new ArrayList<>(); - sortLore.add(Component.empty()); - sortLore.add(plugin.getMessageManager().getMessageComponent(null, "gui.terminal.sorting.to-quantity")); - sortMeta.lore(sortLore); - } + ItemMeta sortMeta = sortButton.getItemMeta(); + sortMeta.displayName(plugin.getMessageManager().getMessageComponent(null, switch (sortMode) { + case ALPHABETICAL -> "gui.terminal.sorting.alphabetical"; + case QUANTITY -> "gui.terminal.sorting.quantity"; + case CREATIVE -> "gui.terminal.sorting.creative"; + })); + + List sortLore = new ArrayList<>(); + sortLore.add(Component.empty()); + sortLore.add(plugin.getMessageManager().getMessageComponent(null, switch (sortMode) { + case ALPHABETICAL -> "gui.terminal.sorting.to-quantity"; + case QUANTITY -> "gui.terminal.sorting.to-creative"; + case CREATIVE -> "gui.terminal.sorting.to-alphabetical"; + })); + sortMeta.lore(sortLore); sortButton.setItemMeta(sortMeta); inventory.setItem(50, sortButton); // Next to search button @@ -211,8 +216,11 @@ private void updateNavigationItems() { } infoLore.add(plugin.getMessageManager().getMessageComponent(null, "gui.terminal.pagination.page-info", "current", (currentPage + 1), "total", maxPages)); - String sortModeKey = isQuantitySortActive ? "gui.terminal.info.sort-mode-quantity" : "gui.terminal.info.sort-mode-alphabetical"; - infoLore.add(plugin.getMessageManager().getMessageComponent(null, sortModeKey)); + infoLore.add(plugin.getMessageManager().getMessageComponent(null, switch (sortMode) { + case ALPHABETICAL -> "gui.terminal.info.sort-mode-alphabetical"; + case QUANTITY -> "gui.terminal.info.sort-mode-quantity"; + case CREATIVE -> "gui.terminal.info.sort-mode-creative"; + })); // Show items on current page int startIndex = currentPage * itemsPerPage; @@ -255,7 +263,7 @@ private void loadItems() { updateDisplayedItems(); String searchInfo = isSearchActive ? ", filtered to " + filteredItems.size() + " results" : ""; - plugin.debugLog("debug.gui.items-loaded", "total", allItems.size(), "search", searchInfo, "sorting", (isQuantitySortActive ? "quantity" : "alphabetical")); + plugin.debugLog("debug.gui.items-loaded", "total", allItems.size(), "search", searchInfo, "sorting", sortMode.name()); } catch (Exception e) { plugin.getLogger().severe("Error loading terminal items: " + e.getMessage()); } @@ -265,22 +273,30 @@ private void loadItems() { * Apply sorting to the items list based on current sort mode */ private void applySorting() { - if (isQuantitySortActive) { - // Sort by quantity (descending) - most items first - allItems.sort((a, b) -> { - int quantityCompare = Integer.compare(b.quantity(), a.quantity()); - if (quantityCompare != 0) { - return quantityCompare; - } - // If quantities are equal, fall back to alphabetical - return a.itemStack().getType().name().compareTo(b.itemStack().getType().name()); - }); - plugin.debugLog("debug.gui.sorting-applied", "type", "quantity (most items first)"); - } else { - // Sort alphabetically by item type name (default) - allItems.sort(Comparator.comparing(item -> item.itemStack().getType().name())); - plugin.debugLog("debug.gui.sorting-applied", "type", "alphabetical"); + switch (sortMode) { + case CREATIVE: + // Sort using the order set in creative_menu.txt + allItems.sort(Comparator.comparingInt(item -> + plugin.getConfigManager().getCreativeMenuOrder(item.itemStack().getType()))); + break; + case QUANTITY: + // Sort by quantity (descending) - most items first + allItems.sort((a, b) -> { + int quantityCompare = Integer.compare(b.quantity(), a.quantity()); + if (quantityCompare != 0) { + return quantityCompare; + } + // If quantities are equal, fall back to alphabetical + return a.itemStack().getType().name().compareTo(b.itemStack().getType().name()); + }); + break; + case ALPHABETICAL: + default: + // Sort alphabetically by item type name (default) + allItems.sort(Comparator.comparing(item -> item.itemStack().getType().name())); + break; } + plugin.debugLog("debug.gui.sorting-applied", "type", sortMode.name()); } private void applySearchFilter() { @@ -323,7 +339,7 @@ private void applySearchFilter() { return scoreCompare; } // If scores are equal, use current sort mode as tiebreaker - if (isQuantitySortActive) { + if (sortMode == SortModes.QUANTITY) { int quantityCompare = Integer.compare(b.item.quantity(), a.item.quantity()); if (quantityCompare != 0) { return quantityCompare; @@ -446,16 +462,21 @@ private ItemStack createDisplayItem(StoredItem storedItem) { } /** - * Toggle sorting mode between alphabetical and quantity-based + * Cycle sorting mode between the options */ - public void toggleSorting() { - isQuantitySortActive = !isQuantitySortActive; + public void cycleSorting() { + // Cycle through modes + sortMode = switch (sortMode) { + case ALPHABETICAL -> SortModes.QUANTITY; + case QUANTITY -> SortModes.CREATIVE; + case CREATIVE -> SortModes.ALPHABETICAL; + }; this.currentPage = 0; // Reset to first page // Save the sorting preference for this terminal - plugin.getGUIManager().setTerminalQuantitySort(terminalLocation, isQuantitySortActive); + plugin.getGUIManager().setTerminalSortMode(terminalLocation, sortMode); - plugin.debugLog("debug.gui.sorting-applied", "type", (isQuantitySortActive ? "quantity" : "alphabetical")); + plugin.debugLog("debug.gui.sorting-applied", "type", sortMode.name()); // Re-apply sorting to all items applySorting(); @@ -537,7 +558,7 @@ public void refresh() { // Store current search state and sorting mode String savedSearchTerm = currentSearchTerm; boolean wasSearchActive = isSearchActive; - boolean wasSortingByQuantity = isQuantitySortActive; + SortModes savedSortMode = sortMode; loadItems(); @@ -547,8 +568,8 @@ public void refresh() { } // Restore sorting mode - if (wasSortingByQuantity != isQuantitySortActive) { - isQuantitySortActive = wasSortingByQuantity; + if (!savedSortMode.equals(sortMode)) { + sortMode = savedSortMode; applySorting(); if (isSearchActive) { applySearchFilter(); @@ -559,7 +580,7 @@ public void refresh() { int itemCountAfter = allItems.size(); plugin.debugLog("Terminal refresh complete: " + itemCountBefore + " -> " + itemCountAfter + " item types" + (wasSearchActive ? " (search preserved: '" + savedSearchTerm + "')" : "") + - " (sorting: " + (isQuantitySortActive ? "quantity" : "alphabetical") + ")"); + " (sorting: " + sortMode.name() + ")"); } @EventHandler @@ -603,9 +624,12 @@ public void onInventoryClick(InventoryClickEvent event) { if (slot == 50) { event.setCancelled(true); - toggleSorting(); - String messageKey = isQuantitySortActive ? "gui.terminal.sorting.changed-to-quantity" : "gui.terminal.sorting.changed-to-alphabetical"; - player.sendMessage(plugin.getMessageManager().getMessageComponent(player, messageKey)); + cycleSorting(); + player.sendMessage(plugin.getMessageManager().getMessageComponent(player, switch (sortMode) { + case ALPHABETICAL -> "gui.terminal.sorting.changed-to-alphabetical"; + case QUANTITY -> "gui.terminal.sorting.changed-to-quantity"; + case CREATIVE -> "gui.terminal.sorting.changed-to-creative"; + })); return; } diff --git a/src/main/java/org/jamesphbennett/modularstoragesystem/managers/ConfigManager.java b/src/main/java/org/jamesphbennett/modularstoragesystem/managers/ConfigManager.java index b95c2f7..99cf29b 100644 --- a/src/main/java/org/jamesphbennett/modularstoragesystem/managers/ConfigManager.java +++ b/src/main/java/org/jamesphbennett/modularstoragesystem/managers/ConfigManager.java @@ -1,18 +1,23 @@ package org.jamesphbennett.modularstoragesystem.managers; -import org.bukkit.Material; -import org.bukkit.configuration.ConfigurationSection; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.configuration.file.YamlConfiguration; -import org.jamesphbennett.modularstoragesystem.ModularStorageSystem; - +import java.io.BufferedReader; import java.io.File; +import java.io.FileReader; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; +import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.jamesphbennett.modularstoragesystem.ModularStorageSystem; + public class ConfigManager { private final ModularStorageSystem plugin; @@ -26,6 +31,7 @@ public class ConfigManager { private int maxImporters; private int exportTickInterval; private Set blacklistedItems; + private Map creativeSortOrder; private boolean requireUsePermission; private boolean requireCraftPermission; @@ -81,6 +87,7 @@ public void loadConfig() { loadNetworkSettings(); loadStorageSettings(); loadBlacklistedItems(); + loadCreativeMenuOrder(); loadPermissionSettings(); loadLoggingSettings(); loadDebugSettings(); @@ -122,6 +129,35 @@ private void loadRecipeSettings() { showUnlockMessages = recipesConfig.getBoolean("settings.show_unlock_messages", false); } + private void loadCreativeMenuOrder() { + creativeSortOrder = new HashMap<>(); + File file = new File(plugin.getDataFolder(), "creative_menu.txt"); + + if (!file.exists()) { + plugin.saveResource("creative_menu.txt", false); + } + + try (BufferedReader reader = new BufferedReader(new FileReader(file))) { + String line; + int index = 0; + while ((line = reader.readLine()) != null) { + String materialName = line.trim(); + if (materialName.isEmpty()) continue; + + Material material = Material.matchMaterial(materialName.replace("minecraft:", "")); + if (material != null && !creativeSortOrder.containsKey(material)) { + creativeSortOrder.put(material, index++); + } + } + } catch (IOException e) { + plugin.getLogger().warning("Failed to load creative_menu.txt: " + e.getMessage()); + } + } + + public int getCreativeMenuOrder(Material material) { + return creativeSortOrder.getOrDefault(material, Integer.MAX_VALUE); + } + private void loadNetworkSettings() { maxNetworkBlocks = config.getInt("network.max_blocks", 128); maxNetworkCables = config.getInt("network.max_cables", 800); diff --git a/src/main/resources/creative_menu.txt b/src/main/resources/creative_menu.txt new file mode 100644 index 0000000..34fa625 --- /dev/null +++ b/src/main/resources/creative_menu.txt @@ -0,0 +1,2009 @@ +minecraft:oak_log +minecraft:oak_wood +minecraft:stripped_oak_log +minecraft:stripped_oak_wood +minecraft:oak_planks +minecraft:oak_stairs +minecraft:oak_slab +minecraft:oak_fence +minecraft:oak_fence_gate +minecraft:oak_door +minecraft:oak_trapdoor +minecraft:oak_pressure_plate +minecraft:oak_button +minecraft:spruce_log +minecraft:spruce_wood +minecraft:stripped_spruce_log +minecraft:stripped_spruce_wood +minecraft:spruce_planks +minecraft:spruce_stairs +minecraft:spruce_slab +minecraft:spruce_fence +minecraft:spruce_fence_gate +minecraft:spruce_door +minecraft:spruce_trapdoor +minecraft:spruce_pressure_plate +minecraft:spruce_button +minecraft:birch_log +minecraft:birch_wood +minecraft:stripped_birch_log +minecraft:stripped_birch_wood +minecraft:birch_planks +minecraft:birch_stairs +minecraft:birch_slab +minecraft:birch_fence +minecraft:birch_fence_gate +minecraft:birch_door +minecraft:birch_trapdoor +minecraft:birch_pressure_plate +minecraft:birch_button +minecraft:jungle_log +minecraft:jungle_wood +minecraft:stripped_jungle_log +minecraft:stripped_jungle_wood +minecraft:jungle_planks +minecraft:jungle_stairs +minecraft:jungle_slab +minecraft:jungle_fence +minecraft:jungle_fence_gate +minecraft:jungle_door +minecraft:jungle_trapdoor +minecraft:jungle_pressure_plate +minecraft:jungle_button +minecraft:acacia_log +minecraft:acacia_wood +minecraft:stripped_acacia_log +minecraft:stripped_acacia_wood +minecraft:acacia_planks +minecraft:acacia_stairs +minecraft:acacia_slab +minecraft:acacia_fence +minecraft:acacia_fence_gate +minecraft:acacia_door +minecraft:acacia_trapdoor +minecraft:acacia_pressure_plate +minecraft:acacia_button +minecraft:dark_oak_log +minecraft:dark_oak_wood +minecraft:stripped_dark_oak_log +minecraft:stripped_dark_oak_wood +minecraft:dark_oak_planks +minecraft:dark_oak_stairs +minecraft:dark_oak_slab +minecraft:dark_oak_fence +minecraft:dark_oak_fence_gate +minecraft:dark_oak_door +minecraft:dark_oak_trapdoor +minecraft:dark_oak_pressure_plate +minecraft:dark_oak_button +minecraft:mangrove_log +minecraft:mangrove_wood +minecraft:stripped_mangrove_log +minecraft:stripped_mangrove_wood +minecraft:mangrove_planks +minecraft:mangrove_stairs +minecraft:mangrove_slab +minecraft:mangrove_fence +minecraft:mangrove_fence_gate +minecraft:mangrove_door +minecraft:mangrove_trapdoor +minecraft:mangrove_pressure_plate +minecraft:mangrove_button +minecraft:cherry_log +minecraft:cherry_wood +minecraft:stripped_cherry_log +minecraft:stripped_cherry_wood +minecraft:cherry_planks +minecraft:cherry_stairs +minecraft:cherry_slab +minecraft:cherry_fence +minecraft:cherry_fence_gate +minecraft:cherry_door +minecraft:cherry_trapdoor +minecraft:cherry_pressure_plate +minecraft:cherry_button +minecraft:pale_oak_log +minecraft:pale_oak_wood +minecraft:stripped_pale_oak_log +minecraft:stripped_pale_oak_wood +minecraft:pale_oak_planks +minecraft:pale_oak_stairs +minecraft:pale_oak_slab +minecraft:pale_oak_fence +minecraft:pale_oak_fence_gate +minecraft:pale_oak_door +minecraft:pale_oak_trapdoor +minecraft:pale_oak_pressure_plate +minecraft:pale_oak_button +minecraft:bamboo_block +minecraft:stripped_bamboo_block +minecraft:bamboo_planks +minecraft:bamboo_mosaic +minecraft:bamboo_stairs +minecraft:bamboo_mosaic_stairs +minecraft:bamboo_slab +minecraft:bamboo_mosaic_slab +minecraft:bamboo_fence +minecraft:bamboo_fence_gate +minecraft:bamboo_door +minecraft:bamboo_trapdoor +minecraft:bamboo_pressure_plate +minecraft:bamboo_button +minecraft:crimson_stem +minecraft:crimson_hyphae +minecraft:stripped_crimson_stem +minecraft:stripped_crimson_hyphae +minecraft:crimson_planks +minecraft:crimson_stairs +minecraft:crimson_slab +minecraft:crimson_fence +minecraft:crimson_fence_gate +minecraft:crimson_door +minecraft:crimson_trapdoor +minecraft:crimson_pressure_plate +minecraft:crimson_button +minecraft:warped_stem +minecraft:warped_hyphae +minecraft:stripped_warped_stem +minecraft:stripped_warped_hyphae +minecraft:warped_planks +minecraft:warped_stairs +minecraft:warped_slab +minecraft:warped_fence +minecraft:warped_fence_gate +minecraft:warped_door +minecraft:warped_trapdoor +minecraft:warped_pressure_plate +minecraft:warped_button +minecraft:stone +minecraft:stone_stairs +minecraft:stone_slab +minecraft:stone_pressure_plate +minecraft:stone_button +minecraft:cobblestone +minecraft:cobblestone_stairs +minecraft:cobblestone_slab +minecraft:cobblestone_wall +minecraft:mossy_cobblestone +minecraft:mossy_cobblestone_stairs +minecraft:mossy_cobblestone_slab +minecraft:mossy_cobblestone_wall +minecraft:smooth_stone +minecraft:smooth_stone_slab +minecraft:stone_bricks +minecraft:cracked_stone_bricks +minecraft:stone_brick_stairs +minecraft:stone_brick_slab +minecraft:stone_brick_wall +minecraft:chiseled_stone_bricks +minecraft:mossy_stone_bricks +minecraft:mossy_stone_brick_stairs +minecraft:mossy_stone_brick_slab +minecraft:mossy_stone_brick_wall +minecraft:granite +minecraft:granite_stairs +minecraft:granite_slab +minecraft:granite_wall +minecraft:polished_granite +minecraft:polished_granite_stairs +minecraft:polished_granite_slab +minecraft:diorite +minecraft:diorite_stairs +minecraft:diorite_slab +minecraft:diorite_wall +minecraft:polished_diorite +minecraft:polished_diorite_stairs +minecraft:polished_diorite_slab +minecraft:andesite +minecraft:andesite_stairs +minecraft:andesite_slab +minecraft:andesite_wall +minecraft:polished_andesite +minecraft:polished_andesite_stairs +minecraft:polished_andesite_slab +minecraft:deepslate +minecraft:cobbled_deepslate +minecraft:cobbled_deepslate_stairs +minecraft:cobbled_deepslate_slab +minecraft:cobbled_deepslate_wall +minecraft:chiseled_deepslate +minecraft:polished_deepslate +minecraft:polished_deepslate_stairs +minecraft:polished_deepslate_slab +minecraft:polished_deepslate_wall +minecraft:deepslate_bricks +minecraft:cracked_deepslate_bricks +minecraft:deepslate_brick_stairs +minecraft:deepslate_brick_slab +minecraft:deepslate_brick_wall +minecraft:deepslate_tiles +minecraft:cracked_deepslate_tiles +minecraft:deepslate_tile_stairs +minecraft:deepslate_tile_slab +minecraft:deepslate_tile_wall +minecraft:reinforced_deepslate +minecraft:tuff +minecraft:tuff_stairs +minecraft:tuff_slab +minecraft:tuff_wall +minecraft:chiseled_tuff +minecraft:polished_tuff +minecraft:polished_tuff_stairs +minecraft:polished_tuff_slab +minecraft:polished_tuff_wall +minecraft:tuff_bricks +minecraft:tuff_brick_stairs +minecraft:tuff_brick_slab +minecraft:tuff_brick_wall +minecraft:chiseled_tuff_bricks +minecraft:bricks +minecraft:brick_stairs +minecraft:brick_slab +minecraft:brick_wall +minecraft:packed_mud +minecraft:mud_bricks +minecraft:mud_brick_stairs +minecraft:mud_brick_slab +minecraft:mud_brick_wall +minecraft:resin_bricks +minecraft:resin_brick_stairs +minecraft:resin_brick_slab +minecraft:resin_brick_wall +minecraft:chiseled_resin_bricks +minecraft:sandstone +minecraft:sandstone_stairs +minecraft:sandstone_slab +minecraft:sandstone_wall +minecraft:chiseled_sandstone +minecraft:smooth_sandstone +minecraft:smooth_sandstone_stairs +minecraft:smooth_sandstone_slab +minecraft:cut_sandstone +minecraft:cut_sandstone_slab +minecraft:red_sandstone +minecraft:red_sandstone_stairs +minecraft:red_sandstone_slab +minecraft:red_sandstone_wall +minecraft:chiseled_red_sandstone +minecraft:smooth_red_sandstone +minecraft:smooth_red_sandstone_stairs +minecraft:smooth_red_sandstone_slab +minecraft:cut_red_sandstone +minecraft:cut_red_sandstone_slab +minecraft:sea_lantern +minecraft:prismarine +minecraft:prismarine_stairs +minecraft:prismarine_slab +minecraft:prismarine_wall +minecraft:prismarine_bricks +minecraft:prismarine_brick_stairs +minecraft:prismarine_brick_slab +minecraft:dark_prismarine +minecraft:dark_prismarine_stairs +minecraft:dark_prismarine_slab +minecraft:netherrack +minecraft:nether_bricks +minecraft:cracked_nether_bricks +minecraft:nether_brick_stairs +minecraft:nether_brick_slab +minecraft:nether_brick_wall +minecraft:nether_brick_fence +minecraft:chiseled_nether_bricks +minecraft:red_nether_bricks +minecraft:red_nether_brick_stairs +minecraft:red_nether_brick_slab +minecraft:red_nether_brick_wall +minecraft:basalt +minecraft:smooth_basalt +minecraft:polished_basalt +minecraft:blackstone +minecraft:gilded_blackstone +minecraft:blackstone_stairs +minecraft:blackstone_slab +minecraft:blackstone_wall +minecraft:chiseled_polished_blackstone +minecraft:polished_blackstone +minecraft:polished_blackstone_stairs +minecraft:polished_blackstone_slab +minecraft:polished_blackstone_wall +minecraft:polished_blackstone_pressure_plate +minecraft:polished_blackstone_button +minecraft:polished_blackstone_bricks +minecraft:cracked_polished_blackstone_bricks +minecraft:polished_blackstone_brick_stairs +minecraft:polished_blackstone_brick_slab +minecraft:polished_blackstone_brick_wall +minecraft:end_stone +minecraft:end_stone_bricks +minecraft:end_stone_brick_stairs +minecraft:end_stone_brick_slab +minecraft:end_stone_brick_wall +minecraft:purpur_block +minecraft:purpur_pillar +minecraft:purpur_stairs +minecraft:purpur_slab +minecraft:coal_block +minecraft:iron_block +minecraft:iron_bars +minecraft:iron_door +minecraft:iron_trapdoor +minecraft:heavy_weighted_pressure_plate +minecraft:iron_chain +minecraft:gold_block +minecraft:light_weighted_pressure_plate +minecraft:redstone_block +minecraft:emerald_block +minecraft:lapis_block +minecraft:diamond_block +minecraft:netherite_block +minecraft:quartz_block +minecraft:quartz_stairs +minecraft:quartz_slab +minecraft:chiseled_quartz_block +minecraft:quartz_bricks +minecraft:quartz_pillar +minecraft:smooth_quartz +minecraft:smooth_quartz_stairs +minecraft:smooth_quartz_slab +minecraft:amethyst_block +minecraft:copper_block +minecraft:chiseled_copper +minecraft:copper_grate +minecraft:cut_copper +minecraft:cut_copper_stairs +minecraft:cut_copper_slab +minecraft:copper_bars +minecraft:copper_door +minecraft:copper_trapdoor +minecraft:copper_bulb +minecraft:copper_chain +minecraft:exposed_copper +minecraft:exposed_chiseled_copper +minecraft:exposed_copper_grate +minecraft:exposed_cut_copper +minecraft:exposed_cut_copper_stairs +minecraft:exposed_cut_copper_slab +minecraft:exposed_copper_bars +minecraft:exposed_copper_door +minecraft:exposed_copper_trapdoor +minecraft:exposed_copper_bulb +minecraft:exposed_copper_chain +minecraft:weathered_copper +minecraft:weathered_chiseled_copper +minecraft:weathered_copper_grate +minecraft:weathered_cut_copper +minecraft:weathered_cut_copper_stairs +minecraft:weathered_cut_copper_slab +minecraft:weathered_copper_bars +minecraft:weathered_copper_door +minecraft:weathered_copper_trapdoor +minecraft:weathered_copper_bulb +minecraft:weathered_copper_chain +minecraft:oxidized_copper +minecraft:oxidized_chiseled_copper +minecraft:oxidized_copper_grate +minecraft:oxidized_cut_copper +minecraft:oxidized_cut_copper_stairs +minecraft:oxidized_cut_copper_slab +minecraft:oxidized_copper_bars +minecraft:oxidized_copper_door +minecraft:oxidized_copper_trapdoor +minecraft:oxidized_copper_bulb +minecraft:oxidized_copper_chain +minecraft:waxed_copper_block +minecraft:waxed_chiseled_copper +minecraft:waxed_copper_grate +minecraft:waxed_cut_copper +minecraft:waxed_cut_copper_stairs +minecraft:waxed_cut_copper_slab +minecraft:waxed_copper_bars +minecraft:waxed_copper_door +minecraft:waxed_copper_trapdoor +minecraft:waxed_copper_bulb +minecraft:waxed_copper_chain +minecraft:waxed_exposed_copper +minecraft:waxed_exposed_chiseled_copper +minecraft:waxed_exposed_copper_grate +minecraft:waxed_exposed_cut_copper +minecraft:waxed_exposed_cut_copper_stairs +minecraft:waxed_exposed_cut_copper_slab +minecraft:waxed_exposed_copper_bars +minecraft:waxed_exposed_copper_door +minecraft:waxed_exposed_copper_trapdoor +minecraft:waxed_exposed_copper_bulb +minecraft:waxed_exposed_copper_chain +minecraft:waxed_weathered_copper +minecraft:waxed_weathered_chiseled_copper +minecraft:waxed_weathered_copper_grate +minecraft:waxed_weathered_cut_copper +minecraft:waxed_weathered_cut_copper_stairs +minecraft:waxed_weathered_cut_copper_slab +minecraft:waxed_weathered_copper_bars +minecraft:waxed_weathered_copper_door +minecraft:waxed_weathered_copper_trapdoor +minecraft:waxed_weathered_copper_bulb +minecraft:waxed_weathered_copper_chain +minecraft:waxed_oxidized_copper +minecraft:waxed_oxidized_chiseled_copper +minecraft:waxed_oxidized_copper_grate +minecraft:waxed_oxidized_cut_copper +minecraft:waxed_oxidized_cut_copper_stairs +minecraft:waxed_oxidized_cut_copper_slab +minecraft:waxed_oxidized_copper_bars +minecraft:waxed_oxidized_copper_door +minecraft:waxed_oxidized_copper_trapdoor +minecraft:waxed_oxidized_copper_bulb +minecraft:waxed_oxidized_copper_chain + +minecraft:white_wool +minecraft:light_gray_wool +minecraft:gray_wool +minecraft:black_wool +minecraft:brown_wool +minecraft:red_wool +minecraft:orange_wool +minecraft:yellow_wool +minecraft:lime_wool +minecraft:green_wool +minecraft:cyan_wool +minecraft:light_blue_wool +minecraft:blue_wool +minecraft:purple_wool +minecraft:magenta_wool +minecraft:pink_wool +minecraft:white_carpet +minecraft:light_gray_carpet +minecraft:gray_carpet +minecraft:black_carpet +minecraft:brown_carpet +minecraft:red_carpet +minecraft:orange_carpet +minecraft:yellow_carpet +minecraft:lime_carpet +minecraft:green_carpet +minecraft:cyan_carpet +minecraft:light_blue_carpet +minecraft:blue_carpet +minecraft:purple_carpet +minecraft:magenta_carpet +minecraft:pink_carpet +minecraft:terracotta +minecraft:white_terracotta +minecraft:light_gray_terracotta +minecraft:gray_terracotta +minecraft:black_terracotta +minecraft:brown_terracotta +minecraft:red_terracotta +minecraft:orange_terracotta +minecraft:yellow_terracotta +minecraft:lime_terracotta +minecraft:green_terracotta +minecraft:cyan_terracotta +minecraft:light_blue_terracotta +minecraft:blue_terracotta +minecraft:purple_terracotta +minecraft:magenta_terracotta +minecraft:pink_terracotta +minecraft:white_concrete +minecraft:light_gray_concrete +minecraft:gray_concrete +minecraft:black_concrete +minecraft:brown_concrete +minecraft:red_concrete +minecraft:orange_concrete +minecraft:yellow_concrete +minecraft:lime_concrete +minecraft:green_concrete +minecraft:cyan_concrete +minecraft:light_blue_concrete +minecraft:blue_concrete +minecraft:purple_concrete +minecraft:magenta_concrete +minecraft:pink_concrete +minecraft:white_concrete_powder +minecraft:light_gray_concrete_powder +minecraft:gray_concrete_powder +minecraft:black_concrete_powder +minecraft:brown_concrete_powder +minecraft:red_concrete_powder +minecraft:orange_concrete_powder +minecraft:yellow_concrete_powder +minecraft:lime_concrete_powder +minecraft:green_concrete_powder +minecraft:cyan_concrete_powder +minecraft:light_blue_concrete_powder +minecraft:blue_concrete_powder +minecraft:purple_concrete_powder +minecraft:magenta_concrete_powder +minecraft:pink_concrete_powder +minecraft:white_glazed_terracotta +minecraft:light_gray_glazed_terracotta +minecraft:gray_glazed_terracotta +minecraft:black_glazed_terracotta +minecraft:brown_glazed_terracotta +minecraft:red_glazed_terracotta +minecraft:orange_glazed_terracotta +minecraft:yellow_glazed_terracotta +minecraft:lime_glazed_terracotta +minecraft:green_glazed_terracotta +minecraft:cyan_glazed_terracotta +minecraft:light_blue_glazed_terracotta +minecraft:blue_glazed_terracotta +minecraft:purple_glazed_terracotta +minecraft:magenta_glazed_terracotta +minecraft:pink_glazed_terracotta +minecraft:glass +minecraft:tinted_glass +minecraft:white_stained_glass +minecraft:light_gray_stained_glass +minecraft:gray_stained_glass +minecraft:black_stained_glass +minecraft:brown_stained_glass +minecraft:red_stained_glass +minecraft:orange_stained_glass +minecraft:yellow_stained_glass +minecraft:lime_stained_glass +minecraft:green_stained_glass +minecraft:cyan_stained_glass +minecraft:light_blue_stained_glass +minecraft:blue_stained_glass +minecraft:purple_stained_glass +minecraft:magenta_stained_glass +minecraft:pink_stained_glass +minecraft:glass_pane +minecraft:white_stained_glass_pane +minecraft:light_gray_stained_glass_pane +minecraft:gray_stained_glass_pane +minecraft:black_stained_glass_pane +minecraft:brown_stained_glass_pane +minecraft:red_stained_glass_pane +minecraft:orange_stained_glass_pane +minecraft:yellow_stained_glass_pane +minecraft:lime_stained_glass_pane +minecraft:green_stained_glass_pane +minecraft:cyan_stained_glass_pane +minecraft:light_blue_stained_glass_pane +minecraft:blue_stained_glass_pane +minecraft:purple_stained_glass_pane +minecraft:magenta_stained_glass_pane +minecraft:pink_stained_glass_pane +minecraft:shulker_box +minecraft:white_shulker_box +minecraft:light_gray_shulker_box +minecraft:gray_shulker_box +minecraft:black_shulker_box +minecraft:brown_shulker_box +minecraft:red_shulker_box +minecraft:orange_shulker_box +minecraft:yellow_shulker_box +minecraft:lime_shulker_box +minecraft:green_shulker_box +minecraft:cyan_shulker_box +minecraft:light_blue_shulker_box +minecraft:blue_shulker_box +minecraft:purple_shulker_box +minecraft:magenta_shulker_box +minecraft:pink_shulker_box +minecraft:white_bed +minecraft:light_gray_bed +minecraft:gray_bed +minecraft:black_bed +minecraft:brown_bed +minecraft:red_bed +minecraft:orange_bed +minecraft:yellow_bed +minecraft:lime_bed +minecraft:green_bed +minecraft:cyan_bed +minecraft:light_blue_bed +minecraft:blue_bed +minecraft:purple_bed +minecraft:magenta_bed +minecraft:pink_bed +minecraft:candle +minecraft:white_candle +minecraft:light_gray_candle +minecraft:gray_candle +minecraft:black_candle +minecraft:brown_candle +minecraft:red_candle +minecraft:orange_candle +minecraft:yellow_candle +minecraft:lime_candle +minecraft:green_candle +minecraft:cyan_candle +minecraft:light_blue_candle +minecraft:blue_candle +minecraft:purple_candle +minecraft:magenta_candle +minecraft:pink_candle +minecraft:white_banner +minecraft:light_gray_banner +minecraft:gray_banner +minecraft:black_banner +minecraft:brown_banner +minecraft:red_banner +minecraft:orange_banner +minecraft:yellow_banner +minecraft:lime_banner +minecraft:green_banner +minecraft:cyan_banner +minecraft:light_blue_banner +minecraft:blue_banner +minecraft:purple_banner +minecraft:magenta_banner +minecraft:pink_banner + +minecraft:grass_block +minecraft:podzol +minecraft:mycelium +minecraft:dirt_path +minecraft:dirt +minecraft:coarse_dirt +minecraft:rooted_dirt +minecraft:farmland +minecraft:mud +minecraft:clay +minecraft:gravel +minecraft:sand +minecraft:sandstone +minecraft:red_sand +minecraft:red_sandstone +minecraft:ice +minecraft:packed_ice +minecraft:blue_ice +minecraft:snow_block +minecraft:snow +minecraft:moss_block +minecraft:moss_carpet +minecraft:pale_moss_block +minecraft:pale_moss_carpet +minecraft:pale_hanging_moss +minecraft:stone +minecraft:deepslate +minecraft:granite +minecraft:diorite +minecraft:andesite +minecraft:calcite +minecraft:tuff +minecraft:dripstone_block +minecraft:pointed_dripstone +minecraft:prismarine +minecraft:magma_block +minecraft:obsidian +minecraft:crying_obsidian +minecraft:netherrack +minecraft:crimson_nylium +minecraft:warped_nylium +minecraft:soul_sand +minecraft:soul_soil +minecraft:bone_block +minecraft:blackstone +minecraft:basalt +minecraft:smooth_basalt +minecraft:end_stone +minecraft:coal_ore +minecraft:deepslate_coal_ore +minecraft:iron_ore +minecraft:deepslate_iron_ore +minecraft:copper_ore +minecraft:deepslate_copper_ore +minecraft:gold_ore +minecraft:deepslate_gold_ore +minecraft:redstone_ore +minecraft:deepslate_redstone_ore +minecraft:emerald_ore +minecraft:deepslate_emerald_ore +minecraft:lapis_ore +minecraft:deepslate_lapis_ore +minecraft:diamond_ore +minecraft:deepslate_diamond_ore +minecraft:nether_gold_ore +minecraft:nether_quartz_ore +minecraft:ancient_debris +minecraft:raw_iron_block +minecraft:raw_copper_block +minecraft:raw_gold_block +minecraft:glowstone +minecraft:amethyst_block +minecraft:budding_amethyst +minecraft:small_amethyst_bud +minecraft:medium_amethyst_bud +minecraft:large_amethyst_bud +minecraft:amethyst_cluster +minecraft:oak_log +minecraft:spruce_log +minecraft:birch_log +minecraft:jungle_log +minecraft:acacia_log +minecraft:dark_oak_log +minecraft:mangrove_log +minecraft:mangrove_roots +minecraft:muddy_mangrove_roots +minecraft:cherry_log +minecraft:pale_oak_log +minecraft:mushroom_stem +minecraft:crimson_stem +minecraft:warped_stem +minecraft:oak_leaves +minecraft:spruce_leaves +minecraft:birch_leaves +minecraft:jungle_leaves +minecraft:acacia_leaves +minecraft:dark_oak_leaves +minecraft:mangrove_leaves +minecraft:cherry_leaves +minecraft:pale_oak_leaves +minecraft:azalea_leaves +minecraft:flowering_azalea_leaves +minecraft:brown_mushroom_block +minecraft:red_mushroom_block +minecraft:nether_wart_block +minecraft:warped_wart_block +minecraft:shroomlight +minecraft:oak_sapling +minecraft:spruce_sapling +minecraft:birch_sapling +minecraft:jungle_sapling +minecraft:acacia_sapling +minecraft:dark_oak_sapling +minecraft:mangrove_propagule +minecraft:cherry_sapling +minecraft:pale_oak_sapling +minecraft:azalea +minecraft:flowering_azalea +minecraft:brown_mushroom +minecraft:red_mushroom +minecraft:crimson_fungus +minecraft:warped_fungus +minecraft:short_grass +minecraft:fern +minecraft:short_dry_grass +minecraft:bush +minecraft:dead_bush +minecraft:dandelion +minecraft:poppy +minecraft:blue_orchid +minecraft:allium +minecraft:azure_bluet +minecraft:red_tulip +minecraft:orange_tulip +minecraft:white_tulip +minecraft:pink_tulip +minecraft:oxeye_daisy +minecraft:cornflower +minecraft:lily_of_the_valley +minecraft:torchflower +minecraft:cactus_flower +minecraft:closed_eyeblossom +minecraft:open_eyeblossom +minecraft:wither_rose +minecraft:pink_petals +minecraft:wildflowers +minecraft:leaf_litter +minecraft:spore_blossom +minecraft:firefly_bush +minecraft:bamboo +minecraft:sugar_cane +minecraft:cactus +minecraft:crimson_roots +minecraft:warped_roots +minecraft:nether_sprouts +minecraft:weeping_vines +minecraft:twisting_vines +minecraft:vine +minecraft:tall_grass +minecraft:large_fern +minecraft:tall_dry_grass +minecraft:sunflower +minecraft:lilac +minecraft:rose_bush +minecraft:peony +minecraft:pitcher_plant +minecraft:big_dripleaf +minecraft:small_dripleaf +minecraft:chorus_plant +minecraft:chorus_flower +minecraft:glow_lichen +minecraft:hanging_roots +minecraft:frogspawn +minecraft:turtle_egg +minecraft:sniffer_egg +minecraft:dried_ghast +minecraft:wheat_seeds +minecraft:cocoa_beans +minecraft:pumpkin_seeds +minecraft:melon_seeds +minecraft:beetroot_seeds +minecraft:torchflower_seeds +minecraft:pitcher_pod +minecraft:glow_berries +minecraft:sweet_berries +minecraft:nether_wart +minecraft:lily_pad +minecraft:seagrass +minecraft:sea_pickle +minecraft:kelp +minecraft:dried_kelp_block +minecraft:tube_coral_block +minecraft:brain_coral_block +minecraft:bubble_coral_block +minecraft:fire_coral_block +minecraft:horn_coral_block +minecraft:dead_tube_coral_block +minecraft:dead_brain_coral_block +minecraft:dead_bubble_coral_block +minecraft:dead_fire_coral_block +minecraft:dead_horn_coral_block +minecraft:tube_coral +minecraft:brain_coral +minecraft:bubble_coral +minecraft:fire_coral +minecraft:horn_coral +minecraft:dead_tube_coral +minecraft:dead_brain_coral +minecraft:dead_bubble_coral +minecraft:dead_fire_coral +minecraft:dead_horn_coral +minecraft:tube_coral_fan +minecraft:brain_coral_fan +minecraft:bubble_coral_fan +minecraft:fire_coral_fan +minecraft:horn_coral_fan +minecraft:dead_tube_coral_fan +minecraft:dead_brain_coral_fan +minecraft:dead_bubble_coral_fan +minecraft:dead_fire_coral_fan +minecraft:dead_horn_coral_fan +minecraft:sponge +minecraft:wet_sponge +minecraft:melon +minecraft:pumpkin +minecraft:carved_pumpkin +minecraft:jack_o_lantern +minecraft:hay_block +minecraft:bee_nest +minecraft:honeycomb_block +minecraft:slime_block +minecraft:honey_block +minecraft:resin_block +minecraft:ochre_froglight +minecraft:verdant_froglight +minecraft:pearlescent_froglight +minecraft:sculk +minecraft:sculk_vein +minecraft:sculk_catalyst +minecraft:sculk_shrieker +minecraft:sculk_sensor +minecraft:cobweb +minecraft:bedrock + +minecraft:torch +minecraft:soul_torch +minecraft:copper_torch +minecraft:redstone_torch +minecraft:lantern +minecraft:soul_lantern +minecraft:copper_lantern +minecraft:exposed_copper_lantern +minecraft:weathered_copper_lantern +minecraft:oxidized_copper_lantern +minecraft:waxed_copper_lantern +minecraft:waxed_exposed_copper_lantern +minecraft:waxed_weathered_copper_lantern +minecraft:waxed_oxidized_copper_lantern +minecraft:iron_chain +minecraft:copper_chain +minecraft:exposed_copper_chain +minecraft:weathered_copper_chain +minecraft:oxidized_copper_chain +minecraft:waxed_copper_chain +minecraft:waxed_exposed_copper_chain +minecraft:waxed_weathered_copper_chain +minecraft:waxed_oxidized_copper_chain +minecraft:end_rod +minecraft:sea_lantern +minecraft:redstone_lamp +minecraft:copper_bulb +minecraft:exposed_copper_bulb +minecraft:weathered_copper_bulb +minecraft:oxidized_copper_bulb +minecraft:waxed_copper_bulb +minecraft:waxed_exposed_copper_bulb +minecraft:waxed_weathered_copper_bulb +minecraft:waxed_oxidized_copper_bulb +minecraft:glowstone +minecraft:shroomlight +minecraft:ochre_froglight +minecraft:verdant_froglight +minecraft:pearlescent_froglight +minecraft:crying_obsidian +minecraft:glow_lichen +minecraft:magma_block +minecraft:crafting_table +minecraft:stonecutter +minecraft:cartography_table +minecraft:fletching_table +minecraft:smithing_table +minecraft:grindstone +minecraft:loom +minecraft:furnace +minecraft:smoker +minecraft:blast_furnace +minecraft:campfire +minecraft:soul_campfire +minecraft:anvil +minecraft:chipped_anvil +minecraft:damaged_anvil +minecraft:composter +minecraft:note_block +minecraft:jukebox +minecraft:enchanting_table +minecraft:end_crystal +minecraft:brewing_stand +minecraft:cauldron +minecraft:bell +minecraft:beacon +minecraft:conduit +minecraft:lodestone +minecraft:ladder +minecraft:scaffolding +minecraft:bee_nest +minecraft:beehive +minecraft:suspicious_sand +minecraft:suspicious_gravel +minecraft:lightning_rod +minecraft:exposed_lightning_rod +minecraft:weathered_lightning_rod +minecraft:oxidized_lightning_rod +minecraft:waxed_lightning_rod +minecraft:waxed_exposed_lightning_rod +minecraft:waxed_weathered_lightning_rod +minecraft:waxed_oxidized_lightning_rod +minecraft:flower_pot +minecraft:decorated_pot +minecraft:armor_stand +minecraft:item_frame +minecraft:glow_item_frame +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:bookshelf +minecraft:chiseled_bookshelf +minecraft:oak_shelf +minecraft:spruce_shelf +minecraft:birch_shelf +minecraft:jungle_shelf +minecraft:acacia_shelf +minecraft:dark_oak_shelf +minecraft:mangrove_shelf +minecraft:cherry_shelf +minecraft:pale_oak_shelf +minecraft:bamboo_shelf +minecraft:crimson_shelf +minecraft:warped_shelf +minecraft:lectern +minecraft:tinted_glass +minecraft:oak_sign +minecraft:oak_hanging_sign +minecraft:spruce_sign +minecraft:spruce_hanging_sign +minecraft:birch_sign +minecraft:birch_hanging_sign +minecraft:jungle_sign +minecraft:jungle_hanging_sign +minecraft:acacia_sign +minecraft:acacia_hanging_sign +minecraft:dark_oak_sign +minecraft:dark_oak_hanging_sign +minecraft:mangrove_sign +minecraft:mangrove_hanging_sign +minecraft:cherry_sign +minecraft:cherry_hanging_sign +minecraft:pale_oak_sign +minecraft:pale_oak_hanging_sign +minecraft:bamboo_sign +minecraft:bamboo_hanging_sign +minecraft:crimson_sign +minecraft:crimson_hanging_sign +minecraft:warped_sign +minecraft:warped_hanging_sign +minecraft:chest +minecraft:copper_chest +minecraft:exposed_copper_chest +minecraft:weathered_copper_chest +minecraft:oxidized_copper_chest +minecraft:waxed_copper_chest +minecraft:waxed_exposed_copper_chest +minecraft:waxed_weathered_copper_chest +minecraft:waxed_oxidized_copper_chest +minecraft:barrel +minecraft:ender_chest +minecraft:shulker_box +minecraft:white_shulker_box +minecraft:light_gray_shulker_box +minecraft:gray_shulker_box +minecraft:black_shulker_box +minecraft:brown_shulker_box +minecraft:red_shulker_box +minecraft:orange_shulker_box +minecraft:yellow_shulker_box +minecraft:lime_shulker_box +minecraft:green_shulker_box +minecraft:cyan_shulker_box +minecraft:light_blue_shulker_box +minecraft:blue_shulker_box +minecraft:purple_shulker_box +minecraft:magenta_shulker_box +minecraft:pink_shulker_box +minecraft:respawn_anchor +minecraft:white_bed +minecraft:light_gray_bed +minecraft:gray_bed +minecraft:black_bed +minecraft:brown_bed +minecraft:red_bed +minecraft:orange_bed +minecraft:yellow_bed +minecraft:lime_bed +minecraft:green_bed +minecraft:cyan_bed +minecraft:light_blue_bed +minecraft:blue_bed +minecraft:purple_bed +minecraft:magenta_bed +minecraft:pink_bed +minecraft:candle +minecraft:white_candle +minecraft:light_gray_candle +minecraft:gray_candle +minecraft:black_candle +minecraft:brown_candle +minecraft:red_candle +minecraft:orange_candle +minecraft:yellow_candle +minecraft:lime_candle +minecraft:green_candle +minecraft:cyan_candle +minecraft:light_blue_candle +minecraft:blue_candle +minecraft:purple_candle +minecraft:magenta_candle +minecraft:pink_candle +minecraft:white_banner +minecraft:light_gray_banner +minecraft:gray_banner +minecraft:black_banner +minecraft:brown_banner +minecraft:red_banner +minecraft:orange_banner +minecraft:yellow_banner +minecraft:lime_banner +minecraft:green_banner +minecraft:cyan_banner +minecraft:light_blue_banner +minecraft:blue_banner +minecraft:purple_banner +minecraft:magenta_banner +minecraft:pink_banner +minecraft:white_banner +minecraft:skeleton_skull +minecraft:wither_skeleton_skull +minecraft:player_head +minecraft:zombie_head +minecraft:creeper_head +minecraft:piglin_head +minecraft:dragon_head +minecraft:dragon_egg +minecraft:end_portal_frame +minecraft:ender_eye +minecraft:vault +minecraft:copper_golem_statue +minecraft:exposed_copper_golem_statue +minecraft:weathered_copper_golem_statue +minecraft:oxidized_copper_golem_statue +minecraft:waxed_copper_golem_statue +minecraft:waxed_exposed_copper_golem_statue +minecraft:waxed_weathered_copper_golem_statue +minecraft:waxed_oxidized_copper_golem_statue +minecraft:infested_stone +minecraft:infested_cobblestone +minecraft:infested_stone_bricks +minecraft:infested_mossy_stone_bricks +minecraft:infested_cracked_stone_bricks +minecraft:infested_chiseled_stone_bricks +minecraft:infested_deepslate + +minecraft:redstone +minecraft:redstone_torch +minecraft:redstone_block +minecraft:repeater +minecraft:comparator +minecraft:target +minecraft:waxed_copper_bulb +minecraft:waxed_exposed_copper_bulb +minecraft:waxed_weathered_copper_bulb +minecraft:waxed_oxidized_copper_bulb +minecraft:lever +minecraft:oak_button +minecraft:stone_button +minecraft:oak_pressure_plate +minecraft:stone_pressure_plate +minecraft:light_weighted_pressure_plate +minecraft:heavy_weighted_pressure_plate +minecraft:sculk_sensor +minecraft:calibrated_sculk_sensor +minecraft:sculk_shrieker +minecraft:amethyst_block +minecraft:white_wool +minecraft:tripwire_hook +minecraft:string +minecraft:lectern +minecraft:daylight_detector +minecraft:waxed_lightning_rod +minecraft:piston +minecraft:sticky_piston +minecraft:slime_block +minecraft:honey_block +minecraft:dispenser +minecraft:dropper +minecraft:crafter +minecraft:hopper +minecraft:chest +minecraft:waxed_copper_chest +minecraft:barrel +minecraft:chiseled_bookshelf +minecraft:oak_shelf +minecraft:furnace +minecraft:trapped_chest +minecraft:jukebox +minecraft:decorated_pot +minecraft:observer +minecraft:note_block +minecraft:composter +minecraft:cauldron +minecraft:rail +minecraft:powered_rail +minecraft:detector_rail +minecraft:activator_rail +minecraft:minecart +minecraft:hopper_minecart +minecraft:chest_minecart +minecraft:furnace_minecart +minecraft:tnt_minecart +minecraft:oak_chest_boat +minecraft:bamboo_chest_raft +minecraft:oak_door +minecraft:iron_door +minecraft:oak_fence_gate +minecraft:oak_trapdoor +minecraft:iron_trapdoor +minecraft:tnt +minecraft:redstone_lamp +minecraft:bell +minecraft:big_dripleaf +minecraft:armor_stand +minecraft:redstone_ore + +minecraft:wooden_shovel +minecraft:wooden_pickaxe +minecraft:wooden_axe +minecraft:wooden_hoe +minecraft:stone_shovel +minecraft:stone_pickaxe +minecraft:stone_axe +minecraft:stone_hoe +minecraft:copper_shovel +minecraft:copper_pickaxe +minecraft:copper_axe +minecraft:copper_hoe +minecraft:iron_shovel +minecraft:iron_pickaxe +minecraft:iron_axe +minecraft:iron_hoe +minecraft:golden_shovel +minecraft:golden_pickaxe +minecraft:golden_axe +minecraft:golden_hoe +minecraft:diamond_shovel +minecraft:diamond_pickaxe +minecraft:diamond_axe +minecraft:diamond_hoe +minecraft:netherite_shovel +minecraft:netherite_pickaxe +minecraft:netherite_axe +minecraft:netherite_hoe +minecraft:bucket +minecraft:water_bucket +minecraft:cod_bucket +minecraft:salmon_bucket +minecraft:tropical_fish_bucket +minecraft:pufferfish_bucket +minecraft:axolotl_bucket +minecraft:tadpole_bucket +minecraft:lava_bucket +minecraft:powder_snow_bucket +minecraft:milk_bucket +minecraft:fishing_rod +minecraft:flint_and_steel +minecraft:fire_charge +minecraft:bone_meal +minecraft:shears +minecraft:brush +minecraft:name_tag +minecraft:lead +minecraft:bundle +minecraft:white_bundle +minecraft:light_gray_bundle +minecraft:gray_bundle +minecraft:black_bundle +minecraft:brown_bundle +minecraft:red_bundle +minecraft:orange_bundle +minecraft:yellow_bundle +minecraft:lime_bundle +minecraft:green_bundle +minecraft:cyan_bundle +minecraft:light_blue_bundle +minecraft:blue_bundle +minecraft:purple_bundle +minecraft:magenta_bundle +minecraft:pink_bundle +minecraft:compass +minecraft:recovery_compass +minecraft:clock +minecraft:spyglass +minecraft:map +minecraft:writable_book +minecraft:wind_charge +minecraft:ender_pearl +minecraft:ender_eye +minecraft:elytra +minecraft:firework_rocket +minecraft:firework_rocket +minecraft:firework_rocket +minecraft:saddle +minecraft:white_harness +minecraft:light_gray_harness +minecraft:gray_harness +minecraft:black_harness +minecraft:brown_harness +minecraft:red_harness +minecraft:orange_harness +minecraft:yellow_harness +minecraft:lime_harness +minecraft:green_harness +minecraft:cyan_harness +minecraft:light_blue_harness +minecraft:blue_harness +minecraft:purple_harness +minecraft:magenta_harness +minecraft:pink_harness +minecraft:carrot_on_a_stick +minecraft:warped_fungus_on_a_stick +minecraft:oak_boat +minecraft:oak_chest_boat +minecraft:spruce_boat +minecraft:spruce_chest_boat +minecraft:birch_boat +minecraft:birch_chest_boat +minecraft:jungle_boat +minecraft:jungle_chest_boat +minecraft:acacia_boat +minecraft:acacia_chest_boat +minecraft:dark_oak_boat +minecraft:dark_oak_chest_boat +minecraft:mangrove_boat +minecraft:mangrove_chest_boat +minecraft:cherry_boat +minecraft:cherry_chest_boat +minecraft:pale_oak_boat +minecraft:pale_oak_chest_boat +minecraft:bamboo_raft +minecraft:bamboo_chest_raft +minecraft:rail +minecraft:powered_rail +minecraft:detector_rail +minecraft:activator_rail +minecraft:minecart +minecraft:hopper_minecart +minecraft:chest_minecart +minecraft:furnace_minecart +minecraft:tnt_minecart +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:goat_horn +minecraft:music_disc_13 +minecraft:music_disc_cat +minecraft:music_disc_blocks +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_ward +minecraft:music_disc_11 +minecraft:music_disc_creator_music_box +minecraft:music_disc_wait +minecraft:music_disc_creator +minecraft:music_disc_precipice +minecraft:music_disc_otherside +minecraft:music_disc_relic +minecraft:music_disc_5 +minecraft:music_disc_pigstep +minecraft:music_disc_tears +minecraft:music_disc_lava_chicken + +minecraft:wooden_sword +minecraft:stone_sword +minecraft:copper_sword +minecraft:iron_sword +minecraft:golden_sword +minecraft:diamond_sword +minecraft:netherite_sword +minecraft:wooden_axe +minecraft:stone_axe +minecraft:copper_axe +minecraft:iron_axe +minecraft:golden_axe +minecraft:diamond_axe +minecraft:netherite_axe +minecraft:trident +minecraft:mace +minecraft:shield +minecraft:leather_helmet +minecraft:leather_chestplate +minecraft:leather_leggings +minecraft:leather_boots +minecraft:copper_helmet +minecraft:copper_chestplate +minecraft:copper_leggings +minecraft:copper_boots +minecraft:chainmail_helmet +minecraft:chainmail_chestplate +minecraft:chainmail_leggings +minecraft:chainmail_boots +minecraft:iron_helmet +minecraft:iron_chestplate +minecraft:iron_leggings +minecraft:iron_boots +minecraft:golden_helmet +minecraft:golden_chestplate +minecraft:golden_leggings +minecraft:golden_boots +minecraft:diamond_helmet +minecraft:diamond_chestplate +minecraft:diamond_leggings +minecraft:diamond_boots +minecraft:netherite_helmet +minecraft:netherite_chestplate +minecraft:netherite_leggings +minecraft:netherite_boots +minecraft:turtle_helmet +minecraft:leather_horse_armor +minecraft:copper_horse_armor +minecraft:iron_horse_armor +minecraft:golden_horse_armor +minecraft:diamond_horse_armor +minecraft:wolf_armor +minecraft:totem_of_undying +minecraft:tnt +minecraft:end_crystal +minecraft:snowball +minecraft:egg +minecraft:brown_egg +minecraft:blue_egg +minecraft:wind_charge +minecraft:bow +minecraft:crossbow +minecraft:firework_rocket +minecraft:firework_rocket +minecraft:firework_rocket +minecraft:arrow +minecraft:spectral_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow +minecraft:tipped_arrow + +minecraft:apple +minecraft:golden_apple +minecraft:enchanted_golden_apple +minecraft:melon_slice +minecraft:sweet_berries +minecraft:glow_berries +minecraft:chorus_fruit +minecraft:carrot +minecraft:golden_carrot +minecraft:potato +minecraft:baked_potato +minecraft:poisonous_potato +minecraft:beetroot +minecraft:dried_kelp +minecraft:beef +minecraft:cooked_beef +minecraft:porkchop +minecraft:cooked_porkchop +minecraft:mutton +minecraft:cooked_mutton +minecraft:chicken +minecraft:cooked_chicken +minecraft:rabbit +minecraft:cooked_rabbit +minecraft:cod +minecraft:cooked_cod +minecraft:salmon +minecraft:cooked_salmon +minecraft:tropical_fish +minecraft:pufferfish +minecraft:bread +minecraft:cookie +minecraft:cake +minecraft:pumpkin_pie +minecraft:rotten_flesh +minecraft:spider_eye +minecraft:mushroom_stew +minecraft:beetroot_soup +minecraft:rabbit_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:suspicious_stew +minecraft:milk_bucket +minecraft:honey_bottle +minecraft:ominous_bottle +minecraft:ominous_bottle +minecraft:ominous_bottle +minecraft:ominous_bottle +minecraft:ominous_bottle +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:splash_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion +minecraft:lingering_potion + +minecraft:coal +minecraft:charcoal +minecraft:raw_copper +minecraft:raw_iron +minecraft:raw_gold +minecraft:emerald +minecraft:lapis_lazuli +minecraft:diamond +minecraft:ancient_debris +minecraft:quartz +minecraft:amethyst_shard +minecraft:copper_nugget +minecraft:iron_nugget +minecraft:gold_nugget +minecraft:copper_ingot +minecraft:iron_ingot +minecraft:gold_ingot +minecraft:netherite_scrap +minecraft:netherite_ingot +minecraft:stick +minecraft:flint +minecraft:wheat +minecraft:bone +minecraft:bone_meal +minecraft:string +minecraft:feather +minecraft:snowball +minecraft:egg +minecraft:brown_egg +minecraft:blue_egg +minecraft:leather +minecraft:rabbit_hide +minecraft:honeycomb +minecraft:resin_clump +minecraft:ink_sac +minecraft:glow_ink_sac +minecraft:turtle_scute +minecraft:armadillo_scute +minecraft:slime_ball +minecraft:clay_ball +minecraft:prismarine_shard +minecraft:prismarine_crystals +minecraft:nautilus_shell +minecraft:heart_of_the_sea +minecraft:fire_charge +minecraft:blaze_rod +minecraft:breeze_rod +minecraft:heavy_core +minecraft:nether_star +minecraft:ender_pearl +minecraft:ender_eye +minecraft:shulker_shell +minecraft:popped_chorus_fruit +minecraft:echo_shard +minecraft:disc_fragment_5 +minecraft:white_dye +minecraft:light_gray_dye +minecraft:gray_dye +minecraft:black_dye +minecraft:brown_dye +minecraft:red_dye +minecraft:orange_dye +minecraft:yellow_dye +minecraft:lime_dye +minecraft:green_dye +minecraft:cyan_dye +minecraft:light_blue_dye +minecraft:blue_dye +minecraft:purple_dye +minecraft:magenta_dye +minecraft:pink_dye +minecraft:bowl +minecraft:brick +minecraft:nether_brick +minecraft:resin_brick +minecraft:paper +minecraft:book +minecraft:firework_star +minecraft:glass_bottle +minecraft:nether_wart +minecraft:redstone +minecraft:glowstone_dust +minecraft:gunpowder +minecraft:dragon_breath +minecraft:fermented_spider_eye +minecraft:blaze_powder +minecraft:sugar +minecraft:rabbit_foot +minecraft:glistering_melon_slice +minecraft:spider_eye +minecraft:pufferfish +minecraft:magma_cream +minecraft:golden_carrot +minecraft:ghast_tear +minecraft:turtle_helmet +minecraft:phantom_membrane +minecraft:field_masoned_banner_pattern +minecraft:bordure_indented_banner_pattern +minecraft:flower_banner_pattern +minecraft:creeper_banner_pattern +minecraft:skull_banner_pattern +minecraft:mojang_banner_pattern +minecraft:globe_banner_pattern +minecraft:piglin_banner_pattern +minecraft:flow_banner_pattern +minecraft:guster_banner_pattern +minecraft:angler_pottery_sherd +minecraft:archer_pottery_sherd +minecraft:arms_up_pottery_sherd +minecraft:blade_pottery_sherd +minecraft:brewer_pottery_sherd +minecraft:burn_pottery_sherd +minecraft:danger_pottery_sherd +minecraft:explorer_pottery_sherd +minecraft:flow_pottery_sherd +minecraft:friend_pottery_sherd +minecraft:guster_pottery_sherd +minecraft:heart_pottery_sherd +minecraft:heartbreak_pottery_sherd +minecraft:howl_pottery_sherd +minecraft:miner_pottery_sherd +minecraft:mourner_pottery_sherd +minecraft:plenty_pottery_sherd +minecraft:prize_pottery_sherd +minecraft:scrape_pottery_sherd +minecraft:sheaf_pottery_sherd +minecraft:shelter_pottery_sherd +minecraft:skull_pottery_sherd +minecraft:snort_pottery_sherd +minecraft:netherite_upgrade_smithing_template +minecraft:sentry_armor_trim_smithing_template +minecraft:vex_armor_trim_smithing_template +minecraft:wild_armor_trim_smithing_template +minecraft:coast_armor_trim_smithing_template +minecraft:dune_armor_trim_smithing_template +minecraft:wayfinder_armor_trim_smithing_template +minecraft:raiser_armor_trim_smithing_template +minecraft:shaper_armor_trim_smithing_template +minecraft:host_armor_trim_smithing_template +minecraft:ward_armor_trim_smithing_template +minecraft:silence_armor_trim_smithing_template +minecraft:tide_armor_trim_smithing_template +minecraft:snout_armor_trim_smithing_template +minecraft:rib_armor_trim_smithing_template +minecraft:eye_armor_trim_smithing_template +minecraft:spire_armor_trim_smithing_template +minecraft:flow_armor_trim_smithing_template +minecraft:bolt_armor_trim_smithing_template +minecraft:experience_bottle +minecraft:trial_key +minecraft:ominous_trial_key +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book +minecraft:enchanted_book + +minecraft:spawner +minecraft:trial_spawner +minecraft:creaking_heart +minecraft:allay_spawn_egg +minecraft:armadillo_spawn_egg +minecraft:axolotl_spawn_egg +minecraft:bat_spawn_egg +minecraft:bee_spawn_egg +minecraft:blaze_spawn_egg +minecraft:bogged_spawn_egg +minecraft:breeze_spawn_egg +minecraft:camel_spawn_egg +minecraft:cat_spawn_egg +minecraft:cave_spider_spawn_egg +minecraft:chicken_spawn_egg +minecraft:cod_spawn_egg +minecraft:copper_golem_spawn_egg +minecraft:cow_spawn_egg +minecraft:creaking_spawn_egg +minecraft:creeper_spawn_egg +minecraft:dolphin_spawn_egg +minecraft:donkey_spawn_egg +minecraft:drowned_spawn_egg +minecraft:elder_guardian_spawn_egg +minecraft:enderman_spawn_egg +minecraft:endermite_spawn_egg +minecraft:evoker_spawn_egg +minecraft:fox_spawn_egg +minecraft:frog_spawn_egg +minecraft:ghast_spawn_egg +minecraft:glow_squid_spawn_egg +minecraft:goat_spawn_egg +minecraft:guardian_spawn_egg +minecraft:happy_ghast_spawn_egg +minecraft:hoglin_spawn_egg +minecraft:horse_spawn_egg +minecraft:husk_spawn_egg +minecraft:iron_golem_spawn_egg +minecraft:llama_spawn_egg +minecraft:magma_cube_spawn_egg +minecraft:mooshroom_spawn_egg +minecraft:mule_spawn_egg +minecraft:ocelot_spawn_egg +minecraft:panda_spawn_egg +minecraft:parrot_spawn_egg +minecraft:phantom_spawn_egg +minecraft:pig_spawn_egg +minecraft:piglin_spawn_egg +minecraft:piglin_brute_spawn_egg +minecraft:pillager_spawn_egg +minecraft:polar_bear_spawn_egg +minecraft:pufferfish_spawn_egg +minecraft:rabbit_spawn_egg +minecraft:ravager_spawn_egg +minecraft:salmon_spawn_egg +minecraft:sheep_spawn_egg +minecraft:shulker_spawn_egg +minecraft:silverfish_spawn_egg +minecraft:skeleton_spawn_egg +minecraft:skeleton_horse_spawn_egg +minecraft:slime_spawn_egg +minecraft:sniffer_spawn_egg +minecraft:snow_golem_spawn_egg +minecraft:spider_spawn_egg +minecraft:squid_spawn_egg +minecraft:stray_spawn_egg +minecraft:strider_spawn_egg +minecraft:tadpole_spawn_egg +minecraft:trader_llama_spawn_egg +minecraft:tropical_fish_spawn_egg +minecraft:turtle_spawn_egg +minecraft:vex_spawn_egg +minecraft:villager_spawn_egg +minecraft:vindicator_spawn_egg +minecraft:wandering_trader_spawn_egg +minecraft:warden_spawn_egg +minecraft:witch_spawn_egg +minecraft:wither_skeleton_spawn_egg +minecraft:wolf_spawn_egg +minecraft:zoglin_spawn_egg +minecraft:zombie_spawn_egg +minecraft:zombie_horse_spawn_egg +minecraft:zombie_villager_spawn_egg +minecraft:zombified_piglin_spawn_egg + +minecraft:command_block +minecraft:chain_command_block +minecraft:repeating_command_block +minecraft:command_block_minecart +minecraft:jigsaw +minecraft:structure_block +minecraft:structure_void +minecraft:barrier +minecraft:debug_stick +minecraft:test_instance_block +minecraft:test_block +minecraft:test_block +minecraft:test_block +minecraft:test_block +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:light +minecraft:painting +minecraft:painting +minecraft:painting +minecraft:painting \ No newline at end of file diff --git a/src/main/resources/lang/en_US.yml b/src/main/resources/lang/en_US.yml index 3061f0f..6424c5c 100644 --- a/src/main/resources/lang/en_US.yml +++ b/src/main/resources/lang/en_US.yml @@ -337,13 +337,16 @@ gui: sorting: alphabetical: "Sorting: Alphabetically" quantity: "Sorting: Quantity" + creative: "Sorting: Creative" to-alphabetical: "Click to sort Alphabetically." to-quantity: "Click to sort by Quantity" + to-creative: "Click to sort by Creative Menu" mode-quantity: "Quantity" mode-alphabetical: "Alphabetical (A-Z)" changed: "{mss-prefix}Sorting changed to: {mode}" changed-to-quantity: "{mss-prefix}Sorting changed to: Quantity" changed-to-alphabetical: "{mss-prefix}Sorting changed to: Alphabetical (A-Z)" + changed-to-creative: "{mss-prefix}Sorting changed to: Creative Menu (A-Z)" pagination: previous: "Previous Page" next: "Next Page" @@ -362,6 +365,7 @@ gui: sort-mode: "Sort: {mode}" sort-mode-quantity: "Sort: quantity (most items first)" sort-mode-alphabetical: "Sort: alphabetical (A-Z)" + sort-mode-creative: "Sort: creative menu" showing-range: "Showing: {start}-{end} of {total}" total-items: "{type} Items: {count}" total-items-filtered: "Filtered Items: {count}"