//<a href=\"tg://user?id=566959554\">ChangeLog</a> text mention //<code>meu money</code> texto azul public void sendHelp(string page = "1") { Telegram.SendTypingStatus(); List <string> response = new List <string>(); string msg = null; switch (page) { case "1": response.Add("Ajuda (1/3)"); response.Add("Comandos disponiveis:"); response.Add("════════════════════"); response.Add("\"/contas\" mostra seus nicks"); response.Add("\"/add (nick)\" adiciona o nick a sua lista pessoal de nicks"); response.Add("\"/del (nick)\" Remove o nick da sua lista pessoal de nicks"); response.Add("\"/verificar (nick)\" Verifica a posse da conta"); response.Add("\"/ajuda\" mostra esses comandos :)"); response.Add("\"/money (nick)\" mostra o money do jogador"); response.Add("\"/money top\" mostra o ranking dos 15 jogadores mais ricos do servidor"); response.Add("\"/money\" verifica o money de todas as suas contas"); response.Add("\"/ajuda 2\" exibe a proxima pagina"); break; case "2": response.Add("Ajuda (2/3)"); response.Add("Comandos disponiveis:"); response.Add("════════════════════"); response.Add("\"/online (nick)\" Verifica se o player ta online no servidor"); response.Add("\"/online\" verifica o estado das suas contas"); response.Add("\"/inspect (nick)\" mostra as skills de qualquer player do servidor"); response.Add("\"/inspect\" verifica os stats de suas contas"); response.Add("\"/mctop (skill)\" verifica o mctop de determinada skill"); response.Add("\"/mctop\" exibe a lista dos players com mais skills somadas do servidor"); response.Add("\"/changelog\" Exibe as mudanças do bot!"); response.Add("\"/ajuda 3\" exibe a proxima pagina"); break; case "3": response.Add("Ajuda (3/3)"); response.Add("Comandos disponiveis:"); response.Add("════════════════════"); response.Add("\"/mensagens\" Exibe suas notificações"); response.Add("\"/tesouros\" Exibe seus tesouros"); response.Add("\"/limparmensagens\" Limpa suas notificações"); response.Add("\"/limpartesouros\" Limpa seus tesouros"); response.Add("\"/wm\" Exibe a quantidade de players no server"); response.Add("\"/ajuda 4\" Futuramente exibira a proxima pagina!"); break; default: response.Add(vars.emjerror + " <b>Pagina de ajuda nao encontrada</b>"); break; } foreach (string content in response) { msg = msg + "%0A" + content; } Telegram.SendHtmlMessage(msg); }
public void sendChangelog() { Telegram.SendTypingStatus(); List <string> response = new List <string>(); string msg = null; response.Add("Changelog"); response.Add("════════════════════"); response.Add("----(09/05/2019)----"); response.Add("- adicionado sistema de verificação%0ADe varias contas de 1x"); response.Add("----(10/05/2019)----"); response.Add("- Adicionada verificação de posse das contas!"); response.Add("- Adicionada verificação se uma conta ja estava adicionada!"); response.Add("- Adicionada verificação de posse das contas!"); response.Add("----(11/05/2019)----"); response.Add("- adicionado /wm"); response.Add("- mensagem de money atualizada"); response.Add("- <b>Novidades Em Breve!</b>"); foreach (string content in response) { msg = msg + "%0A" + content; } Telegram.SendHtmlMessage(msg); }
public void sendOnline(bool online, string nick) { if (online) { Telegram.SendHtmlMessage("O player <code>" + nick + "</code> está online " + vars.emjsmile); } else { Telegram.SendHtmlMessage("O player <code>" + nick + "</code> está Offline " + vars.emjneutralface); } }
public void sendStatus(bool status) { if (status) { Telegram.SendHtmlMessage(vars.emjinfo + "Estou online no servidor <code>" + Program.connectedServer + "</code>!"); } else { Telegram.SendMessage("Estou offline no momento " + vars.emjneutralface); } }
public void sendmcrank(List <string> mcrank) { Telegram.SendTypingStatus(); string msg = null; foreach (string content in mcrank) { msg = msg + content; } Telegram.SendHtmlMessage(msg); vars.checkmcrank = false; }
public void sendNotifications(int user) { string messages = Telegram.data.getNotifications(user); if (messages.Equals("-1")) { Telegram.SendHtmlMessage("<b>Sua lista de mensagens está vazia!</b>"); } else { Telegram.SendHtmlMessage("Suas mensagens: %0A════════════════════%0A" + messages + "═════════════%0A/limparmensagens"); } }
public void sendTreasuresClear(int user) { bool treasures = Telegram.data.clearTreasures(user); if (!treasures) { Telegram.SendHtmlMessage(vars.emjerror + "<b>Sua lista de tesouros já estava vazia!</b>"); } else { Telegram.SendHtmlMessage(vars.emjinfo + "<b>Sua lista de tesouros foi limpa!</b>"); } }
public void sendTreasures(int user) { string treasures = Telegram.data.getTreasures(user); if (treasures.Equals("-1")) { Telegram.SendHtmlMessage("<b>Sua lista de tesouros está vazia!</b>"); } else { Telegram.SendHtmlMessage("Seus tesouros: %0A════════════════════%0A" + treasures + "═════════════%0A/limpartesouros"); } }
public void sendOnlineNicknames(int user) { string accs = Telegram.data.GetOnlineAccounts(user); if (accs.Equals("-1")) { Telegram.SendHtmlMessage(vars.emjerror + "<b>Você não tem contas cadastradas!</b>"); } else { Telegram.SendHtmlMessage("Suas contas online: %0A════════════════════%0A" + accs); } }
public void sendProtectedNicknames(int user) { string accs = Telegram.data.GetProtectedAccounts(user); if (accs.Equals("-1")) { Telegram.SendHtmlMessage(vars.emjerror + "<b>Você não tem contas cadastradas!</b>"); } else { Telegram.SendHtmlMessage("🛡HtBot Protect🛡%0A════════════════════%0A" + accs); } }
public void sendMoneyTop(List <string> top) { Telegram.SendTypingStatus(); string msg = null; top.Insert(0, "Players mais ricos do servidor:%0A════════════════════%0A"); foreach (string content in top) { msg = msg + content; } Telegram.SendHtmlMessage(msg); }
public void sendNotificationsClear(int user) { bool messages = Telegram.data.clearNotifications(user); if (!messages) { Telegram.SendHtmlMessage(vars.emjerror + "<b>Sua lista de mensagens já estava vazia!</b>"); } else { Telegram.SendHtmlMessage(vars.emjinfo + "<b>Sua lista de mensagens foi limpa!</b>"); } }
public void sendSkills(List <string> skills) { Telegram.SendTypingStatus(); string msg = null; foreach (string content in skills) { msg = msg + content; } Telegram.SendHtmlMessage(msg); vars.skills.Clear(); vars.checkSkills = false; vars.checkMultipleSkills = false; }
public void sendNicknames(int user) { string accs = Telegram.data.GetAccounts(user); int treasures = Telegram.data.getTreasuresCount(user); int notifications = Telegram.data.getNotificationsCount(user); string Notification = null; if ((treasures > 0) || (notifications > 0)) { Notification = "═════════════"; } if (treasures > 0) { Notification = Notification + "%0AVocê pegou " + treasures + " Tesouros!"; } if (notifications > 0) { Notification = Notification + "%0AVocê Tem " + notifications + " Notificações!"; } if (treasures > 0) { Notification = Notification + "%0AVeja seus tesouros com /tesouros "; } if (notifications > 0) { Notification = Notification + "%0AVeja suas notificações com /mensagens "; } if (accs.Equals("-1")) { Telegram.SendHtmlMessage(vars.emjerror + "<b>Você não tem contas cadastradas!</b>"); } else { Telegram.SendHtmlMessage("Suas contas: %0A════════════════════%0A" + accs + Notification); } }
public void addTreasure(int lvl, string nick) { DateTime dt = DateTime.Now; string date = DateTime.Today.ToString("dd/MM"); string Time = dt.ToLongTimeString(); try { int count = 0; foreach (var zzz in users) { JObject theUser = (JObject)users[count]; JArray accounts = (JArray)theUser["user_accounts"]; int count2 = 0; foreach (var aaa in accounts) { JObject parsingAccount = (JObject)accounts[count2]; string Nick = parsingAccount["nick"].ToString(); if (Nick.ToLower().Equals(nick.ToLower())) { JArray treasures = (JArray)parsingAccount["treasures"]; treasures.Add("[" + date + " " + Time + "] " + lvl); Telegram.SendHtmlMessage("🎉A conta <code>" + nick + "</code> Acaba de pegar um <b>Tesouro Nível " + lvl + "</b>🎉"); Program.Client.SendText("/g [Bezouro Bot] " + nick + " usa o Bot e ja sabe que achou um tesouro " + lvl); WriteData(); break; } count2++; } count++; } } catch (Exception e) { ConsoleIO.WriteLineFormatted(e.ToString()); } }
public void sendMultipleMoney(List <string> moneyList) { string Money = "Seu money: %0A════════════════════%0A"; double total = 0; foreach (string line in moneyList) { if (Regex.IsMatch(line, "^(.+) (.+)$")) { Match match = Regex.Match(line, "^(.+) <b>(.+)</b>$"); string moneynick = match.Groups[1].Value; string money = match.Groups[2].Value; money = money.Replace(",", ""); total = total + double.Parse(money); Money = Money + line + "%0A"; } } if (!vars.IsRunningOnMono()) { total = total / 100; } string Total = total.ToString("C").Replace("¤", vars.emjmoney + " "); if (moneyList.Count > 1) { Money = Money + "════════════════════%0ATotal: <b>" + Total + "</b>"; } vars.checkMultipleMoney = false; vars.multiplemoney.Clear(); Telegram.SendHtmlMessage(Money); }
public void sendWM(int online) { vars.sendWM = false; Telegram.SendHtmlMessage(vars.emjinfo + " Atualmente o servidor tem <b>" + online + "</b> Players online!"); }
public void sendAccountRemoved() { Telegram.SendHtmlMessage(vars.emjinfo + " Conta removida com sucesso!"); }
public void sendAccountCleared() { Telegram.SendHtmlMessage(vars.emjinfo + " Suas contas foram removidas!"); }
public void sendOtherOnline(string nick) { Telegram.SendHtmlMessage("Encontrei o player <code>" + nick + "</code> online " + vars.emjsmile); }
public void sendAccountAdded() { Telegram.SendHtmlMessage(vars.emjinfo + " Conta adicionada com sucesso!"); }
public void sendNickSpace() { Telegram.SendHtmlMessage("❌ <b>O nick nao pode conter espaço!</b>"); }
public bool Protect(string nick, bool toggle = false, bool Protect = false, int id = 0) { try { int count = 0; foreach (var zzz in users) { JObject theUser = (JObject)users[count]; JArray accounts = (JArray)theUser["user_accounts"]; int Id = (int)theUser["user_id"]; int count2 = 0; foreach (var aaa in accounts) { JObject parsingAccount = (JObject)accounts[count2]; string Nick = parsingAccount["nick"].ToString(); if (Nick.ToLower().Equals(nick.ToLower())) { bool verified = Convert.ToBoolean(parsingAccount["verified"]); bool protect = Convert.ToBoolean(parsingAccount["protect"]); if (toggle) { ConsoleIO.WriteLine("[Protect] toggle = " + toggle); if (Id == id) { ConsoleIO.WriteLine("[Protect] id ok"); if (verified) { ConsoleIO.WriteLine("[Protect] verified = " + verified); ConsoleIO.WriteLine("[Protect] setando valor " + Protect); parsingAccount["protect"] = Protect; ConsoleIO.WriteLine("[Protect] novo valor: " + parsingAccount["protect"]); WriteData(); Telegram.SendHtmlMessage(vars.emjok + " Protect alterado para esta conta!"); return(true); } else { ConsoleIO.WriteLine("[Protect] verified = " + verified); Telegram.SendHtmlMessage(vars.emjerror + " Desculpe, para usar este comando você precisa comprovar que é dono desda conta%0A" + "Para isso, use <code>/verificar " + Nick + "</code>"); return(false); } } else { ConsoleIO.WriteLine("[Protect] id = errado"); break; } } else { if (protect) { return(true); } } break; } count2++; } count++; } return(false); } catch (Exception e) { ConsoleIO.WriteLineFormatted(e.ToString()); return(false); } }
public void sendMoney(string nick, string money) { Telegram.SendHtmlMessage(vars.emjmoney + " O money de " + nick + " é <b>" + money + "</b> Coins!"); }
public void sendAccountAlreadyAdded() { Telegram.SendHtmlMessage(vars.emjerror + " A conta ja estava adicionada!"); }
//WebConsole wConsole = new WebConsole(); public void onchat(string text, bool isJson) { List <string> links = new List <string>(); string json = null; if (isJson) { json = text; text = ChatParser.ParseText(json, links); } String chat = text; String chatclean = GetVerbatim(text); //wConsole.process(chat); if (Regex.IsMatch(chatclean, "^\\[WITHER\\] Finalmente livre! Prepare-se para enfrentar a morte!$", RegexOptions.IgnoreCase)) { Telegram.SendPrivateMessage(816833078, "O Wither acaba de spawnar"); } if (Regex.IsMatch(chatclean, "^\\[ENDER DRAGON\\] Estou de volta para dominar a todos!!!$", RegexOptions.IgnoreCase)) { Telegram.SendPrivateMessage(816833078, "O Ender Dragon acaba de spawnar"); } if (chatclean.Equals("»Bem vindo de volta. Por favor digite /login sua-senha.")) { ConsoleIO.WriteLineFormatted("&4[Auto-Login] &cLogando no servidor"); Program.Client.SendText("/login htbot"); vars.loggedIn = true; } if (Regex.IsMatch(chatclean, "^Saldo de (.+): (.+) Coins.$")) { Match match = Regex.Match(chatclean, "^Saldo de (.+): (.+) Coins.$"); string moneynick = match.Groups[1].Value; string money = match.Groups[2].Value; if (!vars.checkMultipleMoney) { if (vars.tmoney) { response.sendMoney(moneynick, money); vars.tmoney = false; } } else { vars.multiplemoney.Add(moneynick + " <b>" + money + "</b>"); if (vars.multiplemoney.Count == vars.multiplemoneycheck) { response.sendMultipleMoney(vars.multiplemoney); } } } if (Regex.IsMatch(chatclean, "^(.+): ([0-9,]+) XP\\((.+)\\/(.+)\\)$")) { Match match = Regex.Match(chatclean, "(.+): ([0-9,]+) XP\\((.+)\\/(.+)\\)$"); string skill = match.Groups[1].Value; string level = match.Groups[2].Value; string xp1 = match.Groups[3].Value; string xp2 = match.Groups[4].Value; if (!vars.singleSkillCheck) { switch (skill) { case "Acrobacia": skill = "🤸🏻♂️ (" + skill; break; case "Reparaçao": skill = "▫️ (" + skill; break; case "Machado": skill = "⚔️ (" + skill; break; case "Arqueiro": skill = "🏹 (" + skill; break; case "Espadas": skill = "⚔️ (" + skill; break; case "Domar": skill = "🦴 (" + skill; break; case "Desarmado": skill = "👊🏻 (" + skill; break; case "Escavaçao": skill = "🥄 (" + skill; break; case "Pescador": skill = "🐟 (" + skill; break; case "Herbalismo": skill = "🌿 (" + skill; break; case "Mineraçao": skill = "⛏ (" + skill; break; case "Lenhador": skill = "🌳 (" + skill; break; } bool found = false; List <Account> accounts = Telegram.data.GetAccountList(vars.atualUser); foreach (Account acc in accounts) { if (acc.getNick().ToLower().Equals(vars.atualNick.ToLower())) { found = true; } } int oldLvl = Telegram.data.skillLevel(vars.atualUser, vars.atualNick, match.Groups[1].Value, int.Parse(level.Replace(",", ""))); int diference = int.Parse(level.Replace(",", "")) - oldLvl; string strdf; if ((diference > 0) && (found)) { strdf = " ➕ <b>" + diference + "</b>%0A"; } else { strdf = "%0A"; } if ((vars.checkSkills) || (vars.checkMultipleSkills)) { vars.skills.Add(skill + ")" + " <b>" + level + "</b> (<code>" + xp1 + "</code>)" + strdf); vars.skillsList++; if (!vars.checkMultipleSkills) { if (vars.skillsList == 10) { response.sendSkills(vars.skills); } } else { if ((vars.checkedNicksCount == vars.multipleskillscheck) && (vars.skillsList == 10)) { vars.skills.Add("════════════════════%0A" + vars.emjinfo + " Este comando será desativado automaticamente Amanhã (18/05/19)%0AComo alternativa use <code>/nomedaskill</code>,%0AExemplo <b>/pescador</b> %0Aou <code>/inspect nick</code>"); response.sendSkills(vars.skills); } } } } else { if (vars.checkingSkill.ToLower().Equals(skill.ToLower())) { bool found = false; List <Account> accounts = Telegram.data.GetAccountList(vars.atualUser); foreach (Account acc in accounts) { if (acc.getNick().ToLower().Equals(vars.atualNick.ToLower())) { found = true; } } int oldLvl = Telegram.data.skillLevel(vars.atualUser, vars.atualNick, skill, int.Parse(level.Replace(",", ""))); int diference = int.Parse(level.Replace(",", "")) - oldLvl; string strdf; if ((diference > 0) && (found)) { strdf = " ➕ <b>" + diference + "</b>%0A"; } else { strdf = "%0A"; } vars.skills.Add(vars.atualNick + ")" + " <b>" + level + "</b> (<code>" + xp1 + "</code>)" + strdf); vars.skillsList++; if (vars.skillsList == vars.multipleskillscheck) { response.sendSkills(vars.skills); } } } } if (Regex.IsMatch(chatclean, "^. Aguarde para utilizar esse comando novamente!$")) { if (vars.checkmctop) { Telegram.SendHtmlMessage(vars.emjneutralface + " Por favor, aguarde um pouco antes de usar este comando novamente!"); } } if (Regex.IsMatch(chatclean, "^Player nao encontrado no banco de dados!$")) { if ((vars.checkSkills) || (vars.checkmcrank)) { Telegram.SendHtmlMessage(vars.emjneutralface + " Ops, Aparentemente essa conta nao existe no servidor, Verifique o nick e tente novamente!"); } } if (Regex.IsMatch(chatclean, "^. Não existe um jogador com o nick (.+)\\.$", RegexOptions.IgnoreCase)) { Match match = Regex.Match(chatclean, "^. Não existe um jogador com o nick (.+)\\.$", RegexOptions.IgnoreCase); Telegram.SendHtmlMessage(vars.emjneutralface + " Ops, Aparentemente a conta " + match.Groups[1].Value + " não existe no servidor, Verifique o nick e tente novamente!"); } if (Regex.IsMatch(chatclean, "^Skill inexistente, veja se digitou corretamente!$")) { if ((vars.checkSkills) || (vars.checkmctop)) { Telegram.SendHtmlMessage(vars.emjneutralface + " Ops, Aparentemente essa skill nao existe no servidor, Verifique e tente novamente!"); } } if (Regex.IsMatch(chatclean, "^(\\d{2,5})\\. (.+) - (\\d{1,5})$")) { Match match = Regex.Match(chatclean, "^(\\d{2,5})\\. (.+) - (\\d{1,5})$"); int pos = int.Parse(match.Groups[1].Value); string nick = match.Groups[2].Value; int level = int.Parse(match.Groups[3].Value); string strpos; int dif; switch (pos) { case 1: strpos = "🥇"; break; case 2: strpos = "🥈"; break; case 3: strpos = "🥉"; break; case 4: strpos = " ➃"; break; case 5: strpos = " ➄"; break; case 6: strpos = " ➅"; break; case 7: strpos = " ➆"; break; case 8: strpos = " ➇"; break; case 9: strpos = " ➈"; break; default: strpos = "(" + pos + ")"; break; } if (pos == 1) { vars.firstlevel = level; } dif = vars.firstlevel - level; if (vars.checkmctop) { if (dif > 0) { vars.mctop.Add(strpos + " <b>" + nick + "</b> (<code>" + level + "</code>) - " + dif + "%0A"); } else { vars.mctop.Add(strpos + " <b>" + nick + "</b> (<code>" + level + "</code>)%0A"); } vars.mcTopList++; if (vars.mcTopList == 10) { response.sendmctop(vars.mctop); } } } if (Regex.IsMatch(chatclean, "^Skills do player (.+)$")) { Match match = Regex.Match(chatclean, "^Skills do player (.+)$"); vars.atualNick = match.Groups[1].Value; if (!vars.singleSkillCheck) { if (vars.checkSkills) { vars.skills.Clear(); vars.skillsList = 0; vars.skills.Add("Essas são as skills de <code>" + match.Groups[1].Value + "</code> :%0A════════════════════%0A"); } if (vars.checkMultipleSkills) { vars.checkedNicksCount++; vars.skillsList = 0; if (vars.checkedNicksCount > 1) { vars.skills.Add("%0A"); } vars.skills.Add("Essas são as skills de <code>" + match.Groups[1].Value + "</code> :%0A════════════════════%0A"); } } } if (Regex.IsMatch(chatclean, "^(Acrobacia|Arqueiro|Machado|Escavaçao|Pescador|Herbalismo|Mineraçao|Reparaçao|Espadas|Lenhador|Global) - Posiçao #([0-9,]{1,6})$")) { Match match = Regex.Match(chatclean, "^(Acrobacia|Arqueiro|Machado|Escavaçao|Pescador|Herbalismo|Mineraçao|Reparaçao|Espadas|Lenhador|Global) - Posiçao #([0-9,]{1,6})$"); string skill = match.Groups[1].Value; int pos = int.Parse(match.Groups[2].Value.Replace(",", "")); if (vars.checkmcrank) { string strpos; switch (pos) { case 1: strpos = "🥇"; break; case 2: strpos = "🥈"; break; case 3: strpos = "🥉"; break; default: strpos = pos.ToString(); break; } vars.mcrank.Add(skill + " (" + strpos + ")%0A"); if (skill.ToLower().Equals("global")) { response.sendmcrank(vars.mcrank); } } } if (Regex.IsMatch(chatclean, "^-=RANKING DE SKILLS=-$")) { if (vars.checkmcrank) { vars.mcrank.Clear(); vars.mcrank.Add("Posição de: <code>" + vars.atualNick + "</code> no Ranking de skills:%0A════════════════════%0A"); } } if (Regex.IsMatch(chatclean, "^--CraftLandia--$")) { if (vars.checkmctop) { vars.mctop.Clear(); vars.mcTopList = 0; vars.mctop.Add("Ranking da skill <code>" + vars.mctopskill + "</code> :%0A════════════════════%0A"); } } if (Regex.IsMatch(chatclean, "^([0-9]+)\\) (.+) \\(([0-9,.]+) Coins\\)$")) { Match match = Regex.Match(chatclean, "([0-9]+)\\) (.+) \\(([0-9,.]+) Coins\\)$"); int pos = int.Parse(match.Groups[1].Value); string nick = match.Groups[2].Value; string money = match.Groups[3].Value; int arraypos = pos - 1; if (vars.tmoney) { vars.moneytop.Insert(arraypos, "[" + pos + "]" + " <b>" + nick + "</b> <code>" + money + "</code>%0A"); vars.moneyTopList++; if (vars.moneyTopList == 15) { response.sendMoneyTop(vars.moneytop); } } } if (Regex.IsMatch(chatclean, "^\\[Tesouro\\] (.+) encontrou um livro: Tesouro Nível (\\d{1,2})$")) { Match match = Regex.Match(chatclean, "^\\[Tesouro\\] (.+) encontrou um livro: Tesouro Nível (\\d{1,2})$"); string nick = match.Groups[1].Value; int level = int.Parse(match.Groups[2].Value); Telegram.data.addTreasure(level, nick); } if (chatclean.Equals("» TOP 15 jogadores mais ricos:")) { if (vars.tmoney) { vars.moneytop.Clear(); vars.moneyTopList = 0; } } if (Regex.IsMatch(chatclean, "(.+) alcançou nível (\\d{1,4}) na skill (.+)!")) { Match notificação = Regex.Match(chatclean, "(.+) alcançou nível (\\d{1,4}) na skill (.+)!"); string nick = notificação.Groups[1].Value; int nivel = int.Parse(notificação.Groups[2].Value); string skill = notificação.Groups[3].Value; bool success = Telegram.data.addNotification(nick, "<i>Alcançou</i> <code>" + nivel + "</code> <i>na skill:</i> <code>" + skill + "</code>"); if (success) { Telegram.SendHtmlMessage("🎉A conta <code>" + nick + "</code> Alcançou <code>" + nivel + "</code> <i>na skill:</i> <code>" + skill + "</code>🎉"); Program.Client.SendText("/g [Bezouro Bot] " + nick + " usa o Bot e ja sabe que alcançou " + nivel + " " + skill); } } if (Regex.IsMatch(chatclean, "^(.+) é o (\\d{1,5}). mais rico do servidor.$")) { if (vars.checkMoneyRank) { vars.checkMoneyRank = false; Match notificação = Regex.Match(chatclean, "^(.+) é o (\\d{1,5}). mais rico do servidor.$"); string nick = notificação.Groups[1].Value; int pos = int.Parse(notificação.Groups[2].Value); Telegram.SendHtmlMessage("<code>" + pos + "º</code>) <b>" + nick + "</b>"); } } if (Regex.IsMatch(chatclean, "^\\(Mensagem de (.+)\\): verificar (\\d\\d\\d\\d)$")) { Match match = Regex.Match(chatclean, "^\\(Mensagem de (.+)\\): verificar (\\d\\d\\d\\d)$"); string Nick = match.Groups[1].Value; int Token = int.Parse(match.Groups[2].Value); Program.Client.SendText("/r Verificando codigo!"); bool success = Telegram.data.Verify(Nick, Token); wait(4000); if (success) { Program.Client.SendText("/r Conta verificada com sucesso!"); } else { Program.Client.SendText("/r Houve um erro ao verificar sua conta!"); } } if (Regex.IsMatch(chatclean, "^» Players online: (\\d{1,4})$")) { Match match = Regex.Match(chatclean, "^» Players online: (\\d{1,4})$"); if (!vars.sendWM) { return; } else { response.sendWM(int.Parse(match.Groups[1].Value)); } } if (Regex.IsMatch(chatclean, "^\\[Server\\] REINICIANDO O SERVIDOR\\.$")) { Telegram.SendHtmlMessage(vars.emjinfo + "O servidor está reiniciando!"); } if (Regex.IsMatch(chatclean, "^\\(Mensagem de (.+)\\): ([0-1]) (\\d{4}) (.+)$")) { Match resposta = Regex.Match(chatclean, "^\\(Mensagem de (.+)\\): ([0-1]) (\\d{4}) (.+)$"); string Sender = resposta.Groups[1].Value; bool privado = Convert.ToBoolean(int.Parse(resposta.Groups[2].Value)); int Token = int.Parse(resposta.Groups[3].Value); string Message = resposta.Groups[4].Value; bool mathToken = Telegram.data.mathToken(Sender, Token); bool waiting = Telegram.data.ResponseLimit(Token); if (mathToken) { if (privado) { Telegram.SendPrivateMessage(Telegram.data.getIdFromToken(Token), vars.replaceEmoji(Message)); } else { if (waiting) { string response = "Mensagem de " + Sender + ":%0A════════════════════%0A" + vars.replaceEmoji(Message); Telegram.SendHtmlMessage(response); } else { Program.Client.SendText("/tell " + Sender + " Desculpe, Tempo de resposta (3s) excedido"); } } } else { Program.Client.SendText("/tell " + Sender + " Token invalido"); } } if (Regex.IsMatch(chatclean, "^\\(Mensagem de (.+)\\): 2 (\\d{4}) (.+)$")) { Match resposta = Regex.Match(chatclean, "^\\(Mensagem de (.+)\\): 2 (\\d{4}) (.+)$"); string Sender = resposta.Groups[1].Value; int Token = int.Parse(resposta.Groups[2].Value); string Message = resposta.Groups[3].Value; bool mathToken = Telegram.data.mathToken(Sender, Token); if (mathToken) { Telegram.data.addNotification(Sender, Message, true, Token); Program.Client.SendText("/tell " + Sender + " Mensagem salva!"); } else { Program.Client.SendText("/tell " + Sender + " Token invalido"); } } if (Regex.IsMatch(chatclean, "^\\(Mensagem de (.+)\\): (\\d{4})$")) { Match resposta = Regex.Match(chatclean, "^\\(Mensagem de (.+)\\): (\\d{4})$"); string Sender = resposta.Groups[1].Value; int Token = int.Parse(resposta.Groups[2].Value); bool mathToken = Telegram.data.mathToken(Sender, Token); string loggednick = Telegram.data.getNickFromToken(Token); if (Telegram.data.Protect(Sender)) { if (mathToken) { Program.Client.SendText("/tell " + Sender + " Bem vindo " + Sender); Telegram.data.login(Sender, true, false, true); } else { new Thread(new ThreadStart(delegate { System.Threading.Thread.Sleep(2000); if (Telegram.data.canLogin(Sender)) { if (loggednick != null) { Program.Client.SendText("/tell " + Sender + " [Protect] ola " + loggednick + ", o " + Sender + " foi avisado do seu login!"); Telegram.data.login(Sender, true, false, true); List <int> tokens = Telegram.data.getTokenProtected(Sender); foreach (int token in tokens) { Telegram.data.addNotification(Sender, loggednick + " Acessou sua conta", true, token); } } else { Program.Client.SendText("/tell " + Sender + " [Protect] Token invalido!"); } } })).Start(); } } } }
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!"); } } }