
Team-HomeGUI Plugin
A lightweight team system with team homes, private team chat, personal homes, and a clean home GUI
Список изменений
[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.

