summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2009-01-12 11:19:57 +0000
committerDavid Athay <ko2fan@gmail.com>2009-01-12 11:19:57 +0000
commit83ecbeff8d09b212cddc33b1879a63002fad46c0 (patch)
tree67e92ad3bca2987c4bcacbf46ccff3164d36bbad
parent2b7c0e4415f11b40f45e9276f0d57337e78b13f7 (diff)
downloadmanaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.gz
manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.bz2
manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.tar.xz
manaserv-83ecbeff8d09b212cddc33b1879a63002fad46c0.zip
Added @announce
-rw-r--r--src/game-server/commandhandler.cpp19
-rw-r--r--src/game-server/state.cpp12
-rw-r--r--src/game-server/state.hpp5
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