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)); } } }
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(); }