Skip to content

♻️ Clean up Paper integration and support Minecraft 26.3 - #254

Merged
Maxlego08 merged 23 commits into
Maxlego08:developfrom
NoltoxGit:refactor/paper-cleanup
Oct 22, 2026
Merged

Maxlego08 merged 23 commits into
Maxlego08:developfrom
NoltoxGit:refactor/paper-cleanup

Conversation

@NoltoxGit

@NoltoxGit NoltoxGit commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

This PR sets Paper 1.21.4 as the minimum supported version, adds Minecraft 26.3 support and makes item, enchantment and MiniMessage handling consistent across the plugin.

Changes

  • Remove the obsolete 1.20.6, 1.21, 1.21.1 and 1.21.3 NMS modules and unused Spigot implementations. Add the 26.3 hologram and waypoint adapters.
  • Resolve enchantments from the server registry, including datapack and plugin enchantments. Use canonical identifiers, hide minecraft: for vanilla suggestions and retain custom namespaces.
  • Align give, mailbox and vault item lookup and suggestions. Use translated item names in feedback while preserving custom names, and fix offline custom item delivery and stale items after reloads.
  • Use the published zMenu API for skull loading and kit conversion/saving. Preserve kit item quantities, metadata and existing configuration when saving the editor.
  • Use native MiniMessage in messages, examples and scoreboard animations. Preserve literal text and scoped italics, account for bold text when aligning messages, and escape click event values correctly across Adventure 4 and 5.
  • Fix unresolved feedback placeholders, duplicate Death Message module registration, version comparisons and incomplete downloads.
  • Centralize dependency versions in the Gradle catalog. Update Gradle to 9.8.2, Shadow to 9.6.1 and paperweight to 2.0.0-beta.24, preserving GroupeZ output and API publication conventions.
  • Update PlaceholderAPI to 2.12.3, Sarah to 1.26 and Jedis to 8.0.2. Align Adventure for recent NMS modules, add connection lifetime configuration, simplify SQLite migrations and fix Redis connection leaks and subscription shutdown.
  • Update the Discord bot to SnakeYAML 2.7, JDA 6.7.0 and MySQL Connector/J 26.10.0. Adapt interactions and channel permission checks, add MariaDB selection, preserve exact Discord IDs and inherit the plugin version.
  • Update issue forms and simplify the changelog.

Compatibility and migration

  • Paper 1.21.4+ with a supported NMS module is required. Common code and API retain Java 21 bytecode; Minecraft 26.x modules use Java 25.
  • zMenu 1.1.2.0 is required. The local compile-only JAR remains necessary for item persistence and sound helpers missing from the public API; no zMenu implementation classes are bundled in zEssentials.
  • Enchantment aliases are replaced by canonical identifiers such as sharpness and fire_aspect. The legacy enchantment wrapper, getEnchantments(String) and register() remain available and deprecated; register() is a no-op.
  • Existing message and configuration files must replace legacy & / § codes and bare hex color text with MiniMessage tags such as <c:#ED2939>. Existing command-enchant-error-enchant messages must use %enchant%.
  • database-configuration.max-lifetime uses seconds: an absent or negative value keeps Sarah's default, 0 disables age-based retirement and positive values must be at least 30. Connection changes require a restart.
  • Jedis 8 officially supports Redis 7.2+. The bot's Connector/J supports MySQL 8.4+; older MySQL versions produce a startup warning. Set the bot's database-configuration.type to MARIADB to use its MariaDB driver; omitted values retain MySQL.

Validation

  • Clean build of the plugin, API and Discord bot shaded JARs, plus API sources, Javadoc and publication POM.
  • Compile all common and API sources against Paper 1.21.4 and Adventure 4.20.0. Check packaged bytecode: only the 26.x NMS classes require Java 25.
  • Start temporary Paper 1.21.4 / Java 21 and Paper 26.3 / Java 25 servers with zMenu 1.1.2.0 and PlaceholderAPI 2.12.3. Forty server checks pass on each, covering datapack enchantments, item lookup and reloads, offline mailbox delivery, skull loading, kit editor save/reload and NMS hologram creation.
  • Run 269 formatting checks with each of Adventure 4.20.0, 4.26.1 and 5.2.0, covering literal text, bold width, click payloads and scoreboard color interpolation.
  • Validate all bundled YAML resources and issue forms, compare configuration changes with develop and check the final diff for whitespace errors.
  • Additional branch checks cover SQLite migrations, Redis pooling/pub-sub/authentication, MySQL/MariaDB connections, bot configuration and JDA interaction simulations.

Final client-side visual checks and a live Discord account-linking test remain pending. All diagnostic code and test servers are outside the repository.

- Require Paper 1.21.4 or newer and remove the 1.20.6, 1.21, 1.21.1 and 1.21.3 NMS modules.
- Remove unused Spigot implementations and redundant platform checks.
- Use Paper APIs for chat, menus, enchantments and plugin metadata.
- Fix duplicate death message module registration and custom item name handling.
- Fix version comparisons, incomplete downloads and resource cleanup.
- Preserve GroupeZ Gradle conventions and remove obsolete version metadata and unused test dependencies.

