From 67fa2db30f2471a551d70e02de0e94a6d5d73b83 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Mon, 14 Jul 2025 07:19:42 -0700 Subject: [PATCH] Replaces use of old org.bukkit.util.config.Configuration API. --- TODO.md | 2 +- .../plugins/mobscores/MobScoresPlugin.java | 40 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/TODO.md b/TODO.md index 99911b3..9c00bc6 100644 --- a/TODO.md +++ b/TODO.md @@ -9,7 +9,7 @@ - [x] Ensure plugin.yml is present in src/main/resources and update for PaperMC compatibility (api-version, commands, required fields). - [ ] Refactor all logger usage to use getLogger() from JavaPlugin. - [ ] Refactor all event listeners to use the modern event system (Listener interface, @EventHandler, registerEvents). -- [ ] Replace use of org.bukkit.util.config.Configuration with the modern configuration API (getConfig(), saveConfig(), etc.). +- [x] Replace use of org.bukkit.util.config.Configuration with the modern configuration API (getConfig(), saveConfig(), etc.). - [ ] Update score table to use Bukkit entity types or enums instead of CraftBukkit class names. - [ ] If storing player scores, refactor to use UUID as the key instead of Player or String. - [ ] Build the plugin with Gradle (./gradlew build) and test on a modern Paper server using the provided bash scripts. _(Depends on: all refactors and plugin.yml update)_ diff --git a/src/main/java/com/majinnaibu/minecraft/plugins/mobscores/MobScoresPlugin.java b/src/main/java/com/majinnaibu/minecraft/plugins/mobscores/MobScoresPlugin.java index 77b4f76..c431e80 100644 --- a/src/main/java/com/majinnaibu/minecraft/plugins/mobscores/MobScoresPlugin.java +++ b/src/main/java/com/majinnaibu/minecraft/plugins/mobscores/MobScoresPlugin.java @@ -31,7 +31,6 @@ import org.bukkit.event.Event; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.util.config.Configuration; import com.majinnaibu.minecraft.plugins.mobscores.listeners.MobDeathListener; import com.majinnaibu.minecraft.plugins.mobscores.listeners.PlayerConnectListener; @@ -40,10 +39,9 @@ import com.majinnaibu.minecraft.plugins.scorekeeper.ScoreKeeperPlugin; public class MobScoresPlugin extends JavaPlugin { private final MobDeathListener _mobDeathListener = new MobDeathListener(this); private final PlayerConnectListener _playerConnectListener = new PlayerConnectListener(this); - private HashMap _claimedMobs = new HashMap(); - private HashMap _scoreTable = new HashMap(); + private Map _claimedMobs = new HashMap(); + private Map _scoreTable = new HashMap(); private ScoreKeeperPlugin _scoreKeeper = null; - private Configuration _configuration = null; private final String _logStart = "[" + ChatColor.AQUA + "MobScores" + ChatColor.WHITE + "] "; @@ -51,30 +49,30 @@ public class MobScoresPlugin extends JavaPlugin { @Override public void onDisable() { - _configuration.setProperty("ScoreTable", _scoreTable); - _configuration.save(); - + getConfig().set("ScoreTable", _scoreTable); + saveConfig(); } @SuppressWarnings("unchecked") @Override public void onEnable() { - _configuration = getConfiguration(); - try{ - _scoreTable = (HashMap)_configuration.getProperty("ScoreTable"); - }catch (Exception ex){ + // Create the default config if it doesn't exist. + saveDefaultConfig(); + + // Load our score table from config or set defaults. + if (getConfig().contains("ScoreTable")) { + Object rawValue = getConfig().get("ScoreTable"); + if (rawValue instanceof Map) { + _scoreTable = new HashMap<>((Map) rawValue); + } else { + _scoreTable = getDefaultScoreTable(); + } + } else { _scoreTable = getDefaultScoreTable(); + getConfig().set("ScoreTable", _scoreTable); + saveConfig(); } - - if(_scoreTable == null){ - _scoreTable = getDefaultScoreTable(); - } - - _configuration.setProperty("ScoreTable", _scoreTable); - - - _configuration.save(); - + PluginManager pm = getServer().getPluginManager(); _scoreKeeper = (ScoreKeeperPlugin)pm.getPlugin("ScoreKeeper");