示例#1
0
        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());
        }
示例#2
0
        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());
        }
示例#3
0
        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}'");
                }
            }
        }