Skip to content

Update to Minecraft 26.x: Paper 26.3, Java 25, item components - #25

Closed
BrainRTP wants to merge 14 commits into
masterfrom
BrainRTP/Обновление

Hidden character warning

The head ref may contain hidden characters: "BrainRTP/\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435"
Closed

BrainRTP wants to merge 14 commits into
masterfrom
BrainRTP/Обновление

Conversation

@BrainRTP

Copy link
Copy Markdown
Collaborator

Moves the plugin to Minecraft 26.x (Paper 26.3 API, Java 25), adds item data component properties, fixes offline player heads and passes inventory titles as Adventure components. Builds on #24, which is already merged, and fixes a bug in it.

Platform and build

  • Minecraft 26.1+ and Java 25 only. Older versions are no longer supported.
  • paper-api:26.3.build.+ replaces paperweight-userdev. The code never used NMS, so the dev bundle was not needed. api-version is 26.1, and the plugin also compiles against paper-api 26.1.2.
  • Gradle 9.0 -> 9.9.1, Shadow 9.6.1, Lombok 1.18.48, FoliaLib 0.5.2 (new com.tcoded coordinates), NBT API 2.16.1, WorldGuard 7.0.21, PlaceholderAPI 2.12.3, SkinsRestorer API 15.12.6, JUnit 6.1.3, MockBukkit v26.3 4.120.0, Mockito 5.24.0, Adventure MiniMessage 5.2.0 to match Paper.
  • GitHub Actions bumped to current majors, JDK 25 in all three workflows and in jitpack.yml.
  • MythicLib stays at 1.0.12-SNAPSHOT because the bundled MMOItems-6.5.4.jar needs a class that newer MythicLib removed.
  • Removed: ProGuard setup that nothing used, two dead reflection helpers in util/proxy, the CraftServer reflection in CommandManager, the unused Paper 1.20.6 jar in plugin/libs.

Item properties

  • New: itemModel, tooltipStyle, maxStackSize, rarity.
  • tooltipDisplay from add: tooltipdisplay support #24: the component was written to the ItemStack and then overwritten by the meta flush in SimpleItem, so it was lost whenever a name or lore sat next to it. Fixed, with a test that builds the item the way a menu does. It now merges with components hidden by flags instead of replacing them. The static test hooks are gone from production code.
  • model accepts an integer as before, or an object with floats, flags, strings and colors.
  • glow uses the enchantment glint override instead of a hidden Unbreaking enchantment.
  • flags no longer injects default attribute modifiers by reflection. Paper 26.3 maps HIDE_ATTRIBUTES to the tooltip_display component itself. This also stops flags from clobbering attributeModifiers.
  • data keeps working as a damage alias through Damageable.

Heads and titles

  • skullOwner works for offline players through a name-only profile that Paper resolves asynchronously. No blocking lookup while a menu is built.
  • Inventory titles are created from Components. Legacy & and section codes, hex codes and MiniMessage keep working.

Behaviour changes for server admins

These are also in the new "Upgrading" section of the README.

  • Items handed to players by older versions with glow or flags no longer match clickItem activators, heldItem and inventoryItem rules or itemRemove, because the old extra enchantment and attribute modifiers are gone. They have to be reissued.
  • Placeholders: block_data returns the block state string, item_data returns the damage value, item_localized_name returns an empty string. block_biome is unchanged.
  • & codes coming out of placeholders in a menu title are now translated too.

Issues

Fixes #2. #1, #14 and #8 were already fixed by the 2.0.0 rewrite and can be closed once this is released.

Testing

  • ./gradlew build on JDK 25: 266 tests, 0 failed, 0 skipped.
  • Smoke run on Paper 26.3 build 249: the plugin enables, loads the bundled menus and builds the example items with no exceptions.

Not tested: rendering in a graphical client (offline head skins, hidden attribute tooltips, count above the stack size on unstackable items), the optional integrations (Vault, LuckPerms, WorldGuard, MMOItems, SkinsRestorer and others), Folia, and the JitPack build. CI on this PR is the first run of the workflows on Java 25.

@BrainRTP BrainRTP closed this Nov 12, 2026
@BrainRTP
BrainRTP deleted the BrainRTP/Обновление branch November 12, 2026 11:27
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.

the problem with the flag: HIDE_ATTRIBUTES

1 participant