public CommandHandlingService(IServiceProvider provider, DiscordSocketClient discord, CommandService commands)
        {
            InitializeLoader();
            LoadDatabase();
            _discord  = discord;
            _commands = commands;
            _provider = provider;

            _epService         = _provider.GetService <EPService>();
            _afkSertvice       = _provider.GetService <AfkSertvice>();
            _updateService     = _provider.GetService <UserGuildUpdateService>();
            _starBoardService  = _provider.GetService <StarBoardService>();
            _musicService      = _provider.GetService <MusicService>();
            _modService        = _provider.GetService <ModService>();
            _blackListService  = _provider.GetService <BlackListService>();
            _ratelimitService2 = _provider.GetService <RatelimitService2>();
            _globalBans        = _provider.GetService <GlobalBanService>();
            _playingService    = new PlayingWith(_discord);

            SentryService.client = _discord;


            ChangelogService.LoadChangelog();

            _discord.MessageReceived       += _epService.IncreaseEP;
            _discord.MessageReceived       += _afkSertvice.Client_MessageReceived;
            _discord.UserJoined            += _updateService.UserJoined;
            _discord.UserLeft              += _updateService.UserLeft;
            _discord.ReactionAdded         += _starBoardService.StarAddedNew;
            _discord.ReactionRemoved       += _starBoardService.StarRemovedNew;
            _discord.UserVoiceStateUpdated += _musicService.CheckIfAlone;

            //Bans

            _discord.UserBanned   += _modService.Client_UserBanned;
            _discord.UserUnbanned += _modService.Client_UserUnbanned;

            //Modlog

            _discord.MessageDeleted += _modService.Client_MessageDeleted;
            _discord.RoleCreated    += _modService.Client_RoleCreated;
            _discord.RoleDeleted    += _modService.Client_RoleDeleted;
            _discord.RoleUpdated    += _modService.Client_RoleUpdated;

            _discord.ChannelCreated   += _modService.Client_ChannelCreated;
            _discord.ChannelDestroyed += _modService.Client_ChannelDestroyed;
            _discord.ChannelUpdated   += _modService.Client_ChannelUpdated;

            _discord.GuildUpdated += _modService.Client_GuildUpdated;

            //Owner

            _discord.MessageReceived += MessageReceived;
            _discord.GuildAvailable  += Client_GuildAvailable;
            _discord.JoinedGuild     += Client_JoinedGuild;
            _discord.LeftGuild       += Client_LeftGuild;

            //CommandService
            _commands.Log += CommandsOnLog;
        }
Exemple #2
0
 public GlobalBanSyncCommand(
     GlobalBanService globalBanService,
     TelegramService telegramService
     )
 {
     _globalBanService = globalBanService;
     _telegramService  = telegramService;
 }
Exemple #3
0
 public DeleteBanCommand(
     GlobalBanService globalBanService,
     TelegramService telegramService
     )
 {
     _telegramService  = telegramService;
     _globalBanService = globalBanService;
 }
 public GBanRegisterCommand(
     TelegramService telegramService,
     GlobalBanService globalBanService
     )
 {
     _telegramService  = telegramService;
     _globalBanService = globalBanService;
 }
 public ImportGBanCommand(
     TelegramService telegramService,
     GlobalBanService globalBanService
     )
 {
     _telegramService  = telegramService;
     _globalBanService = globalBanService;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="AntiSpamService"/> class.
 /// </summary>
 /// <param name="spamWatchConfig"></param>
 /// <param name="cacheService"></param>
 /// <param name="chatService"></param>
 /// <param name="localizationService"></param>
 /// <param name="globalBanService">The global ban service.</param>
 /// <param name="settingsService"></param>
 public AntiSpamService(
     IOptionsSnapshot <SpamWatchConfig> spamWatchConfig,
     CacheService cacheService,
     ChatService chatService,
     LocalizationService localizationService,
     GlobalBanService globalBanService,
     SettingsService settingsService
     )
 {
     _spamWatchConfig     = spamWatchConfig.Value;
     _cacheService        = cacheService;
     _chatService         = chatService;
     _localizationService = localizationService;
     _globalBanService    = globalBanService;
     _settingsService     = settingsService;
 }
        public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args,
                                               CancellationToken cancellationToken)
        {
            _telegramService = new TelegramService(context);
            var msg = _telegramService.Message;

            _globalBanService = new GlobalBanService(msg);

            var chatId     = msg.Chat.Id;
            var fromId     = msg.From.Id;
            var partedText = msg.Text.Split(" ");
            var param0     = partedText.ValueOfIndex(0) ?? "";
            var param1     = partedText.ValueOfIndex(1) ?? "";
            var userId     = param1;
            var reason     = msg.Text
                             .Replace(param0, "", StringComparison.CurrentCulture)
                             .Replace(param1, "", StringComparison.CurrentCulture).Trim();

            if (!fromId.IsSudoer())
            {
                await _telegramService.SendTextAsync("Anda haram melakukan ini")
                .ConfigureAwait(false);

                return;
            }

            if (param1 == "sync")
            {
                await _telegramService.SendTextAsync("Memperbarui cache..")
                .ConfigureAwait(false);

                await Sync.SyncGBanToLocalAsync()
                .ConfigureAwait(false);

                await _telegramService.EditAsync("Selesai memperbarui..")
                .ConfigureAwait(false);

                return;
            }

            if (msg.ReplyToMessage == null)
            {
                if (param1.IsNullOrEmpty())
                {
                    await _telegramService.SendTextAsync("Balas seseorang yang mau di ban")
                    .ConfigureAwait(false);

                    return;
                }

                userId = param1;
                reason = msg.Text
                         .Replace(param0, "", StringComparison.CurrentCulture)
                         .Replace(param1, "", StringComparison.CurrentCulture).Trim();
            }
            else
            {
                var repMsg = msg.ReplyToMessage;
                userId = repMsg.From.Id.ToString();
                reason = msg.Text
                         .Replace(param0, "", StringComparison.CurrentCulture).Trim();
            }

            Log.Information("Execute Global Ban");
            await _telegramService.SendTextAsync("Mempersiapkan..")
            .ConfigureAwait(false);

            // await _telegramService.DeleteAsync(msg.MessageId)
            // .ConfigureAwait(false);

            var banData = new GlobalBanData()
            {
                UserId     = userId.ToInt(),
                BannedBy   = fromId,
                BannedFrom = chatId,
                ReasonBan  = reason.IsNullOrEmpty() ? "no-reason" : reason
            };

            var isBan = await _globalBanService.IsExist(banData)
                        .ConfigureAwait(false);

            if (isBan)
            {
                await _telegramService.EditAsync("Pengguna sudah di ban")
                .ConfigureAwait(false);

                return;
            }

            await _telegramService.EditAsync("Menyimpan informasi..")
            .ConfigureAwait(false);

            var save = await _globalBanService.SaveBanAsync(banData)
                       .ConfigureAwait(false);

            // var save = await _globalBanService.SaveBanAsync(data);
            Log.Information($"SaveBan: {save}");

            await _telegramService.EditAsync("Memperbarui cache.")
            .ConfigureAwait(false);

            await Sync.SyncGBanToLocalAsync()
            .ConfigureAwait(false);


            await _telegramService.EditAsync("Pengguna berhasil di tambahkan.")
            .ConfigureAwait(false);

            // await _telegramService.DeleteAsync(delay: 3000)
            // .ConfigureAwait(false);
        }
 public GlobalBanModule(GlobalBanService service)
 {
     _banService = service;
 }
        public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken)
        {
            var msg = context.Update.Message;

            _telegramService  = new TelegramService(context);
            _settingsService  = new SettingsService(msg);
            _globalBanService = new GlobalBanService(context.Update.Message);
            await _telegramService.DeleteAsync(msg.MessageId)
            .ConfigureAwait(false);

            Log.Information("New Chat Members...");

            var chatSettings = _telegramService.CurrentSetting;

            Settings = chatSettings;

            if (!chatSettings.EnableWelcomeMessage)
            {
                Log.Information("Welcome message is disabled!");
                return;
            }

            var newMembers  = msg.NewChatMembers;
            var isBootAdded = await newMembers.IsBotAdded().ConfigureAwait(false);

            if (isBootAdded)
            {
                var isRestricted = await _telegramService.EnsureChatRestrictionAsync()
                                   .ConfigureAwait(false);

                if (isRestricted)
                {
                    return;
                }

                var botName  = BotSettings.GlobalConfiguration["Engines:ProductName"];
                var sendText = $"Hai, perkenalkan saya {botName}" +
                               $"\nFYI saya di bangun ulang menggunakan .NET." +
                               $"\n\nAku adalah bot pendebug dan grup manajemen yang di lengkapi dengan alat keamanan. " +
                               $"Agar saya berfungsi penuh, jadikan saya admin dengan level standard. " +
                               $"\n\nAku akan menerapkan konfigurasi standard jika aku baru pertama kali masuk kesini. " +
                               $"\n\nUntuk melihat daftar perintah bisa ketikkan /help";

                await _telegramService.SendTextAsync(sendText).ConfigureAwait(false);

                await _settingsService.SaveSettingsAsync(new Dictionary <string, object>()
                {
                    { "chat_id", msg.Chat.Id },
                    { "chat_title", msg.Chat.Title }
                }).ConfigureAwait(false);

                if (newMembers.Length == 1)
                {
                    return;
                }
            }

            var parsedNewMember = await ParseMemberCategory(newMembers).ConfigureAwait(false);

            var allNewMember  = parsedNewMember.AllNewMember;
            var allNoUsername = parsedNewMember.AllNoUsername;
            var allNewBot     = parsedNewMember.AllNewBot;

            if (allNewMember.Length > 0)
            {
                var chatTitle   = msg.Chat.Title;
                var greet       = Time.GetTimeGreet();
                var memberCount = await _telegramService.GetMemberCount()
                                  .ConfigureAwait(false);

                var newMemberCount = newMembers.Length;

                Log.Information("Preparing send Welcome..");

                if (chatSettings.WelcomeMessage.IsNullOrEmpty())
                {
                    chatSettings.WelcomeMessage = $"Hai {allNewMember}" +
                                                  $"\nSelamat datang di kontrakan {chatTitle}" +
                                                  $"\nKamu adalah anggota ke-{memberCount}";
                }

                var sendText = chatSettings.WelcomeMessage.ResolveVariable(new
                {
                    allNewMember,
                    allNoUsername,
                    allNewBot,
                    chatTitle,
                    greet,
                    newMemberCount,
                    memberCount
                });

                InlineKeyboardMarkup keyboard = null;
                if (!chatSettings.WelcomeButton.IsNullOrEmpty())
                {
                    keyboard = chatSettings.WelcomeButton.ToReplyMarkup(2);
                }

                if (chatSettings.EnableHumanVerification)
                {
                    Log.Information("Human verification is enabled!");
                    Log.Information("Adding verify button..");

                    var userId       = newMembers[0].Id;
                    var verifyButton = $"Saya Manusia!|verify {userId}";

                    var withVerifyArr = new string[] { chatSettings.WelcomeButton, verifyButton };
                    var withVerify    = string.Join(",", withVerifyArr);

                    keyboard = withVerify.ToReplyMarkup(2);
                }

                var prevMsgId = chatSettings.LastWelcomeMessageId.ToInt();


                var sentMsgId = -1;

                if (chatSettings.WelcomeMediaType != MediaType.Unknown)
                {
                    var mediaType = (MediaType)chatSettings.WelcomeMediaType;
                    sentMsgId = (await _telegramService.SendMediaAsync(
                                     chatSettings.WelcomeMedia,
                                     mediaType,
                                     sendText,
                                     keyboard).ConfigureAwait(false)).MessageId;
                }
                else
                {
                    sentMsgId = (await _telegramService.SendTextAsync(sendText, keyboard)
                                 .ConfigureAwait(false)).MessageId;
                }

                if (!chatSettings.EnableHumanVerification)
                {
                    await _telegramService.DeleteAsync(prevMsgId).ConfigureAwait(false);
                }

                await _settingsService.SaveSettingsAsync(new Dictionary <string, object>()
                {
                    { "chat_id", msg.Chat.Id },
                    { "chat_title", msg.Chat.Title },
                    { "members_count", memberCount },
                    { "last_welcome_message_id", sentMsgId }
                }).ConfigureAwait(false);

                await _settingsService.UpdateCache().ConfigureAwait(false);
            }
            else
            {
                Log.Information("Welcome Message ignored because User is Global Banned.");
            }
        }
Exemple #10
0
        public override async Task HandleAsync(IUpdateContext context, UpdateDelegate next, string[] args,
                                               CancellationToken cancellationToken)
        {
            _telegramService = new TelegramService(context);
            var msg        = _telegramService.Message;
            var chatId     = msg.Chat.Id;
            var fromId     = msg.From.Id;
            var partedText = msg.Text.Split(" ");
            var param1     = partedText.ValueOfIndex(1); // User ID

            _globalBanService = new GlobalBanService(msg);

            if (!fromId.IsSudoer())
            {
                await _telegramService.SendTextAsync("Anda haram melakukan ini")
                .ConfigureAwait(false);

                return;
            }

            var repMsg = msg.ReplyToMessage;
            var userId = param1.ToInt();

            Log.Information("Execute Global DelBan");
            await _telegramService.SendTextAsync("Mempersiapkan..")
            .ConfigureAwait(false);

            // await _telegramService.DeleteAsync(msg.MessageId);

            var isBan = await _globalBanService.IsExist(userId)
                        .ConfigureAwait(false);

            Log.Information($"IsBan: {isBan}");
            if (!isBan)
            {
                await _telegramService.EditAsync("Pengguna tidak di ban")
                .ConfigureAwait(false);

                return;
            }

            await _telegramService.EditAsync("Memperbarui informasi..")
            .ConfigureAwait(false);

            var save = await _globalBanService.DeleteBanAsync(userId)
                       .ConfigureAwait(false);

            Log.Information($"SaveBan: {save}");

            await _telegramService.EditAsync("Memperbarui Cache..")
            .ConfigureAwait(false);

            await Sync.SyncGBanToLocalAsync()
            .ConfigureAwait(false);

            await _telegramService.EditAsync("Misi berhasil.")
            .ConfigureAwait(false);

            // await _telegramService.DeleteAsync(delay: 3000)
            // .ConfigureAwait(false);
        }