Did away with hackery where some chat types were initializing their own client info.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4750 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -302,14 +302,10 @@ public class ChatDirector extends BasicDirector
|
|||||||
/**
|
/**
|
||||||
* Dispatches the provided message to our chat displays.
|
* Dispatches the provided message to our chat displays.
|
||||||
*/
|
*/
|
||||||
public function dispatchMessage (message :ChatMessage) :void
|
public function dispatchMessage (message :ChatMessage, localType :String) :void
|
||||||
{
|
{
|
||||||
var displayed :Boolean = false;
|
message.setClientInfo(xlate(message.bundle, message.message), localType);
|
||||||
_displays.apply(function (disp :ChatDisplay) :void {
|
dispatchPreparedMessage(message);
|
||||||
if (disp.displayMessage(message, displayed)) {
|
|
||||||
displayed = true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -447,13 +443,15 @@ public class ChatDirector extends BasicDirector
|
|||||||
var failure :Function = function (reason :String) :void {
|
var failure :Function = function (reason :String) :void {
|
||||||
var msg :String = MessageBundle.compose(
|
var msg :String = MessageBundle.compose(
|
||||||
"m.tell_failed", MessageBundle.taint(target), reason);
|
"m.tell_failed", MessageBundle.taint(target), reason);
|
||||||
dispatchMessage(new TellFeedbackMessage(target, xlate(_bundle, msg), true));
|
var tfm :TellFeedbackMessage = new TellFeedbackMessage(target, msg, true);
|
||||||
|
tfm.bundle = _bundle;
|
||||||
|
dispatchMessage(tfm, ChatCodes.PLACE_CHAT_TYPE);
|
||||||
if (rl != null) {
|
if (rl != null) {
|
||||||
rl.requestFailed(null);
|
rl.requestFailed(null);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var success :Function = function (idleTime :Long, awayMessage :String) :void {
|
var success :Function = function (idleTime :Long, awayMessage :String) :void {
|
||||||
dispatchMessage(new TellFeedbackMessage(target, message));
|
dispatchMessage(new TellFeedbackMessage(target, message), ChatCodes.PLACE_CHAT_TYPE);
|
||||||
addChatter(target);
|
addChatter(target);
|
||||||
if (rl != null) {
|
if (rl != null) {
|
||||||
rl.requestCompleted(target);
|
rl.requestCompleted(target);
|
||||||
@@ -579,7 +577,6 @@ public class ChatDirector extends BasicDirector
|
|||||||
if (ChatCodes.CHAT_NOTIFICATION === event.getName()) {
|
if (ChatCodes.CHAT_NOTIFICATION === event.getName()) {
|
||||||
var msg :ChatMessage = (event.getArgs()[0] as ChatMessage);
|
var msg :ChatMessage = (event.getArgs()[0] as ChatMessage);
|
||||||
var localtype :String = getLocalType(event.getTargetOid());
|
var localtype :String = getLocalType(event.getTargetOid());
|
||||||
var message :String = msg.message;
|
|
||||||
var autoResponse :String = null;
|
var autoResponse :String = null;
|
||||||
var speaker :Name = null;
|
var speaker :Name = null;
|
||||||
var mode :int = -1;
|
var mode :int = -1;
|
||||||
@@ -596,7 +593,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
|
|
||||||
// if there was an originating speaker, see if we want to hear it
|
// if there was an originating speaker, see if we want to hear it
|
||||||
if (speaker != null) {
|
if (speaker != null) {
|
||||||
if ((message = filter(message, speaker, false)) == null) {
|
if ((msg.message = filter(msg.message, speaker, false)) == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -612,11 +609,8 @@ public class ChatDirector extends BasicDirector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialize the client-specific fields of the message
|
|
||||||
msg.setClientInfo(xlate(msg.bundle, message), localtype);
|
|
||||||
|
|
||||||
// and send it off!
|
// and send it off!
|
||||||
dispatchMessage(msg);
|
dispatchMessage(msg, localtype);
|
||||||
|
|
||||||
// if we auto-responded, report as much
|
// if we auto-responded, report as much
|
||||||
if (autoResponse != null) {
|
if (autoResponse != null) {
|
||||||
@@ -674,6 +668,19 @@ public class ChatDirector extends BasicDirector
|
|||||||
_cservice = null;
|
_cservice = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a message to chat displays once it is fully prepared with the clientinfo.
|
||||||
|
*/
|
||||||
|
protected function dispatchPreparedMessage (message :ChatMessage) :void
|
||||||
|
{
|
||||||
|
var displayed :Boolean = false;
|
||||||
|
_displays.apply(function (disp :ChatDisplay) :void {
|
||||||
|
if (disp.displayMessage(message, displayed)) {
|
||||||
|
displayed = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called to determine whether we are permitted to post the supplied chat message. Derived
|
* Called to determine whether we are permitted to post the supplied chat message. Derived
|
||||||
* classes may wish to throttle chat or restrict certain types in certain circumstances for
|
* classes may wish to throttle chat or restrict certain types in certain circumstances for
|
||||||
@@ -913,10 +920,8 @@ public class ChatDirector extends BasicDirector
|
|||||||
if (bundle == null) {
|
if (bundle == null) {
|
||||||
bundle = _bundle;
|
bundle = _bundle;
|
||||||
}
|
}
|
||||||
var msg :SystemMessage = new SystemMessage();
|
var msg :SystemMessage = new SystemMessage(message, bundle, attLevel);
|
||||||
msg.attentionLevel = attLevel;
|
dispatchMessage(msg, localtype);
|
||||||
msg.setClientInfo(xlate(bundle, message), localtype);
|
|
||||||
dispatchMessage(msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ public class TellFeedbackMessage extends UserMessage
|
|||||||
public function TellFeedbackMessage (target :Name, message :String, failed :Boolean = false)
|
public function TellFeedbackMessage (target :Name, message :String, failed :Boolean = false)
|
||||||
{
|
{
|
||||||
super(target, null, message);
|
super(target, null, message);
|
||||||
setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE);
|
|
||||||
_failed = failed;
|
_failed = failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -353,10 +353,10 @@ public class ChatDirector extends BasicDirector
|
|||||||
/**
|
/**
|
||||||
* Dispatches the provided message to our chat displays.
|
* Dispatches the provided message to our chat displays.
|
||||||
*/
|
*/
|
||||||
public void dispatchMessage (ChatMessage message)
|
public void dispatchMessage (ChatMessage message, String localType)
|
||||||
{
|
{
|
||||||
_displayMessageOp.setMessage(message);
|
message.setClientInfo(xlate(message.bundle, message.message), localType);
|
||||||
_displays.apply(_displayMessageOp);
|
dispatchPreparedMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -526,7 +526,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void success () {
|
protected void success () {
|
||||||
dispatchMessage(new TellFeedbackMessage(target, message, false));
|
dispatchMessage(new TellFeedbackMessage(target, message, false), ChatCodes.PLACE_CHAT_TYPE);
|
||||||
addChatter(target);
|
addChatter(target);
|
||||||
if (rl != null) {
|
if (rl != null) {
|
||||||
rl.requestCompleted(target);
|
rl.requestCompleted(target);
|
||||||
@@ -536,7 +536,9 @@ public class ChatDirector extends BasicDirector
|
|||||||
public void requestFailed (String reason) {
|
public void requestFailed (String reason) {
|
||||||
String msg = MessageBundle.compose(
|
String msg = MessageBundle.compose(
|
||||||
"m.tell_failed", MessageBundle.taint(target), reason);
|
"m.tell_failed", MessageBundle.taint(target), reason);
|
||||||
dispatchMessage(new TellFeedbackMessage(target, xlate(_bundle, msg), true));
|
TellFeedbackMessage tfm = new TellFeedbackMessage(target, msg, true);
|
||||||
|
tfm.bundle = _bundle;
|
||||||
|
dispatchMessage(tfm, ChatCodes.PLACE_CHAT_TYPE);
|
||||||
if (rl != null) {
|
if (rl != null) {
|
||||||
rl.requestFailed(null);
|
rl.requestFailed(null);
|
||||||
}
|
}
|
||||||
@@ -638,7 +640,6 @@ public class ChatDirector extends BasicDirector
|
|||||||
if (CHAT_NOTIFICATION.equals(event.getName())) {
|
if (CHAT_NOTIFICATION.equals(event.getName())) {
|
||||||
ChatMessage msg = (ChatMessage) event.getArgs()[0];
|
ChatMessage msg = (ChatMessage) event.getArgs()[0];
|
||||||
String localtype = getLocalType(event.getTargetOid());
|
String localtype = getLocalType(event.getTargetOid());
|
||||||
String message = msg.message;
|
|
||||||
String autoResponse = null;
|
String autoResponse = null;
|
||||||
Name speaker = null;
|
Name speaker = null;
|
||||||
Name speakerDisplay = null;
|
Name speakerDisplay = null;
|
||||||
@@ -658,7 +659,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
|
|
||||||
// if there was an originating speaker, see if we want to hear it
|
// if there was an originating speaker, see if we want to hear it
|
||||||
if (speaker != null) {
|
if (speaker != null) {
|
||||||
if ((message = filter(message, speaker, false)) == null) {
|
if ((msg.message = filter(msg.message, speaker, false)) == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -675,11 +676,8 @@ public class ChatDirector extends BasicDirector
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// initialize the client-specific fields of the message
|
|
||||||
msg.setClientInfo(xlate(msg.bundle, message), localtype);
|
|
||||||
|
|
||||||
// and send it off!
|
// and send it off!
|
||||||
dispatchMessage(msg);
|
dispatchMessage(msg, localtype);
|
||||||
|
|
||||||
// if we auto-responded, report as much
|
// if we auto-responded, report as much
|
||||||
if (autoResponse != null) {
|
if (autoResponse != null) {
|
||||||
@@ -737,6 +735,15 @@ public class ChatDirector extends BasicDirector
|
|||||||
_cservice = null;
|
_cservice = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispatch a message to chat displays once it is fully prepared with the clientinfo.
|
||||||
|
*/
|
||||||
|
protected void dispatchPreparedMessage (ChatMessage message)
|
||||||
|
{
|
||||||
|
_displayMessageOp.setMessage(message);
|
||||||
|
_displays.apply(_displayMessageOp);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called to determine whether we are permitted to post the supplied chat message. Derived
|
* Called to determine whether we are permitted to post the supplied chat message. Derived
|
||||||
* classes may wish to throttle chat or restrict certain types in certain circumstances for
|
* classes may wish to throttle chat or restrict certain types in certain circumstances for
|
||||||
@@ -996,10 +1003,8 @@ public class ChatDirector extends BasicDirector
|
|||||||
if (bundle == null) {
|
if (bundle == null) {
|
||||||
bundle = _bundle;
|
bundle = _bundle;
|
||||||
}
|
}
|
||||||
SystemMessage msg = new SystemMessage();
|
SystemMessage msg = new SystemMessage(message, bundle, attLevel);
|
||||||
msg.attentionLevel = attLevel;
|
dispatchMessage(msg, localtype);
|
||||||
msg.setClientInfo(xlate(bundle, message), localtype);
|
|
||||||
dispatchMessage(msg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ public class TellFeedbackMessage extends UserMessage
|
|||||||
public TellFeedbackMessage (Name target, String message, boolean failure)
|
public TellFeedbackMessage (Name target, String message, boolean failure)
|
||||||
{
|
{
|
||||||
super(target, null, message, ChatCodes.DEFAULT_MODE);
|
super(target, null, message, ChatCodes.DEFAULT_MODE);
|
||||||
setClientInfo(message, ChatCodes.PLACE_CHAT_TYPE);
|
|
||||||
_failure = failure;
|
_failure = failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user