Example #1
0
        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.
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
                }
            }
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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");
                }
            }
        }
Example #6
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);
                }
            }
        }
Example #7
0
        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;
                }
            }
        }
Example #8
0
        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);
            }
        }