Class PartyController
Controller for managing party membership, invites, and rank for a character. Handles network broadcasts and event invocation.
public class PartyController : CharacterBehaviour, IPartyController, ICharacterBehaviour
- Inheritance
-
ObjectComponentBehaviourMonoBehaviourNetworkBehaviourPartyController
- Implements
- Inherited Members
-
NetworkBehaviour.IsSpawnedNetworkBehaviour.ComponentIndexNetworkBehaviour.NetworkObjectNetworkBehaviour.MAXIMUM_NETWORKBEHAVIOURSNetworkBehaviour.UNSET_NETWORKBEHAVIOUR_IDNetworkBehaviour.ToString()NetworkBehaviour.Reset()NetworkBehaviour.OnValidate()NetworkBehaviour.IsBehaviourReconcilingNetworkBehaviour.ClearReplicateCache()NetworkBehaviour.CreateReconcile()NetworkBehaviour.Reconcile_Reader<T>(PooledReader, ref T)NetworkBehaviour.OnStartServerCalledNetworkBehaviour.OnStartClientCalledNetworkBehaviour.WritePayload(NetworkConnection, Writer)NetworkBehaviour.ReadPayload(NetworkConnection, Reader)NetworkBehaviour.OnStartNetwork()NetworkBehaviour.OnStopNetwork()NetworkBehaviour.OnStartServer()NetworkBehaviour.OnStopServer()NetworkBehaviour.OnOwnershipServer(NetworkConnection)NetworkBehaviour.OnSpawnServer(NetworkConnection)NetworkBehaviour.OnDespawnServer(NetworkConnection)NetworkBehaviour.OnStartClient()NetworkBehaviour.OnStopClient()NetworkBehaviour.OnOwnershipClient(NetworkConnection)NetworkBehaviour.ClearBuffedRpcs()NetworkBehaviour.ExcludeOwnerFromUnbufferedObserversRpcsNetworkBehaviour.IsClientOnlyNetworkBehaviour.IsServerOnlyNetworkBehaviour.IsHostNetworkBehaviour.IsClientNetworkBehaviour.IsServerNetworkBehaviour.IsDeinitializingNetworkBehaviour.NetworkManagerNetworkBehaviour.ServerManagerNetworkBehaviour.ClientManagerNetworkBehaviour.ObserverManagerNetworkBehaviour.TransportManagerNetworkBehaviour.TimeManagerNetworkBehaviour.SceneManagerNetworkBehaviour.PredictionManagerNetworkBehaviour.RollbackManagerNetworkBehaviour.NetworkObserverNetworkBehaviour.IsClientInitializedNetworkBehaviour.IsClientStartedNetworkBehaviour.IsClientOnlyInitializedNetworkBehaviour.IsClientOnlyStartedNetworkBehaviour.IsServerInitializedNetworkBehaviour.IsServerStartedNetworkBehaviour.IsServerOnlyInitializedNetworkBehaviour.IsServerOnlyStartedNetworkBehaviour.IsHostInitializedNetworkBehaviour.IsHostStartedNetworkBehaviour.IsOfflineNetworkBehaviour.IsNetworkedNetworkBehaviour.GetIsNetworked()NetworkBehaviour.IsManagerReconcilingNetworkBehaviour.ObserversNetworkBehaviour.IsOwnerNetworkBehaviour.IsControllerNetworkBehaviour.HasAuthorityNetworkBehaviour.OwnerNetworkBehaviour.OwnerIdNetworkBehaviour.ObjectIdNetworkBehaviour.LocalConnectionNetworkBehaviour.OwnerMatches(NetworkConnection)NetworkBehaviour.Despawn(GameObject, DespawnType?)NetworkBehaviour.Despawn(NetworkObject, DespawnType?)NetworkBehaviour.Despawn(DespawnType?)NetworkBehaviour.Spawn(GameObject, NetworkConnection, Scene)NetworkBehaviour.Spawn(NetworkObject, NetworkConnection, Scene)NetworkBehaviour.RemoveOwnership()NetworkBehaviour.GiveOwnership(NetworkConnection)NetworkBehaviour.GetInstance<T>()NetworkBehaviour.TryRegisterInstance<T>(T)NetworkBehaviour.UnregisterInstance<T>()NetworkBehaviour.CanLog(LoggingType)MonoBehaviour.IsInvoking()MonoBehaviour.CancelInvoke()MonoBehaviour.StopCoroutine(Coroutine)MonoBehaviour.StopAllCoroutines()MonoBehaviour.destroyCancellationTokenMonoBehaviour.useGUILayoutMonoBehaviour.didStartMonoBehaviour.didAwakeMonoBehaviour.runInEditModeBehaviour.enabledBehaviour.isActiveAndEnabledComponent.GetComponent<T>()Component.TryGetComponent<T>(out T)Component.GetComponentInChildren<T>()Component.GetComponentsInChildren<T>()Component.GetComponentInParent<T>()Component.GetComponentsInParent<T>()Component.GetComponents<T>()Component.GetComponentIndex()Component.CompareTag(TagHandle)Component.transformComponent.transformHandleComponent.gameObjectComponent.tagObject.GetEntityId()Object.GetInstanceID()Object.GetHashCode()Object.InstantiateAsync<T>(T)Object.InstantiateAsync<T>(T, Transform)Object.InstantiateAsync<T>(T, Vector3, Quaternion)Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion)Object.Instantiate(Object, Vector3, Quaternion, Transform)Object.Instantiate(Object)Object.Instantiate(Object, Scene)Object.Instantiate<T>(T, InstantiateParameters)Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)Object.Instantiate(Object, Transform)Object.Instantiate<T>(T)Object.Instantiate<T>(T, Vector3, Quaternion)Object.Instantiate<T>(T, Vector3, Quaternion, Transform)Object.Instantiate<T>(T, Transform)Object.Destroy(Object)Object.DestroyImmediate(Object)Object.DontDestroyOnLoad(Object)Object.DestroyObject(Object)Object.FindObjectsOfType<T>()Object.FindObjectsByType<T>(FindObjectsSortMode)Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)Object.FindObjectOfType<T>()Object.FindFirstObjectByType<T>()Object.FindAnyObjectByType<T>()Object.FindFirstObjectByType<T>(FindObjectsInactive)Object.FindAnyObjectByType<T>(FindObjectsInactive)Object.FindObjectsByType<T>()Object.FindObjectsByType<T>(FindObjectsInactive)Object.nameObject.hideFlags
Properties
ID
The unique ID of the party or party member.
public long ID { get; set; }
Property Value
OnPartyJoinTriggers
Triggers invoked when the character joins or creates a party.
public List<Trigger> OnPartyJoinTriggers { get; }
Property Value
OnPartyLeaveTriggers
Triggers invoked when the character leaves a party.
public List<Trigger> OnPartyLeaveTriggers { get; }
Property Value
Rank
The rank of the character within the party (e.g., leader, member).
public PartyRank Rank { get; set; }
Property Value
Methods
OnClientPartyAddBroadcastReceived(PartyAddBroadcast, Channel)
Handles broadcast when a new party member is added. Updates local party ID and rank if the member is the local character.
public void OnClientPartyAddBroadcastReceived(PartyAddBroadcast msg, Channel channel)
Parameters
msgPartyAddBroadcastThe broadcast message containing member info.
channelChannelThe network channel.
OnClientPartyAddMultipleBroadcastReceived(PartyAddMultipleBroadcast, Channel)
Handles broadcast when multiple party members are added. Validates the new set of party members and invokes add for each.
public void OnClientPartyAddMultipleBroadcastReceived(PartyAddMultipleBroadcast msg, Channel channel)
Parameters
msgPartyAddMultipleBroadcastThe broadcast message containing multiple members.
channelChannelThe network channel.
OnClientPartyCreateBroadcastReceived(PartyCreateBroadcast, Channel)
Handles broadcast when the server successfully creates the character's party. Sets party ID and rank, then invokes OnPartyCreated.
public void OnClientPartyCreateBroadcastReceived(PartyCreateBroadcast msg, Channel channel)
Parameters
msgPartyCreateBroadcastThe broadcast message containing party info.
channelChannelThe network channel.
OnClientPartyInviteBroadcastReceived(PartyInviteBroadcast, Channel)
Handles broadcast when the character receives an invitation to join a party.
public void OnClientPartyInviteBroadcastReceived(PartyInviteBroadcast msg, Channel channel)
Parameters
msgPartyInviteBroadcastThe broadcast message containing inviter info.
channelChannelThe network channel.
OnClientPartyLeaveBroadcastReceived(PartyLeaveBroadcast, Channel)
Handles broadcast when the local client leaves the party. Resets party ID and rank, then invokes OnLeaveParty.
public void OnClientPartyLeaveBroadcastReceived(PartyLeaveBroadcast msg, Channel channel)
Parameters
msgPartyLeaveBroadcastThe broadcast message for leaving party.
channelChannelThe network channel.
OnClientPartyMemberVitalsUpdateBroadcastReceived(PartyMemberVitalsUpdateBroadcast, Channel)
Handles the live party vitals payload, raising it as a single event.
public void OnClientPartyMemberVitalsUpdateBroadcastReceived(PartyMemberVitalsUpdateBroadcast msg, Channel channel)
Parameters
msgPartyMemberVitalsUpdateBroadcastThe broadcast message carrying member state.
channelChannelThe network channel.
Remarks
Raised whole rather than split per member. The payload is complete for the recipient's
scene, so a roster member missing from it is a member in another zone — a fact that
only exists in the payload as a set and would be destroyed by iterating it away here.
A null Members is normalised to an empty array so a subscriber can treat every
delivery as an authoritative set without a null check of its own; it means "nobody
here", which is a real answer and not a missing one.
OnClientPartyRemoveBroadcastReceived(PartyRemoveBroadcast, Channel)
Handles broadcast when a party member is removed. Invokes OnRemovePartyMember event.
public void OnClientPartyRemoveBroadcastReceived(PartyRemoveBroadcast msg, Channel channel)
Parameters
msgPartyRemoveBroadcastThe broadcast message for removing member.
channelChannelThe network channel.
OnStartCharacter()
Called when the character starts. Registers broadcast listeners for party events if owner.
public override void OnStartCharacter()
OnStopCharacter()
Called when the character stops. Unregisters broadcast listeners for party events if owner.
public override void OnStopCharacter()
Events
OnAddPartyMember
Event triggered when a party member is added. Provides member ID, rank, and health percent.
public event Action<long, PartyRank, float> OnAddPartyMember
Event Type
OnLeaveParty
Event triggered when the character leaves the party.
public event Action OnLeaveParty
Event Type
OnPartyCreated
Event triggered when a party is created. Provides the party name/location.
public event Action<string> OnPartyCreated
Event Type
OnReceivePartyInvite
Event triggered when a party invite is received. Provides the inviter's ID.
public event Action<long> OnReceivePartyInvite
Event Type
OnRemovePartyMember
Event triggered when a party member is removed. Provides member ID.
public event Action<long> OnRemovePartyMember
Event Type
OnUpdatePartyVitals
Event triggered when the scene server pushes live state for the party members sharing the local character's scene. See OnUpdatePartyVitals.
public event Action<PartyMemberVitalsEntry[]> OnUpdatePartyVitals
Event Type
OnValidatePartyMembers
Event triggered to validate the current set of party members.
public event Action<HashSet<long>> OnValidatePartyMembers