Atavism Version 2018.1AGIS API

atavism.agis.plugins
Class GroupPlugin

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

public class GroupPlugin
extends EnginePlugin


Nested Class Summary
 class GroupPlugin.MemberCancelInviteTimer
           
 
Nested classes/interfaces inherited from class atavism.server.engine.EnginePlugin
EnginePlugin.DeleteHook, EnginePlugin.DeleteSubObjHook, EnginePlugin.GenerateSubObjectHook, EnginePlugin.GetPropertyMessage, EnginePlugin.GetPropertyNamesMessage, 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<OID,AgisGroup> _currentGroups
           
protected static Logger _log
           
protected static int _maxGroupSize
           
protected static java.util.List<java.lang.String> _registeredStats
           
static int GROUP_DISCONNECT_TIMEOUT
           
static int GROUP_INVITE_TIMEOUT
           
 
Fields inherited from class atavism.server.engine.EnginePlugin
deleteSubObjectSubscription, dumpAllThreadSubscription, dumpAllThreadSubscriptionLock, loadSubObjectSubscription, lock, MSG_TYPE_DUMP_ALL_THREAD_STACKS, MSG_TYPE_GET_PROPERTY, MSG_TYPE_GET_PROPERTY_NAMES, 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 atavism.msgsys.MessageCallback
NO_FLAGS, RESPONSE_EXPECTED
 
Constructor Summary
GroupPlugin()
           
 
Method Summary
static AgisGroup GetGroup(OID groupOid)
           
protected static AgisGroupMember GetGroupMember(OID subjectOid)
           
 java.lang.String GetName()
           
static java.util.List<java.lang.String> GetRegisteredStats()
           
protected  boolean HandleCreateGroup(GroupClient.createGroupMessage createMsg)
          Creates a new group if the inviter is not currently grouped
protected  boolean HandledVoiceStatus(OID playerOid, OID groupOid, java.lang.Boolean voiceEnabled)
          HandledVoiceStatus - Logic to handle ao.VOICE_CHAT_STATUS message.
protected  void HandleGroupChat(WorldManagerClient.ExtensionMessage groupChatMsg)
          Logic to handle group specific chat
protected  GroupClient.GroupInfo HandleGroupInfoRequest(CombatInfo subject)
          HandleGroupInfoRequest handles a request for information about a group.
protected  boolean HandleGroupInvite(OID inviterOid, OID inviteeOid)
          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(OID setterOid, OID groupOid)
          HandleMuteGroup - Allows group leader to mute or un-mute the group's voice chat
protected  boolean HandleSetAllowedSpeaker(OID targetOid, OID setterOid, OID groupOid)
          HandleSetAllowedSpeaker - Used to mark the target as an allowed speaker or not of the group's voice chat.
