1.1.0
Compatibility
Changes
[1.1.0] โ Bug Fix Release
Fixed
๐ด Critical
-
AdminHandler.handleAdminAdd()โ admin team auto-creation always failed Previously the method calledhandleAdminCreate()with a mismatchedargsarray (args[2]was the placeholder string"dummy"instead of the real password). The password check always failed, so/team admin add <player>silently broke whenever the admin team did not yet exist. The method now creates the admin team directly viaTeamManager.createTeam(), skipping the redundant password validation entirely. -
HomeService.canSetHome()โ economy charged before slot-limit check If a player had already reached their home limit, the old code debited their balance first and then checked the limit, causing money to be lost without a home being set. Validation order is now: name format โ slot limit โ economy charge. The same fix was applied toHomeHandler.handlePlayerSetHome(). -
Dual cooldown maps โ players could bypass home teleport cooldown The
/homecommand (HomeHandler) wrote cooldowns toHomeManager.teleportCooldownswhile the GUI (HomeService/MenuListener) wrote toCooldownManager.homeCooldowns. Because neither path read the other map a player could alternate between the command and the GUI to teleport with no cooldown delay.HomeManager.teleportCooldownshas been removed entirely. All three paths โ/homecommand, personal-home GUI click, and team-home GUI click โ now useCooldownManagerexclusively.
๐ก Medium
-
CooldownManager.checkTeamCooldown()โ permission nodeteamplugin.team.nocooldownwas missing fromplugin.ymlThe permission existed in code but was never declared, so permission-management plugins could not grant it and the bypass never worked. Added toplugin.ymlwithdefault: op. -
MenuListenerโ wrong config key used for delete-home success message The listener looked upmessages.del-success, a key that does not exist inhome-config.yml. The correct key ismessages.delhome-success. Players always saw the hardcoded fallback string instead of the configured message. -
saveAsyncFuture()โ unsafe method still callable BothTeamManagerandHomeManagerkept asaveAsyncFuture()method that was documented as unsafe (causesConcurrentModificationExceptionwithFileConfiguration). The method is now marked@Deprecatedand throwsUnsupportedOperationExceptionto prevent accidental future use. -
CooldownManager.cleanupExpiredCooldowns()โ never called โ slow memory leak The cleanup method existed but was never scheduled. A repeating async task (every 10 minutes) is now registered inTeamPlugin.onEnable()to drain stale entries from the cooldown maps.
๐ข Minor
AdminHandlerโ hardcodedยงcolour codeshandleAdminList()andshowTeamInfo()used rawยงcodes which bypass the plugin's colour API. Replaced with&-codes processed viaTeamPlugin.color().
Added
TeamPlugin.getCooldownManager()โ public getter so handlers can share the singleCooldownManagerinstance without reaching throughhomeService.
Changed
HomeManager:teleportCooldownsmap and its getter/setter removed. Oldhomes.ymlfiles that contain acooldownsub-key are silently ignored on load and not written back, providing a clean migration path.- Version bumped
1.0.9 โ 1.1.0.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:G9WejUAk:sAwNFkg7"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:G9WejUAk:sAwNFkg7"
}

