Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/Team-HomeGUI Plugin
Все версииTeam-HomeGUI Plugin 1.2.0

Team-HomeGUI Plugin 1.2.0

Release2 нед. назад

Список изменений

[1.2.0] — Bug Fix Release

Fixed

🔴 Critical

  • HomeManager / TeamManagersave() not synchronized → homes/teams lost on server shutdown saveAsync() dispatches a BukkitRunnable to a worker thread. When the server stops, onDisable() calls save() on the main thread while that worker thread may still be executing a previous save(). Because YamlConfiguration is not thread-safe, the two threads interleaved their data.set(…) and data.save(…) calls, producing a corrupted or empty file. The result was that all personal homes (and team data) were silently wiped every time the server restarted. Both save() methods are now synchronized. Additionally, onDisable() calls getScheduler().cancelTasks(this) before saving, eliminating the race window entirely.

  • HomeService.getPlayerMaxHomes() — wrong config key → home limit always 2 The method read settings.default-max-homes but the actual key in home-config.yml is default-max-homes (root level, no settings prefix). The missing prefix caused getInt() to always fall back to its hardcoded default of 2, capping every player at two homes regardless of what was configured. Fixed to read the correct key default-max-homes.

🟡 Medium

  • HomeService.teleportHome() — wrong path and wrong type for disabled-worlds → world blacklist never enforced via GUI getString("settings.disabled-worlds", "") was wrong on two counts: the path prefix settings. does not exist in home-config.yml, and the value is a YAML list, not a plain string. The method always received an empty string and silently skipped the world check entirely, allowing players to teleport into world_nether and world_the_end through the GUI regardless of the blacklist. Fixed to use getStringList("disabled-worlds") at the correct root path.

  • HomeHandler.handlePlayerSetHome()player.getLocation() not cloned before storage homeManager.setHome(…, player.getLocation()) stored a direct reference to Bukkit's mutable Location object. Bukkit may reuse this object internally, meaning the stored coordinates could silently change after the call. Fixed by passing player.getLocation().clone() instead. (HomeService.setHome() already cloned correctly; this aligns the two code paths.)

Changed

  • Version bumped 1.1.0 → 1.2.0.

Метаданные

Канал релиза

Release

Номер версии

1.2.0

Загрузчики

Bukkit
Paper
Purpur
Spigot

Версии игры

1.21–1.21.11

Загрузок

2

Дата публикации

2 нед. назад

Загрузил

ID версии

Главная