예제 #1
0
    public async Task <SetPrefixResult> SetPrefix(SetPrefixCriteria criteria)
    {
        _setPrefixValidator.ValidateAndThrow(criteria);

        _logger.LogDebug("Setting prefix '{Prefix}' for guild '{GuildId}'.", criteria.Prefix, criteria.GuildId);

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

        var options = await _guildAccessor.GetOptions(getOptionsQuery) ?? new GuildOptions();

        options.Id     = criteria.GuildId;
        options.Prefix = criteria.Prefix;

        var saveOptionsQuery = new SaveOptionsQuery()
        {
            Options = options
        };

        await _guildAccessor.SaveOptions(saveOptionsQuery);

        return(new SetPrefixResult()
        {
            Success = true
        });
    }
예제 #2
0
    public async Task Prefix(string prefix)
    {
        using var setTyping = Context.Channel.EnterTypingState();

        var criteria = new SetPrefixCriteria()
        {
            GuildId = Context.Guild.Id,
            Prefix  = prefix
        };

        await _guildOptionsManager.SetPrefix(criteria);

        await ReplyAsync("Done.");
    }