private void Update() { if (ManNetwork.inst.MyPlayer != null) { foreach (NetPlayer obj in playersToSubscribe) { PlayerAdded(obj); OnPlayerJoined?.Invoke(obj); } gameObject.SetActive(false); playersToSubscribe.Clear(); } }
private void Client_OnEventAction(EventData photonEvent) { int actorNr = 0; if (photonEvent.Parameters.ContainsKey(ParameterCode.ActorNr)) { actorNr = (int)photonEvent[ParameterCode.ActorNr]; } Player player = null; if (actorNr > 0) { client.CurrentRoom.Players.TryGetValue(actorNr, out player); } switch (photonEvent.Code) { case EventCode.Join: OnPlayerJoined?.Invoke(player.ID); break; case EventCode.Leave: OnPlayerLeft?.Invoke(actorNr); break; } if (photonEvent.Parameters.ContainsKey(ParameterCode.CustomEventContent)) { object data = photonEvent[ParameterCode.CustomEventContent]; if (data is byte[] dataBuffer) { LastReceivedMessageSize = dataBuffer.Length; } OnEventData?.Invoke(photonEvent.Code, player.ID, data); HandleDataEvents(photonEvent.Code, player, data); } }
private void JoinPlayer(InputAction.CallbackContext context) { if (!CanPlayerJoin) { return; } InputDevice device = context.control.device; if (IsDeviceUsable(device, this.playerControls)) { players.Add((currentPlayerIndex), SpawnPlayer(currentPlayerIndex, device)); OnPlayerJoined?.Invoke(currentPlayerIndex); //InputUser newUser = new InputUser(); //newUser = InputUser.PerformPairingWithDevice(device, newUser); //currentPlayerIndex++; //Debug.Log(InputUser.GetUnpairedInputDevices()); } else { Debug.Log($"{device} is not a usable device."); } }
private void InvokeOnPlayerJoined(Player player) { OnPlayerJoined?.Invoke(player); }
private static void OnUiManagerInit() { var field0 = NetworkManager.field_Internal_Static_NetworkManager_0.field_Internal_VRCEventDelegate_1_Player_0; var field1 = NetworkManager.field_Internal_Static_NetworkManager_0.field_Internal_VRCEventDelegate_1_Player_1; field0.field_Private_HashSet_1_UnityAction_1_T_0.Add(new Action <Player>((player) => { if (player != null) { OnPlayerJoined?.DelegateSafeInvoke(player); } })); field1.field_Private_HashSet_1_UnityAction_1_T_0.Add(new Action <Player>((player) => { if (player != null) { OnPlayerLeft?.DelegateSafeInvoke(player); } })); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(APIUser).GetMethod("LocalAddFriend"), null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnFriend), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(APIUser).GetMethod("UnfriendUser"), null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnUnfriend), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(RoomManager).GetMethod("Method_Public_Static_Boolean_ApiWorld_ApiWorldInstance_String_Int32_0"), null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnInstanceChange), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(NetworkManager).GetMethod("OnMasterClientSwitched"), new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnMasterChange), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(NetworkManager).GetMethod("OnLeftRoom"), new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnRoomLeave), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(NetworkManager).GetMethod("OnJoinedRoom"), new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnRoomJoin), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(VRCAvatarManager).GetMethods().First(mb => mb.Name.StartsWith("Method_Private_Boolean_GameObject_String_Single_String_")), null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnAvatarChange), BindingFlags.NonPublic | BindingFlags.Static))); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(VRCPlayer).GetMethods().First(mb => mb.Name.StartsWith("Awake")), null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnPlayerAwake), BindingFlags.NonPublic | BindingFlags.Static))); foreach (MethodInfo method in typeof(ModerationManager).GetMethods().Where(mb => mb.Name.StartsWith("Method_Private_ApiPlayerModeration_String_String_ModerationType_"))) { VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(method, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnPlayerModerationSend1), BindingFlags.NonPublic | BindingFlags.Static))); } foreach (MethodInfo method in typeof(ModerationManager).GetMethods().Where(mb => mb.Name.StartsWith("Method_Private_Void_String_ModerationType_Action_1_ApiPlayerModeration_Action_1_String_"))) { VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(method, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnPlayerModerationSend2), BindingFlags.NonPublic | BindingFlags.Static))); } VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(ModerationManager).GetMethod("Method_Private_Void_String_ModerationType_0"), new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnPlayerModerationRemove), BindingFlags.NonPublic | BindingFlags.Static))); foreach (MethodInfo method in typeof(AvatarLoadingBar).GetMethods().Where(mb => mb.Name.Contains("Method_Public_Void_Single_Int64_"))) { VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(method, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnAvatarDownloadProgress), BindingFlags.NonPublic | BindingFlags.Static))); } VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(typeof(FriendsListManager).GetMethod("Method_Private_Void_String_0"), new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnUnfriend), BindingFlags.NonPublic | BindingFlags.Static))); MethodInfo onSetupFlagsReceivedMethod = typeof(VRCPlayer).GetMethods().First(mi => mi.ReturnType.IsEnum && mi.GetParameters().Length == 1 && mi.GetParameters()[0].ParameterType == typeof(Il2CppSystem.Collections.Hashtable) && XrefUtils.CheckStrings(mi, "Failed to read showSocialRank for {0}")); VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(onSetupFlagsReceivedMethod, null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnSetupFlagsReceive), BindingFlags.NonPublic | BindingFlags.Static))); foreach (MethodInfo socialRankChangeMethod in typeof(ProfileWingMenu).GetMethods().Where(method => method.Name.StartsWith("Method_Private_Void_Boolean_"))) { VRChatUtilityKitMod.Instance.HarmonyInstance.Patch(socialRankChangeMethod, null, new HarmonyMethod(typeof(NetworkEvents).GetMethod(nameof(OnShowSocialRankChange), BindingFlags.NonPublic | BindingFlags.Static))); } }
public void Bind(Host host) { _host = host; _host.AddHandler((short)LobbyMessages.RoomCreated, (m, c) => { if (RoomCreated != null) { var ds = DataStorage.CreateForRead(m.Body); var roomToken = new Token(); roomToken.ReadFromDs(ds); RoomCreated.Invoke(roomToken); } }); _host.AddHandler((short)LobbyMessages.PlayerLeaved, (m, c) => { if (OnPlayerLeaved != null) { var ds = DataStorage.CreateForRead(m.Body); var playerToken = new Token(); playerToken.ReadFromDs(ds); OnPlayerLeaved.Invoke(playerToken); } }); _host.AddHandler((short)LobbyMessages.SuccesfullyLeaved, (m, c) => { if (OnLeave != null) { OnLeave.Invoke(); } }); _host.AddHandler((short)LobbyMessages.PlayerJoined, (m, c) => { if (OnPlayerJoined != null) { var ds = DataStorage.CreateForRead(m.Body); var playerToken = new Token(); playerToken.ReadFromDs(ds); OnPlayerJoined.Invoke(playerToken); } }); _host.AddHandler((short)LobbyMessages.SuccesfullyJoined, (m, c) => { if (OnJoin != null) { OnJoin.Invoke(); } }); _host.AddHandler((short)LobbyMessages.GameStarted, (m, c) => { if (OnGameStarted != null) { var ds = DataStorage.CreateForRead(m.Body); _roomToken = new Token(); _roomToken.ReadFromDs(ds); OnGameStarted.Invoke(); } }); _host.AddHandler((short)LobbyMessages.GetRoomsResponse, (m, c) => { if (OnRoomInfoRecieved != null) { var roomTokens = new List <Token>(); roomTokens.FillDeserialize(m.Body); OnRoomInfoRecieved.Invoke(roomTokens); } }); }
internal void PlayerJoined(PlayerJoined packet, NetPeer peer) { OnPlayerJoined?.Invoke(peer, packet); }
public void RegisterPlayer(PlayerInfo playerInfo) { OnPlayerJoined?.Invoke(playerInfo); }