Table of Contents

Class PartyController

Namespace
FishMMO.Shared
Assembly
FishMMO.Shared.dll

Controller for managing party membership, invites, and rank for a character. Handles network broadcasts and event invocation.

public class PartyController : CharacterBehaviour, IPartyController, ICharacterBehaviour
Inheritance
Object
Component
Behaviour
MonoBehaviour
NetworkBehaviour
PartyController
Implements
Inherited Members
NetworkBehaviour.IsSpawned
NetworkBehaviour.ComponentIndex
NetworkBehaviour.NetworkObject
NetworkBehaviour.MAXIMUM_NETWORKBEHAVIOURS
NetworkBehaviour.UNSET_NETWORKBEHAVIOUR_ID
NetworkBehaviour.ToString()
NetworkBehaviour.Reset()
NetworkBehaviour.OnValidate()
NetworkBehaviour.IsBehaviourReconciling
NetworkBehaviour.ClearReplicateCache()
NetworkBehaviour.CreateReconcile()
NetworkBehaviour.Reconcile_Reader<T>(PooledReader, ref T)
NetworkBehaviour.OnStartServerCalled
NetworkBehaviour.OnStartClientCalled
NetworkBehaviour.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.ExcludeOwnerFromUnbufferedObserversRpcs
NetworkBehaviour.IsClientOnly
NetworkBehaviour.IsServerOnly
NetworkBehaviour.IsHost
NetworkBehaviour.IsClient
NetworkBehaviour.IsServer
NetworkBehaviour.IsDeinitializing
NetworkBehaviour.NetworkManager
NetworkBehaviour.ServerManager
NetworkBehaviour.ClientManager
NetworkBehaviour.ObserverManager
NetworkBehaviour.TransportManager
NetworkBehaviour.TimeManager
NetworkBehaviour.SceneManager
NetworkBehaviour.PredictionManager
NetworkBehaviour.RollbackManager
NetworkBehaviour.NetworkObserver
NetworkBehaviour.IsClientInitialized
NetworkBehaviour.IsClientStarted
NetworkBehaviour.IsClientOnlyInitialized
NetworkBehaviour.IsClientOnlyStarted
NetworkBehaviour.IsServerInitialized
NetworkBehaviour.IsServerStarted
NetworkBehaviour.IsServerOnlyInitialized
NetworkBehaviour.IsServerOnlyStarted
NetworkBehaviour.IsHostInitialized
NetworkBehaviour.IsHostStarted
NetworkBehaviour.IsOffline
NetworkBehaviour.IsNetworked
NetworkBehaviour.GetIsNetworked()
NetworkBehaviour.IsManagerReconciling
NetworkBehaviour.Observers
NetworkBehaviour.IsOwner
NetworkBehaviour.IsController
NetworkBehaviour.HasAuthority
NetworkBehaviour.Owner
NetworkBehaviour.OwnerId
NetworkBehaviour.ObjectId
NetworkBehaviour.LocalConnection
NetworkBehaviour.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.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.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.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.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.name
Object.hideFlags

Properties

ID

The unique ID of the party or party member.

public long ID { get; set; }

Property Value

long

OnPartyJoinTriggers

Triggers invoked when the character joins or creates a party.

public List<Trigger> OnPartyJoinTriggers { get; }

Property Value

List<Trigger>

OnPartyLeaveTriggers

Triggers invoked when the character leaves a party.

public List<Trigger> OnPartyLeaveTriggers { get; }

Property Value

List<Trigger>

Rank

The rank of the character within the party (e.g., leader, member).

public PartyRank Rank { get; set; }

Property Value

PartyRank

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

msg PartyAddBroadcast

The broadcast message containing member info.

channel Channel

The 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

msg PartyAddMultipleBroadcast

The broadcast message containing multiple members.

channel Channel

The 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

msg PartyCreateBroadcast

The broadcast message containing party info.

channel Channel

The 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

msg PartyInviteBroadcast

The broadcast message containing inviter info.

channel Channel

The 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

msg PartyLeaveBroadcast

The broadcast message for leaving party.

channel Channel

The 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

msg PartyMemberVitalsUpdateBroadcast

The broadcast message carrying member state.

channel Channel

The 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

msg PartyRemoveBroadcast

The broadcast message for removing member.

channel Channel

The 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

Action<long, PartyRank, float>

OnLeaveParty

Event triggered when the character leaves the party.

public event Action OnLeaveParty

Event Type

Action

OnPartyCreated

Event triggered when a party is created. Provides the party name/location.

public event Action<string> OnPartyCreated

Event Type

Action<string>

OnReceivePartyInvite

Event triggered when a party invite is received. Provides the inviter's ID.

public event Action<long> OnReceivePartyInvite

Event Type

Action<long>

OnRemovePartyMember

Event triggered when a party member is removed. Provides member ID.

public event Action<long> OnRemovePartyMember

Event Type

Action<long>

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

Action<PartyMemberVitalsEntry[]>

OnValidatePartyMembers

Event triggered to validate the current set of party members.

public event Action<HashSet<long>> OnValidatePartyMembers

Event Type

Action<HashSet<long>>