diff --git a/src/as/com/threerings/crowd/chat/data/ChatMessage.as b/src/as/com/threerings/crowd/chat/data/ChatMessage.as index e9219807a..985df4a5a 100644 --- a/src/as/com/threerings/crowd/chat/data/ChatMessage.as +++ b/src/as/com/threerings/crowd/chat/data/ChatMessage.as @@ -67,6 +67,14 @@ public /*abstract*/ class ChatMessage timestamp = getTimer(); } + /** + * Get the appropriate message format for this message. + */ + public function getFormat () :String + { + return null; + } + /** * Generates a string representation of this instance. */ diff --git a/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as b/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as index 5e2982833..95ccee725 100644 --- a/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as +++ b/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as @@ -36,5 +36,10 @@ public class TellFeedbackMessage extends UserMessage super(target, null, message); setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE); } + + override public function getFormat () :String + { + return "m.told_format"; + } } } diff --git a/src/as/com/threerings/crowd/chat/data/UserMessage.as b/src/as/com/threerings/crowd/chat/data/UserMessage.as index 9bb385efd..c5e5ca9eb 100644 --- a/src/as/com/threerings/crowd/chat/data/UserMessage.as +++ b/src/as/com/threerings/crowd/chat/data/UserMessage.as @@ -59,6 +59,21 @@ public class UserMessage extends ChatMessage return speaker; } + override public function getFormat () :String + { + switch (mode) { + case ChatCodes.THINK_MODE: return "m.think_format"; + case ChatCodes.EMOTE_MODE: return "m.emote_format"; + case ChatCodes.SHOUT_MODE: return "m.shout_format"; + case ChatCodes.BROADCAST_MODE: return "m.broadcast_format"; + } + + if (ChatCodes.USER_CHAT_TYPE === localtype) { + return "m.tell_format"; + } + return "m.speak_format"; + } + // from interface Streamable override public function readObject (ins :ObjectInputStream) :void { diff --git a/src/java/com/threerings/crowd/chat/data/ChatMessage.java b/src/java/com/threerings/crowd/chat/data/ChatMessage.java index e49444637..c5023ea10 100644 --- a/src/java/com/threerings/crowd/chat/data/ChatMessage.java +++ b/src/java/com/threerings/crowd/chat/data/ChatMessage.java @@ -72,6 +72,14 @@ public abstract class ChatMessage timestamp = System.currentTimeMillis(); } + /** + * Get the appropriate message format for this message. + */ + public String getFormat () + { + return null; + } + /** * Generates a string representation of this instance. */ diff --git a/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java b/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java index e14b2ef03..3af626174 100644 --- a/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java +++ b/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java @@ -36,4 +36,10 @@ public class TellFeedbackMessage extends UserMessage super(target, null, message, ChatCodes.DEFAULT_MODE); setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE); } + + @Override + public String getFormat () + { + return "m.told_format"; + } } diff --git a/src/java/com/threerings/crowd/chat/data/UserMessage.java b/src/java/com/threerings/crowd/chat/data/UserMessage.java index e83e54e37..0d2d82349 100644 --- a/src/java/com/threerings/crowd/chat/data/UserMessage.java +++ b/src/java/com/threerings/crowd/chat/data/UserMessage.java @@ -71,4 +71,20 @@ public class UserMessage extends ChatMessage { return speaker; } + + @Override + public String getFormat () + { + switch (mode) { + case ChatCodes.THINK_MODE: return "m.think_format"; + case ChatCodes.EMOTE_MODE: return "m.emote_format"; + case ChatCodes.SHOUT_MODE: return "m.shout_format"; + case ChatCodes.BROADCAST_MODE: return "m.broadcast_format"; + } + + if (ChatCodes.USER_CHAT_TYPE.equals(localtype)) { + return "m.tell_format"; + } + return "m.speak_format"; + } }