Skip to content

BetterSettings v1.0.0

Latest

Choose a tag to compare

@mattbaconz mattbaconz released this 18 Nov 14:41
5c297cb

🎉 BetterSettings v1.0.0 - Initial Release


📦 Download

Download BetterSettings-1.0.0.jar

File Size: 96 KB


🌟 What is BetterSettings?

BetterSettings is a lightweight, API-first player settings management system for Paper/Purpur/Folia servers (1.20.5+). It gives your players complete control over their gameplay experience with a beautiful categorized GUI and provides a powerful API for developers to integrate custom settings.


✨ Key Features

🎯 29 Fully Functional Settings

Out of the box, BetterSettings provides 29 working settings that require no additional plugins:

  • Communication (4 settings) - Chat, private messages, death messages, join/leave messages
  • Display (7 settings) - Scoreboard, player visibility, weather, time, night vision, vanish, tab list
  • Gameplay (13 settings) - Flight, PvP, auto-pickup, auto-sprint, auto-respawn, god mode, speed boost, jump boost, water breathing, fire resistance, hunger loss, item pickup, entity collision
  • Protection (4 settings) - Drop protection, inventory protection, fall damage, mob targeting

🔌 31 API Framework Settings

Additional settings that save player preferences and can be checked by other plugins:

  • Communication (5 settings) - Teleport requests, trade requests, friend requests, chat mentions, DM sound
  • Display (8 settings) - Particle effects, sound effects, damage indicators, AFK status, and more
  • Gameplay (2 settings) - Teleport cooldown bypass, build mode
  • Notifications (11 settings) - All notification settings for plugin integration
  • Protection (0 settings) - All protection settings are functional!

🎨 Beautiful GUI System

  • Categorized Menu - Settings organized into 5 intuitive categories
  • Glass Pane Borders - Professional-looking frame around all menus
  • Centered Layouts - Clean, symmetrical design with proper spacing
  • Pagination Support - 28 settings per page with smooth navigation
  • Visual Feedback - Enchantment glow on enabled settings, sounds on toggle
  • Fully Customizable - Every color, icon, and layout option configurable

🔧 Developer API

  • Simple Integration - Register custom settings in minutes
  • Event System - React to setting changes with cancellable events
  • Thread-Safe - Safe to use from any thread, Folia-compatible
  • Well Documented - Complete API documentation with examples
  • Category Support - Organize your settings into custom categories

⚡ Performance Optimized

  • Async I/O - Non-blocking file operations
  • Batch Saves - Multiple players saved in single operation
  • Smart Caching - Automatic cleanup of offline player data
  • Minimal Footprint - Only 96 KB with no external dependencies
  • Folia Ready - Proper scheduler usage for regionized threading

📋 What's Included

