Sueta

Bottle Stacker

2025-12-21

A powerful Spigot plugin that revolutionizes potion and bottle management in Minecraft

·Plugin

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

  1. Download the latest BottleStacker-1.0.0.jar from the releases

  2. Place the jar file in your server's plugins/ directory

  3. Start the server to generate configuration files

  4. Edit the config.yml file in plugins/BottleStacker/

  5. 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 →