Node.js 更改获得公会ID的所有服务器的昵称
有任何方法可以使用机器人所在的所有服务器中的协会ID更改机器人的昵称(机器人具有更改昵称的权限) 这是我用来获取公会ID的代码,但是idk知道如何在所有使用ID的公会中更改昵称Node.js 更改获得公会ID的所有服务器的昵称,node.js,discord.js,Node.js,Discord.js,有任何方法可以使用机器人所在的所有服务器中的协会ID更改机器人的昵称(机器人具有更改昵称的权限) 这是我用来获取公会ID的代码,但是idk知道如何在所有使用ID的公会中更改昵称 const { Client } = require('discord.js'); const client = new Client(); client.on("ready", () => { console.log(`Logged in as ${client.user.tag}!
const { Client } = require('discord.js');
const client = new Client();
client.on("ready", () => {
console.log(`Logged in as ${client.user.tag}!`);
client.user.setPresence({
status:"online",
activity: {
name: "Loading....",
type: "WATCHING"
}
})
})
client.on("message", message => {
const servers = client.guilds.cache.map(guild => guild.id);
console.log(servers);
})
client.login(TOKEN)
是,这可以在对象上使用
.setNickname
首先,您可能希望使用以下方法检查您是否有执行此操作的权限:
if(!message.guild.me.hasPermission('MANAGE_昵称'))返回;//Bot没有更改用户名的权限
然后,要实际设置机器人的昵称,您可以使用:
message.guild.members.get(client.user.id).set昵称(“昵称”);
但是,当收到消息时,这只会更改机器人的昵称,如果您想为所有公会执行此操作,您可以执行以下操作:
const servers=client.guilds.cache.map(guild=>guild.id);
servers.forEach((id)=>{
让guild=client.guilds.cache.get(id);
guild.members.get(client.user.id).set昵称(“昵称”);
});
首先,当机器人接收到新消息时,此代码将控制台记录每个帮会id
client.on("message", message => {
const servers = client.guilds.cache.map(guild => guild.id);
console.log(servers);
})
根据个人经验,我建议在ready
活动中绘制所有行会的地图
要更改bot的昵称(实际上不需要映射所有公会),可以将此代码写入ready
事件:
client.guilds.cache.forEach((guild) => {
guild.me.setNickname(/* Nickname as a string */);
});
您应该将此代码写入ready事件中,因为如果您只是将其写入文件中,您将尝试更改您的昵称,而您甚至还没有从API获取所有协会
如果只想在执行特定命令后执行此操作,可以使用上面的代码并将其粘贴到命令中
参考:
- 个人经历
setInterval
中,以10000或15000作为间隔。顺便说一句,在公会中快速更改昵称可能会导致费率限制