diff options
author | David Athay <ko2fan@gmail.com> | 2009-01-12 11:19:57 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2009-01-12 11:19:57 +0000 |
commit | 83ecbeff8d09b212cddc33b1879a63002fad46c0 (patch) | |
tree | 67e92ad3bca2987c4bcacbf46ccff3164d36bbad | |
parent | 2b7c0e4415f11b40f45e9276f0d57337e78b13f7 (diff) | |
download | manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.gz manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.bz2 manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.xz manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.zip |
Added @announce
-rw-r--r-- | src/game-server/commandhandler.cpp | 19 | ||||
-rw-r--r-- | src/game-server/state.cpp | 12 | ||||
-rw-r--r-- | src/game-server/state.hpp | 5 |
3 files changed, 36 insertions, 0 deletions
diff --git a/src/game-server/commandhandler.cpp b/src/game-server/commandhandler.cpp index 3822e2ef..5268d131 100644 --- a/src/game-server/commandhandler.cpp +++ b/src/game-server/commandhandler.cpp @@ -124,6 +124,7 @@ static void handleHelp(Character *player, std::string &args) say("Administrator Commands", player); say("@reload", player); say("@setgroup <character> <AL level>", player); + say("@announce <message>", player); } } else @@ -688,6 +689,19 @@ static void handleReport(Character *player, std::string &args) // TODO: Send the report to a developer or something } +static void handleAnnounce(Character *player, std::string &args) +{ + std::string msg = getArgument(args); + + if (msg == "") + { + say("Invalid number of arguments given.", player); + return; + } + + GameState::sayToAll(msg); +} + void CommandHandler::handleCommand(Character *player, const std::string &command) { @@ -763,6 +777,11 @@ void CommandHandler::handleCommand(Character *player, if (handlePermissions(player, AL_PLAYER)) handleReport(player, args); } + else if (type == "announce") + { + if (handlePermissions(player, AL_ADMIN)) + handleAnnounce(player, args); + } else { say("command not found", player); diff --git a/src/game-server/state.cpp b/src/game-server/state.cpp index a42c689f..8202f7ca 100644 --- a/src/game-server/state.cpp +++ b/src/game-server/state.cpp @@ -715,3 +715,15 @@ void GameState::sayTo(Object *destination, Object *source, std::string const &te gameHandler->sendTo(static_cast< Character * >(destination), msg); } + +void GameState::sayToAll(const std::string &text) +{ + MessageOut msg(GPMSG_SAY); + + // message will show as from server + msg.writeShort(0); + msg.writeString(text); + + // sends to everyone connected to the game server + gameHandler->sendToEveryone(msg); +} diff --git a/src/game-server/state.hpp b/src/game-server/state.hpp index 7cd69d76..f5595bc8 100644 --- a/src/game-server/state.hpp +++ b/src/game-server/state.hpp @@ -99,6 +99,11 @@ namespace GameState */ void sayAround(Object *, std::string const &text); + /** + * Says something to every player on the server. + */ + void sayToAll(const std::string &text); + } #endif |