MDB reassures me it's safe to assume the client is a CrowdClient here, which makes the function short enough to inline. Also rename _auxobj to _bodyobj.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6322 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -67,16 +67,6 @@ public class ChatDirector extends BasicDirector
|
|||||||
// statically reference classes we require
|
// statically reference classes we require
|
||||||
ChatMarshaller;
|
ChatMarshaller;
|
||||||
|
|
||||||
/**
|
|
||||||
* Convenience method for returning the body of a client in a super safe manner, taking
|
|
||||||
* into account the (remote, one imagines) possibility that it might not be a CrowdClient.
|
|
||||||
*/
|
|
||||||
public static function getBodyObject (client :Client) :BodyObject
|
|
||||||
{
|
|
||||||
return (client is CrowdClient) ? (client as CrowdClient).bodyOf() :
|
|
||||||
(client.getClientObject() as BodyObject);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a chat director and initializes it with the supplied context.
|
* Creates a chat director and initializes it with the supplied context.
|
||||||
*
|
*
|
||||||
@@ -624,10 +614,9 @@ public class ChatDirector extends BasicDirector
|
|||||||
{
|
{
|
||||||
super.clientDidLogon(event);
|
super.clientDidLogon(event);
|
||||||
|
|
||||||
_auxobj = getBodyObject(event.getClient());
|
_bodyobj = (event.getClient() as CrowdClient).bodyOf();
|
||||||
|
|
||||||
// listen on the body object for tells
|
// listen on the body object for tells
|
||||||
addAuxiliarySource(_auxobj, ChatCodes.USER_CHAT_TYPE);
|
addAuxiliarySource(_bodyobj, ChatCodes.USER_CHAT_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// documentation inherited
|
// documentation inherited
|
||||||
@@ -636,13 +625,12 @@ public class ChatDirector extends BasicDirector
|
|||||||
super.clientObjectDidChange(event);
|
super.clientObjectDidChange(event);
|
||||||
|
|
||||||
// change what we're listening to for tells
|
// change what we're listening to for tells
|
||||||
if (_auxobj != null) {
|
if (_bodyobj != null) {
|
||||||
removeAuxiliarySource(_auxobj);
|
removeAuxiliarySource(_bodyobj);
|
||||||
}
|
}
|
||||||
_auxobj = getBodyObject(event.getClient());
|
_bodyobj = (event.getClient() as CrowdClient).bodyOf();
|
||||||
|
|
||||||
// listen on the body object for tells
|
// listen on the body object for tells
|
||||||
addAuxiliarySource(_auxobj, ChatCodes.USER_CHAT_TYPE);
|
addAuxiliarySource(_bodyobj, ChatCodes.USER_CHAT_TYPE);
|
||||||
|
|
||||||
if (clearChatOnClientExit()) {
|
if (clearChatOnClientExit()) {
|
||||||
clearDisplays();
|
clearDisplays();
|
||||||
@@ -654,10 +642,10 @@ public class ChatDirector extends BasicDirector
|
|||||||
{
|
{
|
||||||
super.clientDidLogoff(event);
|
super.clientDidLogoff(event);
|
||||||
|
|
||||||
if (_auxobj != null) {
|
if (_bodyobj != null) {
|
||||||
// stop listening to it for tells
|
// stop listening to it for tells
|
||||||
removeAuxiliarySource(_auxobj);
|
removeAuxiliarySource(_bodyobj);
|
||||||
_auxobj = null;
|
_bodyobj = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// in fact, clear out all auxiliary sources
|
// in fact, clear out all auxiliary sources
|
||||||
@@ -716,7 +704,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
addChatter(speaker);
|
addChatter(speaker);
|
||||||
|
|
||||||
// note whether or not we have an auto-response
|
// note whether or not we have an auto-response
|
||||||
var self :BodyObject = getBodyObject(_cctx.getClient());
|
var self :BodyObject = (_cctx.getClient() as CrowdClient).bodyOf();
|
||||||
if (!StringUtil.isBlank(self.awayMessage)) {
|
if (!StringUtil.isBlank(self.awayMessage)) {
|
||||||
autoResponse = self.awayMessage;
|
autoResponse = self.awayMessage;
|
||||||
}
|
}
|
||||||
@@ -932,7 +920,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
internal function getCommandHandlers (command :String) :Map
|
internal function getCommandHandlers (command :String) :Map
|
||||||
{
|
{
|
||||||
var matches :Map = Maps.newMapOf(String);
|
var matches :Map = Maps.newMapOf(String);
|
||||||
var user :BodyObject = getBodyObject(_cctx.getClient());
|
var user :BodyObject = (_cctx.getClient() as CrowdClient).bodyOf();
|
||||||
var keys :Array = _handlers.keys();
|
var keys :Array = _handlers.keys();
|
||||||
for (var ii :int = 0; ii < keys.length; ii++) {
|
for (var ii :int = 0; ii < keys.length; ii++) {
|
||||||
var cmd :String = (keys[ii] as String);
|
var cmd :String = (keys[ii] as String);
|
||||||
@@ -1064,7 +1052,7 @@ public class ChatDirector extends BasicDirector
|
|||||||
protected var _place :PlaceObject;
|
protected var _place :PlaceObject;
|
||||||
|
|
||||||
/** The object that we're listening to for tells. */
|
/** The object that we're listening to for tells. */
|
||||||
protected var _auxobj :DObject;
|
protected var _bodyobj :DObject;
|
||||||
|
|
||||||
/** A list of registered chat displays. */
|
/** A list of registered chat displays. */
|
||||||
protected var _displays :ObserverList = new ObserverList();
|
protected var _displays :ObserverList = new ObserverList();
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import com.threerings.util.ResultAdapter;
|
|||||||
import com.threerings.util.ResultListener;
|
import com.threerings.util.ResultListener;
|
||||||
import com.threerings.util.StringUtil;
|
import com.threerings.util.StringUtil;
|
||||||
|
|
||||||
|
import com.threerings.crowd.client.CrowdClient;
|
||||||
import com.threerings.crowd.data.BodyObject;
|
import com.threerings.crowd.data.BodyObject;
|
||||||
import com.threerings.crowd.util.CrowdContext;
|
import com.threerings.crowd.util.CrowdContext;
|
||||||
import com.threerings.crowd.chat.data.ChatCodes;
|
import com.threerings.crowd.chat.data.ChatCodes;
|
||||||
@@ -53,7 +54,7 @@ public class TellHandler extends CommandHandler
|
|||||||
}
|
}
|
||||||
|
|
||||||
// make sure we're not trying to tell something to ourselves
|
// make sure we're not trying to tell something to ourselves
|
||||||
var self :BodyObject = ChatDirector.getBodyObject(ctx.getClient());
|
var self :BodyObject = (ctx.getClient() as CrowdClient).bodyOf();
|
||||||
if (handle.toLowerCase() === self.getVisibleName().toString().toLowerCase()) {
|
if (handle.toLowerCase() === self.getVisibleName().toString().toLowerCase()) {
|
||||||
return "m.talk_self";
|
return "m.talk_self";
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user