Update to support MC 26.1.x and skript latest+#40
Open
HamzaQaz wants to merge 12 commits into
Open
Conversation
Fork-and-rename groundwork for modernizing to Minecraft 26.1.2 + Skript 2.15. - Package com.ankoki.skjade -> com.ankoki.skjadeplus across all sources - Main class SkJade -> SkJadePlus; plugin.yml name/main updated (distinct name so SkJadePlus can coexist with the original SkJade) - Command skjade -> skjadeplus, with skjade kept as an alias - UpdateChecker now targets HamzaQaz/SkJadePlus - Disable Ankoki's bStats project id (10131) pending a dedicated SkJadePlus id - authors: [Ankoki, HamzaQaz]; rewrite README; Gradle-ready .gitignore Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace Maven with Gradle:
- build.gradle.kts / settings.gradle.kts / wrapper. paperweight-userdev
2.0.0-beta.21, paper dev-bundle 26.1.2.build.66-stable, Java 25 toolchain,
com.gradleup.shadow 9.4.2 (relocate bStats), run-paper 3.0.2. No reobf (26.1+
is Mojang-mapped). plugin.yml api-version 1.21 + Gradle ${version} expansion.
- Skript 2.15.2 (repo.skriptlang.org), Pastebin-API shaded, bStats 3.1.0.
Fix API drift for a green core compile:
- Enchantment.ARROW_INFINITE -> INFINITY (ExprGlowing).
- Stub the unregistered/experimental EffAsyncFunction (Skript moved the function
API to org.skriptlang.skript.common.function).
Temporarily exclude hooks (handled in later phases / blocked upstream):
- holograms: dead HolographicDisplays v2 API -> DecentHolograms (Phase 5).
- protocollib: no stable 26.1.2 ProtocolLib build (Phase 6).
- elementals: upstream abandoned, no 26.1.2 build (cannot load on 26.1.2).
Core (115 classes: conditions/effects/expressions/events + pastebin + lasers)
compiles and packages on MC 26.1.2 + Skript 2.15.2 / JDK 25. NMS-based effects
compile via reflection but still need a runtime port to Paper API (Phase 4).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Port (reflection -> native Paper/Bukkit API): - EffFakeDamage -> LivingEntity#broadcastHurtAnimation(viewers) - EffHideEntity -> Player#hideEntity(plugin, entity) (persistent, ref-counted) - EffShowMiningStage -> Player#sendBlockDamage(loc, progress[, sourceId]) - EffForceRain -> Player#setPlayerWeather(WeatherType) - EffForceSleep / EffForceWake already used Bukkit sleep()/wakeup() (unchanged) Bug fixes uncovered while porting: - EffRefreshChunks#init never captured the chunks expression (silent no-op). - Utils.getServerMajorVersion() parsed the craftbukkit package name and returned 0 on 1.20.5+ (package no longer versioned), silently disabling version-gated syntax (ExprNearestStructure, NonLegacyClassInfo). Now parses Bukkit.getBukkitVersion() across both the legacy 1.X and year-based (26.1.2) schemes. Drop (no Paper API; packet-only, would need ProtocolLib): - EffSkyColour (GameStateChange rain-level), EffShowDemo (demo screen). Remove dead NMS reflection machinery: - delete ReflectionUtils and the Version enum; remove loadNMS()/nmsEnabled/isNmsEnabled(). Defer lasers: the hand-rolled guardian-beam NMS (Laser.java, 1.9-1.20 mappings) is dead on 26.1.2. The lasers package is excluded from the build pending a rewrite onto SkytAsul/GuardianBeam (requires runtime verification on 26.1.2). 89 classes compile on MC 26.1.2 + Skript 2.15.2 / JDK 25. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…arning GitHub Actions: - build.yml: Gradle build on a Java matrix (JDK 25), uploads the shaded jar. - mc-compat.yml: boots a real headless Paper server for each Minecraft version in the matrix (26.1.2 / JDK 25 / Skript 2.15.2) with the built plugin and asserts SkJadePlus enables cleanly. Matrix is easily extensible to more MC/Java combos. - .github/scripts/load-test.sh: resolves Paper via the v3 fill API, downloads the matching Skript, boots headless with auto-stop, and asserts on the log. Runnable locally too. - Remove the obsolete Maven CI workflow. Move off removed-stub legacy Skript APIs to clear the "addon used a deprecated/removed class" warning: - Converters: ch.njol.skript.registrations.Converters -> org.skriptlang.skript.lang.converter.Converters. - EvtAsyncPreLogin: drop the removed ch.njol Getter in favour of Converter method refs. Verified locally: SkJadePlus enables cleanly on Paper 26.1.2 + Skript 2.15.2 (JDK 25), no warnings, all scripts load without errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The hologram hook targeted the dead HolographicDisplays v2 API (com.gmail.filoghost).
Rewritten onto DecentHolograms 2.9.10 (eu.decentsoftware.holograms), which supports MC 26.1.2.
- HologramManager: thin wrapper over DHAPI (name-keyed registry, page-0 lines, 1-based
line numbers). Holograms are made clickable via a no-op action so they fire
DecentHolograms' HologramClickEvent.
- HoloClassInfo: the 'hologram'/'hologramline' Skript types now wrap DH types; converters
registered via org.skriptlang Converters.
- Effects/expressions/conditions retargeted to DH: create/delete, add text+item line,
remove line, teleport (DHAPI.moveHologram), line contents (get/set), per-player
visibility, id, line, all-holograms, is-hologram, and deleted-as-unregistered.
- Per-line click/touch redesigned into a whole-hologram 'on hologram click' event
(DecentHolograms reports clicks per hologram, not per line).
Dropped (no DecentHolograms equivalent; user-approved):
- per-line clickable/touchable/pickup handlers (EffInteractableLine, EvtHologramLineTouch,
CondHasInteractionHandler, the custom touch events),
- image-to-text lines (ExprImageLines),
- HD-style placeholders (EffRegisterPlaceholder/Unregister).
plugin.yml softdepend: HolographicDisplays -> DecentHolograms (drop unused Citizens).
Verified on Paper 26.1.2 + Skript 2.15.2 + DecentHolograms 2.9.10 (JDK 25): the hook
enables, syntax registers, and a test script ('create a hologram ...' + 'on hologram
click') loads and runs with no errors.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ProtocolLib has no stable release for 26.1.2, but the dev-build (5.5.0-SNAPSHOT) adds beta 26.1.x support (requires Java 25). Wire it in and re-enable the hook. - Vendor the dev-build jar (libs/ProtocolLib-5.5.0-SNAPSHOT-devbuild-20260512.jar) and depend on it via compileOnly(files(...)). The Maven snapshot (5.4.0) lacks 26.1.2 and the JitPack build fails on Java 25, so the GitHub dev-build jar is the only 26.1.2-capable artifact; pinned by date for reproducibility. - Un-exclude the protocollib hook; re-enable loadProtocolElements() (gated on ProtocolLib being present at runtime). - EffRotatePlayer: drop catch(InvocationTargetException) (ProtocolLib 5.x's sendServerPacket no longer declares it -> unreachable-catch error); build a fresh packet per send instead of mutating a shared static container; fix the inverted vertical check in toString. Drop two effects that never worked in upstream SkJade: - EffShowBrand: registered, but the brand-bytes payload was left commented out. - EffShowLight: registration commented out and it never sent the packet. Verified on Paper 26.1.2 + Skript 2.15.2 + ProtocolLib 5.5.0-SNAPSHOT (JDK 25): ProtocolLib enables (with its own "26.1.2 not yet tested" beta warning), the hook loads, and 'rotate ...' parses/registers with no errors. Note: runtime packet behaviour on 26.1.2's restructured position packet should be playtested with a real client; ProtocolLib's 26.1.x support is upstream-beta. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The vendored Laser.java was an old GuardianBeam copy (2.3.3) using dead 1.9-1.20
NMS mappings. Replace it with the maintained upstream GuardianBeam, which supports
MC 26.1 via transparent Mojang-mapped reflection.
- Depend on fr.skytasul:guardianbeam:2.4.7 (Maven Central) and shade it, relocating
fr.skytasul -> com.ankoki.skjadeplus.libs.skytasul.
- Delete the vendored com.ankoki.skjadeplus.elements.lasers.Laser; the laser
effects/expressions now import fr.skytasul.guardianbeam.Laser.
- start(plugin, players) -> start(plugin): GuardianBeam 2.4.7 auto-targets nearby
players (the old per-player overload was removed upstream).
- Remove the obsolete isNmsEnabled() gates (that machinery was deleted in the NMS
phase); laser syntax now registers unconditionally. Re-add the 'laser' ClassInfo
and the 'lasers' subpackage to loadClasses.
Verified on Paper 26.1.2 + Skript 2.15.2 (JDK 25): GuardianBeam initialises
("Found server version 26.1.2" / "Loaded transparent mappings"), the laser syntax
registers, and a script that creates + starts a laser runs with no errors.
(The visual beam itself still wants a real-client playtest.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # build.gradle.kts # src/main/java/com/ankoki/skjadeplus/SkJadePlus.java
# Conflicts: # src/main/java/com/ankoki/skjadeplus/SkJadePlus.java
- docs/SYNTAX.md: complete Skript syntax reference auto-extracted from the source — every event, condition, effect, expression and custom type with its pattern(s), description, example and since-version (104 elements), grouped with a table of contents and a requirements note for the DecentHolograms / ProtocolLib soft-deps. - README: features overview (100+ syntaxes by category), link to the syntax reference, soft-dependency table, usage examples, and build/test instructions. Generated on the integration branch (core + holograms + protocollib + lasers). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Modernize SkJadePlus for Minecraft 26.1.2 + Skript 2.15
SkJadePlus for Minecraft 26.1.2 — complete modernization + docs
Author
|
I have human verified this, and tested. I'f someone wants to test in-game feel free too. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update to support MC 26.1.x and skript latest+