public void onTelegramMessage(string chat, string Suser, string text, bool mention, int usermention) { int user = int.Parse(Suser); if (!chat.Equals(Suser)) { if (text.Equals("ajuda")) { response.sendHelp(); } if (Regex.IsMatch(text, "^ajuda ([1-9])$", RegexOptions.IgnoreCase)) { response.sendHelp(Regex.Match(text, "^ajuda ([1-9])$", RegexOptions.IgnoreCase).Groups[1].Value); } if (text.Equals("changelog")) { response.sendChangelog(); } if (text.Equals("status")) { Telegram.SendTypingStatus(); response.sendStatus(vars.loggedIn); } if (Regex.IsMatch(text, "^add (.+)", RegexOptions.IgnoreCase)) { Match nick = Regex.Match(text, "^add (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); if (nick.Groups[1].Value.Contains(" ")) { response.sendNickSpace(); return; } List <Account> accs = data.GetAccountList(user); foreach (Account acc in accs) { if (acc.getNick().ToLower().Equals(nick.Groups[1].Value.ToLower())) { response.sendAccountAlreadyAdded(); return; } } data.addNewAccount(user, nick.Groups[1].Value); ConsoleIO.WriteLineFormatted("§d[Banco de dados] §2Adicionando o nick " + nick.Groups[1].Value + " id(" + user + ") Ao banco de dados!"); } /*if (Regex.IsMatch(text, "^tadd ([0-9]+) (.+)")) * { * Match nick = Regex.Match(text, "^tadd ([0-9]+) (.+)"); * data.addTreasure(int.Parse(nick.Groups[1].Value), nick.Groups[2].Value); * }*/ if (Regex.IsMatch(text, "^notificar (.+) (.+)", RegexOptions.IgnoreCase)) { Match notify = Regex.Match(text, "^notificar (.+) (.+)", RegexOptions.IgnoreCase); data.addNotification(notify.Groups[1].Value, notify.Groups[2].Value); } if (text.ToLower().Equals("tesouros")) { response.sendTreasures(user); } if (text.ToLower().Equals("link")) { Telegram.SendHtmlMessage(vars.emjinfo + " Link do grupo:%0Ahttps://t.me/joinchat/IcsdwkZ2PD3HdWCJCunNGQ"); } if (text.ToLower().Equals("mensagens")) { response.sendNotifications(user); } if (text.ToLower().Equals("limparmensagens")) { response.sendNotificationsClear(user); } if (text.ToLower().Equals("limpartesouros")) { response.sendTreasuresClear(user); } if (Regex.IsMatch(text, "^del (.+)", RegexOptions.IgnoreCase)) { Match nick = Regex.Match(text, "^del (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); if (nick.Groups[1].Value.Contains(" ")) { response.sendNickSpace(); return; } data.removeAccount(user, nick.Groups[1].Value); ConsoleIO.WriteLineFormatted("§d[Banco de dados] §2Removendo o nick " + nick.Groups[1].Value + " id(" + user + ") Do banco de dados!"); } if (Regex.IsMatch(text, "^cargo (.+) (user|moderador|admin)$", RegexOptions.IgnoreCase)) { Match match = Regex.Match(text, "^cargo (.+) (user|moderador|admin)$", RegexOptions.IgnoreCase); string name = match.Groups[1].Value; string cargo = match.Groups[2].Value; bool ok = false; Telegram.SendTypingStatus(); if (!mention) { Telegram.SendHtmlMessage(vars.emjerror + " Mencione alguem para usar este comando!"); } if (Telegram.isAdmin(user)) { Admin adm = Telegram.getAdmin(user); if (adm.canPromoteMembers()) { ok = Telegram.promoteUser(usermention, cargo); } else { Telegram.SendHtmlMessage(vars.emjerror + " Desculpe, você nao pode alterar cargos!"); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Apenas Admins podem usar este comando!"); } if (ok) { Telegram.SendHtmlMessage(vars.emjok + " Cargo de " + name + " Definido para " + cargo); } else { Telegram.SendHtmlMessage(vars.emjerror + " Erro ao processar a solicitação"); } } if (Regex.IsMatch(text, "^contas (.+)$", RegexOptions.IgnoreCase)) { Match match = Regex.Match(text, "^contas (.+)$", RegexOptions.IgnoreCase); string name = match.Groups[1].Value; bool ok = false; Telegram.SendTypingStatus(); if (!mention) { Telegram.SendHtmlMessage(vars.emjerror + " Mencione alguem para usar este comando!"); return; } if (Telegram.isAdmin(user)) { Admin adm = Telegram.getAdmin(user); if (adm.canPromoteMembers()) { response.sendNicknames(usermention); } else { Telegram.SendHtmlMessage(vars.emjerror + " Apenas Admins podem usar este comando!"); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Apenas Admins podem usar este comando!"); } } if (Regex.IsMatch(text, "^protect$", RegexOptions.IgnoreCase)) { response.sendProtectedNicknames(user); } if (Regex.IsMatch(text, "^protect (.+) (on|off)$", RegexOptions.IgnoreCase)) { Match match = Regex.Match(text, "^protect (.+) (on|off)$", RegexOptions.IgnoreCase); string name = match.Groups[1].Value; bool protect = match.Groups[2].Value.ToLower().Equals("on"); Telegram.SendTypingStatus(); Telegram.data.Protect(name, true, protect, user); } if (Regex.IsMatch(text, "^reconectar$", RegexOptions.IgnoreCase)) { Telegram.SendTypingStatus(); if (Telegram.isAdmin(user)) { Admin adm = Telegram.getAdmin(user); if (adm.canPromoteMembers()) { Program.Client.SendText("/ativar reiniciandohtbot"); Program.Restart(); Telegram.SendHtmlMessage(vars.emjok + " Reconectando ao servidor!"); } else { Telegram.SendHtmlMessage(vars.emjerror + " Desculpe, você não tem permissão para isso!"); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Apenas Admins podem usar este comando!"); } } if (Regex.IsMatch(text, "^reiniciar$", RegexOptions.IgnoreCase)) { Telegram.SendTypingStatus(); if (Telegram.isAdmin(user)) { Admin adm = Telegram.getAdmin(user); if (adm.canPromoteMembers()) { new Thread(new ThreadStart(delegate { Telegram.SendHtmlMessage(vars.emjok + " Reiniciando o bot!"); Program.Client.SendText("/ativar reiniciandohtbot"); Thread.Sleep(2000); Environment.Exit(0); })).Start(); } else { Telegram.SendHtmlMessage(vars.emjerror + " Desculpe, você não tem permissão para isso!"); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Apenas Admins podem usar este comando!"); } } if (text.ToLower().Equals("contas")) { response.sendNicknames(user); } if (vars.loggedIn) { if (Regex.IsMatch(text, "^online ([a-zA-Z0-9-_]+)$", RegexOptions.IgnoreCase)) { Match nick = Regex.Match(text, "^online ([a-zA-Z0-9-_]+)$", RegexOptions.IgnoreCase); bool isOnline = false; Telegram.SendTypingStatus(); foreach (string player in Program.Client.GetOnlinePlayers()) { if (player.ToLower().Equals(nick.Groups[1].Value.ToLower())) { isOnline = true; response.sendOnline(isOnline, player); } } if (!isOnline) { foreach (string player in Program.Client.GetOnlinePlayers()) { if (player.ToLower().Contains(nick.Groups[1].Value.ToLower())) { isOnline = true; response.sendOtherOnline(player); break; } } if (!isOnline) { response.sendOnline(isOnline, nick.Groups[1].Value); } } } if (Regex.IsMatch(text, "^money (.+)", RegexOptions.IgnoreCase)) { Match nick = Regex.Match(text, "^money (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); if (nick.Groups[1].Value.Contains(" ")) { if (nick.Groups[1].Value.Contains("rank ")) { vars.checkMoneyRank = true; Program.Client.SendText("/money " + nick.Groups[1].Value); return; } else { response.sendNickSpace(); return; } } if (nick.Groups[1].Value.ToLower().Equals("top")) { vars.tmoney = true; Program.Client.SendText("/money " + nick.Groups[1].Value); return; } vars.tmoney = true; Program.Client.SendText("/money @" + nick.Groups[1].Value); } if (Regex.IsMatch(text, "^inspect (.+)", RegexOptions.IgnoreCase)) { vars.resetVars(); Match nick = Regex.Match(text, "^inspect (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); vars.atualUser = user; if (nick.Groups[1].Value.Contains(" ")) { response.sendNickSpace(); return; } vars.checkSkills = true; Program.Client.SendText("/inspect " + nick.Groups[1].Value); } if (Regex.IsMatch(text, "^mctop (.+)", RegexOptions.IgnoreCase)) { Match skill = Regex.Match(text, "^mctop (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); vars.checkmctop = true; Program.Client.SendText("/mctop " + skill.Groups[1].Value); vars.mctopskill = skill.Groups[1].Value; } if (Regex.IsMatch(text, "^mctop$", RegexOptions.IgnoreCase)) { Match skill = Regex.Match(text, "^mctop$", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); vars.checkmctop = true; Program.Client.SendText("/mctop"); vars.mctopskill = "Geral"; } if (Regex.IsMatch(text, "^mcrank (.+)", RegexOptions.IgnoreCase)) { Match check = Regex.Match(text, "^mcrank (.+)", RegexOptions.IgnoreCase); Telegram.SendTypingStatus(); vars.checkmcrank = true; Program.Client.SendText("/mcrank " + check.Groups[1].Value); vars.atualNick = check.Groups[1].Value; } if (Regex.IsMatch(text, "^(Acrobacia|Reparaçao|Machado|Arqueiro|Espadas|Domar|Desarmado|Escavaçao|Pescador|Herbalismo|Mineraçao|Lenhador)$", RegexOptions.IgnoreCase)) { Match skill = Regex.Match(text, "^(Acrobacia|Reparaçao|Machado|Arqueiro|Espadas|Domar|Desarmado|Escavaçao|Pescador|Herbalismo|Mineraçao|Lenhador)$", RegexOptions.IgnoreCase); string Skill = skill.Groups[1].Value; vars.resetVars(); List <Account> accounts = Telegram.data.GetAccountList(user); vars.checkingSkill = Skill; vars.singleSkillCheck = true; vars.atualUser = user; vars.multipleskillscheck = accounts.Count; vars.checkedNicksCount = 0; Telegram.SendTypingStatus(); vars.skills.Add("Skill: <code>" + vars.checkingSkill + "</code> :%0A════════════════════%0A"); if (accounts.Count > 0) { foreach (Account account in accounts) { string acc = account.getNick(); wait(500); Program.Client.SendText("/inspect " + acc); wait(500); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } if (Regex.IsMatch(text, "^inspect$", RegexOptions.IgnoreCase)) { Telegram.SendTypingStatus(); vars.resetVars(); vars.checkMultipleSkills = true; vars.atualUser = user; List <Account> accounts = Telegram.data.GetAccountList(user); vars.multipleskillscheck = accounts.Count; vars.checkedNicksCount = 0; if (Telegram.data.getTimestamp() < 1558148400) { if (accounts.Count > 0) { foreach (Account account in accounts) { string acc = account.getNick(); wait(500); Program.Client.SendText("/inspect " + acc); wait(500); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Este comando está obsoleto e foi descontinuado!%0AComo alternativa teste /nomedaskill%0AExemplo: /pescador"); } } if (Regex.IsMatch(text, "^money$", RegexOptions.IgnoreCase)) { Telegram.SendTypingStatus(); vars.checkMultipleMoney = true; List <Account> accounts = Telegram.data.GetAccountList(user); vars.multiplemoneycheck = accounts.Count; vars.checkedmoneycount = 0; if (accounts.Count > 0) { foreach (Account account in accounts) { string acc = account.getNick(); wait(500); Program.Client.SendText("/money @" + acc); wait(500); } } else { Telegram.SendHtmlMessage(vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } if (Regex.IsMatch(text, "^online$", RegexOptions.IgnoreCase)) { Telegram.SendTypingStatus(); response.sendOnlineNicknames(user); } if (Regex.IsMatch(text, "^verificar (.+)$", RegexOptions.IgnoreCase)) { Match match = Regex.Match(text, "^verificar (.+)$", RegexOptions.IgnoreCase); string nick = match.Groups[1].Value; List <Account> accounts = Telegram.data.GetAccountList(user); Telegram.SendTypingStatus(); if (accounts.Count > 0) { bool found = false; string acc = ""; bool verifyed = false; int Token = 0; foreach (Account account in accounts) { if (account.getNick().ToLower().Equals(nick.ToLower())) { found = true; acc = account.getNick(); verifyed = account.getVerify(); Token = account.getToken(); break; } } if (!found) { Telegram.SendHtmlMessage(vars.emjerror + " Conta nao encontrada!"); return; } if (verifyed) { Telegram.SendHtmlMessage(vars.emjerror + " A conta já estava verificada!"); return; } if ((found) && (!verifyed)) { if (Telegram.SendPrivateMessage(user, vars.emjok + " Para verificar sua conta " + nick + ", envie um tell <b>dela</b>%0AAssim: <code>/tell htbot verificar " + Token + "</code>", "Verificação de conta", true)) { Telegram.SendHtmlMessage(vars.emjok + " Te enviei uma mensagem privada.%0AVerifique-a para confirmar a posse da sua conta!"); } } } else { Telegram.SendHtmlMessage(vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } if (Regex.IsMatch(text, "^tell ([A-z0-9_-]{1,16}) (.+)$", RegexOptions.IgnoreCase)) { Match tell = Regex.Match(text, "^tell ([A-z0-9_-]{1,16}) (.+)$", RegexOptions.IgnoreCase); string nick = tell.Groups[1].Value; string msg = tell.Groups[2].Value; List <Account> accounts = Telegram.data.GetAccountList(user); Telegram.SendTypingStatus(); if (accounts.Count > 0) { bool found = false; bool verifyed = false; int Token = 0; bool isOnline = false; foreach (var player in Program.Client.GetOnlinePlayers()) { if (player.ToLower().Equals(nick)) { isOnline = true; } } foreach (Account account in accounts) { if (account.getNick().ToLower().Equals(nick.ToLower())) { found = true; verifyed = account.getVerify(); Token = account.getToken(); break; } } if (!found) { Telegram.SendHtmlMessage(vars.emjerror + " Conta nao encontrada!"); return; } if (!verifyed) { Telegram.SendHtmlMessage(vars.emjerror + "Desculpe, Você não tem permissão pra isso!%0AEssa conta é sua? " + vars.emjthinking); return; } if (!isOnline) { Telegram.SendHtmlMessage(vars.emjerror + " Conta Offline!"); return; } Program.Client.SendText("/tell " + nick + " 0 " + Token + " " + msg); Telegram.data.ResponseLimit(Token, true); Telegram.SendHtmlMessage(vars.emjok + " Mensagem enviada!"); } else { Telegram.SendHtmlMessage(vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } if (text.ToLower().Equals("wm")) { vars.sendWM = true; Program.Client.SendText("/wm"); } } else { } } else { if (Regex.IsMatch(text, "^tell ([A-z0-9_-]{1,16}) (.+)$", RegexOptions.IgnoreCase)) { Match tell = Regex.Match(text, "^tell ([A-z0-9_-]{1,16}) (.+)$", RegexOptions.IgnoreCase); string nick = tell.Groups[1].Value; string msg = tell.Groups[2].Value; List <Account> accounts = Telegram.data.GetAccountList(user); Telegram.SendTypingStatus(user.ToString()); if (accounts.Count > 0) { bool found = false; bool verifyed = false; int Token = 0; bool isOnline = false; foreach (var player in Program.Client.GetOnlinePlayers()) { if (player.ToLower().Equals(nick)) { isOnline = true; } } foreach (Account account in accounts) { if (account.getNick().ToLower().Equals(nick.ToLower())) { found = true; verifyed = account.getVerify(); Token = account.getToken(); break; } } if (!found) { Telegram.SendPrivateMessage(user, vars.emjerror + " Conta nao encontrada!"); return; } if (!verifyed) { Telegram.SendPrivateMessage(user, vars.emjerror + "Desculpe, Você não tem permissão pra isso!%0AEssa conta é sua? " + vars.emjthinking); return; } if (!isOnline) { Telegram.SendPrivateMessage(user, vars.emjerror + " Conta Offline!"); return; } Program.Client.SendText("/tell " + nick + " 1 " + Token + " " + msg); Telegram.data.ResponseLimit(Token, true); Telegram.SendPrivateMessage(user, vars.emjok + " Mensagem enviada!"); } else { Telegram.SendPrivateMessage(user, vars.emjerror + " Antes de usar esse comando %0AUse /add <code>nick</code> para adicionar suas contas!"); } } else if (text.ToLower().Equals("start")) { Telegram.SendPrivateMessage(user, vars.emjok + " Olá, se você veio aqui pela verificação de conta%0APode voltar ao grupo e concluir a verificação%0AVocê tbm pode me mandar o comando <b>/tell <nick> <mensagem></b> por aqui"); } else { Telegram.SendPrivateMessage(user, vars.emjerror + " Por favor, use o bot no grupo!"); } } }