Improved world management
This commit is contained in:
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());
|
||||
|
||||
Reference in new issue
Block a user