コード例 #1
0
            public override Task BeforeExecutionAsync(CommandContext context)
            {
                var guild  = context.GetGuild();
                var config = this._settings.GetVoiceSettings(guild.Id, context.User.Id);

                if (config == null)
                {
                    config = new UserVoiceSettings()
                    {
                        UserId   = context.User.Id,
                        GuildId  = guild.Id,
                        IsActive = false,
                    };
                    this._settings.SetVoiceSettings(config);
                }
                return(Task.CompletedTask);
            }
コード例 #2
0
        public async Task AddVoxNotification(
            CommandContext context,
            [Description("The status you have to be at to be notified. Values: Online, Idle, Busy, DoNotDisturb, Offline")]
            string status = "Idle"
            )
        {
            if (!Enum.TryParse(status, true, out UserStatus statusEnum))
            {
                statusEnum = UserStatus.Idle;
            }
            ;

            var guild  = context.GetGuild();
            var config = _settings.GetVoiceSettings(guild.Id, context.User.Id);

            if (config == null)
            {
                config = new UserVoiceSettings()
                {
                    UserId       = context.User.Id,
                    GuildId      = guild.Id,
                    TargetStatus = statusEnum,
                    IsActive     = true,
                };
            }
            else
            {
                config.TargetStatus = statusEnum;
                config.IsActive     = true;
            }
            this._settings.SetVoiceSettings(config);

            await context.RespondAsync(
                $"Notifications {(config.IsActive ? "active" : "inactive")}. " +
                $"Minimum discord status: {config.TargetStatus}. " +
                $"Filter: {config.FilterMode}."
                );

            return;
        }