Discord Bot JS V13,没有删除特定角色并添加特定角色
我的代码无法正常工作,我需要您的帮助。它没有显示任何仅在某些机器人中添加位置。
client.on('messageCreate', async(message) => {
// Membros role id = 871442068508123136
// Manutenção role id = 978322456328687656
let args = message.content.replace(config.prefix, "").split(" ");
let command = args.shift();
if(message.content.startsWith(config.prefix)) {
if(command === 'manutencao') {
const cargo = message.guild.roles.cache.get("871442068508123136");
message.guild.members.cache.forEach((member) => {
if (member.roles.cache.has(cargo)) { // Ativar manutenção
member.roles.remove("871442068508123136"); // Tirar role membro
member.roles.add("978322456328687656"); // Adicionar role Manutenção
console.log(member)
message.channel.send("Ativado") // Mensagem de aviso que funcionou
}
else if(!member.roles.cache.has(cargo)) { // Desativar a Manutenção
member.roles.remove("978322456328687656"); // Tirar o role Manutenção
member.roles.add("871442068508123136"); // Adiciona rrole membro
console.log(member)
message.channel.send("Desativado") // Mensagem de aviso que funcionou
}
});
}
}
});
机器人必须做什么?
- 检查我指定的角色
- 是否有这样的角色,机器人必须删除该角色并添加新角色。
- 如果成员没有这个角色,则机器人将必须删除另一个特定角色并添加新角色。
PS:机器人必须在服务器的所有成员上执行此操作,除了机器人。
My code is not working, I need your help. It does not show any it only adds position in some bots.
client.on('messageCreate', async(message) => {
// Membros role id = 871442068508123136
// Manutenção role id = 978322456328687656
let args = message.content.replace(config.prefix, "").split(" ");
let command = args.shift();
if(message.content.startsWith(config.prefix)) {
if(command === 'manutencao') {
const cargo = message.guild.roles.cache.get("871442068508123136");
message.guild.members.cache.forEach((member) => {
if (member.roles.cache.has(cargo)) { // Ativar manutenção
member.roles.remove("871442068508123136"); // Tirar role membro
member.roles.add("978322456328687656"); // Adicionar role Manutenção
console.log(member)
message.channel.send("Ativado") // Mensagem de aviso que funcionou
}
else if(!member.roles.cache.has(cargo)) { // Desativar a Manutenção
member.roles.remove("978322456328687656"); // Tirar o role Manutenção
member.roles.add("871442068508123136"); // Adiciona rrole membro
console.log(member)
message.channel.send("Desativado") // Mensagem de aviso que funcionou
}
});
}
}
});
What does bot have to do?
- Check the role I specify
- If members have such a role, the bot will have to remove that role and add a new one.
- if the members don't have that role, the bot will have to remove another specific role and add a new one.
PS: The bot has to do this on all members of the server, except the bots.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
guild.members.fetch()
用于从服务器中获取所有成员。而不是使用
Message.guild.Roles.Cache.get(cole.ID)
在has()
中,您应该直接使用cole.ID
。如果(Member.user.bot)返回;
:如果成员是bot,则返回。而且,如果您在循环内使用
Message.Channel.Send()
,它将向每个成员发送消息。Use
guild.members.fetch()
for fetching all members from a server.Instead of using
message.guild.roles.cache.get(role.id)
inhas()
, you should userole.id
directly.if (member.user.bot) return;
: return if member is bot.And if you use the
message.channel.send()
inside the loop, it will send a message to the server for each member.