Files
MobScores/TODO.md

2.4 KiB

Modernize MobScores Plugin: Implementation Tasks

  • Analyze all Java source files for deprecated or removed Bukkit API usage, including logger, event registration, listener classes, configuration API, and entity/player mapping.
  • Identify and document any hardcoded Bukkit references or legacy patterns (e.g., Player as HashMap key, old event registration, CraftBukkit class names). (Depends on: code analysis)
  • Review and list any custom scripts or resources (e.g., bash scripts in tools/bash/) that may need migration or updates. (Depends on: code analysis)
  • Initialize Gradle in the project root and create a build.gradle file with project metadata, PaperMC API dependency, JUnit, Java toolchain, repository, resource handling, and plugins as needed. (Depends on: code analysis)
  • Remove Maven-specific files (pom.xml, .mvn/ directory, Maven wrapper scripts) and Eclipse-specific files (.classpath, .project, .settings/) if present. (Depends on: Gradle init)
  • Update .gitignore to add Gradle-specific ignores and remove Maven/Eclipse-specific ignores. (Depends on: Gradle init)
  • Ensure plugin.yml is present in src/main/resources and update for PaperMC compatibility (api-version, commands, required fields). (Depends on: Gradle init)
  • Refactor all logger usage to use getLogger() from JavaPlugin. (Depends on: code analysis)
  • Refactor all event listeners to use the modern event system (Listener interface, @EventHandler, registerEvents). (Depends on: code analysis)
  • Replace use of org.bukkit.util.config.Configuration with the modern configuration API (getConfig(), saveConfig(), etc.). (Depends on: code analysis)
  • Update score table to use Bukkit entity types or enums instead of CraftBukkit class names. (Depends on: code analysis)
  • If storing player scores, refactor to use UUID as the key instead of Player or String. (Depends on: code analysis)
  • 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)
  • Address any bugs or incompatibilities found during testing on a modern server. (Depends on: build and test)
  • Update README.md and CONTRIBUTING.md with new build, usage, and development instructions. (Depends on: bugfixes)
  • (Optional) Add new features, quality-of-life improvements, automated tests, or CI configuration. (Depends on: docs update)