Discord bot我将如何使bot检查服务器所有权

时间:2020-10-03 17:12:34

标签: discord.js

我正在尝试创建公会所有者专有的命令,我将如何检查?我想要的最接近的是create or alter procedure [dbo].[FindMaxRadif2] @field nvarchar(15), @tbl nvarchar(15), @rv int output as /* create table a(i int) insert into a(i) values (1),(2); declare @v int exec FindMaxRadif2 'i','a', @v out select @v */ begin declare @query nvarchar(max); set @query = concat('select @rv = max(', quotename(@field), ') from ', quotename(@tbl)); --print @query exec sp_executesql @query, N'@rv int output', @rv = @rv output end 权限,但不是所有者

2 个答案:

答案 0 :(得分:2)

只需使用Guild#owner,就像这样:

msg.member.id === msg.guild.ownerID // Returns true if the message was sent by the guild owner.

答案 1 :(得分:2)

D Pardal的回答是100%正确。 我不确定您对文档的熟悉程度如何,但是开始了解如何从Discord.js文档中查找类似内容可能会有所帮助。至少对我来说,它有助于了解它们提供的每个对象/类的功能。如果您已经知道这一点,并且有一点精神障碍,那就忽略它并祝您愉快。否则,我将等待自己的一个问题,因此我想我会根据自己的情况提供帮助。我邀请您与我一起逐步浏览Discord.js.org上的文档,以了解我在说什么。直到最近,我发现Discord.js.org文档极其复杂且难以理解,因此我希望可以为您以及其他任何可以从中受益的人提供一些便利。


可以从中收集的信息是,可以在代表公会的公会对象中找到有关公会成员的数据。我们如何找到呢?

好吧,我们唯一必须开始的地方是(可能是假设您的机器人仅接收消息并根据消息执行命令)我们接收的消息,我们将其称为消息。转到Discord.JS文档,在侧面的Classes上滚动,最终我们看到实际上是Message class

现在,我们可以查看并查看随数据一起提供的数据,这是各种各样的事情,可能对您日后有用。如果我们看起来足够接近,则Message obj确实具有一个听起来像我们在寻找的属性Message.Guild!文档说该属性属于Guild类型,然后单击超链接,将我们带到Guild的类定义。

根据definition,公会对象代表不和谐的公会,因此,如果运气好的话,我们可以获得有关公会所说的事物的一些信息。知道我们正在寻找公会中的特定成员,我们可能会倾向于研究Guild#members属性-尽管这可能很有用,但并不能帮助我们 特别是几乎不知道所有者是谁,而是所有成员都是谁。

最后,如果进一步滚动,我们会发现Guild Class具有一个名为Owner的属性,并且是ownerOwner!根据我们想要的,两者都可能有用。所有者是GuildMember对象,它是包含许多详细信息的用户的表示形式(就像Guild对象如何表示具有大量有关该行业的公会的表示形式)。但是,如果我们只需要ID(例如,将命令发送者的ID检查为所有者的ID),就可以获取所有者对象的ID属性。

以扩展形式,您可以像这样可视化

const guild = message.guild
const ownerID = guild.ownerID

或者像

const ownerID = message.guild.ownerID

如果有什么我可以进一步澄清的,请告诉我!我知道我最长的时间无法弄清楚文档,所以我希望这至少可以有所帮助。