Discord.js 使用一个脚本登录多个bot帐户的方法?

Discord.js 使用一个脚本登录多个bot帐户的方法?,discord.js,Discord.js,我试过的方法。 通过令牌循环,这很好,但没有太多空间来定制bot的功能。例如,在一个特定的通道中有每种机器人类型,通过这个示例,我已经意识到机器人类型紧跟在同一个位置 const auth = require('./tokens.json') const Discord = require('discord.js') for (const token of auth.Tokens) { const client = new Discord.Client() client.on(

我试过的方法。 通过令牌循环,这很好,但没有太多空间来定制bot的功能。例如,在一个特定的通道中有每种机器人类型,通过这个示例,我已经意识到机器人类型紧跟在同一个位置

const auth = require('./tokens.json')
const Discord = require('discord.js')

for (const token of auth.Tokens) {
    const client = new Discord.Client()
    client.on('ready', () => {
        console.log('I am ready !')
        console.log(client.user.id)
    })
    client.login(token)
}
还可以创建discord.client的多个实例

const Discord = require('discord.js');
const client1 = new Discord.Client();
const client2 = new Discord.Client();
ect...

client1.once('ready',() => {
})
client1.on('message', async(message) => {

})

client2.once('ready',() => {
})
client2.on('message', async(message) => {

})

client1.login(CONFIG.Token1);
client2.login(CONFIG.Token2);
我只是想知道是否还有其他方法可以做到这一点,假设我有5-6个机器人,我使用第二种方法,代码会很长,这取决于我想添加什么。 我确实考虑过添加这样的循环

for(var i = 0; i < token.length; i++)
for(变量i=0;i
当i++增加通道id时,将通道id链接到特定的数字。所以每个机器人都会有自己的号码和通道id,但我不确定这是不是一个可行的方法,或者它是否足够好用。
如果您有任何建议,我们将不胜感激,并感谢您的阅读。

我认为您的第二种方法:

创建多个不协调客户端实例 这是最好的办法

为机器人程序指定特定通道的最简单方法是更改其discord权限并物理地为其分配通道

另一种方式可能是:

client.channelID=
client2.channelID=
// ... 代码
client.on('message',message=>{
if(message channel.id!==client.channelID)返回;
// ...

我认为您的第二种方法:

创建多个不协调客户端实例 这是最好的办法

为机器人程序指定特定通道的最简单方法是更改其discord权限并物理地为其分配通道

另一种方式可能是:

client.channelID=
client2.channelID=
//…代码
client.on('message',message=>{
if(message channel.id!==client.channelID)返回;
// ...

我能够使用以下代码从同一脚本运行多个机器人程序:

const auth=['TOKEN1','TOKEN2']
const Discord=require('Discord.js')
for(身份验证的常量标记){
const client=new Discord.client()
client.on('ready',()=>{
console.log('我准备好了!')
console.log(client.user.id)
});
client.on('message',(msg)=>{
如果(msg.content==='!ping'){msg.reply('pong!')}
});
client.login(令牌);
}

我能够使用以下代码从同一脚本运行多个机器人程序:

const auth=['TOKEN1','TOKEN2']
const Discord=require('Discord.js')
for(身份验证的常量标记){
const client=new Discord.client()
client.on('ready',()=>{
console.log('我准备好了!')
console.log(client.user.id)
});
client.on('message',(msg)=>{
如果(msg.content==='!ping'){msg.reply('pong!')}
});
client.login(令牌);
}

如果您担心代码太长,那么您可以将每个bot代码分离到不同的文件中。然后在index.js中,您将对这些文件中的每个文件执行require操作。如果您传递到client.on的函数在各个bot中基本相似,那么您可以将其分离到定义的函数中,以便重用。cod中的任何细微差异然后,可以通过使用client.user.id和switch语句来确定bot之间的e。如果您担心代码太长,那么可以将每个bot代码分离到一个不同的文件中。然后在index.js中,您将对这些文件中的每个文件都做一个要求。如果传入client.on的函数在各个bot之间基本相似,那么您可以将其分离为一个已定义的函数,以便重用。然后,可以使用client.user.id和switch语句找出机器人程序之间代码的任何细微差异。我为每个discord客户端的第二个方法所做的是,我将discord id添加到每个客户端的client.on函数中。我希望我能以某种方式将机器人程序放入1个循环中对于读取/发送消息的单个通道id,您展示的示例类似于我的第二个方法,除了您没有添加客户端2。对于我为每个discord客户端所做的第二个方法,我将discord id添加到客户端中。关于每个客户端的功能。我希望我能够以某种方式使用单个通道I将机器人放入1个循环中ds阅读/发送消息您展示的示例与我的第二种方法类似,只是您没有添加client2.on