/
handleConfirm now calls a new ShopTransactionService.sellDirect() method that skips the player-inventory item count/removal steps. Previously, shift-clicking items into the GUI moved them out of the player's inventory, so the old sell() path found zero items and reported nothing to sell.handleConfirm now distinguishes between a genuinely empty GUI and a GUI that has items but whose sellDirect call failed (e.g. economy down, dynamic price driven to $0.00 by a previous sale, rotation expired). The actual failure reason is shown to the player instead of the misleading "No items to sell." message. Items that failed to sell remain in the GUI so the player can retry.sellDirect and isSellable both applied a rotation-visibility check that belongs only in the main shop menu. The Quick Sell GUI is designed to accept any item with a configured sell price; rotation restrictions are now only enforced in sell(), which is the path used when a player types /sell or /sellhand.shop.yml item keys not found when using lowercase material names — loadLegacyEntries now normalises every price key to Material.name() (e.g. BIRCH_LOG) before registering it in the price map. Previously, a config entry written as birch_log: was stored under the lowercase key, so getPrice(Material.BIRCH_LOG) could not find it, silently treating the item as unpriced.STRIPPED_OAK_LOG, STRIPPED_SPRUCE_LOG, STRIPPED_BIRCH_LOG, STRIPPED_JUNGLE_LOG, STRIPPED_ACACIA_LOG, STRIPPED_DARK_OAK_LOG, STRIPPED_MANGROVE_LOG, STRIPPED_PALE_OAK_LOG, STRIPPED_CHERRY_LOG) are now included in the default wood.yml config so players can sell stripped logs with /sellhand and the Quick Sell GUI out of the box.OAK_WOOD, SPRUCE_WOOD, BIRCH_WOOD, JUNGLE_WOOD, ACACIA_WOOD, DARK_OAK_WOOD, MANGROVE_WOOD, PALE_OAK_WOOD, CHERRY_WOOD) are now included. Previously, attempting to /sellhand a "Birch Wood" block (as opposed to a "Birch Log") would return "That item is not configured in the shop."OAK_PLANKS, SPRUCE_PLANKS, BIRCH_PLANKS, JUNGLE_PLANKS, ACACIA_PLANKS, DARK_OAK_PLANKS, MANGROVE_PLANKS, PALE_OAK_PLANKS, CHERRY_PLANKS) are now included in the default building.yml config.
Advanced shop menus with smart pricing, sign trading, and API integrations