public void LobbyChatUpdated(LobbyChatUpdate_t update) { try { EChatMemberStateChange change = (EChatMemberStateChange)update.m_rgfChatMemberStateChange; if (change == EChatMemberStateChange.k_EChatMemberStateChangeEntered) { MultiplayerChat.AddChat(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); if (!connectedPlayers.Contains(update.m_ulSteamIDUserChanged)) { PlayerJoinedManagers(update.m_ulSteamIDUserChanged); connectedPlayers.Add(update.m_ulSteamIDUserChanged); } if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID) { otherPlayers.Add(update.m_ulSteamIDUserChanged); } } else if (change == EChatMemberStateChange.k_EChatMemberStateChangeLeft || change == EChatMemberStateChange.k_EChatMemberStateChangeKicked || change == EChatMemberStateChange.k_EChatMemberStateChangeDisconnected) { MultiplayerChat.AddChat(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); PlayerLeftManagers(update.m_ulSteamIDUserChanged); connectedPlayers.Remove(update.m_ulSteamIDUserChanged); MultiplayerPlayerList.RemovePlayerLabel(update.m_ulSteamIDUserChanged); if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID) { otherPlayers.Remove(update.m_ulSteamIDUserChanged); } } } catch (System.Exception e) { Debug.LogError(e); } }
public void LobbyChatUpdated(LobbyChatUpdate_t update) { try { EChatMemberStateChange change = (EChatMemberStateChange)update.m_rgfChatMemberStateChange; if (change == EChatMemberStateChange.k_EChatMemberStateChangeEntered) { MultiplayerChat.AddChat(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); Log(string.Format("User {0} joined the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); if (!connectedPlayers.Contains(update.m_ulSteamIDUserChanged)) { PlayerJoinedManagers(update.m_ulSteamIDUserChanged); connectedPlayers.Add(update.m_ulSteamIDUserChanged); } if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID) { otherPlayers.Add(update.m_ulSteamIDUserChanged); } } else if (change == EChatMemberStateChange.k_EChatMemberStateChangeLeft || change == EChatMemberStateChange.k_EChatMemberStateChangeKicked || change == EChatMemberStateChange.k_EChatMemberStateChangeDisconnected) { MultiplayerChat.AddChat(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); Log(string.Format("User {0} left the game!", SteamFriends.GetFriendPersonaName(new CSteamID(update.m_ulSteamIDUserChanged)))); PlayerLeftManagers(update.m_ulSteamIDUserChanged); connectedPlayers.Remove(update.m_ulSteamIDUserChanged); MultiplayerPlayerList.RemovePlayerLabel(update.m_ulSteamIDUserChanged); if (update.m_ulSteamIDUserChanged != SteamUser.GetSteamID().m_SteamID) { otherPlayers.Remove(update.m_ulSteamIDUserChanged); } if (update.m_ulSteamIDUserChanged == NetworkGameManager.managerID) { patch_ProcessManager patchPM = ((patch_ProcessManager)Patches.patch_Rainworld.mainRW.processManager); //if ((patchPM.currentMainLoop is MultiplayerSleepAndDeathScreen) || (patchPM.currentMainLoop is SteamMultiplayerMenu) if (patchPM.musicPlayer != null) { patchPM.musicPlayer.FadeOutAllSongs(5f); patchPM.musicPlayer.MenuRequestsSong("RW_8 - Sundown", 1.4f, 2f); } if (patchPM.currentMainLoop is RainWorldGame) { (patchPM.currentMainLoop as RainWorldGame).ExitToMenu(); } else { patchPM.RequestMainProcessSwitch(ProcessManager.ProcessID.MainMenu); } if (monklandUI != null) { monklandUI.ClearSprites(); monklandUI = null; } this.OnGameExit(); } } } catch (System.Exception e) { Debug.LogError(e); } }
private void ChatResult(ChatMemberStateChange_t entry) { EChatMemberStateChange ch = entry.m_rgfChatMemberStateChange; if (ch == EChatMemberStateChange.k_EChatMemberStateChangeEntered) { IClient cl = GetSteamClient(entry.m_ulSteamIDUserChanged); if (cl == null) { if (clientList.Clients.ContainsKey(entry.m_ulSteamIDUserChanged)) { cl = clientList.Clients[entry.m_ulSteamIDUserChanged]; } else { cl = new SteamClient(entry.m_ulSteamIDUserChanged); } EPersonaState st = clientFriends.GetFriendPersonaState(entry.m_ulSteamIDUserChanged); cl.AwayMsg = (st == EPersonaState.k_EPersonaStateOnline ? "" : st.ToString().Remove(0, 15)); clients.Add(cl); } cl.AddMessage(IRCMessage.GetStatic().CreateMessage(cl, cl.UserString, "JOIN", new string[] { "&" + GetSteamChannel(entry.m_ulSteamIDChat).ChannelName })); /*Channel c = GetChannel(Server.StripString(clientFriends.GetChatRoomName(entry.m_ulSteamIDChat))); * c.AddClient(cl);*/ } else if (ch == EChatMemberStateChange.k_EChatMemberStateChangeLeft || ch == EChatMemberStateChange.k_EChatMemberStateChangeKicked || ch == EChatMemberStateChange.k_EChatMemberStateChangeDisconnected || ch == EChatMemberStateChange.k_EChatMemberStateChangeBanned) { IChannel c = GetSteamChannel(entry.m_ulSteamIDChat); IClient cl = GetSteamClient(entry.m_ulSteamIDUserChanged); if (cl == null || c == null) { return; } string leaveMsg = entry.m_rgfChatMemberStateChange.ToString(); if (leaveMsg.Length > 24) { leaveMsg = leaveMsg.Remove(0, 24); } c.RemoveClient(cl, leaveMsg); } }
void UpdateUserStatus(LobbyChatUpdate_t cb) { string name = SteamFriends.GetFriendPersonaName((CSteamID)cb.m_ulSteamIDUserChanged); EChatMemberStateChange chatType = (EChatMemberStateChange)cb.m_rgfChatMemberStateChange; switch (chatType) { case EChatMemberStateChange.k_EChatMemberStateChangeEntered: Text.text += "\n" + name + " joined the lobby"; break; case EChatMemberStateChange.k_EChatMemberStateChangeLeft: Text.text += Text.text += "\n" + name + " left the lobby"; break; case EChatMemberStateChange.k_EChatMemberStateChangeDisconnected: Text.text += Text.text += "\n" + name + " left the lobby"; break; } }