From bc6929d239303d6ccd2877f97ee562e494b34fa2 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Thu, 26 Mar 2009 23:36:03 +0000 Subject: [PATCH] Actually, let's make a whitelist the valid modes. YAGNI code, no ability to break-out the whitelist. No other game of ours uses other valid modes, does it? git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5701 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/crowd/server/PlaceManager.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/crowd/server/PlaceManager.java b/src/java/com/threerings/crowd/server/PlaceManager.java index 5574604d2..459ee6866 100644 --- a/src/java/com/threerings/crowd/server/PlaceManager.java +++ b/src/java/com/threerings/crowd/server/PlaceManager.java @@ -49,6 +49,7 @@ import com.threerings.presents.dobj.RootDObjectManager; import com.threerings.presents.dobj.SetAdapter; import com.threerings.presents.server.InvocationManager; +import com.threerings.crowd.chat.data.ChatCodes; import com.threerings.crowd.chat.server.SpeakDispatcher; import com.threerings.crowd.chat.server.SpeakHandler; import com.threerings.crowd.data.BodyObject; @@ -409,7 +410,17 @@ public class PlaceManager // documentation inherited from interface public boolean isValidSpeaker (DObject speakObj, ClientObject speaker, byte mode) { - // only allow people in the room to speak + // have a whitelist for valid modes (no broadcasting, that's done elsewhere) + switch (mode) { + default: + return false; + case ChatCodes.DEFAULT_MODE: + case ChatCodes.THINK_MODE: + case ChatCodes.EMOTE_MODE: + case ChatCodes.SHOUT_MODE: + break; + } + // only allow people in the room to speak. return _plobj.occupants.contains(speaker.getOid()); }