使用 discord.js 获取所有具有特定角色的用户
Get all users with specific role using discord.js
我正在 RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number: undefined.
使用此代码。有人可以帮我解决这里 undefined
的问题吗?
我正在使用 discord.js v13.6.0.
require('dotenv').config();
const token = process.env.bot_token;
const { Client, Intents } = require("discord.js")
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.NON_PRIVILEGED,
Intents.GUILD_MEMBERS
]
});
const prefix = '!getUserByRole';
client.on("messageCreate", (message) =>{
if(!message.content.startsWith(prefix) || message.author.bot || message.author.id) return;
const args = message.content.slice(prefix.length).split(/ +/);
const roleId = args[1];
message.guild.members.fetch().then((members)=>{
members.filter(mmbr => mmbr.roles.cache.get(roleId)).map(m => {
console.log(m.user.tag, m.user.id);
});
})
})
client.login(token);
在 discord.js v13 中,Intents.ALL
、Intents.NON_PRIVILEGED
和 Intents.PRIVILEGED
都已被删除以阻止不良做法。这意味着您需要删除 Intents.NON_PRIVILEGED
.
还有,没有Intents.GUILD_MEMBERS
,应该是Intents.FLAGS.GUILD_MEMBERS
。所以你需要像这样更新你的代码:
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MEMBERS,
],
});
我正在 RangeError [BITFIELD_INVALID]: Invalid bitfield flag or number: undefined.
使用此代码。有人可以帮我解决这里 undefined
的问题吗?
我正在使用 discord.js v13.6.0.
require('dotenv').config();
const token = process.env.bot_token;
const { Client, Intents } = require("discord.js")
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.NON_PRIVILEGED,
Intents.GUILD_MEMBERS
]
});
const prefix = '!getUserByRole';
client.on("messageCreate", (message) =>{
if(!message.content.startsWith(prefix) || message.author.bot || message.author.id) return;
const args = message.content.slice(prefix.length).split(/ +/);
const roleId = args[1];
message.guild.members.fetch().then((members)=>{
members.filter(mmbr => mmbr.roles.cache.get(roleId)).map(m => {
console.log(m.user.tag, m.user.id);
});
})
})
client.login(token);
在 discord.js v13 中,Intents.ALL
、Intents.NON_PRIVILEGED
和 Intents.PRIVILEGED
都已被删除以阻止不良做法。这意味着您需要删除 Intents.NON_PRIVILEGED
.
还有,没有Intents.GUILD_MEMBERS
,应该是Intents.FLAGS.GUILD_MEMBERS
。所以你需要像这样更新你的代码:
const client = new Client({
intents: [
Intents.FLAGS.GUILDS,
Intents.FLAGS.GUILD_MESSAGES,
Intents.FLAGS.GUILD_MEMBERS,
],
});