protected  boolean HandleVoiceMemberAdded(OID memberOid, OID 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.
protected  void PromoteMemberToLeader(CombatInfo info, OID promoter)
           
 void RegisterHooks()
           
static void RegisterStat(java.lang.String stat)
           
protected  void RemoveGroupMember(CombatInfo info, boolean kicked, OID kicker, boolean removeFromInstance)
           
protected  void removeMemberFromInstance(AgisGroup group, OID memberOid)
           
protected  void removeOfflineMember(OID targetOid, OID kicker, OID groupOid)
           
protected  void SendGroupPropertyUpdate(OID playerOid, AgisGroup group, java.util.Map<java.lang.String,java.io.Serializable> statsToUpdate)
          SendGroupPropertyUpdate - Sends an ao.GROUP_PROPERTY_UPDATE message to each client in the group client
static void SendGroupUpdate(AgisGroup group)
          Gets information about the group and its members and sends it to each group member
protected  void SendTargetedGroupMessage(OID 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  void SetMemberOffline(CombatInfo info)
           
protected  void SetMemberOnline(CombatInfo info)
           
protected  boolean UpdateGroupMemberProps(PropertyMessage propMsg)
          Sends update to group members about the group and its members
 
Methods inherited from class atavism.server.engine.EnginePlugin
activate, createMBeanInstance, createSubscription, getHookManager, getMessageHandler, getName, getObjectLockManager, getObjectProperties, getObjectProperties, getObjectProperty, getObjectPropertyNames, getPercentCPULoad, getPluginAvailable, getPluginInfo, getPluginNamespaces, getPluginState, getPluginStatus, getPluginType, getPropertyImpl, getPropertyNamesImpl, getStatusMap, handleMessage, handleMessageImpl, logDepsOutstanding, processKeysAndValues, registerActivateHook, registerDeleteHook, registerLoadHook, registerPluginNamespace, registerPluginNamespaces, registerPluginNamespaces, registerPluginNamespaces, registerSaveHook, registerTransferHook, registerUnloadHook, sendSubObjectResponse, sendSubObjectResponse, sendSubObjectResponse, setMessageHandler, setName, setObjectProperties, setObjectProperties, setObjectProperties, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectPropertiesNoResponse, setObjectProperty, setObjectPropertyNoResponse, setPercentCPULoad, setPluginAvailable, 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<OID,AgisGroup> _currentGroups

_maxGroupSize

protected static int _maxGroupSize

GROUP_DISCONNECT_TIMEOUT

public static int GROUP_DISCONNECT_TIMEOUT

GROUP_INVITE_TIMEOUT

public static int GROUP_INVITE_TIMEOUT
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

public static AgisGroup GetGroup(OID groupOid)

GetRegisteredStats

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

SendGroupUpdate

public static void SendGroupUpdate(AgisGroup group)
Gets information about the group and its members and sends it to each group member


RemoveGroupMember

protected void RemoveGroupMember(CombatInfo info,
                                 boolean kicked,
                                 OID kicker,
                                 boolean removeFromInstance)

removeMemberFromInstance

protected void removeMemberFromInstance(AgisGroup group,
                                        OID memberOid)

removeOfflineMember

protected void removeOfflineMember(OID targetOid,
                                   OID kicker,
                                   OID groupOid)

PromoteMemberToLeader

protected void PromoteMemberToLeader(CombatInfo info,
                                     OID promoter)

SetMemberOffline

protected void SetMemberOffline(CombatInfo info)

SetMemberOnline

protected void SetMemberOnline(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(OID playerOid,
                                       AgisGroup group,
                                       java.util.Map<java.lang.String,java.io.Serializable> statsToUpdate)
SendGroupPropertyUpdate - Sends an ao.GROUP_PROPERTY_UPDATE message to each client in the group client

Parameters:
playerOid - - 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(OID inviterOid,
                                    OID inviteeOid)
Handles invite request by sending invite request message to the invitee


HandleGroupInfoRequest

protected GroupClient.GroupInfo 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(OID target,
                                        java.lang.String message)
SendTargetedGroupMessage - Handles sending messages to the group com channel


GetGroupMember

protected static AgisGroupMember GetGroupMember(OID subjectOid)

HandleSetAllowedSpeaker

protected boolean HandleSetAllowedSpeaker(OID targetOid,
                                          OID setterOid,
                                          OID 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(OID setterOid,
                                  OID groupOid)
HandleMuteGroup - Allows group leader to mute or un-mute the group's voice chat

Parameters:
setterOid -
groupOid -

HandledVoiceStatus

protected boolean HandledVoiceStatus(OID playerOid,
                                     OID groupOid,
                                     java.lang.Boolean voiceEnabled)
HandledVoiceStatus - Logic to handle ao.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(OID memberOid,
                                         OID 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 AgisGroup object.

Parameters:
memberOid -
groupOid -

HandleCreateGroup

protected boolean HandleCreateGroup(GroupClient.createGroupMessage createMsg)
Creates a new group if the inviter is not currently grouped



Copyright © 2018 Dragonsan Studios Sp. z o.o.