EasySettings

EasySettings

A sleek, modern GUI settings plugin with in-game visual editor and rich Developer API.

33 downloads 0 followers

⚙️ EasySettings

EasySettings is an aesthetic, fully modular Minecraft GUI settings plugin for Spigot / Paper (1.20+) designed for modern servers. It provides a sleek in-game player settings menu, a complete interactive in-game GUI editor, smooth Unicode small-caps typography, and an extensible Developer API so other plugins can effortlessly inject custom settings and callbacks.


✨ Features

  • 🎮 Aesthetic Player GUI (/settings):

    • Clean card-style lore layout with modern pastel & cyber hex colors (&#66FCF1, &#51CF66, &#FF6B6B).
    • Native Unicode Small Caps typography (<sc>text</sc>).
    • Supports both TOGGLE settings (persistent ON/OFF state with %status% placeholder) and ACTION settings (one-click buttons).
    • Responsive per-slot updating — no inventory flickering or lag spikes.
  • 🛠️ Visual In-Game Editor (/settings editor):

    • Live mirror of your settings inventory layout.
    • Click any green empty slot (+ Add Setting) to create a setting at that exact slot.
    • Left-Click settings to open the Inspector Menu (change name, icon, type, glint, permission, lore, actions).
    • Shift-Left-Click to pick up and move a setting to any other slot.
    • Real-time chat input capture with cancel support.
  • ⚡ Powerful Action Engine:

    • [player] <command> — Run command as the player
    • [console] <command> — Run command from server console (%player% supported)
    • [message] <text> — Send colorized message to player
    • [broadcast] <text> — Broadcast to the whole server
    • [sound] <SOUND:VOL:PITCH> — Play sound effect
    • [close] & [refresh] — Control GUI flow
    • [api] <tag> — Trigger custom plugin hooks
  • 🔌 Comprehensive Developer API:

    • Register settings in code using a fluent builder (Setting.builder("auto_pickup")...build()).
    • Attach Java callbacks (.onToggle(...) and .onClick(...)) in 3 lines of code.
    • Register custom action tags ([myplugin] doSomething).
    • Programmatically query or set player settings (EasySettingsAPI.isSettingEnabled(...)).
  • 🔄 Plugman / PlugmanX Safe:

    • Hardened reload and unload routines.
    • Automatically closes open menus, flushes persistent storage, cancels scheduled tasks, unregisters listeners, and clears static references to prevent memory leaks.
    • Built-in live reload command: /settings reload refreshes active player menus in real time.
  • 🧩 PlaceholderAPI Ready:

    • Native soft-dependency integration for titles, display names, and lore.

💻 Commands & Permissions

Command Permission Description
/settings easysettings.use Opens the player settings GUI
/settings editor easysettings.admin Opens the interactive visual GUI editor
/settings edit <id> easysettings.admin Opens the Inspector GUI for a specific setting
/settings add <id> easysettings.admin Adds a new setting at the next available slot
/settings delete <id> easysettings.admin Permanently deletes a setting
/settings list easysettings.admin Lists all registered settings, slots, and sources
/settings reload easysettings.admin Reloads config.yml and settings.yml

(Aliases: /setting, /settings, /esettings, /easysettings)


🔌 Quick Developer API Example

Add custom settings from your plugin in seconds:

import com.easysettings.api.EasySettingsAPI;
import com.easysettings.api.Setting;
import com.easysettings.api.SettingType;
import org.bukkit.Material;
import java.util.List;

Setting mySetting = Setting.builder("auto_pickup")
    .displayName("&#66FCF1&l<sc>Auto Pickup</sc>")
    .slot(13)
    .type(SettingType.TOGGLE)
    .item(Material.HOPPER)
    .defaultState(false)
    .description(List.of(
        "&#868E96Automatically collect mined items directly",
        "&#868E96into your inventory.",
        "",
        "&#495057│ &#868E96Status: %status%",
        "",
        "&#66FCF1▸ Click to toggle"
    ))
    .onToggle((player, setting, newState) -> {
        player.sendMessage("Auto Pickup: " + (newState ? "ON" : "OFF"));
    })
    .build();

EasySettingsAPI.registerSetting(mySetting);

For the complete integration guide covering Maven/Gradle, ready-made plugins (EssentialsX, Vault, PvP plugins), custom action tags, and events, check out our Integration Guide on GitHub!

Version Minecraft Loader Download

EasySettings 1.0.0

1.0.0

1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11
bukkit, folia, paper, purpur, spigot
Download