public void CheckAssignmentAvailability() { if (!handlerAssigned && Guardian != null && masterHandler != null && CheckPlayerForHandler(Guardian)) { THH_ChatHandler handler = GetHandler(); Debug.Log($"<color=green>[THH_ChatHandler]</color>: Taking ownership of handler '{handler.name}'..."); Networking.SetOwner(Networking.LocalPlayer, handler.gameObject); } }
public void GWS_OnPlayerLeft(VRCPlayerApi player) { lastLeaver = player; if (Networking.IsMaster && !isMaster) { Debug.Log("<color=green>[THH_GWS]</color>: Last master left, you are now master."); isMaster = true; isHead = true; // NOT GWS: Guardian = null; masterHandler = null; if (assignedHandler == null) { assignedHandler = GetHandler(); masterHandler = assignedHandler; RequestMasterHandler(); } else { masterHandler = assignedHandler; RequestMasterHandler(); } } else if (player == Guardian) { Debug.Log($"<color=green>[THH_GWS]</color>: Your guardian, {player.displayName}({player.playerId}), has left, trying to find a new one..."); Guardian = FindGuardian(); if (Guardian == null) { Debug.LogError("<color=green>[THH_GWS]</color>: Tried to find a guardian, but failed. Something went wrong..."); } else { OnGuardianAssigned(); } } else if (player == Ward) { Debug.Log($"<color=green>[THH_GWS]</color>: Your ward, {player.displayName}({player.playerId}), has left, trying to find a new one..."); Ward = FindWard(); if (Ward == null) { Debug.Log($"<color=green>[THH_GWS]</color>: Could not find a ward."); isTail = true; } else { OnWardAssigned(); } } }
public void ChatRequest(THH_ChatHandler handler) { if (!transferringOwnership) { VRCPlayerApi requester = Networking.GetOwner(handler.gameObject); transferringOwnership = true; Networking.SetOwner(requester, gameObject); Debug.Log($"<color=green>[THH_ChatMessenger]</color>: Ownership request of '{requester.displayName}' has been accepted. Transferring ownership."); } else { handler.SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.Owner, nameof(THH_ChatHandler.RequestDenied)); } }
public void Start() { GWS_Start(); handlers = GetComponentsInChildren <THH_ChatHandler>(); if (Networking.IsMaster) { handlerAssigned = true; assignedHandler = handlers[0]; masterHandler = assignedHandler; } else { SendCustomNetworkEvent(VRC.Udon.Common.Interfaces.NetworkEventTarget.Owner, nameof(RequestMasterHandler)); Debug.Log("<color=green>[THH_ChatManager]</color>: Requesting master handler..."); } }