Bottle Stacker
2025-12-21A powerful Spigot plugin that revolutionizes potion and bottle management in Minecraft
BottleStacker
BottleStacker is a Minecraft Spigot plugin that allows stacking of bottles, potions, splash potions, and lingering potions beyond the default stack size of 1. It is designed for performance and compatibility, giving server administrators control over potion stacking while maintaining stability.
Key Features
Core Functionality
- Universal stacking of all bottle and potion types (regular, splash, lingering)
- Supports Minecraft versions 1.12 and above with automatic version detection
- Supports custom potions from other plugins like Brewery and Disease
- Preserves potion effects, custom names, and lore during stacking
Advanced Configuration
- Set different stack limits for each potion typ
- Built-in throttling to prevent server lag
- Debug mode for troubleshooting
- Hot reload for configuration changes without restarting the server
Safety and Performance
- Multiple layers of anti-duplication protection
- Performance monitoring and automatic throttling
- Version compatibility validation
- Memory efficient design
Installation
- Download the latest BottleStacker-1.0.0.jar from the releases
- Place the jar file in your server's plugins/ directory
- Start the server to generate configuration files
- Edit the config.yml file in plugins/BottleStacker/
- Reload the plugin using /bottlestacker reload or restart the server
Configuration Default configuration example:
# Default maximum stack size for all bottles/potions
default-limit: 64
# Specific limits for individual potion types
specific-limits:
WATER_BOTTLE: 64
SPLASH_HEALING: 32
SPLASH_HARMING: 32
SPLASH_REGENERATION: 32
SPLASH_POISON: 32
SPLASH_STRENGTH: 32
SPLASH_WEAKNESS: 32
SPLASH_SLOWNESS: 32
SPLASH_SWIFTNESS: 32
SPLASH_FIRE_RESISTANCE: 32
SPLASH_WATER_BREATHING: 32
SPLASH_INVISIBILITY: 32
SPLASH_NIGHT_VISION: 32
LINGERING_HEALING: 16
LINGERING_HARMING: 16
LINGERING_REGENERATION: 16
LINGERING_POISON: 16
LINGERING_STRENGTH: 16
LINGERING_WEAKNESS: 16
LINGERING_SLOWNESS: 16
LINGERING_SWIFTNESS: 16
LINGERING_FIRE_RESISTANCE: 16
LINGERING_WATER_BREATHING: 16
LINGERING_INVISIBILITY: 16
LINGERING_NIGHT_VISION: 16
# Enable debug messages (only for admins)
debug: false
# Performance settings
max-stack-check-groups: 5
max-items-per-check: 50
Configuration Options
- max-items-per-check: Maximum items per stacking operation (default 50)
Commands and Permissions
Commands
- /bottlestacker (alias /bs): Main plugin command, e.g., /bottlestacker reload
Permissions
- bottlestacker.*: Access to all features
- bottlestacker.admin: Admin commands and messages (default OP)
Technical Architecture
Core Components
- StackManager: Handles stacking logic and validation
- ConfigManager: Loads and validates configuration
- InventoryListener: Monitors inventory interactions
- VersionCompatibleListener: Ensures cross-version compatibility
- AntiDupeUtils: Prevents item duplication exploits
Performance Features
- Asynchronous processing for non-blocking stack operations
- Throttled operations to prevent server lag
- Memory optimization with efficient item handling
- Smart event listener priorities
Supported Items
Stackable Items
- Glass bottles (empty)
- Potions (vanilla and modded/plugin)
- Splash potions
- Lingering potions
- Water bottles
Custom Potion Support
- Automatically detects and supports custom potions from plugins like Brewery and Disease
Performance Optimization
Built-in Protections
- Rate limiting to prevent spam clicking exploits
- Batch processing for efficiency
- Automatic memory cleanup
- Thread-safe concurrent operations
Monitoring
- Real-time performance metrics
- Automatic throttling when lag is detected
- Debug mode for performance analysis
- Memory usage tracking
Troubleshooting
Common Issues
- Potions not stacking: Ensure potion types are identical (effects, duration, amplifier)
- Server lag: Reduce max-stack-check-groups and max-items-per-check
- Custom potions not working: Load custom potion plugin before BottleStacker
- Permission errors: Verify operators have bottlestacker.admin permission
Debug Mode
- Enable debug: true in config.yml
- Check server console for logs
Version Compatibility
Minecraft Versions Supported
- 1.12.x: Fully supported
- 1.13.x to 1.20.x: Compatible
- 1.8.x to 1.11.x: Limited support
License
- MIT License
Author
- HiDefinition: Development, optimization, compatibility (Ballistik on SpigotMC)
Contributing
- Contributions welcome via pull requests
- Open issues for major changes
Statistics
- Lines of code: ~1,200
- Classes: 10
- Supported potion types: 50+
- Memory footprint: under 5MB
- Performance impact: Minimal (<0.1% TPS)
Made with love for the Minecraft community
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta