示例#1
0
 public void OnPrivateChannelMessageEvent(BotShell bot, PrivateChannelMessageArgs e)
 {
     if (e.Items.Length < 1)
     {
         return;
     }
     if (e.Self)
     {
         return;
     }
     if (!e.Local)
     {
         return;
     }
     foreach (AoItem item in e.Items)
     {
         lock (this._items)
         {
             if (!this._items.ContainsKey(item.LowID))
             {
                 continue;
             }
             this._database.ExecuteNonQuery(String.Format("INSERT INTO glyphs SET item = {0}, looter = '{1}', time = {2}, visible = 'true'", item.LowID, e.Sender, TimeStamp.Now));
             bot.SendPrivateChannelMessage(bot.ColorHeader + this._items[item.LowID] + bot.ColorHighlight + " has been looted by " + bot.ColorHeader + e.Sender);
         }
     }
 }
示例#2
0
 private void Events_PrivateChannelMessageEvent(BotShell bot, PrivateChannelMessageArgs e)
 {
     if (this.AutoAFK)
     {
         if (e.Message.ToLower().StartsWith("afk"))
         {
             lock (this.Afk)
             {
                 if (this.Afk.ContainsKey(e.Sender))
                 {
                     this.Afk.Remove(e.Sender);
                     bot.SendPrivateChannelMessage(bot.ColorHighlight + e.Sender + " is back");
                 }
                 else
                 {
                     this.Afk.Add(e.Sender, "AFK");
                     bot.SendPrivateChannelMessage(bot.ColorHighlight + e.Sender + " is afk.");
                 }
             }
             return;
         }
     }
     if (e.Command)
     {
         return;
     }
     this.RemoveAfk(bot, e.Sender);
 }
示例#3
0
 internal void OnPrivateChannelMessage(BotShell bot, PrivateChannelMessageArgs e)
 {
     if (this.PrivateChannelMessageEvent != null)
     {
         try { this.PrivateChannelMessageEvent(bot, e); }
         catch { }
     }
 }
示例#4
0
 internal void OnPrivateChannelMessage(BotShell sender, SlaveArgs slave, PrivateChannelMessageArgs e)
 {
     if (this.PrivateChannelMessageEvent != null)
     {
         try { this.PrivateChannelMessageEvent(sender, slave, e); }
         catch { }
     }
 }
示例#5
0
        private void Events_PrivateChannelMessageEvent(BotShell bot, PrivateChannelMessageArgs e)
        {
            if (e.Command)
            {
                return;
            }
            if (e.Self)
            {
                return;
            }
            if (e.Local)
            {
                if (this.RelayMode == "both" || this.RelayMode == "guest")
                {
                    string message = e.Message;
                    if (this.ConnectSyntaxAo != "off")
                    {
                        if (message.StartsWith(this.ConnectSyntaxAo, StringComparison.CurrentCultureIgnoreCase))
                        {
                            message = message.Substring(this.ConnectSyntaxAo.Length);
                        }
                        else
                        {
                            return;
                        }
                    }

                    string formattedMessage = String.Format(this.BOLD + this.BOLD + this.BOLD + "[{0}'s Guest]" + this.BOLD + " {1}: {2}", bot.Character, e.Sender, message);
                    this.SendMessage(formattedMessage, "guild");
                    if (e.Items != null && e.Items.Length > 0)
                    {
                        foreach (AoItem item in e.Items)
                        {
                            formattedMessage = formattedMessage.Replace(item.Raw, string.Format(this.ItemFormat, item.Name, item.LowID, item.HighID, item.QL));
                        }
                    }
                    this.SendMessage(formattedMessage, "irc");
                }
            }
        }
