From ba4987e679c3c4b9bb1d003b316a0ac69e5e4e48 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Sat, 9 Dec 2006 01:31:01 +0000 Subject: [PATCH] Now finally us admins can /broadcast on dev. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4479 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../crowd/chat/client/BroadcastHandler.as | 42 +++++++++++++++++++ .../crowd/chat/client/ChatDirector.as | 1 + 2 files changed, 43 insertions(+) create mode 100644 src/as/com/threerings/crowd/chat/client/BroadcastHandler.as diff --git a/src/as/com/threerings/crowd/chat/client/BroadcastHandler.as b/src/as/com/threerings/crowd/chat/client/BroadcastHandler.as new file mode 100644 index 000000000..46216172c --- /dev/null +++ b/src/as/com/threerings/crowd/chat/client/BroadcastHandler.as @@ -0,0 +1,42 @@ +package com.threerings.crowd.chat.client { + +import com.threerings.util.Name; +import com.threerings.util.ResultAdapter; +import com.threerings.util.ResultListener; +import com.threerings.util.StringUtil; + +import com.threerings.crowd.data.BodyObject; +import com.threerings.crowd.util.CrowdContext; +import com.threerings.crowd.chat.data.ChatCodes; + +public class BroadcastHandler extends CommandHandler +{ + override public function handleCommand ( + ctx :CrowdContext, speakSvc :SpeakService, + cmd :String, args :String, history :Array) :String + { + if (StringUtil.isBlank(args)) { + return "m.usage_broadcast"; + } + + // mogrify and verify length + var chatdir :ChatDirector = ctx.getChatDirector(); + args = chatdir.mogrifyChat(args); + var err :String = chatdir.checkLength(args); + if (err != null) { + return err; + } + + // do the broadcast + chatdir.requestBroadcast(args); + + history[0] = cmd + " "; + return ChatCodes.SUCCESS; + } + + override public function checkAccess (user :BodyObject) :Boolean + { + return (null == user.checkAccess(ChatCodes.BROADCAST_ACCESS, null)); + } +} +} diff --git a/src/as/com/threerings/crowd/chat/client/ChatDirector.as b/src/as/com/threerings/crowd/chat/client/ChatDirector.as index 65f1becd9..e9c2e6217 100644 --- a/src/as/com/threerings/crowd/chat/client/ChatDirector.as +++ b/src/as/com/threerings/crowd/chat/client/ChatDirector.as @@ -101,6 +101,7 @@ public class ChatDirector extends BasicDirector registerCommandHandler(msg, "emote", new EmoteHandler()); registerCommandHandler(msg, "think", new ThinkHandler()); registerCommandHandler(msg, "tell", new TellHandler()); + registerCommandHandler(msg, "broadcast", new BroadcastHandler()); } /**