diff options
author | lonaasan <shadowlona@shadowlona.dev> | 2024-09-09 09:53:11 +0200 |
---|---|---|
committer | lonaasan <shadowlona@shadowlona.dev> | 2024-09-09 09:53:11 +0200 |
commit | 98a395721ee0383bd2ed046235dd644909f2f943 (patch) | |
tree | 40a3f17b8d1dc18b387581703e836f89d41127ad /source/frontend/StarClientCommandProcessor.cpp | |
parent | 06b865fb844c1e2bbe18f329b7ed5126ce53f5c6 (diff) |
[Small Addition] added respawnInWorld Command
Diffstat (limited to 'source/frontend/StarClientCommandProcessor.cpp')
-rw-r--r-- | source/frontend/StarClientCommandProcessor.cpp | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/source/frontend/StarClientCommandProcessor.cpp b/source/frontend/StarClientCommandProcessor.cpp index 2d98289..39b0d89 100644 --- a/source/frontend/StarClientCommandProcessor.cpp +++ b/source/frontend/StarClientCommandProcessor.cpp @@ -15,9 +15,9 @@ namespace Star { ClientCommandProcessor::ClientCommandProcessor(UniverseClientPtr universeClient, CinematicPtr cinematicOverlay, - MainInterfacePaneManager* paneManager, StringMap<StringList> macroCommands) - : m_universeClient(std::move(universeClient)), m_cinematicOverlay(std::move(cinematicOverlay)), - m_paneManager(paneManager), m_macroCommands(std::move(macroCommands)) { + MainInterfacePaneManager* paneManager, StringMap<StringList> macroCommands) + : m_universeClient(std::move(universeClient)), m_cinematicOverlay(std::move(cinematicOverlay)), + m_paneManager(paneManager), m_macroCommands(std::move(macroCommands)) { m_builtinCommands = { {"reload", bind(&ClientCommandProcessor::reload, this)}, {"whoami", bind(&ClientCommandProcessor::whoami, this)}, @@ -51,13 +51,14 @@ ClientCommandProcessor::ClientCommandProcessor(UniverseClientPtr universeClient, {"maketechavailable", bind(&ClientCommandProcessor::makeTechAvailable, this, _1)}, {"enabletech", bind(&ClientCommandProcessor::enableTech, this, _1)}, {"upgradeship", bind(&ClientCommandProcessor::upgradeShip, this, _1)}, - {"swap", bind(&ClientCommandProcessor::swap, this, _1)} + {"swap", bind(&ClientCommandProcessor::swap, this, _1)}, + {"respawnInWorld", bind(&ClientCommandProcessor::respawnInWorld, this)} }; } bool ClientCommandProcessor::adminCommandAllowed() const { return Root::singleton().configuration()->get("allowAdminCommandsFromAnyone").toBool() || - m_universeClient->mainPlayer()->isAdmin(); + m_universeClient->mainPlayer()->isAdmin(); } String ClientCommandProcessor::previewQuestPane(StringList const& arguments, function<PanePtr(QuestPtr)> createPane) { @@ -128,7 +129,7 @@ String ClientCommandProcessor::reload() { String ClientCommandProcessor::whoami() { return strf("Client: You are {}. You are {}an Admin.", - m_universeClient->mainPlayer()->name(), m_universeClient->mainPlayer()->isAdmin() ? "" : "not "); + m_universeClient->mainPlayer()->name(), m_universeClient->mainPlayer()->isAdmin() ? "" : "not "); } String ClientCommandProcessor::gravity() { @@ -273,8 +274,8 @@ String ClientCommandProcessor::previewNewQuest(String const& argumentsString) { return "You must be an admin to use this command."; return previewQuestPane(arguments, [this](QuestPtr const& quest) { - return make_shared<NewQuestInterface>(m_universeClient->questManager(), quest, m_universeClient->mainPlayer()); - }); + return make_shared<NewQuestInterface>(m_universeClient->questManager(), quest, m_universeClient->mainPlayer()); + }); } String ClientCommandProcessor::previewQuestComplete(String const& argumentsString) { @@ -283,8 +284,8 @@ String ClientCommandProcessor::previewQuestComplete(String const& argumentsStrin return "You must be an admin to use this command."; return previewQuestPane(arguments, [this](QuestPtr const& quest) { - return make_shared<QuestCompleteInterface>(quest, m_universeClient->mainPlayer(), CinematicPtr{}); - }); + return make_shared<QuestCompleteInterface>(quest, m_universeClient->mainPlayer(), CinematicPtr{}); + }); } String ClientCommandProcessor::previewQuestFailed(String const& argumentsString) { @@ -293,8 +294,8 @@ String ClientCommandProcessor::previewQuestFailed(String const& argumentsString) return "You must be an admin to use this command."; return previewQuestPane(arguments, [this](QuestPtr const& quest) { - return make_shared<QuestFailedInterface>(quest, m_universeClient->mainPlayer()); - }); + return make_shared<QuestFailedInterface>(quest, m_universeClient->mainPlayer()); + }); } String ClientCommandProcessor::clearScannedObjects() { @@ -427,4 +428,25 @@ String ClientCommandProcessor::swap(String const& argumentsString) { return "Failed to swap player"; } +String ClientCommandProcessor::respawnInWorld() { + WorldClientPtr worldClient = m_universeClient->worldClient(); + + // Make sure we got the worldClient + if (!worldClient) { + return "Error: Unable to access world client."; + } + + if (worldClient->toggleRespawnInWorld()) { + // Convert boolean to string for the response + const std::string result = worldClient->respawnInWorld() ? "true" : "false"; + + return "Successfully switched respawn in this world to " + result; + } + else + return "Failed to switch respawn in this world!"; + + // This should never trigger, but its better to have it than not :3 + return "Something unforseen happend!"; } + +}
\ No newline at end of file |