com.planet_ink.coffee_mud.Behaviors
Class MudChat

java.lang.Object
  extended by com.planet_ink.coffee_mud.Behaviors.StdBehavior
      extended by com.planet_ink.coffee_mud.Behaviors.MudChat
All Implemented Interfaces:
Behavior, ChattyBehavior, CMObject, Contingent, Modifiable, MsgListener, Tickable, java.lang.Cloneable, java.lang.Comparable<CMObject>
Direct Known Subclasses:
QuestChat

public class MudChat
extends StdBehavior
implements ChattyBehavior


Nested Class Summary
 
Nested classes/interfaces inherited from interface com.planet_ink.coffee_mud.Behaviors.interfaces.ChattyBehavior
ChattyBehavior.ChattyEntry, ChattyBehavior.ChattyGroup, ChattyBehavior.ChattyResponse, ChattyBehavior.ChattyTestResponse
 
Field Summary
protected  ChattyBehavior.ChattyEntry[] addedChatEntries
           
protected  MOB lastReactedTo
           
protected  MOB lastRespondedTo
           
protected  java.lang.String lastThingSaid
           
protected  ChattyBehavior.ChattyGroup myChatGroup
           
protected  java.lang.String myOldName
           
protected static int RESPONSE_DELAY
           
protected  SLinkedList<ChattyBehavior.ChattyResponse> responseQue
           
protected  ScriptingEngine scriptEngine
           
protected static int TALK_WAIT_DELAY
           
protected  int talkDown
           
protected  int tickDown
           
 
Fields inherited from class com.planet_ink.coffee_mud.Behaviors.StdBehavior
CODES, isSavableBehavior, parms
 
Fields inherited from interface com.planet_ink.coffee_mud.Behaviors.interfaces.Behavior
CAN_AREAS, CAN_EXITS, CAN_ITEMS, CAN_MOBS, CAN_ROOMS, FLAG_LEGALBEHAVIOR, FLAG_MOBILITY, FLAG_POTENTIALLYAGGRESSIVE, FLAG_POTENTIALLYAUTODEATHING, FLAG_TROUBLEMAKING
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
Constructor Summary
MudChat()
           
 
Method Summary
 java.lang.String accountForYourself()
          Returns a string describing what this behavior does.
 void executeMsg(Environmental affecting, CMMsg msg)
          The general message event handler for the object.
 java.util.List<java.lang.String> externalFiles()
          Returns a string list of any external files which may be required to make this ability work.
protected static ChattyBehavior.ChattyGroup[] getChatGroups(java.lang.String parms)
           
 MOB getLastRespondedTo()
          Returns the last MOB object spoken to.
 java.lang.String getLastThingSaid()
          Returns the last thing actually spoken by the wielder of this behavior, or null if nothing has been said yet.
protected  ChattyBehavior.ChattyGroup getMyBaseChatGroup(MOB forMe, ChattyBehavior.ChattyGroup[] chatGroups)
           
protected  ChattyBehavior.ChattyGroup getMyChatGroup(MOB forMe, ChattyBehavior.ChattyGroup[] chatGroups)
           
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
protected static ChattyBehavior.ChattyGroup[] loadChatData(java.lang.String resourceName)
           
protected  boolean match(MOB speaker, java.lang.String expression, java.lang.String message, java.lang.String[] rest)
           
protected static ChattyBehavior.ChattyGroup matchChatGroup(MOB meM, java.lang.String myName, ChattyBehavior.ChattyGroup[] chatGroups)
           
protected static ChattyBehavior.ChattyGroup newChattyGroup(java.lang.String name)
           
static java.lang.String nextLine(java.lang.StringBuffer tsc)
           
protected static ChattyBehavior.ChattyGroup[] parseChatData(java.lang.StringBuffer rsc)
           
protected  void queResponse(java.util.ArrayList<ChattyBehavior.ChattyTestResponse> responses, MOB source, MOB target, java.lang.String rest)
           
 void setParms(java.lang.String newParms)
          Sets the raw parameter string for this behavior.
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
protected static ChattyBehavior.ChattyGroup[] unprotectedChatGroupLoad(java.lang.String parms)
           
 
Methods inherited from class com.planet_ink.coffee_mud.Behaviors.StdBehavior
amDestroyed, canActAtAll, canFreelyBehaveNormal, canImprove, canImprove, canImproveCode, compareTo, copyOf, destroy, flags, getBehaversMOB, getBehaversRoom, getCodeNum, getParms, getSaveStatIndex, getStat, getStatCodes, getTickStatus, grantsAggressivenessTo, initializeClass, isSavable, isStat, L, name, newInstance, okMessage, parmsFormat, registerDefaultQuest, sameAs, setSavable, setStat, startBehavior
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.planet_ink.coffee_mud.Behaviors.interfaces.Behavior
canImprove, canImprove, flags, getParms, grantsAggressivenessTo, parmsFormat, registerDefaultQuest, setSavable, startBehavior
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
getTickStatus, name
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.MsgListener
okMessage
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Contingent
amDestroyed, destroy, isSavable
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CMObject
copyOf, initializeClass, newInstance
 
Methods inherited from interface java.lang.Comparable
compareTo
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.Modifiable
getSaveStatIndex, getStat, getStatCodes, isStat, setStat
 

Field Detail

myChatGroup

