Skip to content

Add support for newer versions and upgrade to Java 21#4348

Open
intisy wants to merge 390 commits into
Slimefun:experimentalfrom
Slimefun5:experimental
Open

Add support for newer versions and upgrade to Java 21#4348
intisy wants to merge 390 commits into
Slimefun:experimentalfrom
Slimefun5:experimental

Conversation

@intisy

@intisy intisy commented Mar 3, 2026

Copy link
Copy Markdown

Description

This commit adds support for Minecraft versions up to 1.21.11 and upgrades to Java 21.

Proposed changes

I modified the code to work with newer spigot versions, while still supporting any older versions.

Checklist

  • I have fully tested the proposed changes and promise that they will not break everything into chaos.
  • I have also tested the proposed changes in combination with various popular addons and can confirm my changes do not break them.
  • I have made sure that the proposed changes do not break compatibility across the supported Minecraft versions (1.16.* - 1.20.*).
  • I followed the existing code standards and didn't mess up the formatting.
  • I did my best to add documentation to any public classes or methods I added.
  • I have added Nonnull and Nullable annotations to my methods to indicate their behaviour for null values
  • I added sufficient Unit Tests to cover my code.

@intisy intisy requested review from a team as code owners March 3, 2026 22:31
@github-actions

github-actions Bot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

Pro Tip!
You can help us label your Pull Requests by using the following branch naming convention next time you create a pull request. ❤️

Branch naming convention Label
feature/** 🎈 Feature
fix/** ✨ Fix
chore/** 🧹 Chores
api/** 🔧 API
performance/** 💡 Performance Optimization
compatibility/** 🤝 Compatibility

If your changes do not fall into any of these categories, don't worry. You can just ignore this message in that case! 👀

@Boomer-1

Boomer-1 commented Mar 3, 2026

Copy link
Copy Markdown

Just a heads up. The program has been officially abandoned for 5 months and no further updates will be done

@intisy intisy requested a review from TheBusyBiscuit as a code owner March 5, 2026 14:19
@intisy intisy force-pushed the experimental branch 5 times, most recently from 3c98bfc to b4972d6 Compare May 16, 2026 14:12
intisy added 20 commits June 14, 2026 16:39
 - -PlocalAddons builds addons-src working copies as-is (skips git reset) for iterating local addon ports
 - run-headless.ps1 boots a version, captures the log, auto-stops once started
 - copyAddonJar survives a jar locked by a stale server; resolve addon gradlew by absolute path
…ports the real version (not 5.0.0-UNOFFICIAL)
… value (player head was rendering as skeleton skull)
intisy added 30 commits July 3, 2026 00:22
…lds show Unofficial and never show a false update
… resolve item display from en/items.yml

 - add clean id-only SlimefunItemStack(id, Material)/(id, HeadTexture)/(id, String) constructors
 - deprecate all name/lore-bearing constructors + LoreBuilder (English belongs in en/items.yml)
 - applyServerDefaults now bakes composed block lore, so id-only items get their full display from resources
 - pilot: GOLD_PAN migrated to the id-only form
…ctor forms

 - TAPE_MEASURE (skull texture), ELECTRIC_MOTOR (head texture), GRAPPLING_HOOK + SOLAR_GENERATOR (material)
 - covers name/type/description/stats/usage resolution + LoreBuilder removal, all from en/items.yml
 - ItemEffortHeuristic: effort 0-100 from recipe-tree depth, rare ingredients, machine tier, research gate
 - BalanceVerdict combines authored Power x Effort: OVERPOWERED = strong AND cheap, ENDGAME = strong but earned
 - addon summary OP count is now verdict-based; tiles headline PEAK + OP count instead of the diluted average
 - balance menu shows Power / Effort / Verdict per item; keys added in en/de/fr/es
…peak-first tile

 - effort now scales off deepest Slimefun-ingredient chain (bounded), not a compounding per-ingredient sum;
   100 is reserved for the very deepest gated items, so strong+cheap items correctly read OVERPOWERED again
 - addon detail tile leads with Peak + OP count, average demoted (OP items no longer hidden by the mean)
…oot (fix installer open freezing the server)
…(hide vanilla tooltip where supported)

 - EnchantDisplay: grey 'Knockback II'-style lines from the item's enchantments, gated on HIDE_ENCHANTS being
   available so it never double-renders (no-op on versions where the vanilla tooltip can't be hidden)
 - LoreComposer appends them to the Type block; bake/getDisplayItem/applyHolderTranslation hide the vanilla tooltip
…k line before enchantments

 - id-only items set no lore in code; a null lore list NPE'd every constructor/addon that reads or appends
   getItemMeta().getLore() (Talisman copying base lore aborted core item registration; MissileWarfare lore.add).
   Base ctor now seeds an empty lore list when none is set - display-identical, safe to append to.
 - enchantments render as their own block after Type so there's a blank line between category and enchants
…tion on id-only items)

 - the empty-lore approach in 2a1a72a was a no-op: Bukkit normalises setLore([]) back to null, so read
   sites must guard. Talisman copied its base lore via getLore() and NPE'd, aborting ~60% of item setup
   (the 'most items missing' bug). Now guarded.
 - add BootSmokeTest: boots Slimefun via MockBukkit + runs the real SlimefunItemSetup headlessly, so this
   whole class of registration/lore regressions fails the build instead of a live boot.
 - backpack identity moved to PDC (fixes id reset + dupe); DistinctiveItem stack-compare fix
 - effort-aware addon balance verdict; async balance cache warm-up (guide first-open freeze)
 - item-family i18n templates (%MOB%) + ANDROID_INTERFACE_FUEL name fix
 - LoreComposer no-double-blank rule; Tome single-button lore
 - raw ores crush to doubled dust
 - installer: "up to date" disable, version picker/downgrade, non-/plugins update guard
 - uniform per-addon startup banner; experimental-version warning; SoulJars catalog entry
 - headless tests: boot invariants, backpack identity, item families
 - wiki home gains a "Browse by Addon" view; every addon with items is reachable to per-item pages
 - /sf migrationcheck reports inventory items whose stored id no longer resolves
 - BootSmokeTest: upstream-PDC migration resolution + addon-coverage invariants (de/fr/es localized)
…nly)

 - accepts an optional <player> arg; works from console; keeps op-default permission
 - MetricsService: no more "build #null" when the metrics jar has no version
 - run.ps1: add SoulJars to the addon picker
… stamping

 - core uses the shared Slimefun5/gradle version resolver (git-tag based)
 - runServer orchestrator stamps every addon <tag>-UNOFFICIAL for consistent boot logs
 - Java-25 test toolchain + fork test filters; addon manifest pins @experimental (SoulJars now on experimental)
 - the version + branch submenus fetched from GitHub before opening, so a click did nothing for a few seconds
 - now a loading frame opens immediately and the real list renders on top when the async fetch returns
…k-updates feedback

 - isInPluginsDir now accepts jars anywhere under /plugins (Paper 1.20.6+ loads from plugins/.paper-remapped), so installer-installed addons update instead of being wrongly refused
 - check-updates flips the button to a "checking" state + reports a chat summary (count + which addons + versions), not just silent badge updates
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