public async Task <GuildOptionsResult?> GetGuildOptions(GuildOptionsCriteria criteria)
    {
        _getGuildOptionsValidator.ValidateAndThrow(criteria);

        _logger.LogDebug("Getting options for guild '{GuildId}'.", criteria.GuildId);

        var query = new GetOptionsQuery()
        {
            GuildId = criteria.GuildId
        };

        var options = await _guildAccessor.GetOptions(query);

        if (options is null)
        {
            _logger.LogDebug("Options do not exist in storage. Returning null.");
            return(null);
        }

        return(new GuildOptionsResult()
        {
            GuildId = options.Id,
            IsVerificationSet = options.FreeCompany?.Id is object && options.VerifiedRoleId > 0,
            Prefix = options.Prefix,
            SignupEmotes = options.SignupEmotes,
            FreeCompanyName = options.FreeCompany?.Name
        });
    }
Example #2
0
    /// <summary>
    /// Gets the custom prefix for the guild.
    /// </summary>
    /// <returns></returns>
    protected async Task <string> GetPrefix()
    {
        if (Context.Guild is object)
        {
            var criteria = new GuildOptionsCriteria()
            {
                GuildId = Context.Guild.Id
            };

            var options = await _guildOptionsManager.GetGuildOptions(criteria);

            if (!string.IsNullOrEmpty(options?.Prefix))
            {
                return(options.Prefix);
            }
        }

        return(_appOptions.CurrentValue.Discord.Prefix);
    }