public void Kick(ChatUser user, ChatUser moderator, bool wasBanned) { if (!ValidateModerator(moderator) || !ValidateAccess(moderator, user)) { return; } if (Contains(user)) { if (moderator != null) { if (wasBanned) { user.SendMessage(63, moderator.Username); // %1, a conference moderator, has banned you from the conference. } else { user.SendMessage(45, moderator.Username); // %1, a conference moderator, has kicked you out of the conference. } } RemoveUser(user); ChatSystem.SendCommandTo(user.Mobile, ChatCommand.AddUserToChannel, user.GetColorCharacter() + user.Username); SendMessage(44, user.Username); // %1 has been kicked out of the conference. } if (wasBanned && moderator != null) { moderator.SendMessage(62, user.Username); // You are banning %1 from this conference. } }
public static void RemoveChatUser(ChatUser user) { if (user == null) { return; } for (int i = 0; i < user.m_Ignoring.Count; ++i) { user.m_Ignoring[i].RemoveIgnored(user); } if (m_Users.Contains(user)) { ChatSystem.SendCommandTo(user.Mobile, ChatCommand.CloseChatWindow); if (user.m_Channel != null) { user.m_Channel.RemoveUser(user); } m_Users.Remove(user); m_Table.Remove(user.m_Mobile); } }
public void RemoveUser(ChatUser user) { if (Contains(user)) { m_Users.Remove(user); user.CurrentChannel = null; if (m_Moderators.Contains(user)) { m_Moderators.Remove(user); } if (m_Voices.Contains(user)) { m_Voices.Remove(user); } SendCommand(ChatCommand.RemoveUserFromChannel, user, user.Username); ChatSystem.SendCommandTo(user.Mobile, ChatCommand.LeaveChannel); if (m_Users.Count == 0 && !m_AlwaysAvailable) { RemoveChannel(this); } } }
public void SendUsersTo(ChatUser to) { for (int i = 0; i < m_Users.Count; ++i) { ChatUser user = m_Users[i]; ChatSystem.SendCommandTo(to.Mobile, ChatCommand.AddUserToChannel, user.GetColorCharacter() + user.Username); } }
public static void SendChannelsTo(ChatUser user) { for (int i = 0; i < m_Channels.Count; ++i) { Channel channel = m_Channels[i]; if (!channel.IsBanned(user)) { ChatSystem.SendCommandTo(user.Mobile, ChatCommand.AddChannel, channel.Name, "0"); } } }
public static void GlobalSendCommand(ChatCommand command, ChatUser initiator, string param1, string param2) { for (int i = 0; i < m_Users.Count; ++i) { ChatUser user = m_Users[i]; if (user == initiator) { continue; } if (user.CheckOnline()) { ChatSystem.SendCommandTo(user.m_Mobile, command, param1, param2); } } }
public void SendCommand(ChatCommand command, ChatUser initiator, string param1, string param2) { for (int i = 0; i < m_Users.Count; ++i) { ChatUser user = m_Users[i]; if (user == initiator) { continue; } if (user.CheckOnline()) { ChatSystem.SendCommandTo(user.Mobile, command, param1, param2); } else if (!Contains(user)) { --i; } } }
public bool AddUser(ChatUser user, string password) { if (Contains(user)) { user.SendMessage(46, m_Name); // You are already in the conference '%1'. return(true); } else if (IsBanned(user)) { user.SendMessage(64); // You have been banned from this conference. return(false); } else if (!ValidatePassword(password)) { user.SendMessage(34); // That is not the correct password. return(false); } else { if (user.CurrentChannel != null) { user.CurrentChannel.RemoveUser(user); // Remove them from their current channel first } ChatSystem.SendCommandTo(user.Mobile, ChatCommand.JoinedChannel, m_Name); SendCommand(ChatCommand.AddUserToChannel, user.GetColorCharacter() + user.Username); m_Users.Add(user); user.CurrentChannel = this; if (user.Mobile.AccessLevel >= AccessLevel.GameMaster || (!m_AlwaysAvailable && m_Users.Count == 1)) { AddModerator(user); } SendUsersTo(user); return(true); } }