如何限制bot在私人消息中给出bot命令的响应?

时间:2018-10-27 15:16:50

标签: c# discord discord.net

我已经创建了该漫游器,但是当某人在私人消息中使用命令DM时,它会在私人消息中给出响应。

我想让bot仅在用户位于服务器和文本通道中时才对命令做出响应。

有帮助吗?

2 个答案:

答案 0 :(得分:1)

因此,基本上,您需要在CommandHandler中添加类似于此的行,这是您可以阻止任何无Guild消息的方式。

 if (message.Channel is SocketDMChannel) return;

一旦通道是SocketDMChannel,它将从方法返回。

答案 1 :(得分:0)

我不得不在许多地方使用此验证,因此我扩展了ModuleBase并将所有验证放入其中。 :

public bool IsFromGuildChat()
{
     var IsFromGuildChat = Context.Guild.Id != 0;
     if (IsFromGuildChat == false)
         throw new RequiresDiscordGuildException(); //custom exception 

      return IsFromGuildChat;
}

然后在命令顶部:

[Command("test")]
[Alias("t")]
public async Task Test()
{
    //validation
    if (!IsFromGuildChat())
        return;

    await ReplyAsync("This is only called from Guild Chat!");
}