Kil*_*ave 1 javascript discord.js
如何使用列出角色中的成员Discord.js。
我的代码:
client.on("message", message => {
var guild = message.guild;
let args = message.content.split(" ").slice(1);
if (!message.content.startsWith(prefix)) return;
if (message.author.bot) return;
if(message.content.startsWith(prefix + 'go4-add')) {
guild.member(message.mentions.users.first()).addRole('415665311828803584');
}
});
Run Code Online (Sandbox Code Playgroud)
我将如何列出所有go4在嵌入中起作用的成员。.go4-list在通道中输入消息后,我希望漫游器以嵌入方式回复。
<Role>.members返回集合的GuildMember秒。只需映射此集合即可获取所需的属性。
这是根据您的情况的示例:
message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag);
Run Code Online (Sandbox Code Playgroud)
这将从具有“ go4”角色的成员中输出用户标签数组。现在,您可以.join(...)将此数组更改为所需的格式。
另外,guild.member(message.mentions.users.first()).addRole('415665311828803584');可以缩短为:message.mentions.members.first().addRole('415665311828803584');
这是一个结果的粗略示例:
client.on("message", message => {
if(message.content.startsWith(`${prefix}go4-add`)) {
message.mentions.members.first().addRole('415665311828803584'); // gets the <GuildMember> from a mention and then adds the role to that member
}
if(message.content == `${prefix}go4-list`) {
const ListEmbed = new Discord.RichEmbed()
.setTitle('Users with the go4 role:')
.setDescription(message.guild.roles.get('415665311828803584').members.map(m=>m.user.tag).join('\n'));
message.channel.send(ListEmbed);
}
});
Run Code Online (Sandbox Code Playgroud)
正如@Wright在他的回答中提到的那样,如果成员过多,则嵌入最多只能容纳2048个字符,因此会抛出错误,因此您可能要在发送嵌入之前进行一些检查,然后通过拆分来处理过大的嵌入将它们分成多个嵌入消息,或者使用基于反应的页面。
| 归档时间: |
|
| 查看次数: |
12414 次 |
| 最近记录: |