protected ChattyBehavior.ChattyGroup myChatGroup

myOldName

protected java.lang.String myOldName

addedChatEntries

protected ChattyBehavior.ChattyEntry[] addedChatEntries

lastReactedTo

protected MOB lastReactedTo

lastRespondedTo

protected MOB lastRespondedTo

lastThingSaid

protected java.lang.String lastThingSaid

tickDown

protected int tickDown

talkDown

protected int talkDown

responseQue

protected SLinkedList<ChattyBehavior.ChattyResponse> responseQue

scriptEngine

protected ScriptingEngine scriptEngine

RESPONSE_DELAY

protected static final int RESPONSE_DELAY
See Also:
Constant Field Values

TALK_WAIT_DELAY

protected static final int TALK_WAIT_DELAY
See Also:
Constant Field Values
Constructor Detail

MudChat

public MudChat()
Method Detail

ID

public java.lang.String ID()
Description copied from interface: CMObject
The CoffeeMud Java Class ID shared by all instances of this object. Unlike the Java Class name, this method does not include package information. However, it must return a String value unique to its class category in the ClassLoader. Class categories include Libraries, Common, Areas, Abilities, Behaviors, CharClasses, Commands, Exits Locales, MOBS, Races, WebMacros, Basic Items, Armor, Weapons, ClanItems, Tech. The name is typically identical to the class name.

Specified by:
ID in interface CMObject
Overrides:
ID in class StdBehavior
Returns:
the name of this class

accountForYourself

public java.lang.String accountForYourself()
Description copied from interface: Behavior
Returns a string describing what this behavior does. Mostly for thought and behavior reading systems.

Specified by:
accountForYourself in interface Behavior
Overrides:
accountForYourself in class StdBehavior
Returns:
a string describing what this behavior does.

setParms

public void setParms(java.lang.String newParms)
Description copied from interface: Behavior
Sets the raw parameter string for this behavior. Parameters are meant to modify or specify specific behavior of this Behavior.

Specified by:
setParms in interface Behavior
Overrides:
setParms in class StdBehavior
Parameters:
newParms - the parameter string for this behavior
See Also:
Behavior.getParms()

getLastThingSaid

public java.lang.String getLastThingSaid()
Description copied from interface: ChattyBehavior
Returns the last thing actually spoken by the wielder of this behavior, or null if nothing has been said yet.

Specified by:
getLastThingSaid in interface ChattyBehavior
Returns:
the last thing said.

getLastRespondedTo

public MOB getLastRespondedTo()
Description copied from interface: ChattyBehavior
Returns the last MOB object spoken to.

Specified by:
getLastRespondedTo in interface ChattyBehavior
Returns:
the last MOB object spoken to.

newChattyGroup

protected static ChattyBehavior.ChattyGroup newChattyGroup(java.lang.String name)

getChatGroups

protected static ChattyBehavior.ChattyGroup[] getChatGroups(java.lang.String parms)

unprotectedChatGroupLoad

protected static ChattyBehavior.ChattyGroup[] unprotectedChatGroupLoad(java.lang.String parms)

externalFiles

public java.util.List<java.lang.String> externalFiles()
Description copied from interface: Behavior
Returns a string list of any external files which may be required to make this ability work. Usually derived from the parameters. Files returned by this method should not be base distrib files!

Specified by:
externalFiles in interface Behavior
Overrides:
externalFiles in class StdBehavior
Returns:
a list of the path/names of files used by this behavior
See Also:
Behavior.setParms(String)

parseChatData

protected static ChattyBehavior.ChattyGroup[] parseChatData(java.lang.StringBuffer rsc)

loadChatData

protected static ChattyBehavior.ChattyGroup[] loadChatData(java.lang.String resourceName)

nextLine

public static java.lang.String nextLine(java.lang.StringBuffer tsc)

matchChatGroup

protected static ChattyBehavior.ChattyGroup matchChatGroup(MOB meM,
                                                           java.lang.String myName,
                                                           ChattyBehavior.ChattyGroup[] chatGroups)

getMyBaseChatGroup

protected ChattyBehavior.ChattyGroup getMyBaseChatGroup(MOB forMe,
                                                        ChattyBehavior.ChattyGroup[] chatGroups)

getMyChatGroup

protected ChattyBehavior.ChattyGroup getMyChatGroup(MOB forMe,
                                                    ChattyBehavior.ChattyGroup[] chatGroups)

queResponse

protected void queResponse(java.util.ArrayList<ChattyBehavior.ChattyTestResponse> responses,
                           MOB source,
                           MOB target,
                           java.lang.String rest)

match

protected boolean match(MOB speaker,
                        java.lang.String expression,
                        java.lang.String message,
                        java.lang.String[] rest)

executeMsg

public void executeMsg(Environmental affecting,
                       CMMsg msg)
Description copied from interface: MsgListener
The general message event handler for the object. Messages passed herein may not necessarily be FOR this object, or from it, but will almost always represent events happening in the same room. The messages have already been through an approval process, so this method is called only to affect the final execution of the meaning of the message. Every game event goes through these methods.

Specified by:
executeMsg in interface MsgListener
Overrides:
executeMsg in class StdBehavior
Parameters:
affecting - either the initiator of the event, or the host of this object
msg - the CMMsg that needs to be executed
See Also:
CMMsg

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Overrides:
tick in class StdBehavior
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup