Improved world management

This commit is contained in:
NotAlexNoyle committed 2026-05-17 22:38:30 -04:00
1 parent 0c1bceeb3c
commit 0e188de320
2 files changed
+24 -3

No files matched your search

@@ -87,7 +87,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
boolean isGuessArena = arena instanceof GuessArena;
String arenaPath = id + ".";
if (!plugin.getMyWorldsManager().validateArenaWorld(
if (!plugin.getMyWorldsManager().requireConfiguredArenaWorld(
plugin.getMyWorldsManager().getWorldName(section.getString(arenaPath + "lobbylocation")),
"Lobby location", (BaseArena) arena))
{
@@ -96,7 +96,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
}
if (!plugin.getMyWorldsManager().validateArenaWorld(
if (!plugin.getMyWorldsManager().requireConfiguredArenaWorld(
plugin.getMyWorldsManager().getWorldName(section.getString(arenaPath + "startlocation")),
"Start location", (BaseArena) arena))
{
@@ -105,7 +105,7 @@ public class ArenaRegistry extends PluginArenaRegistry {
}
if (!plugin.getMyWorldsManager().validateArenaWorld(
if (!plugin.getMyWorldsManager().requireConfiguredArenaWorld(
plugin.getMyWorldsManager().getWorldName(section.getString(arenaPath + "endlocation")), "End location",
(BaseArena) arena))
{
@@ -114,6 +114,27 @@ public class MyWorldsManager {
}
/**
* Stricter variant of {@link #validateArenaWorld} for required arena locations.
* Blank/missing world names are rejected so players are never stranded inside
* the arena world after a match ends.
*/
public boolean requireConfiguredArenaWorld(@Nullable String worldName, String label, @Nullable BaseArena arena) {
if (worldName == null || worldName.isBlank()) {
plugin.getDebugger()
.sendConsoleMsg(new MessageBuilder("VALIDATOR_INVALID_ARENA_CONFIGURATION").asKey().value(label
+ " is not configured. Set it to a dedicated MyWorlds lobby/game world via the setup GUI.")
.arena(arena).build());
return false;
}
return validateArenaWorld(worldName, label, arena);
}
public boolean isProtectedWorld(@Nullable World world) {
return world != null && isProtectedWorld(world.getName());