Esempio n. 1
0
 /// <summary>
 /// Logs a chat message to the chat log file.
 /// </summary>
 /// <param name="chatroom">Chatroom to log for.</param>
 /// <param name="packet">Packet to log.</param>
 private void LogMessage(string chatroom, dAmnServerPacket packet)
 {
     Chat room = Bot.GetChatroom(chatroom);
     if (room != null)
     {
         dAmnPacket subPacket = packet.GetSubPacket();
         string username = subPacket.args["from"];
         room.Log("<" + username + "> " + subPacket.body);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Log a chat action to the chat log file.
 /// </summary>
 /// <param name="chatroom">Chatroom to log for.</param>
 /// <param name="packet">Packet to log.</param>
 public void LogAction(string chatroom, dAmnServerPacket packet)
 {
     Chat room = Bot.GetChatroom(chatroom);
     dAmnPacket subPacket = packet.GetSubPacket();
     string username = subPacket.args["from"];
     room.Log(string.Format("{0} {1} {2}",room[username].Symbol, username, subPacket.body));
 }
Esempio n. 3
0
        /// <summary>
        /// Removes user from chat room.
        /// </summary>
        private void ChatroomPart(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: user part for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string username = subPacket.param;
            string reason = "reason unknown";
            if (subPacket.args.ContainsKey("r"))
                reason = subPacket.args["r"];
            // if more than one user is signed in with same user name, only unregister
            // them if it is the last one
            if (chat[username].Count == 0)
            {
                chat.UnregisterUser(username);
            }
            else
            {
                chat[username].Count--;
            }
            chat.Log(string.Format("** {0} has left. [{1}]", username, reason));
        }
Esempio n. 4
0
        /// <summary>
        /// Changes privilege for a user in the chatroom.
        /// </summary>
        private void ChatroomPrivChange(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv change for a chatroom which doesn't exist.");
                return;
            }

            // get info from packet
            dAmnPacket subPacket = packet.GetSubPacket();
            string username = subPacket.param;
            string privClass = subPacket.args["pc"];
            string by = subPacket.args["by"];

            // update priv class if user is signed on
            if (chat.ContainsUser(username))
            {
                chat[username].PrivClass = privClass;
            }

            chat.Log(string.Format("** {0} has been made a member of {1} by {2} *", username, privClass, by));
        }
Esempio n. 5
0
        /// <summary>
        /// Updates priv class.
        /// </summary>
        private void AdminUpdate(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv add for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string privClass = subPacket.args["name"];
            string by = subPacket.args["by"];
            string privs = subPacket.args["privs"];

            chat.Log(string.Format("** privilege class {0} has been updated  by {1} with {2}", privClass, by, privs));
        }
Esempio n. 6
0
        /// <summary>
        /// Adds a user to the chat room.
        /// </summary>
        private void ChatroomJoin(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: user add for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string username = subPacket.param;
            // user may exist already (bot and user can sign on at same time)
            if (chat[username] == null)
            {
                // get user details from  arg list from the packet
                dAmnPacket.dAmnArgs a = dAmnPacket.dAmnArgs.getArgsNData(subPacket.body);

                // create new user
                User u = new User(Bot)
                {
                    Username = username,
                    PrivClass = a.args["pc"],
                    Symbol = a.args["symbol"],
                    Realname = a.args["realname"],
                    Description = a.args["typename"],
                    ServerPrivClass = a.args["gpc"]
                };
                chat.RegisterUser(u);
            }
            else
            {
                chat[username].Count++;
            }
            chat.Log(username + " joined.");
        }
Esempio n. 7
0
        /// <summary>
        /// Renames a priv class.
        /// </summary>
        private void AdminRename(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv rename for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string privClass = subPacket.args["prev"];
            string newPrivClass = subPacket.args["name"];
            string by = subPacket.args["by"];
            if (chat.PrivClasses.ContainsKey(privClass))
            {
                int privClassLevel = chat.PrivClasses[privClass];
                // remove the old and add the new
                chat.PrivClasses.Remove(privClass);
                chat.PrivClasses.Add(newPrivClass, privClassLevel);

                // update users who have this priv class
                List<User> users = (from u in chat.GetAllMembers()
                                    where u.PrivClass == privClass
                                    select u).ToList();
                // update their priv class to the new one
                foreach (User u in users)
                    u.PrivClass = newPrivClass;

                chat.Log(string.Format("The privclass '{0}' was renamed to '{!}' by {2}.", privClass, newPrivClass, by));
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Removes a priv class.
        /// </summary>
        private void AdminRemove(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv delete for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string by = subPacket.args["by"];
            string privClass = subPacket.args["name"];
            chat.PrivClasses.Remove(privClass);

            // get all users who have this priv class
            List<User> users = (from u in chat.GetAllMembers()
                                where u.PrivClass == privClass
                                select u).ToList();

            // update their priv class
            foreach (User u in users)
                u.PrivClass = string.Empty;

            chat.Log(string.Format("The privclass '{0}' was removed by {1}.", privClass, by));
        }
Esempio n. 9
0
        /// <summary>
        /// Moves users from one privclass to another
        /// </summary>
        private void AdminMove(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv move for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string privClass = subPacket.args["prev"];
            string newPrivClass = subPacket.args["name"];
            string by = subPacket.args["by"];

            // get all users who have this priv class
            List<User> users = (from u in chat.GetAllMembers()
                                where u.PrivClass == privClass
                                select u).ToList();

            // update their priv class to the new one
            foreach (User u in users)
                u.PrivClass = newPrivClass;

            chat.Log(string.Format("{0} users moved from privclass '{1}' to '{2}' by {3}.", users.Count, privClass, newPrivClass, by));
        }
Esempio n. 10
0
        /// <summary>
        /// When an admin command generates an error.
        /// </summary>
        private void AdminError(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: admin show command for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string command = subPacket.body;
            string error = subPacket.args["e"];
            chat.Log(string.Format("Admin error. The command '{0}' returned: {1}", command, error));
        }
Esempio n. 11
0
        /// <summary>
        /// Create a new priv class.
        /// </summary>
        private void AdminCreate(string chatroom, dAmnServerPacket packet)
        {
            Chat chat = Bot.GetChatroom(chatroom);
            if (chat == null)
            {
                Bot.Console.Log("Error: Priv add for a chatroom which doesn't exist.");
                return;
            }

            dAmnPacket subPacket = packet.GetSubPacket();
            string privClass = subPacket.args["name"];
            string by = subPacket.args["by"];
            chat.PrivClasses.Add(privClass, 1); // TODO - figure out what really happens here

            chat.Log(string.Format("Privclass '{0}' was created by {1}.", privClass, by));
        }