diff --git a/src/as/com/threerings/crowd/chat/client/ChatDirector.as b/src/as/com/threerings/crowd/chat/client/ChatDirector.as index f288dbd56..6c91dbf38 100644 --- a/src/as/com/threerings/crowd/chat/client/ChatDirector.as +++ b/src/as/com/threerings/crowd/chat/client/ChatDirector.as @@ -447,7 +447,7 @@ public class ChatDirector extends BasicDirector var failure :Function = function (reason :String) :void { var msg :String = MessageBundle.compose( "m.tell_failed", MessageBundle.taint(target), reason); - displayFeedback(_bundle, msg); + dispatchMessage(new TellFeedbackMessage(target, xlate(_bundle, msg), true)); if (rl != null) { rl.requestFailed(null); } diff --git a/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as b/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as index 43dc0559d..3a2c4ea10 100644 --- a/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as +++ b/src/as/com/threerings/crowd/chat/data/TellFeedbackMessage.as @@ -31,15 +31,18 @@ public class TellFeedbackMessage extends UserMessage /** * A tell feedback message is only composed on the client. */ - public function TellFeedbackMessage (target :Name, message :String) + public function TellFeedbackMessage (target :Name, message :String, failed :Boolean = false) { super(target, null, message); setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE); + _failed = failed; } override public function getFormat () :String { - return "m.told_format"; + return _failed ? null : "m.told_format"; } + + protected var _failed :Boolean; } } diff --git a/src/java/com/threerings/crowd/chat/client/ChatDirector.java b/src/java/com/threerings/crowd/chat/client/ChatDirector.java index 29e24e315..c9eae79d8 100644 --- a/src/java/com/threerings/crowd/chat/client/ChatDirector.java +++ b/src/java/com/threerings/crowd/chat/client/ChatDirector.java @@ -526,7 +526,7 @@ public class ChatDirector extends BasicDirector } protected void success () { - dispatchMessage(new TellFeedbackMessage(target, message)); + dispatchMessage(new TellFeedbackMessage(target, message, false)); addChatter(target); if (rl != null) { rl.requestCompleted(target); @@ -536,7 +536,7 @@ public class ChatDirector extends BasicDirector public void requestFailed (String reason) { String msg = MessageBundle.compose( "m.tell_failed", MessageBundle.taint(target), reason); - displayFeedback(_bundle, msg); + dispatchMessage(new TellFeedbackMessage(target, xlate(_bundle, msg), true)); if (rl != null) { rl.requestFailed(null); } diff --git a/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java b/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java index abcd5d08c..02be1cce6 100644 --- a/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java +++ b/src/java/com/threerings/crowd/chat/data/TellFeedbackMessage.java @@ -31,15 +31,18 @@ public class TellFeedbackMessage extends UserMessage /** * A tell feedback message is only composed on the client. */ - public TellFeedbackMessage (Name target, String message) + public TellFeedbackMessage (Name target, String message, boolean failure) { super(target, null, message, ChatCodes.DEFAULT_MODE); setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE); + _failure = failure; } @Override public String getFormat () { - return "m.told_format"; + return _failure ? null : "m.told_format"; } + + protected boolean _failure; }