Configuration Files

  • config.yml - Main plugin settings
  • settings.yml - Configure all 60 built-in settings (with ✅/🔌 markers)
  • messages.yml - Customize all user-facing messages
  • performance.yml - Performance tuning options
  • ui.yml - GUI appearance and layout customization
  • settings/*.yml - Custom setting definitions (optional)

Documentation

  • README.md - Quick start guide and overview
  • API.md - Complete developer documentation with examples
  • CONFIGURATION.md - Detailed configuration guide
  • SETTINGS_STATUS.md - Implementation status of all settings
  • CHANGELOG.md - Version history
  • CONTRIBUTING.md - Contribution guidelines

🚀 Installation

  1. Download BetterSettings-1.0.0.jar from the link above
  2. Place in your server's plugins folder
  3. Start/Restart your server
  4. Configure (optional) - Edit files in plugins/BetterSettings/
  5. Use /settings command to open the GUI

That's it! No dependencies, no complex setup.


📚 Quick Start

For Players

/settings - Open the settings GUI

Navigate through categories, click settings to toggle them on/off. Settings are saved automatically and persist across restarts.

For Server Owners

All configuration files are in plugins/BetterSettings/:

  • Customize setting icons, descriptions, and permissions in settings.yml
  • Customize GUI appearance in ui.yml
  • Customize messages in messages.yml
  • Tune performance in performance.yml

For Developers

// Register a custom setting
SettingsRegistry.getInstance().registerSetting(new MyCustomSetting());

// Check a player's setting
PlayerDataManager dataManager = BetterSettings.getInstance().getDataManager();
boolean enabled = dataManager.getSetting(playerId, "setting_id", defaultValue);

// Listen to setting changes
@EventHandler
public void onSettingChange(PlayerSettingChangeEvent event) {
    // React to changes
}

See API.md for complete documentation.


🎯 Commands & Permissions

Commands

Command Description Permission
/settings Open settings GUI bettersettings.use
/settings reload Reload configuration bettersettings.reload
/settings info View plugin information bettersettings.info

Aliases: /setting, /prefs, /preferences

Permissions

Permission Description Default
bettersettings.use Access settings GUI true
bettersettings.reload Reload plugin config 👑 op
bettersettings.info View plugin info 👑 op
bettersettings.* All permissions 👑 op

Individual Setting Permissions:

  • bettersettings.flight - Access flight setting
  • bettersettings.godmode - Access god mode setting
  • bettersettings.vanish - Access vanish setting
  • bettersettings.nightvision - Access night vision setting
  • And more... (see settings.yml)

🎨 GUI Improvements

This release features a completely redesigned GUI:

Category Selection Menu

┌─────────────────────────────────────────────────────┐
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲  ← Glass pane border
│ 🔲 · · · · · · · 🔲
│ 🔲 · 📝 👁️ ⚔️ 🛡️ 🔔 · 🔲  ← Categories (centered)
│ 🔲 · · · · · · · 🔲
│ 🔲 · · · · · · · 🔲
│ 🔲 · · · 📖 · · · 🔲  ← Info button
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲
└─────────────────────────────────────────────────────┘

Settings View

┌─────────────────────────────────────────────────────┐
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲  ← Glass pane border
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲  ← Settings (7 per row)
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 🔲 🔲 ◀️ 📖 ▶️ 🔲 🔲 🔲  ← Navigation
└─────────────────────────────────────────────────────┘

Features:

  • Glass pane borders for professional appearance
  • Centered layouts with proper spacing
  • 28 settings per page (4 rows × 7 columns)
  • Clear navigation buttons
  • Consistent design across all menus

🔧 Technical Details

Requirements

  • Java 21+
  • 📄 Paper/Purpur/Folia 1.20.5+
  • No external plugin dependencies

Compatibility

  • ✅ Paper 1.20.5+
  • ✅ Purpur 1.20.5+
  • ✅ Folia (full support with regionized threading)
  • ✅ Java 21+

Performance

  • Async I/O with configurable concurrency
  • Batch save operations for efficiency
  • Smart caching with automatic cleanup
  • Minimal object allocation
  • Thread-safe data structures
  • Folia-ready schedulers

File Size

  • JAR: 96 KB
  • With bStats: Included (shaded)
  • Dependencies: None (Paper API provided by server)

📊 Statistics

  • Total Settings: 60
  • Functional Settings: 29 (48%)
  • API Framework Settings: 31 (52%)
  • Categories: 6 (including default)
  • Configuration Files: 6
  • Documentation Pages: 5
  • Lines of Code: ~3,500+

🎯 What Works Out of the Box

✅ Fully Functional (No Additional Plugins Required)

Player Control:

  • Flight, God Mode, Speed, Jump, Water Breathing, Fire Resistance
  • Auto-Sprint, Auto-Respawn, Auto-Pickup
  • Entity Collision

Protection:

  • Drop Protection (sneak to drop)
  • Inventory Protection
  • Fall Damage Toggle
  • Mob Targeting Toggle
  • PvP Toggle
  • Hunger Loss Toggle

Display:

  • Scoreboard Visibility
  • Player Visibility (hide/show players)
  • Weather Control (client-side)
  • Time Control (client-side)
  • Night Vision
  • Vanish Mode
  • Tab List Visibility

Communication:

  • Global Chat Toggle
  • Private Messages Toggle
  • Death Messages Toggle
  • Join/Leave Messages Toggle

🔌 What Requires Integration

API Framework Settings (Save Preferences, Require Plugin Integration)

Social Features:

  • Teleport Requests, Trade Requests, Friend Requests
  • Chat Mentions, DM Sound

Notifications:

  • All 11 notification settings (mob spawns, achievements, action bar, boss bar, titles, etc.)

Advanced Display:

  • Coordinates Display, Biome Display
  • Damage Indicators, AFK Status
  • Particle Effects, Sound Effects (client-side)

Advanced Gameplay:

  • Teleport Cooldown Bypass
  • Build Mode
  • Command Spy, Social Spy

For Plugin Developers:
These settings save player preferences that your plugin can check:

boolean acceptsTeleports = dataManager.getSetting(playerId, "bettersettings_tprequest", true);

📖 Documentation

Included Documentation

  • README.md - Overview and quick start
  • API.md - Complete developer API documentation
  • CONFIGURATION.md - Detailed configuration guide
  • SETTINGS_STATUS.md - Implementation status of all settings
  • CHANGELOG.md - Version history
  • CONTRIBUTING.md - How to contribute

Online Resources


🔮 Future Plans

Potential features for future releases:

  • Additional functional settings (notifications, coordinates display, etc.)
  • Setting presets/profiles
  • Import/export functionality
  • Web-based configuration editor
  • More animation options
  • Additional action types for YAML settings
  • Integration examples with popular plugins

🐛 Known Issues

None at this time! This is a stable initial release.

If you encounter any issues, please report them on our Issue Tracker.


🤝 Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines.

Ways to contribute:

  • 🐛 Report bugs
  • 💡 Suggest features
  • 📝 Improve documentation
  • 🔧 Submit pull requests
  • ⭐ Star the repository

📄 License

BetterSettings is released under the MIT License.

You are free to:

  • ✅ Use commercially
  • ✅ Modify
  • ✅ Distribute
  • ✅ Use privately

See LICENSE file for full details.


🙏 Credits

Developed by: mattbaconz


📞 Support

Need help? Here's how to get support:

  1. Read the Documentation - Check README.md, API.md, and CONFIGURATION.md
  2. Check SETTINGS_STATUS.md - See which settings are functional
  3. Search Issues - Someone may have already asked your question
  4. Ask in Discussions - For general questions and help
  5. Report Bugs - Use the issue tracker for bugs

Please do not use issues for support questions. Use Discussions instead.


⭐ Show Your Support

If you find BetterSettings useful, please:

  • Star the repository on GitHub
  • 📢 Share with other server owners
  • 💬 Leave feedback in Discussions
  • 🐛 Report bugs to help improve the plugin
  • 💡 Suggest features for future releases

📝 Changelog

v1.0.0 (November 18, 2024)

  • 🎉 Initial release
  • ✅ 29 fully functional settings
  • 🔌 31 API framework settings
  • 🎨 Beautiful categorized GUI with glass pane borders
  • 🔧 Complete developer API with event system
  • 📚 Comprehensive documentation
  • ⚡ Performance optimized with async I/O
  • 🌐 Full Folia compatibility
  • 🎯 Zero external dependencies

Download: BetterSettings-1.0.0.jar