DeluxeMobCoins v1.2 - The MySQL & Stability Update! This is a major feature and stability update, introducing
MySQL support and resolving several critical data handling bugs.
# --- Database Settings ---
# Configure the MySQL database connection here.
database:
# Set to true to use the MySQL database for storing player data.
# If false, the plugin will use the local data.yml file.
enabled: false
host: "localhost"
port: 3306
database: "deluxemobcoins"
username: "root"
password: "your_password"
# General settings for the plugin
settings:
# Set to true to enable the mobcoins shop, false to disable.
shop-enabled: true
# Set to true to enable mobcoins dropping from mobs, false to disable.
mob-drops-enabled: true
# List of worlds where mobcoins will NOT drop from mobs.
# Case-sensitive, use the exact world folder name.
disabled-worlds:
- "world_the_end"
- "world_nether"
- "creative"
# --- Death Penalty Settings ---
# Configure what happens when a player dies.
death-penalty:
# Set to true to enable players losing MobCoins on death.
enabled: true
# The percentage of MobCoins a player will lose upon death.
# For example, 10 means the player loses 10% of their balance.
loss-percentage: 10
# All plugin messages can be configured here.
# You can use standard color codes (e.g., &a, &l, &6).
messages:
prefix: "&e[&6MobCoins&e] &r"
reload: "&aConfiguration files have been reloaded successfully."
no-permission: "&cYou do not have permission to execute this command."
player-not-found: "&cPlayer '{player}' could not be found."
invalid-amount: "&cPlease enter a valid positive number."
# --- Help Menu ---
# This menu is shown when a player types /mobcoins help.
# Use {version} to display the current plugin version.
help-menu:
- "&8&m----------------------------------------------------"
- " &6&lDeluxeMobCoins &8- &7v{version} by Allync"
- ""
- " &e&lUser Commands:"
- " &6/mobcoins &8- &7Check your current MobCoin balance."
- " &6/mobcoins balance [player] &8- &7Check your or another player's balance."
- " &6/mobcoins pay <player> <amount> &8- &7Send MobCoins to another player."
- " &6/mobcoins shop &8- &7Open the MobCoin shop."
- " &6/mobcoins help &8- &7Shows this help menu."
- ""
- " &c&lAdmin Commands:"
- " &6/mobcoins give <player> <amount> &8- &7Give MobCoins to a player."
- " &6/mobcoins set <player> <amount> &8- &7Set a player's MobCoin balance."
- " &6/mobcoins reload &8- &7Reload the plugin's configuration."
- "&8&m----------------------------------------------------"
# Admin command messages
coins-given: "&aYou have given &6{amount} &aMobCoins to &e{player}&a."
coins-set: "&aYou have set &e{player}'s &abalance to &6{amount} &aMobCoins."
# Player command messages
balance: "&aYour current balance is &6{balance} &aMobCoins."
balance-others: "&e{player}'s &acurrent balance is &6{balance} &aMobCoins."
pay-success-sender: "&aYou have sent &6{amount} &aMobCoins to &e{receiver}&a."
pay-success-receiver: "&aYou have received &6{amount} &aMobCoins from &e{sender}&a."
cannot-pay-self: "&cYou cannot send MobCoins to yourself."
not-enough-balance-to-pay: "&cYou do not have enough MobCoins to send that amount."
# Shop messages
shop-disabled: "&cThe MobCoins shop is currently disabled."
not-enough-coins: "&cYou do not have enough MobCoins to purchase this item."
purchase-success: "&aYou have successfully purchased &e{item} &afor &6{price} &aMobCoins."
# Event messages
coins-received: "&aYou have received &6{amount} &aMobCoins from &e{sender}&a."
player-death-loss: "&cYou died and lost &6{amount} &cMobCoins ({percentage}% of your balance)."
# Mob drop notification settings
mob-drop-message:
# Set to true to show the title/subtitle message on screen.
enabled: true
title: "&6+{amount} MobCoins"
subtitle: "&eFrom killing a {mob}"
# --- Sound Settings ---
# Set to true to play a sound when coins are dropped.
sound-enabled: true
# The sound to play. List of sounds: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
sound-effect: "ENTITY_EXPERIENCE_ORB_PICKUP"
# The volume of the sound (e.g., 1.0 is normal volume).
sound-volume: 1.0
# The pitch of the sound (e.g., 1.0 is normal pitch).
sound-pitch: 1.5
✨ Added
MySQL Database Support: You can now use a MySQL database as a backend for storing all player coin data. This is highly recommended for larger servers to improve performance and data management.
New Database Configuration: A new database section has been added to config.yml. You can enable/disable database usage and configure your connection details. The plugin will default to using YAML files if the database is disabled.
Data Migration Command: Added the /mobcoins convert command for administrators. This command will seamlessly migrate all existing player data from YAML files into the configured MySQL database.
New Admin Permission: Added the deluxemobcoins.convert permission, which is required to use the new data migration command.
️ Fixed
Critical Data Sync Bug: Fixed a major issue where balance changes for online players were not saved immediately, which could lead to data loss on server crash.
Balance Reset on Login Bug: Fixed a critical bug where offline players would see their balance as 0 upon logging in.
Reload Data Loss Bug: The plugin is now safe to reload. It will correctly handle data for online players during a reload, preventing their data from being wiped.
MySQL Connection Error: Fixed a "Public Key Retrieval is not allowed" error when connecting to modern MySQL servers.
Post-Conversion Balance Bug: Fixed an issue where online players would not see their updated balance after a data conversion until they re-logged.
⚙️ Changed
Complete Data Layer Refactor: The entire data management system has been rewritten to be more robust and support both YAML and MySQL.
Connection Pooling: The plugin now uses HikariCP for high-performance database connection pooling.
Build Process: The plugin now uses the maven-assembly-plugin to create a "fat jar," preventing library-related errors.
Permissions Structure: Re-organized admin permissions under a single parent, deluxemobcoins.admin, for easier management.