我已经从我的机器人的不和谐js机器人的支持服务器上收到了报告,该报告表明我的机器人被多种方式滥用。 我想在启动bot时有一种方法来查看服务器列表以及邀请到这些服务器的链接。我不知道服务器的ID或其他任何信息。
The most I've managed to find out how to do is this
var server = client.guilds.get("idk the id part");
console.log('I am in the following servers:');
server.createInvite().then(invite =>
console.log(server.name + "-" + invite.url)
);
});```
答案 0 :(得分:0)
您可以等待机器人发出ready
事件并循环通过公会集合:
client.once('ready', () => {
// client.guilds should be ready
});
或单独处理每个公会:
client.on('guildCreate', (guild) => {
// The guild the bot just joined/connected to
// Should also be emitted when the bot launches
});
任何一种方法都可以,但是我的建议是第二种方法,因为这也将允许您在机器人运行时跟踪加入事件。
答案 1 :(得分:0)
在您的ready
事件(client.on('ready', () => {}
)中,添加以下几行:
client.guilds.tap(guild => {
console.log(`Name: ${guild.name} ID: ${guild.id}`);
})
这应该输出
Name: Test1 ID: 00000000000000
在每个服务器的控制台中。
另外,考虑到发出大量邀请可能会阻塞您的机器人,并且通常比帮助服务器管理员更多地是障碍,因此您可以考虑使用createinvite
命令:
const svID = args[0];
const guild = client.guilds.find(guild => guild.id === svID);
const channel = guild.channels.find(channel => channel.position === 1);
channel.createInvite()
.then(invite => message.reply(invite.code));