Version 1.5APIs subject to change!

multiverse.mars.plugins
Class GroupPlugin

java.lang.Object
  extended by multiverse.server.engine.EnginePlugin
      extended by multiverse.mars.plugins.GroupPlugin
All Implemented Interfaces:
MessageCallback, StatusMapCallback

public class GroupPlugin
extends EnginePlugin


Nested Class Summary
 
Nested classes/interfaces inherited from class multiverse.server.engine.EnginePlugin
EnginePlugin.DeleteHook, EnginePlugin.DeleteSubObjHook, EnginePlugin.GenerateSubObjectHook, EnginePlugin.GetPropertyMessage, EnginePlugin.LoadHook, EnginePlugin.LoadSubObjHook, EnginePlugin.PluginActivateHook, EnginePlugin.PluginStateMessage, EnginePlugin.SaveHook, EnginePlugin.SaveSubObjHook, EnginePlugin.SetPropertyMessage, EnginePlugin.SubObjData, EnginePlugin.TransferFilter, EnginePlugin.TransferObjectMessage, EnginePlugin.UnloadHook, EnginePlugin.UnloadSubObjHook
 
Field Summary
protected static java.util.Map<java.lang.Long,MarsGroup> _currentGroups
           
protected static Logger _log
           
protected static int _maxGroupSize
           
protected static java.util.List<java.lang.String> _registeredStats
           
 
Fields inherited from class multiverse.server.engine.EnginePlugin
deleteSubObjectSubscription, dumpAllThreadSubscription, dumpAllThreadSubscriptionLock, loadSubObjectSubscription, lock, MSG_TYPE_DUMP_ALL_THREAD_STACKS, MSG_TYPE_GET_PROPERTY, MSG_TYPE_PLUGIN_STATE, MSG_TYPE_SET_PROPERTY, MSG_TYPE_SET_PROPERTY_NONBLOCK, MSG_TYPE_TRANSFER_OBJECT, pluginStateSubscription, propertySubscription, saveSubObjectSubscription, selectionFilter, selectionSubscription, setSubObjectPersistenceSubscription, subObjectSubscription, unloadSubObjectSubscription
 
Fields inherited from interface multiverse.msgsys.MessageCallback
NO_FLAGS, RESPONSE_EXPECTED
 
Constructor Summary
GroupPlugin()
           
 
Method Summary
protected  MarsGroup GetGroup(long groupOid)
           
protected static MarsGroupMember GetGroupMember(java.lang.Long subjectOid)
           
 java.lang.String GetName()
           
static java.util.List<java.lang.String> GetRegisteredStats()
           
protected  boolean HandledVoiceStatus(java.lang.Long playerOid, java.lang.Long groupOid, java.lang.Boolean voiceEnabled)
          HandledVoiceStatus - Logic to handle mv.VOICE_CHAT_STATUS message.
protected  void HandleGroupChat(WorldManagerClient.ExtensionMessage groupChatMsg)
          Logic to handle group specific chat
protected  java.util.HashSet<java.lang.Long> HandleGroupInfoRequest(CombatInfo subject)
          HandleGroupInfoRequest handles a request for information about a group.
protected  boolean HandleGroupInvite(WorldManagerClient.ExtensionMessage inviteMsg)
          Handles invite request by sending invite request message to the invitee
protected  boolean HandleInviteResponse(WorldManagerClient.ExtensionMessage inviteMsg)
          Handles logic for an invite request response - either accepted or declined Creates a new group if the inviter is not currently grouped
protected  boolean HandleMuteGroup(java.lang.Long setterOid, java.lang.Long groupOid)
          HandleMuteGroup - Allows group leader to mute or un-mute the group's voice chat
protected  boolean HandleSetAllowedSpeaker(long targetOid, long setterOid, long groupOid)
          HandleSetAllowedSpeaker - Used to mark the target as an allowed speaker or not of the group's voice chat.
protected  boolean HandleVoiceMemberAdded(java.lang.Long memberOid, java.lang.Long groupOid)
          HandleVoiceMemberAdded - Handles logic for processing the VoiceClient.MSG_TYPE_VOICE_MEMBER_ADDED message type.
 void onActivate()
          for developers extending the EnginePlugin object, it may be easier to use the onActivate() method which gets called when the plugin is being activated by the Engine.
 void RegisterHooks()
           
static void RegisterStat(java.lang.String stat)
           
protected  void RemoveGroupMember(CombatInfo info)
           
protected  void SendGroupPropertyUpdate(java.lang.Long subjectOid, MarsGroup group, java.util.Map<java.lang.String,java.io.Serializable> statsToUpdate)
          SendGroupPropertyUpdate - Sends a mv.GROUP_PROPERTY_UPDATE message to each client in the group client
protected  void SendGroupUpdate(MarsGroup group)
          Gets information about the group and its members and sends it to each group member
protected  void SendTargetedGroupMessage(long target, java.lang.String message)
          SendTargetedGroupMessage - Handles sending messages to the group com channel
static void SetMaxGroupSize(int size)
          Sets the maximum number of players that can be in a single group - Default is 8
protected  boolean UpdateGroupMemberProps(PropertyMessage propMsg)
          Sends update to group members about the group and its members
 