- Verify plugin packaging and Discord bot compilation.
- Add and package a dedicated Paper 26.3 NMS module using the Java 25 toolchain.
- Adapt hologram entity tracking and item conversion to Minecraft 26.3.
- Preserve the Paper 1.21.4 common API and existing version-specific modules.
- Extend ignore rules for IDE files, Kotlin caches and local development tools.
- Preserve Gradle wrapper, library JAR and source directory exceptions.
- Verify plugin compilation, deployment and temporary hologram loading on the 26.3 server.
- Resolve and list vanilla, datapack and plugin enchantments directly from the server registry.
- Remove manual enchantment registration, aliases and their wrapper types.
- Show vanilla enchantment names without the minecraft namespace in completion suggestions.
- Preserve custom namespaces and accept explicit namespaced keys.
- Return Bukkit enchantments directly and update the command and item placeholders.
- Verify plugin and API compilation against the Paper 1.21.4 baseline.
- Accept vanilla item identifiers with or without the minecraft namespace.
- Suggest canonical item names without the namespace and exclude non-item materials and air.
- Preserve configured custom items and their lookup priority.
- Use translatable item and material names in give, mailbox, vault and utility feedback.
- Preserve custom item names and formatting through the effective item name.
- Share item name formatting and remove duplicate mailbox and vault formatting.
- Verify plugin compilation against Paper 1.21.4; in-game validation remains pending.
- Use the enchant placeholder in the unknown enchantment message across the API and all translations.
- Use the correct feedback message for hologram text shadows.
- Provide the missing duration placeholder in kick notifications.
- Provide sender, duration and creation date placeholders in kick-all notifications.
- Verify plugin and API compilation.
- Remove 40 unused imports and 6 duplicate imports across the project.
- Clean up blank lines left by removed imports without changing behavior.
- Verify plugin, API and Discord bot compilation.
- Summarize Paper support, command improvements and fixes under Unreleased.
- Document enchantment API and message placeholder changes.
- Update the list of planned features.
- Build custom mailbox items with an offline player context.
- Clear cached custom items before reloading their configuration.
- Align mailbox and vault item suggestions with give commands.
- Preserve custom enchantment namespaces in item placeholders.
- Verify plugin compilation and functional checks on the 26.3 test server.
- Align bug reports with supported Minecraft versions and storage types.
- Request clear environment details, reproduction steps and latest.log links through mclo.gs.
- Simplify feature requests and refresh support links.
- Update planned features and issue references in the changelog.
- Validate the YAML files and form structure locally.
- Restore and deprecate the legacy enchantment wrapper and lookup signature.
- Keep register callable as a no-op for compatibility.
- Add getEnchantment for direct Bukkit enchantment lookup and migrate internal callers.
- Update the changelog to describe the deprecation path.
- Verify compilation, original public signatures and legacy consumer compilation.
- Update the list of planned features.
- Centralize dependency and build plugin versions in a Gradle version catalog.
- Update Gradle to 9.8.2, Shadow to 9.6.1 and paperweight to 2.0.0-beta.24.
- Target Java 25 in the 26.x NMS modules and preserve Java 21 for common code.
- Preserve library relocations in the Discord bot and update the changelog.
- Update Sarah to 1.26 and inherit its SQL and mapping fixes.
- Add max-lifetime configuration with global database settings support.
- Simplify SQLite column migrations using Sarah’s native handling.
- Update the changelog.
- Update the Discord bot to SnakeYAML 2.7.
- Replace the removed Base64Coder utility with the Java Base64 decoder.
- Preserve multiline Base64 decoding and update the changelog.
- Update the Discord bot to JDA 6.7.0.
- Migrate buttons to the public component API.
- Send public link messages through interaction follow-ups.
- Check permissions using the interaction channel and update the changelog.
- Update Jedis to 8.0.2 and preserve legacy RESP2 behavior.
- Return borrowed Redis connections to the pool after use.
- Unsubscribe the Redis listener during shutdown.
- Preserve the pool interface and document Redis 7.2+ support.
- Update Connector/J to 26.10.0 using its current Maven coordinates.
- Add MariaDB driver selection to the Discord bot and preserve existing configuration support.
- Warn about MySQL versions older than 8.4 without blocking startup.
- Inherit the root plugin version in the Discord bot.
- Preserve exact Discord IDs in configuration and update the changelog.
- Update PlaceholderAPI to 2.12.3\n- Align Adventure versions for recent NMS modules while preserving the Paper 1.21.4 baseline
- Read click values from typed Adventure 5 payloads\n- Preserve support for Adventure 4 and Paper 1.21.4
- Replace legacy ampersand and section-sign color parsing with MiniMessage.

- Convert bundled messages and configuration examples to custom hex color tags.

- Keep configurable message color aliases and MiniMessage item serialization.
- Replace raw hex color text in bundled messages and menu examples with MiniMessage tags
- Render scoreboard color wave frames using native MiniMessage color tags
- Move skull item loading and kit item conversion and serialization to the public API
- Require zMenu API and fallback JAR version 1.1.2.0
- Retain the local implementation for item persistence and sound helpers
@NoltoxGit
NoltoxGit marked this pull request as draft October 21, 2026 19:42
- Preserve edited kit stack sizes when zMenu uses the Base64 fallback
- Use native MiniMessage serialization and preserve scoped item italics without polluting cached messages
- Restore bold text alignment, escape click payloads and clamp scoreboard color interpolation
- Render sanction feedback through MiniMessage and simplify the changelog
@Maxlego08
Maxlego08 marked this pull request as ready for review October 22, 2026 17:22
@Maxlego08
Maxlego08 merged commit e8539ed into Maxlego08:develop Oct 22, 2026
2 checks passed
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-22T17:23:13.731129Z
We couldn’t complete this review. Comment @codex review to try again.
9b040ea Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@NoltoxGit
NoltoxGit deleted the refactor/paper-cleanup branch November 1, 2026 21:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants