如何在命令服务中更新PrefixChar? Discord Bot c#

时间:2017-04-25 01:04:00

标签: c# json discord discord.net

UsingCommands(input =>
{
     input.PrefixChar = _dbContext.Prefix;
     //input.CustomPrefixHandler = message => 5; 
     input.AllowMentionPrefix = true;
}));

这是正常设置的方式。前缀从文件中提取并作为PrefixChar放入内存。

_commandService.CreateCommand("changeprefix").Parameter("message").Do(async e =>
            {
                char prefix;
                if (!char.TryParse(e.Args[0], out prefix))
                {
                    await e.User.SendMessage($"Please use the correct format: {_dbContext.Prefix}changeprefix ");
                }
                else
                { 
                    _dbContext.SetPrefix(prefix);
                    //_commandService.Config.CustomPrefixHandler(e.Message);
                    await e.User.SendMessage($"Prefix is now {_dbContext.Prefix}");
                }
            });

这是用户想要更改前缀时运行的命令。在Json文件中更改了前缀,但我似乎无法找到更改CommandService.config的方法,以便它现在正在寻找新的前缀。

我更改了Json文件,它显示文件的内存已更改,但唯一不改变的是CommandService.Config PrefixChar。

我已经评论了一些使用CustomPrefixHandler尝试使其工作的方法,但我似乎仍然无法开始工作。

编辑:

var client = new DiscordClient(input =>
{
    input.LogLevel = LogSeverity.Info;
    input.LogHandler = Log;
}).UsingCommands(input =>
{
    input.PrefixChar = _dbContext.Prefix;
    input.CustomPrefixHandler = message => 5;
    input.AllowMentionPrefix = true;
});

_commandService = new CommandService();
_commandService = client.GetService<CommandService>();

这就是我尝试实例化新命令服务的方法。如果我使用它它仍然只适用于原始前缀。例如:

!changeprefix# //然后运行另一个命令

'#'帮助//无效

!help // Works

0 个答案:

没有答案