Methods inherited from class multiverse.server.engine.EnginePlugin
activate, createMBeanInstance, createSubscription, getHookManager, getMessageHandler, getName, getObjectLockManager, getObjectProperties, getObjectProperties, getObjectProperty, getPercentCPULoad, getPluginInfo, getPluginNamespaces, getPluginState, getPluginStatus, getPluginType, getPropertyImpl, getStatusMap, handleMessage, handleMessageImpl, logDepsOutstanding, processKeysAndValues, registerActivateHook, registerDeleteHook, registerLoadHook, registerPluginNamespace, registerPluginNamespaces, registerPluginNamespaces, registerPluginNamespaces, registerSaveHook, registerTransferHook, registerUnloadHook, sendSubObjectResponse, sendSubObjectResponse, sendSubObjectResponse, setMessageHandler, setName, setObjectProperties, setObjectProperties, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectProperty, setObjectPropertyNoResponse, setPercentCPULoad, setPluginInfo, setPluginType, setPropertyImpl, transferObject
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_log

protected static final Logger _log

_registeredStats

protected static java.util.List<java.lang.String> _registeredStats

_currentGroups

protected static java.util.Map<java.lang.Long,MarsGroup> _currentGroups

_maxGroupSize

protected static int _maxGroupSize
Constructor Detail

GroupPlugin

public GroupPlugin()
Method Detail

GetName

public java.lang.String GetName()

onActivate

public void onActivate()
Description copied from class: EnginePlugin
for developers extending the EnginePlugin object, it may be easier to use the onActivate() method which gets called when the plugin is being activated by the Engine. this is an alternative to calling registerActivateHook()

Overrides:
onActivate in class EnginePlugin

RegisterHooks

public void RegisterHooks()

RegisterStat

public static void RegisterStat(java.lang.String stat)

GetGroup

protected MarsGroup GetGroup(long groupOid)

GetRegisteredStats

public static java.util.List<java.lang.String> GetRegisteredStats()

SendGroupUpdate

protected void SendGroupUpdate(MarsGroup group)
Gets information about the group and its members and sends it to each group member


RemoveGroupMember

protected void RemoveGroupMember(CombatInfo info)

SetMaxGroupSize

public static void SetMaxGroupSize(int size)
Sets the maximum number of players that can be in a single group - Default is 8


UpdateGroupMemberProps

protected boolean UpdateGroupMemberProps(PropertyMessage propMsg)
Sends update to group members about the group and its members


SendGroupPropertyUpdate

protected void SendGroupPropertyUpdate(java.lang.Long subjectOid,
                                       MarsGroup group,
                                       java.util.Map<java.lang.String,java.io.Serializable> statsToUpdate)
SendGroupPropertyUpdate - Sends a mv.GROUP_PROPERTY_UPDATE message to each client in the group client

Parameters:
subjectOid - - Player whos property changed
group - - Group in which the subject belongs to
statsToUpdate - - Map of properties that were updated

HandleInviteResponse

protected boolean HandleInviteResponse(WorldManagerClient.ExtensionMessage inviteMsg)
Handles logic for an invite request response - either accepted or declined Creates a new group if the inviter is not currently grouped


HandleGroupChat

protected void HandleGroupChat(WorldManagerClient.ExtensionMessage groupChatMsg)
Logic to handle group specific chat


HandleGroupInvite

protected boolean HandleGroupInvite(WorldManagerClient.ExtensionMessage inviteMsg)
Handles invite request by sending invite request message to the invitee


HandleGroupInfoRequest

protected java.util.HashSet<java.lang.Long> HandleGroupInfoRequest(CombatInfo subject)
HandleGroupInfoRequest handles a request for information about a group. Returns the groupOid, groupleaderOid and each member's Oid in a response message.


SendTargetedGroupMessage

protected void SendTargetedGroupMessage(long target,
                                        java.lang.String message)
SendTargetedGroupMessage - Handles sending messages to the group com channel


GetGroupMember

protected static MarsGroupMember GetGroupMember(java.lang.Long subjectOid)

HandleSetAllowedSpeaker

protected boolean HandleSetAllowedSpeaker(long targetOid,
                                          long setterOid,
                                          long groupOid)
HandleSetAllowedSpeaker - Used to mark the target as an allowed speaker or not of the group's voice chat. If the target is currently an allowed speaker they will in effect become muted

Parameters:
targetOid - - Player to mute or un-mute
setterOid - - Requesting Player
groupOid - - Identifier for the group the target and setter belong to

HandleMuteGroup

protected boolean HandleMuteGroup(java.lang.Long setterOid,
                                  java.lang.Long groupOid)
HandleMuteGroup - Allows group leader to mute or un-mute the group's voice chat

Parameters:
setterOid -
groupOid -

HandledVoiceStatus

protected boolean HandledVoiceStatus(java.lang.Long playerOid,
                                     java.lang.Long groupOid,
                                     java.lang.Boolean voiceEnabled)
HandledVoiceStatus - Logic to handle mv.VOICE_CHAT_STATUS message. Updates group member's voiceEnabled property and broadcasts update to the other group members

Parameters:
playerOid - - Player being updated
groupOid - - Group being referenced
voiceEnabled - - Value to determine if the player's voice is enabled on their client (Voice enabled and join Party enabled)

HandleVoiceMemberAdded

protected boolean HandleVoiceMemberAdded(java.lang.Long memberOid,
                                         java.lang.Long groupOid)
HandleVoiceMemberAdded - Handles logic for processing the VoiceClient.MSG_TYPE_VOICE_MEMBER_ADDED message type. Update any group or group member information related to a player joining the voice group that is associated with a corresponding MarsGroup object.

Parameters:
memberOid -
groupOid -


Copyright © 2008 The Multiverse Network, Inc.