Example #1
0
        private static void Bot_OnMessageReceived(object sender, OnMessageReceivedArgs e)
        {
            if (Chaters.GetChaters().Any(x => x == e.ChatMessage.DisplayName) || Chaters.GetChaters().Any(x => x == e.ChatMessage.Username))
            {
                lastChaterSeen[e.ChatMessage.Username] = DateTime.Now;
            }


            if (e.ChatMessage.Message.StartsWith("!"))
            {
                Command c = Commands.FirstOrDefault(c => $"{e.ChatMessage.Message} ".StartsWith($"!{c.Trigger}"));
                if (c == default)
                {
                    return;
                }
                if (c.Access.Any(x => x == e.ChatMessage.DisplayName) || c.Access.Any(x => x == e.ChatMessage.Username))
                {
                    bot.SendMessage(e.ChatMessage.Channel, c.TriggerCommand(sender, e));
                }
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            Bot.CreateBot("liphitc", "yj9nr9a00myvly0wrrwgrngp0ji0oz"); // oauth:nh18vb1ekxgd8kuhshuitamanetoken012
            Console.WriteLine("Hello World!");
            Bot.channels.Add("LiphiTC", true);
            Bot.channels.Add("ZakvielChannel", true);
            Thread checkThread = new Thread(new ThreadStart(CheckAction));

            checkThread.Start(); // запускаем поток


            Vote vote = null;



            Command test = new Command()
            {
                Access = new List <string>()
                {
                    "LiphiTC"
                },
                Trigger = "test"
            };

            test.CommandHandler += Test;
            Bot.Commands.Add(test);

            Command addChater = new Command()
            {
                Access  = Chaters.GetChaters(),
                Trigger = "addchater"
            };

            addChater.CommandHandler += (object sender, OnMessageReceivedArgs e) =>
            {
                var splitMessage = e.ChatMessage.Message.Split(' ');
                return(Chaters.AddChater(splitMessage[1]) ? e.ChatMessage.DisplayName + " YEP" : e.ChatMessage.DisplayName + " Такой пользователь уже есть YEPTA");
            };
            Bot.Commands.Add(addChater);

            /*
             * Command startVote = new Command()
             * {
             *  Access = Chaters.GetChaters(),
             *  Trigger = "startvote"
             * };
             * startVote.CommandHandler += (object sender, OnMessageReceivedArgs e) =>
             * {
             *  if (vote != default)
             *      return vote.IsBan ? e.ChatMessage.DisplayName + " уже идёт голосование на бан " + vote.Target : e.ChatMessage.DisplayName + " уже идёт голосование на мут(" + vote.Time + ") " + vote.Target;
             *  var splitMessage = e.ChatMessage.Message.Split(' ');
             *  if (splitMessage[2] == "zakvielchannel" || splitMessage[3] == "zakvielchannel")
             *      return e.ChatMessage.DisplayName + " пошёл нахуй WoahBlanket 🖕";
             *  string target;
             *  if (splitMessage[1] == "ban")
             *  {
             *      target = splitMessage[2];
             *      vote = new Vote()
             *      {
             *          Start = DateTime.Now,
             *          IsBan = true,
             *          Target = target,
             *          Creater = e.ChatMessage.DisplayName,
             *          Votes = new Dictionary<string, bool>()
             *
             *      };
             *      return "Началось голосование на бан " + vote.Target + " widepeepoHappy";
             *  }
             *  else if (splitMessage[1] == "mute")
             *  {
             *      if (!Regex.Match(splitMessage[2], @"[1-9][mhs]").Success)
             *          return e.ChatMessage.DisplayName + " Введите привильное время мута (3h|2s|12m)";
             *
             *      target = splitMessage[3];
             *      vote = new Vote()
             *      {
             *          Start = DateTime.Now,
             *          IsBan = false,
             *          Target = target,
             *          Creater = e.ChatMessage.DisplayName,
             *          Time = splitMessage[2],
             *          Votes = new Dictionary<string, bool>(),
             *      };
             *      return "Началось голосование на мут (" + vote.Time + ") " + vote.Target + " peepoClap";
             *  }
             *  else
             *      return e.ChatMessage.DisplayName + " выбирите параметр vote | ban";
             * };
             * Bot.Commands.Add(startVote);
             */
            voteBan = new Command()
            {
                Access  = Chaters.GetChaters(),
                Trigger = "voteban"
            };
            voteBan.CommandHandler += (object sender, OnMessageReceivedArgs e) =>
            {
                if (vote != default)
                {
                    return(e.ChatMessage.DisplayName + " уже идёт голосование на бан " + vote.Target);
                }
                var splitMessage = e.ChatMessage.Message.Split(' ');
                if (splitMessage.Length == 1)
                {
                    return(e.ChatMessage.DisplayName + " введите ник жертвы WoahBlanket 🔪");
                }
                if (splitMessage[1] == "zakvielchannel")
                {
                    return(e.ChatMessage.DisplayName + " пошёл нахуй WoahBlanket 🖕");
                }
                vote = new Vote()
                {
                    Start              = DateTime.Now,
                    RequirdAciveCount  = activeChaters.Count / 3 * 2,
                    Points             = 0,
                    Target             = splitMessage[1],
                    Creater            = e.ChatMessage.DisplayName,
                    AllowToVoteChaters = activeChaters
                };
                return(e.ChatMessage.DisplayName + " начал голосование на бан " + vote.Target + " peepoClap");
            };
            Bot.Commands.Add(voteBan);

            voteCommand = new Command()
            {
                Access  = Chaters.GetChaters(),
                Trigger = "vote"
            };
            voteCommand.CommandHandler += (object sender, OnMessageReceivedArgs e) =>
            {
                string preReturn    = "Хуйня";
                var    splitMessage = e.ChatMessage.Message.Split(' ');
                if (vote == default)
                {
                    return(e.ChatMessage.DisplayName + " сейчас не идёт ни какое голосование YEPold");
                }
                if (vote.Votes.Any(x => x.Key == e.ChatMessage.DisplayName))
                {
                    return(e.ChatMessage.DisplayName + " Ты уже проголосовал " + (vote.Votes.First(x => x.Key == e.ChatMessage.DisplayName).Value ? "да" : "нет") + " YEPTA");
                }
                if (!activeChaters.Any(x => x == e.ChatMessage.Username))
                {
                    activeChaters.Add(e.ChatMessage.Username);
                }

                int requirdPoints = activeChaters.Count > 3 || (activeChaters.Count / 3 * 2) > 3 ?  activeChaters.Count / 3 * 2 : 3;

                if (splitMessage.Length == 1)
                {
                    vote.Votes.Add(e.ChatMessage.DisplayName, true);
                    vote.Points += 1;
                    preReturn    = e.ChatMessage.DisplayName + " проголосовал да peepoClap [" + vote.Points + '/' + requirdPoints + ']';
                }
                else if (splitMessage.Length >= 2)
                {
                    if (splitMessage[1] == "yes" || splitMessage[1] == "да" || splitMessage[1] == "YEP")
                    {
                        vote.Votes.Add(e.ChatMessage.DisplayName, true);
                        vote.Points += 1;
                        preReturn    = e.ChatMessage.DisplayName + " проголосовал да peepoClap [" + vote.Points + '/' + requirdPoints + ']';
                    }
                    if (splitMessage[1] == "no" || splitMessage[1] == "нет" || splitMessage[1] == "NOPERS")
                    {
                        vote.Votes.Add(e.ChatMessage.DisplayName, true);
                        vote.Points -= 2;
                        preReturn    = e.ChatMessage.DisplayName + " проголосовал нет WoahSadBlanket [" + vote.Points + '/' + requirdPoints + ']';
                    }
                }
                Bot.SendAnswer(e.ChatMessage, preReturn);
                if (vote.Points == requirdPoints)
                {
                    Bot.SendAnswer(e.ChatMessage, "Набралось досточное количесво голосов, баним " + vote.Target + " widepeepoHappy");
                    Bot.SendAnswer(e.ChatMessage, "../timeout " + vote.Target + banTime);

                    vote = null;
                }
                return("");
            };
            Bot.Commands.Add(voteCommand);

            Command activeChatersCommand = new Command()
            {
                Access  = Chaters.GetChaters(),
                Trigger = "active"
            };

            activeChatersCommand.CommandHandler += (object sender, OnMessageReceivedArgs e) =>
            {
                return(activeChaters.Count.ToString());
            };
            Bot.Commands.Add(activeChatersCommand);

            Console.Read();
        }