✅ Bug Fixes & Corrections
Furnace container creation distance issue
- Fixed: Players couldn't create furnace containers when too close to the furnace
Solution: Modified ContainerCommand to use multiple getTargetBlock ranges (3, 5 blocks) and 5x5x5 area search
Furnace burning stops after 1 item
- Fixed: Furnaces would burn one item then stop, hoppers couldn't extract items
- Solution: Implemented continuous effects system with repeating tasks, removed manual cook time resets
Enchantment multiplication bug
- Fixed: Enchantments were duplicated on tools, causing excessively long tooltips
- Solution: Added isSaving flag in EnhancedTool to prevent recursive calls to saveToItemStack()
Hologram persistence issue
- Fixed: Holograms remained visible after custom furnaces were broken
- Solution: Added hologram cleanup on block break and periodic cleanup tasks
Hopper item duplication (Initial)
- Fixed: Items duplicated when hoppers transferred into custom chests
- Solution: Implemented transfer tracking system to prevent duplicate transfers within short timeframe
Hopper item duplication (GUI Refresh)
Fixed: Duplication occurred because custom container GUI didn't update when hoppers added items
- Solution: Added GUI refresh system after InventoryMoveItemEvent and InventoryPickupItemEvent
Furnace cooking issues
- Fixed: "Ultimate Furnace" got stuck at 100% cook time, cooking arrow reset with each new item
- Solution: Simplified furnace effects logic to avoid interfering with vanilla furnace behavior
Negative hologram values
- Fixed: Holograms displayed "491%" and "-30.2s"
- Solution: Corrected progress and timeLeftTicks calculations using Math.min and Math.max
Feature Removals & Cleanup
Auto-fuel feature removal
- Removed: Complete auto-fuel system as requested by user
- Removed: All auto-fuel related code, configuration, and lore
- Removed: handleAutoFuel method, isFuelItem method, and all related calls
Debug commands removal
- Removed: Debug subcommand from ContainerCommand
- Removed: handleDebugCommand method and related tab completion logic
- Removed: Debug logs from UpgradeableHoppersIntegration
Remote access feature removal
- Removed: remote_access functionality from Ultimate Furnace
- Removed: "Remote access (10 blocks)" from lore and descriptions
New Features & Improvements
Clickable container list
- Feature: /container list my now displays containers with clickable instructions
- Format: Shows container ID, type, name, location with click command
- Benefit: No need to copy-paste IDs, players can click directly
Furnace naming system
- Feature: Players are prompted to name custom furnaces when placed
- Configuration: Configurable max length, special characters, enable/disable
- Validation: Length checks, character validation, cancel option
- Storage: Names saved in player data files with persistence
Remote container opening
- Feature: /container open <container_id> command for remote access
- Search: 50-block radius search around player
- Support: Works with both chests and furnaces
- Effects: Automatically starts furnace effects when opened remotely
Enhanced container listing
- Feature: /container list my shows player's own containers with IDs
- Display: Shows custom furnace names, container types, and locations
- Format: world_x_y_z (Type): Name at X, Y, Z [Click command]
Integration Improvements
UpgradeableHoppers integration
- Enhanced: Transfer tracking system to prevent item duplication
- Added: handleCustomContainerTransfer and hasSpace methods
- Added: Periodic cleanup of transfer data every 30 seconds
- Fixed: GUI refresh issues when hoppers transfer items
Performance optimizations
- Improved: Container effects task frequency (20 ticks instead of 5-10)
- Added: Periodic hologram cleanup tasks
- Added: Hopper data cleanup tasks
- Optimized: Furnace effects application logic
Localization & Message
New language messages
- English: Added furnace naming, container open, and help messages
- French: Corrected translations for GUI elements and added new messages
- Added: container-command-open-usage, container-not-found, container-opened-remotely
- Added: furnace-naming-prompt, furnace-naming-cancelled, furnace-naming-success
Message improvements
- Updated: Container list usage messages to include "my" option
- Enhanced: Help messages for new commands
- Improved: Error messages and user feedback
⚙️ Configuration Changes
New configuration options
- Added: containers.enable-furnace-naming (true/false)
- Added: containers.max-furnace-name-length (default: 32)
- Added: containers.allow-special-characters (true/false)
Furnace configuration updates
- Removed: auto_fuel features from all furnace types
- Updated: Ultimate Furnace lore and descriptions
- Removed: Remote access mentions from furnace descriptions
Technical Improvements
PlayerDataManager enhancements
- Added: playerFurnaceNamesCache for storing custom furnace names
- Added: setFurnaceName, getFurnaceName, removeFurnaceName methods
- Added: File persistence for furnace names
- Added: loadFurnaceNames method for data loading
ContainerListener improvements
- Added: pendingFurnaceNames Map for handling naming requests
- Added: onFurnacePlace event handler for naming prompts
- Added: onPlayerChat event handler for name validation
- Added: onPlayerQuit cleanup for pending names
ContainerCommand enhancements
- Added: handleOpenCommand method for remote container opening
- Enhanced: handleListCommand with "my" option and custom names
- Added: sendClickableContainerMessage method (simplified version)
- Updated: Tab completion to include new commands
�� Permissions
- bettertoolsplus.container.open - Remote container opening
- bettertoolsplus.container.create - Container creation
- bettertoolsplus.container.list - Container listing
- bettertoolsplus.container.remove - Container removal
- bettertoolsplus.container.give - Give containers to players
Thank to noksma for his big help!