private async Task UserLeft(SocketGuildUser user) { ConstVariables.CDiscord guild = ConstVariables.CServer[user.Guild.Id]; if (guild.EndUser == user.Id || guild.DefaultChannelSendMessageForInfoUsers == 0) { return; } string titl = null, body = null; using (SqlConnection connect = new SqlConnection(ConstVariables.DateBase.ConnectionStringKey)) { try { connect.Open(); using (SqlCommand command = new SqlCommand("sp_GetGoodbyeText", connect) { CommandType = System.Data.CommandType.StoredProcedure }) { SqlParameter GuildidParameter = new SqlParameter { ParameterName = "@GuildId", DbType = System.Data.DbType.Int64, Value = user.Guild.Id }; command.Parameters.Add(GuildidParameter); SqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { reader.Read(); titl = reader.GetString(0).Trim(' '); body = reader.GetString(1).Trim(' '); reader.Close(); } } } catch (Exception e) { ConstVariables.Logger.Error(e); } } EmbedBuilder builder = new EmbedBuilder(); builder.WithColor(ConstVariables.InfoColor); body = String.Format(body, user.Username, user.Discriminator); builder.WithDescription(body); builder.WithTitle(titl); ConstVariables.Logger.Info($"is func 'UserLeft' is guild '{user.Guild.Name}' is user '{user.Username}#{user.Discriminator}'"); await guild.GetChannelSendMessageForInfoUsers().SendMessageAsync("", false, builder.Build()); }
private void Help(SocketCommandContext Context) { if (!ConstVariables.ThisTest) { return; } SocketGuildUser user = Context.Guild.GetUser(Context.User.Id); ConstVariables.CDiscord guild = ConstVariables.CServer[Context.Guild.Id]; if (!guild.IsEntryOrСategoryChannel(Context.Channel.Id, IsCommand: true)) { return; } bool IsRole = false; foreach (var role in user.Roles) { if (guild.EntryRole(role.Id)) { IsRole = true; break; } } EmbedBuilder builder = new EmbedBuilder(); string TitlList = "Префикс команд для бота 'sh!' или 'Sh!'"; builder.AddField("Параметры", "[] - обязательно \r\n<> - не обязательно") .WithTitle(TitlList) .AddField("Group: Default", ConstVariables.UTHelp, true); if (IsRole) { builder.AddField("Group: Admin", ConstVariables.ATHelp, true); } builder.WithColor(Color.Orange) .WithFooter(Context.Guild.Name, Context.Guild.IconUrl); ConstVariables.Logger.Info($"is Guid '{Context.Guild.Name}' is command 'help' is user '{user.Username}' is channel '{Context.Channel.Name}' is IsRole '{IsRole}'"); Context.Channel.SendMessageAsync("", false, builder.Build()); }
private async Task MessageRec(SocketMessage Messag) { string mess = Messag.Content.ToLower(); SocketUserMessage Messege = Messag as SocketUserMessage; SocketCommandContext Context = new SocketCommandContext(_Client, Messege); if (!ConstVariables.ThisTest || Messag.Author.IsBot) { return; } bool IsTrigger = false; ConstVariables.CDiscord guild = ConstVariables.CServer[Context.Guild.Id]; ISocketMessageChannel channel = Context.Channel; if ((guild.IsEntryOrСategoryChannel(channel.Id) && !Context.User.IsBot) || ConstVariables.ThisTest) { int count = ConstVariables.CountTextRequst(mess, Context.Guild.Id); if (count > 0) { string str = ConstVariables.TextRequst(mess, Context.Guild.Id); if (str != ConstVariables.NCR) { if (str.IndexOf("{0}") >= 0) { str = String.Format(str, Context.User.Mention); } await channel.SendMessageAsync(str); IsTrigger = true; } } ConstVariables.ResultIndexOfText result = ConstVariables.IndexOfText(mess); if (result.isSearch && (result.GuildID == Context.Guild.Id || result.GuildID == 0 || ConstVariables.ThisTest)) { if (result.Condition == "{0}") { if (result.TextAnswer.IndexOf("{0}") >= 0) { result.TextAnswer = String.Format(result.TextAnswer, Context.User.Mention); } await channel.SendMessageAsync(result.TextAnswer); } else { bool IsCondition = false; bool IsParam1 = false; if (result.Condition.IndexOf("{1}") > -1) { if ((guild.CountRes < guild.Restruction) && (!ConstVariables.CServer[Context.Guild.Id].Trigger)) { IsCondition = true; } IsParam1 = true; } else { IsCondition = true; } if (result.Condition.IndexOf("{2}") > -1) { if (mess.IndexOf("бот") == 0 || MentionUser(Context, _Client.CurrentUser.Id)) { IsCondition &= true; } else { IsCondition = false; } } else { IsCondition &= true; } if (IsCondition) { if (result.TextAnswer.IndexOf("{0}") >= 0) { result.TextAnswer = String.Format(result.TextAnswer, Context.User.Mention); } await channel.SendMessageAsync(result.TextAnswer); if (IsParam1) { guild.CountRes++; ConstVariables.CServer[Context.Guild.Id].Trigger = true; new Program().OneMin(Context.Guild.Id); } } } IsTrigger = true; } if (IsTrigger) { ConstVariables.Logger.Info($" Сработал тригер: '{mess}'! is Guid '{guild.GetGuild().Name}' is channel '{channel.Name}' is user '{Context.User.Username}#{Context.User.Discriminator}'"); } } }