-
Willowcrest Practice v1.2.1
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 05:27:29 +00:00 | 0 commits to main since this releaseFix: config files not regenerated on update. Adds CONFIG_VERSION checking so outdated configs auto-regenerate from the JAR.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
Willowcrest Practice v1.2.0
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 04:53:50 +00:00 | 2 commits to main since this releaseFix kit names showing null, hotbar item clicks, /fly command, scoreboard region/IP.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
Willowcrest Practice v1.1.9
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 04:18:17 +00:00 | 3 commits to main since this releaseChanges
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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Willowcrest Practice v1.1.8
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 03:51:26 +00:00 | 4 commits to main since this releaseFixes
Players not receiving hotbar items on join
Root cause: The colored rank lookup in
onPlayerJoinEventthrewIllegalArgumentExceptionwhen a player's rank group wasn't found incoloredRanksConfig. This crashed the rest of the join handler, soHotbar.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 reachesgiveHotbarItems.RogueClass.cleanup invalid @EventHandler
Removed
@EventHandlerannotation fromRogueClass.cleanup(Player)— the method takes aPlayerparameter, not a BukkitEvent, so it cannot be registered as an event handler. It's called directly fromProfileListeneron quit.Hotbar.init WARN on missing MATERIAL
Added null check on
MATERIALconfig value before callingMaterial.valueOf(). TheFOLLOWenum entry has no config entry inhotbar.yml, causing aName is nullwarning 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)
-
Willowcrest Practice v1.1.7
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 03:19:33 +00:00 | 6 commits to main since this releaseFixes
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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Willowcrest Practice v1.1.6
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 02:43:01 +00:00 | 7 commits to main since this releaseBug Fix Release
Fixes
- #1: Fixed NPE in
Hotbar.init()on fresh install — the shippedhotbar.ymlhad noENABLEDkeys, sogetBooleanreturned false for all items and none were added to the items map, causing a null pointer at line 57- Default
ENABLEDtotruewhen missing from config - Added
ENABLED: trueandSLOT: 0toMAP_SELECTIONandKIT_SELECTIONtemplate items - Added null check in dynamic content loop as safety net
- Improved error logging in catch block (now includes item name + stack trace)
- Default
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- #1: Fixed NPE in
-
Willowcrest Practice v1.1.5
StableSome checks failedJava CI with Maven / build (push) Has been cancelledreleased this
2026-08-28 00:35:35 +00:00 | 8 commits to main since this releaseWillowcrest 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads