A few chat channel related fixes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5382 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -50,6 +50,7 @@ import com.threerings.crowd.data.CrowdCodes;
|
|||||||
import com.threerings.crowd.data.PlaceObject;
|
import com.threerings.crowd.data.PlaceObject;
|
||||||
import com.threerings.crowd.util.CrowdContext;
|
import com.threerings.crowd.util.CrowdContext;
|
||||||
|
|
||||||
|
import com.threerings.crowd.chat.data.ChatChannel;
|
||||||
import com.threerings.crowd.chat.data.ChatCodes;
|
import com.threerings.crowd.chat.data.ChatCodes;
|
||||||
import com.threerings.crowd.chat.data.ChatMarshaller;
|
import com.threerings.crowd.chat.data.ChatMarshaller;
|
||||||
import com.threerings.crowd.chat.data.ChatMessage;
|
import com.threerings.crowd.chat.data.ChatMessage;
|
||||||
@@ -595,9 +596,12 @@ public class ChatDirector extends BasicDirector
|
|||||||
public function messageReceived (event :MessageEvent) :void
|
public function messageReceived (event :MessageEvent) :void
|
||||||
{
|
{
|
||||||
if (ChatCodes.CHAT_NOTIFICATION === event.getName()) {
|
if (ChatCodes.CHAT_NOTIFICATION === event.getName()) {
|
||||||
var msg :ChatMessage = (event.getArgs()[0] as ChatMessage);
|
processReceivedMessage(event.getArgs()[0] as ChatMessage,
|
||||||
var localtype :String = getLocalType(event.getTargetOid());
|
getLocalType(event.getTargetOid()));
|
||||||
processReceivedMessage(msg, localtype);
|
|
||||||
|
} else if (ChatCodes.CHAT_CHANNEL_NOTIFICATION === event.getName()) {
|
||||||
|
processReceivedMessage(event.getArgs()[1] as ChatMessage,
|
||||||
|
getChannelLocalType(event.getArgs()[0] as ChatChannel));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -970,6 +974,14 @@ public class ChatDirector extends BasicDirector
|
|||||||
return (typ == null) ? ChatCodes.PLACE_CHAT_TYPE : typ;
|
return (typ == null) ? ChatCodes.PLACE_CHAT_TYPE : typ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the local type for a chat channel message.
|
||||||
|
*/
|
||||||
|
protected function getChannelLocalType (channel :ChatChannel) :String
|
||||||
|
{
|
||||||
|
throw new Error("Users of the chat channel system must implement getChannelLocalType()");
|
||||||
|
}
|
||||||
|
|
||||||
// from BasicDirector
|
// from BasicDirector
|
||||||
override protected function registerServices (client :Client) :void
|
override protected function registerServices (client :Client) :void
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ package com.threerings.crowd.chat.data {
|
|||||||
import com.threerings.io.SimpleStreamableObject;
|
import com.threerings.io.SimpleStreamableObject;
|
||||||
import com.threerings.util.Comparable;
|
import com.threerings.util.Comparable;
|
||||||
import com.threerings.util.Equalable;
|
import com.threerings.util.Equalable;
|
||||||
|
import com.threerings.util.Hashable;
|
||||||
|
|
||||||
import com.threerings.presents.dobj.DSet_Entry;
|
import com.threerings.presents.dobj.DSet_Entry;
|
||||||
|
|
||||||
@@ -31,7 +32,7 @@ import com.threerings.presents.dobj.DSet_Entry;
|
|||||||
* Represents a chat channel.
|
* Represents a chat channel.
|
||||||
*/
|
*/
|
||||||
public /*abstract*/ class ChatChannel extends SimpleStreamableObject
|
public /*abstract*/ class ChatChannel extends SimpleStreamableObject
|
||||||
implements Comparable, Equalable, DSet_Entry
|
implements Comparable, Hashable, Equalable, DSet_Entry
|
||||||
{
|
{
|
||||||
// from interface Comparable
|
// from interface Comparable
|
||||||
public function compareTo (other :Object) :int
|
public function compareTo (other :Object) :int
|
||||||
@@ -39,6 +40,12 @@ public /*abstract*/ class ChatChannel extends SimpleStreamableObject
|
|||||||
throw new Error("abstract");
|
throw new Error("abstract");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// from interface Hashable
|
||||||
|
public function hashCode () :int
|
||||||
|
{
|
||||||
|
throw new Error("abstract");
|
||||||
|
}
|
||||||
|
|
||||||
// from interface Equalable
|
// from interface Equalable
|
||||||
public function equals (other :Object) :Boolean
|
public function equals (other :Object) :Boolean
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class ChatCodes extends InvocationCodes
|
|||||||
public static const CHAT_NOTIFICATION :String = "crowd.chat";
|
public static const CHAT_NOTIFICATION :String = "crowd.chat";
|
||||||
|
|
||||||
/** The message identifier for a chat channel notification message. */
|
/** The message identifier for a chat channel notification message. */
|
||||||
public static const CHAT_CHANENL_NOTIFICATION :String = "crowd.chat.channel";
|
public static const CHAT_CHANNEL_NOTIFICATION :String = "crowd.chat.channel";
|
||||||
|
|
||||||
/** The access control identifier for normal chat privileges. */
|
/** The access control identifier for normal chat privileges. */
|
||||||
public static const CHAT_ACCESS :Permission = new Permission();
|
public static const CHAT_ACCESS :Permission = new Permission();
|
||||||
|
|||||||
Reference in New Issue
Block a user