feat: worlds move their players to another instance, GM commands

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-26 08:40:52 -05:00
parent b0f81a1c8f
commit 6f58a1f23f
6 changed files with 840 additions and 279 deletions

View File

@@ -6,6 +6,7 @@
#include "SlashCommandHandler.h"
#include "WorldMigration.h"
#include <iomanip>
#include <ranges>
@@ -1478,4 +1479,19 @@ void SlashCommandHandler::Startup() {
.handle = DEVGMCommands::Despawn,
.requiredLevel = eGameMasterLevel::DEVELOPER
});
RegisterCommand({
.help = "Moves everyone here to a fresh instance of this zone",
.info = "Starts a fresh instance of this zone (from the world server binary on disk now, so an update takes effect), moves everyone here to it with the game's Mythran maintenance warning and a short loading screen, then shuts this instance down. Usage: /replaceinstance [warn seconds, 0-300, default 10] [seamless (experimental: no loading screen)]",
.aliases = {"replaceinstance"},
.handle = WorldMigration::ReplaceInstanceCommand,
.requiredLevel = eGameMasterLevel::DEVELOPER
});
RegisterCommand({
.help = "Moves everyone here into another instance of this zone",
.info = "Moves everyone here into another running instance of this zone (0 or nothing picks the best fit), with the game's Mythran maintenance warning and a short loading screen, then shuts this instance down. Usage: /mergeinstance [target instance] [warn seconds, 0-300, default 10] [seamless (experimental: no loading screen)]",
.aliases = {"mergeinstance"},
.handle = WorldMigration::MergeInstanceCommand,
.requiredLevel = eGameMasterLevel::DEVELOPER
});
}