示例#6
0
        private void Events_PrivateChannelMessageEvent(BotShell bot, PrivateChannelMessageArgs e)
        {
            if (e.Self == true)
            {
                return;
            }

            if (bot.Configuration.GetBoolean(this.InternalName, "inccommands", true) == false)
            {
                if (e.Command == true)
                {
                    return;
                }
            }
            if (bot.Configuration.GetBoolean(this.InternalName, "limmune", true) == true)
            {
                if (bot.Users.GetUser(e.Sender) == UserLevel.Leader)
                {
                    return;
                }
            }
            if (bot.Configuration.GetBoolean(this.InternalName, "aimmune", true) == true)
            {
                if (bot.Users.GetUser(e.Sender) == UserLevel.Admin)
                {
                    return;
                }
            }
            if (bot.Configuration.GetBoolean(this.InternalName, "saimmune", true) == true)
            {
                if (bot.Users.GetUser(e.Sender) == UserLevel.SuperAdmin)
                {
                    return;
                }
            }
            if (Flooder.ContainsKey(e.SenderID))
            {
                Flooder[e.SenderID].FloodCount += 1;
                Flooder[e.SenderID].LastSaid    = TimeStamp.Now;

                // Handles the Pure FloodPart
                long TimeDiff = Flooder[e.SenderID].LastSaid - Flooder[e.SenderID].FirstSaid;
                if (TimeDiff <= bot.Configuration.GetInteger(this.InternalName, "flooddelay", 5) && bot.Configuration.GetInteger(this.InternalName, "flooddelay", 5) != 0)
                {
                    if (bot.Configuration.GetInteger(this.InternalName, "floodkick", 7) != 0 && Flooder[e.SenderID].Kick == false && Flooder[e.SenderID].FloodCount >= bot.Configuration.GetInteger(this.InternalName, "floodkick", 7))
                    {
                        Flooder[e.SenderID].Kick = true;
                        if (bot.PrivateChannel.IsOn(e.SenderID))
                        {
                            bot.PrivateChannel.Kick(e.Sender);
                            bot.SendPrivateChannelMessage(bot.ColorHighlight + HTML.CreateColorString(bot.ColorHeaderHex, e.Sender) + " has been removed from the private channel for flooding");
                            bot.SendPrivateMessage(e.Sender, bot.ColorHighlight + "You have been removed from the private channel for flooding!", false);
                        }
                    }
                    else if (bot.Configuration.GetInteger(this.InternalName, "floodwarning", 5) != 0 && Flooder[e.SenderID].FloodCount >= bot.Configuration.GetInteger(this.InternalName, "floodwarning", 5) && Flooder[e.SenderID].Warning == false && Flooder[e.SenderID].Kick == false)
                    {
                        Flooder[e.SenderID].Warning = true;
                        bot.SendPrivateMessage(e.Sender, bot.ColorHighlight + "Warning! You're close to being kicked for flooding", false);
                    }
                }
                else
                {
                    Flooder[e.SenderID].FloodCount = 0;
                    Flooder[e.SenderID].FirstSaid  = TimeStamp.Now;
                    Flooder[e.SenderID].Warning    = false;
                }
                // End of flood part

                // Handles the Repeation part
                if (e.Message.ToLower() == Flooder[e.SenderID].LastLine.ToLower())
                {
                    Flooder[e.SenderID].RepeatCount += 1;
                    if (bot.Configuration.GetInteger(this.InternalName, "repeatkick", 4) != 0 && Flooder[e.SenderID].RepeatCount >= bot.Configuration.GetInteger(this.InternalName, "repeatkick", 4) && Flooder[e.SenderID].Kick == false)
                    {
                        Flooder[e.SenderID].Kick = true;
                        if (bot.PrivateChannel.IsOn(e.SenderID))
                        {
                            bot.PrivateChannel.Kick(e.Sender);
                            bot.SendPrivateChannelMessage(bot.ColorHighlight + HTML.CreateColorString(bot.ColorHeaderHex, e.Sender) + " has been removed from the private channel for repeating");
                            bot.SendPrivateMessage(e.Sender, bot.ColorHighlight + "You have been removed from the private channel for repeating!", false);
                        }
                    }
                    else if (bot.Configuration.GetInteger(this.InternalName, "repeatwarning", 3) != 0 && Flooder[e.SenderID].RepeatCount >= bot.Configuration.GetInteger(this.InternalName, "repeatwarning", 3) && Flooder[e.SenderID].Warning == false && Flooder[e.SenderID].Kick == false)
                    {
                        Flooder[e.SenderID].Warning = true;
                        bot.SendPrivateMessage(e.Sender, bot.ColorHighlight + "Warning! You're close to being kicked for repeating", false);
                    }
                }
                else
                {
                    Flooder[e.SenderID].RepeatCount = 1;
                }
                Flooder[e.SenderID].LastLine = e.Message;
                // End of repeat part
            }
            else
            {
                Flooder.Add(e.SenderID, new Flooders(e.Sender, TimeStamp.Now, TimeStamp.Now, 1, false, false, e.Message, 1));
            }
        }
示例#7
0
 private void SlaveEvents_PrivateChannelMessageEvent(BotShell bot, SlaveArgs slave, PrivateChannelMessageArgs e)
 {
     this.Output(e.Channel, String.Format("[{0}] {1}: {2}", slave.Slave, e.Sender, HTML.UnescapeString(HTML.StripTags(e.Message))));
 }