如何定位特定用户
How to target a specific user
我目前正在使用 C# 和 Discord.NET API 制作我自己的 discord 机器人,但是由于文档有限而且我只在有限的时间内用 C# 编写代码时间,我遇到了一个问题。
我已经从 Discord 聊天中发出关闭机器人的命令,我的问题是实际上每个人都可以使用此命令将其关闭,但我不知道如何针对特定用户以便别人使用命令时不会执行
我的代码:
private void RegisterShutdownCommand()
{
commands.CreateCommand("exit")
.Do((e) =>
{
Environment.Exit(0);
});
}
提前致谢,如果我遗漏了任何可能对修复有用的信息,请问我。 :)
如果您同意使用被允许人员的不和谐 ID(4 个数字),那么您可以使用:
e.User.Id.ToString().Equals("####")
由于您没有指定您希望谁只能使用您的命令,我认为只有您(机器人所有者)才能使用该命令。
首先,去discord复制你的用户ID。您可以通过 right-clicking 您在 discord 中的名字并单击 'copy ID' 来执行此操作:http://prnt.sc/dw9zcw [确保您已打开开发者模式]
那你可以试试这个:
private void RegisterShutdownCommand()
{
commands.CreateCommand("exit")
.Do((e) =>
{
if (e.User.Id != <Your_User_ID>)
{
/*Code to execute when its not the owner.*/
}
else
{
Environment.Exit(0);
}
});
}
基本上只需要使用if-else语句来检查discord中的用户ID是否是所有者。
或者,@chessburgur 建议的内容也适用于 if
条件。
希望这能回答您的问题。
虽然 HallowedFlux 的回答很好,但您应该将其更改为如下内容(干净的代码 + 易于重用):
commands.CreateCommand("exit")
.AddCheck((command, user, channel) => user.Id == <Your_User_ID>)
.Do((e) =>
{
Environment.Exit(0);
});
它也可以用于检查权限等。如果需要,您也可以更改它以向聊天室发送消息,如下所示:
commands.CreateCommand("exit")
.AddCheck((command, user, channel) => user.Id == <Your_User_ID>, "Only the owner can use this command!")
.Do((e) =>
{
Environment.Exit(0);
});
我目前正在使用 C# 和 Discord.NET API 制作我自己的 discord 机器人,但是由于文档有限而且我只在有限的时间内用 C# 编写代码时间,我遇到了一个问题。
我已经从 Discord 聊天中发出关闭机器人的命令,我的问题是实际上每个人都可以使用此命令将其关闭,但我不知道如何针对特定用户以便别人使用命令时不会执行
我的代码:
private void RegisterShutdownCommand()
{
commands.CreateCommand("exit")
.Do((e) =>
{
Environment.Exit(0);
});
}
提前致谢,如果我遗漏了任何可能对修复有用的信息,请问我。 :)
如果您同意使用被允许人员的不和谐 ID(4 个数字),那么您可以使用:
e.User.Id.ToString().Equals("####")
由于您没有指定您希望谁只能使用您的命令,我认为只有您(机器人所有者)才能使用该命令。
首先,去discord复制你的用户ID。您可以通过 right-clicking 您在 discord 中的名字并单击 'copy ID' 来执行此操作:http://prnt.sc/dw9zcw [确保您已打开开发者模式]
那你可以试试这个:
private void RegisterShutdownCommand()
{
commands.CreateCommand("exit")
.Do((e) =>
{
if (e.User.Id != <Your_User_ID>)
{
/*Code to execute when its not the owner.*/
}
else
{
Environment.Exit(0);
}
});
}
基本上只需要使用if-else语句来检查discord中的用户ID是否是所有者。
或者,@chessburgur 建议的内容也适用于 if
条件。
希望这能回答您的问题。
虽然 HallowedFlux 的回答很好,但您应该将其更改为如下内容(干净的代码 + 易于重用):
commands.CreateCommand("exit")
.AddCheck((command, user, channel) => user.Id == <Your_User_ID>)
.Do((e) =>
{
Environment.Exit(0);
});
它也可以用于检查权限等。如果需要,您也可以更改它以向聊天室发送消息,如下所示:
commands.CreateCommand("exit")
.AddCheck((command, user, channel) => user.Id == <Your_User_ID>, "Only the owner can use this command!")
.Do((e) =>
{
Environment.Exit(0);
});