From 6f7b994684032060f0a2d7af82f4f3572293b8d6 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Thu, 12 Jun 2025 21:41:41 +0800 Subject: internal!: organized internal structure, using cmake now --- src/commands.cpp | 95 -------------------------------------------------------- 1 file changed, 95 deletions(-) delete mode 100644 src/commands.cpp (limited to 'src/commands.cpp') diff --git a/src/commands.cpp b/src/commands.cpp deleted file mode 100644 index e7894db..0000000 --- a/src/commands.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "commands.hpp" -#include "commandHandler.hpp" -#include "format.hpp" -#include "log.hpp" -#include "sessionManager.hpp" - -#define NOREASON "No reason specified"; - -struct SKickArgs { - std::string target; - std::optional reason; -}; - -struct SMuteArgs { - std::string target; - std::optional reason; -}; - -void registerCommands() { - g_pCommandHandler->registerCommand({.name = "raw", .parser = [](const std::string &args) -> CCommandHandler::SParseResult { return {.data = args, .good = true}; }, .exe = [](const std::any &parsed) -> CCommandHandler::SResult { - const std::string &data = std::any_cast(parsed); - g_pSessionManager->broadcast(data); - return {.result = "Broadcasted: " + data, .good = true}; }}); - - g_pCommandHandler->registerCommand(CCommandHandler::makeCommand({.name = "kick", .parser = [](const std::string &args) -> std::pair { - size_t pos = args.find(' '); - std::string target = args; - std::optional reason = std::nullopt; - - if (pos != std::string::npos) { - target = args.substr(0, pos); - reason = args.substr(pos + 1); - } - - if (target.empty()) - return {SKickArgs{}, false}; - - return { - SKickArgs{.target=target, .reason=reason}, true}; }, .exe = [](const SKickArgs &data) -> CCommandHandler::SResult { - const auto session = g_pSessionManager->getByName(data.target); - if (!session) - return {.result = "User '" + data.target + "' not found", .good = false}; - - const auto reason = data.reason ? *data.reason : NOREASON; - g_pSessionManager->kick(session->self, true, reason); - return {.result = "Kicked '" + data.target + "': " + reason, .good = true}; }})); - - g_pCommandHandler->registerCommand({.requireAdmin = false, .name = "list", .parser = [](const std::string &args) -> CCommandHandler::SParseResult { - (void)args; - return {.data = std::any(), .good = true}; }, .exe = [](const std::any &parsed) -> CCommandHandler::SResult { - (void)parsed; - std::string result = "ID \t Name \t IP \t Muted\n"; - for (const auto &session : g_pSessionManager->getSessions()) - result += NFormatter::fmt(NONEWLINE, "{} \t {} \t {} \t {}\n", (uintptr_t)session.get(), session->getName(), session->getIp(), (session->isMuted() ? "[MUTED]" : "[UNMUTED]")); - - - return {.result = result, .good = true}; }}); - - g_pCommandHandler->registerCommand(CCommandHandler::makeCommand({.name = "mute", .parser = [](const std::string &args) -> std::pair { - size_t pos = args.find(' '); - std::string target = args; - std::optional reason; - - if (pos != std::string::npos) { - target = args.substr(0, pos); - reason = args.substr(pos + 1); - } - - if (target.empty()) - return {SMuteArgs{}, false}; - - return {SMuteArgs{.target=target, .reason=reason}, true}; }, .exe = [](const SMuteArgs &data) -> CCommandHandler::SResult { - const auto session = g_pSessionManager->getByName(data.target); - if (!session) - return {.result = "User '" + data.target + "' not found", .good = false}; - - const auto reason = data.reason ? *data.reason : NOREASON; - - session->setMuted(true); - session->write("You have been muted for: {}", reason); - return {.result = "Muted '" + data.target + "': " + reason, .good = true}; }})); // TODO: use fmt - - g_pCommandHandler->registerCommand(CCommandHandler::makeCommand({.name = "unmute", .parser = [](const std::string &args) -> std::pair { - if (args.empty()) - return {SMuteArgs{}, false}; - - return {SMuteArgs{.target=args, .reason="Unmuted"}, true}; }, .exe = [](const SMuteArgs &data) -> CCommandHandler::SResult { - const auto session = g_pSessionManager->getByName(data.target); - if (!session) - return {.result = "User '" + data.target + "' not found", .good = false}; - - session->setMuted(false); - session->write("You have been unmuted"); - return {.result = "Unmuted '" + data.target + "'", .good = true}; }})); -} -- cgit v1.2.3