![[IMG]](//proxy.spigotmc.org/ab7f8f017db36d4115ea0e0c9fb69f01e21cb1e4/68747470733a2f2f692e6962622e636f2f333966726e4e56362f6e7973786c7574696c69746965732d393630783534302e706e67)
NysxlUtilities - Core Server Utilities
A foundational utility plugin providing essential backend features for Spigot servers.
⚠️ Developer API Disclaimer ⚠️
NysxlUtilities is primarily designed for internal use by Nysxl plugins (like PPLootChests).
It is
not intended as a stable public API for other developers.
Internal code structure and features change frequently and without notice, which
will break external plugins depending on it.
Note: While primarily an internal library, this plugin also includes some standalone admin commands.
✨ Core Features ✨
- Multi-Currency Economy: Manage multiple custom currencies via the EconomyManager. Features include setting/getting balances, deposits, withdrawals, transfers, and tax management. Includes Vault integration check and MySQL database support for persistence. (Requires Vault)
- ⚡ Advanced Command Framework: Utilizes powerful internal command builders (DynamicCommandBuilder, FluentCommandBuilder) for creating complex, validated commands with tab-completion support.
- ️ Dynamic GUI Manager: A backend system (DynamicInventoryHolder & related listeners) for creating interactive, custom inventory GUIs with simplified event handling for developers.
- Advanced Text Formatting: Includes utilities (TextUtils, ClickableTextHandler) for creating richly formatted text components with custom colors (including hex like #RRGGBB), styles, hover text, and clickable actions (run command, suggest command, open URL). Features automatic text centering approximation.
- PlaceholderAPI Support (Optional): Registers custom placeholders using its own PlaceholderRegistry if PlaceholderAPI is installed. Example provided: %nysxlserverutils_announcement%.
- ⚙️ Dynamic Configuration Manager: Simplifies loading, saving, and accessing custom configuration files (DynamicConfigManager).
- ✋ Item Interaction Manager: Provides a system (ItemInteractionManager) for defining and handling custom actions when players interact with specific items.
- Language/Localization System: Includes a basic Language class framework for managing translatable messages.
- ️ MySQL Integration Helper: Simple utility class (MySQL) for connecting to and interacting with MySQL databases from config, including automatic table initialization.
- Admin Commands: Includes commands like /currency, /tax, and /ServerAnnouncement for direct server management (permissions required).
- Player Chat Input Getter: Utility (PlayerChatGetter) potentially used for retrieving direct player input via chat.
Dependencies
- Vault: (Required) This plugin requires Vault for all economy features (/currency, /tax) to function correctly. You must have Vault installed along with a compatible economy plugin (e.g., EssentialsX Economy).
- PlaceholderAPI: (Optional) Required only if you want to use the custom placeholders (like %nysxlserverutils_announcement%) provided by this plugin.
Included Commands (Detailed)
- /tax - Base Permission: (Assumed myapp.tax.use from code)
Description: Manages tax rates and viewing collected tax per currency.
(Requires Vault)
- set rate <currency> <percentage>
Description: Sets the tax percentage (0.0 to 1.0) for a currency.
Permission:
NysxlServerUtils.tax.admin
- set <currency> <amount>
Description: Manually sets the total amount recorded as paid tax for a currency.
Permission:
NysxlServerUtils.tax.admin
- get rate <currency>
Description: Shows the current tax rate percentage for a currency.
Permission: Base permission (e.g.,
myapp.tax.use)
- get <currency>
Description: Shows the total amount recorded as paid tax for a currency.
Permission: Base permission (e.g.,
myapp.tax.use)
- /currency
Description: Manages player balances and currency types.
(Requires Vault)
- set <currency> <player> <amount>
Description: Sets a player's balance for a specific currency.
Permission:
NysxlServerUtils.currency.admin
- get <currency> <player>
Description: Checks a player's balance for a specific currency.
Permission:
NysxlServerUtils.currency.admin
- add <currency> <player> <amount>
Description: Adds an amount to a player's balance.
Permission:
NysxlServerUtils.currency.admin
- subtract <currency> <player> <amount>
Description: Subtracts an amount from a player's balance (checks funds).
Permission:
NysxlServerUtils.currency.admin
- pay <currency> <player> <amount>
Description: Transfers amount from your balance to another player.
(Player command)
Permission: (Player must have sufficient funds; no specific node found beyond base command access)
- create <currency> <aliase>
Description: Creates a new currency type.
Arguments:
<currency> = New name,
<aliase> = Symbol/short name.
Permission:
NysxlServerUtils.currency.admin
- /ServerAnnouncement
Description: Manages the server announcement message.
Placeholders (Requires PlaceholderAPI)
- %nysxlserverutils_announcement%: Displays the current server announcement message.
- (More placeholders may be registered depending on configuration/use)
NysxlUtilities serves as a core library, providing robust and reusable components essential for other Nysxl plugins and offering useful standalone utilities.