• v1.2.1 0336e68320

    Willowcrest Practice v1.2.1
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 05:27:29 +00:00 | 0 commits to main since this release

    Fix: config files not regenerated on update. Adds CONFIG_VERSION checking so outdated configs auto-regenerate from the JAR.

    Downloads
  • v1.2.0 935e71e271

    Willowcrest Practice v1.2.0
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 04:53:50 +00:00 | 2 commits to main since this release

    Fix kit names showing null, hotbar item clicks, /fly command, scoreboard region/IP.

    Downloads
  • v1.1.9 03e7b3ccc7

    Willowcrest Practice v1.1.9
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 04:18:17 +00:00 | 3 commits to main since this release

    Changes

    Rank System Cleanup

    • Removed cCore and AquaCore rank implementations (proprietary, dead dependencies)
    • Simplified RankManager to only support LuckPerms
    • Removed cCore/AquaCore JARs from libs/ and pom.xml
    • Removed cCore disguise check from ProfileListener
    • Removed AquaCore staff chat branch from Modmode
    • Deleted Default rank fallback (plugin requires LuckPerms)

    Branding Cleanup

    • Help text: cPRACTICE/ziue -> WILLOWCREST
    • plugin.yml authors: ziue -> Willowcrest
    • TabAdapter/tablist: ->
    • MongoConnection @author: Hysteria -> Willowcrest

    Bug Fixes

    • Hotbar.init: skip items with null MATERIAL instead of logging warning
    • RogueClass.cleanup: removed invalid @EventHandler annotation
    Downloads
  • v1.1.8 00b70530b7

    Willowcrest Practice v1.1.8
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 03:51:26 +00:00 | 4 commits to main since this release

    Fixes

    Players not receiving hotbar items on join

    Root cause: The colored rank lookup in onPlayerJoinEvent threw IllegalArgumentException when a player's rank group wasn't found in coloredRanksConfig. This crashed the rest of the join handler, so Hotbar.giveHotbarItems(player) never executed — players joined with an empty hotbar (no queue join, kit selection, settings, etc.).

    Fix: Wrapped the colored rank lookup in try-catch with a fallback to &r (reset color), so the join handler always reaches giveHotbarItems.

    RogueClass.cleanup invalid @EventHandler

    Removed @EventHandler annotation from RogueClass.cleanup(Player) — the method takes a Player parameter, not a Bukkit Event, so it cannot be registered as an event handler. It's called directly from ProfileListener on quit.

    Hotbar.init WARN on missing MATERIAL

    Added null check on MATERIAL config value before calling Material.valueOf(). The FOLLOW enum entry has no config entry in hotbar.yml, causing a Name is null warning on startup.

    ProtocolLib injection errors

    Not a plugin issue — ProtocolLib 4.8.0 doesn't fully support SportPaper's modified Netty pipeline. This is a server-side compatibility issue between ProtocolLib and the Spigot fork.

    Downloads
  • v1.1.7 8d70f99e54

    Willowcrest Practice v1.1.7
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 03:19:33 +00:00 | 6 commits to main since this release

    Fixes

    Fix #2: NPE when MongoDB is not connected

    Root cause: wPractice.mongoDatabase was never assigned from MongoConnection.getMongoDatabase() after creating the connection. Every call to wPractice.get().getMongoDatabase() returned null, causing NPEs in Clan.init() and Profile.init().

    Secondary issue: MongoConnection constructors swallowed exceptions, so loadSaveMethod() never saw connection failures — the plugin stayed enabled with a null database instead of disabling gracefully.

    Fixes:

    • Wire wPractice.mongoDatabase from mongoConnection.getMongoDatabase() after connection (with null check)
    • Remove swallowed catch in MongoConnection — let exceptions propagate to loadSaveMethod's handler
    • Add null guards in Clan.init() and Profile.init() as defense-in-depth
    Downloads
  • v1.1.6 9a976558ea

    Willowcrest Practice v1.1.6
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 02:43:01 +00:00 | 7 commits to main since this release

    Bug Fix Release

    Fixes

    • #1: Fixed NPE in Hotbar.init() on fresh install — the shipped hotbar.yml had no ENABLED keys, so getBoolean returned false for all items and none were added to the items map, causing a null pointer at line 57
      • Default ENABLED to true when missing from config
      • Added ENABLED: true and SLOT: 0 to MAP_SELECTION and KIT_SELECTION template items
      • Added null check in dynamic content loop as safety net
      • Improved error logging in catch block (now includes item name + stack trace)
    Downloads
  • v1.1.5 0d4b22c0e3

    Willowcrest Practice v1.1.5
    Some checks failed
    Java CI with Maven / build (push) Has been cancelled
    Stable

    crypt released this 2026-08-28 00:35:35 +00:00 | 8 commits to main since this release

    Willowcrest Practice v1.1.5

    Initial Willowcrest release, forked from cPractice.

    Safety

    • Removed dead DRM/phone-home system containing hardcoded external HTTP endpoint and shared secret
    • Removed BukkitReflection.getIP() phone-home

    Rebrand

    • Package: rip.crystal.practice to world.willowcrest.practice
    • Main class: cPractice to wPractice
    • Permissions: cpractice.* to wpractice.*
    • Branding: Crystal Network to Willowcrest

    Build Fixes (JDK 26)

    • Lombok 1.18.24 to 1.18.46 with annotation processor paths
    • HTTP Maven repos to HTTPS
    • PlaceholderAPI 2.10.9 to 2.11.6
    • ProtocolLib 4.4.0 to 4.8.0 via JitPack
    • Replaced removed Thread.stop() with volatile flag

    Bug Fixes

    • RogueClass: || to && (abilities were unreachable)
    • KitUtils: || to && on null checks (NPE risk)
    • KitUtils: assert to proper null check
    • KitEditorMenu.getTitle(): added null check
    • MoreCommand: permission typo fix
    • EventGameLogicTask: hardcoded threshold to canStartEvent()
    • 6 blocking Bukkit.getOfflinePlayer(String) to async
    • Removed Thread.sleep from main thread
    • Swallowed exception now logged

    Memory Leaks

    • Profile.profiles cleaned on quit
    • RogueClass/ArcherClass cooldown maps cleaned on quit

    Cleanup

    • Consolidated TaskUtils/TaskManager into TaskUtil
    • Implemented LanguageConfigurationFile stubs
    • Renamed sl-LoggedIn metadata
    • Cleaned debug println spam
    • Updated README
    Downloads