From 920ac76afdf1782c5b0aff6790edebb1e0b3688c Mon Sep 17 00:00:00 2001 From: Jessica James Date: Sun, 1 Dec 2019 23:00:31 -0600 Subject: [PATCH] Added amsg/pamsg game commands --- .../RenX/RenX.Commands/RenX_Commands.cpp | 71 ++++++++++++++++++- .../RenX/RenX.Commands/RenX_Commands.h | 2 + 2 files changed, 72 insertions(+), 1 deletion(-) diff --git a/src/Plugins/RenX/RenX.Commands/RenX_Commands.cpp b/src/Plugins/RenX/RenX.Commands/RenX_Commands.cpp index cf09439..9812cff 100644 --- a/src/Plugins/RenX/RenX.Commands/RenX_Commands.cpp +++ b/src/Plugins/RenX/RenX.Commands/RenX_Commands.cpp @@ -390,7 +390,7 @@ void PAdminMsgIRCCommand::trigger(IRC_Bot *source, const Jupiter::ReadableString const Jupiter::ReadableString &PAdminMsgIRCCommand::getHelp(const Jupiter::ReadableString &) { - static STRING_LITERAL_AS_NAMED_REFERENCE(defaultHelp, "Sends an admin message in-game. Syntax: pamsg "); + static STRING_LITERAL_AS_NAMED_REFERENCE(defaultHelp, "Sends an admin message to a player in-game. Syntax: pamsg "); return defaultHelp; } @@ -3383,6 +3383,75 @@ const Jupiter::ReadableString &ModRequestGameCommand::getHelp(const Jupiter::Rea GAME_COMMAND_INIT(ModRequestGameCommand) +// AdminMessage Game Command + +void AdminMessageGameCommand::create() +{ + this->addTrigger(STRING_LITERAL_AS_REFERENCE("amsg")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("adminmsg")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("amessage")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("adminmessage")); + this->setAccessLevel(1); +} + +void AdminMessageGameCommand::trigger(RenX::Server *source, RenX::PlayerInfo *player, const Jupiter::ReadableString ¶meters) +{ + if (parameters.isNotEmpty()) + { + Jupiter::StringS msg = player->gamePrefix + player->name + ": "_jrs + parameters; + source->sendAdminMessage(msg); + } + else + source->sendMessage(*player, "Error: Too few parameters. Syntax: amsg "_jrs); +} + +const Jupiter::ReadableString &AdminMessageGameCommand::getHelp(const Jupiter::ReadableString &) +{ + static STRING_LITERAL_AS_NAMED_REFERENCE(defaultHelp, "Sends an admin message in-game. Syntax: amsg "); + return defaultHelp; +} + +GAME_COMMAND_INIT(AdminMessageGameCommand) + +// PAdminMessage Game Command + +void PAdminMessageGameCommand::create() +{ + this->addTrigger(STRING_LITERAL_AS_REFERENCE("pamsg")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("padminmsg")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("pamessage")); + this->addTrigger(STRING_LITERAL_AS_REFERENCE("padminmessage")); + this->setAccessLevel(1); +} + +void PAdminMessageGameCommand::trigger(RenX::Server *source, RenX::PlayerInfo *player, const Jupiter::ReadableString ¶meters) +{ + if (parameters.wordCount(WHITESPACE) >= 2) + { + Jupiter::StringS name = Jupiter::StringS::getWord(parameters, 0, WHITESPACE); + Jupiter::StringS msg = player->gamePrefix + player->name + ": "_jrs + Jupiter::ReferenceString::gotoWord(parameters, 1, WHITESPACE); + + RenX::PlayerInfo *target = source->getPlayerByPartName(name); + if (target == nullptr) + source->sendMessage(*player, "Error: Player not found."_jrs); + else + { + source->sendAdminMessage(*target, msg); + source->sendMessage(*player, "Message sent to "_jrs + target->name); + } + } + else + source->sendMessage(*player, "Error: Too few parameters. Syntax: pamsg "_jrs); +} + +const Jupiter::ReadableString &PAdminMessageGameCommand::getHelp(const Jupiter::ReadableString &) +{ + static STRING_LITERAL_AS_NAMED_REFERENCE(defaultHelp, "Sends an admin message to a player in-game. Syntax: pamsg "); + return defaultHelp; +} + +GAME_COMMAND_INIT(PAdminMessageGameCommand) + // Kill Game Command void KillGameCommand::create() diff --git a/src/Plugins/RenX/RenX.Commands/RenX_Commands.h b/src/Plugins/RenX/RenX.Commands/RenX_Commands.h index 66272da..2822e3f 100644 --- a/src/Plugins/RenX/RenX.Commands/RenX_Commands.h +++ b/src/Plugins/RenX/RenX.Commands/RenX_Commands.h @@ -108,6 +108,8 @@ GENERIC_GAME_COMMAND(HelpGameCommand) GENERIC_GAME_COMMAND(ModsGameCommand) GENERIC_GAME_COMMAND(RulesGameCommand) GENERIC_GAME_COMMAND(ModRequestGameCommand) +GENERIC_GAME_COMMAND(AdminMessageGameCommand) +GENERIC_GAME_COMMAND(PAdminMessageGameCommand) GENERIC_GAME_COMMAND(KillGameCommand) GENERIC_GAME_COMMAND(DisarmGameCommand) GENERIC_GAME_COMMAND(DisarmC4GameCommand)