Node.js 如何仅在bot启动和prefix change命令执行时查询特定于服务器的前缀?
我的机器人目前通过连接到mongodb来工作,然后在发送的每条消息上执行此代码Node.js 如何仅在bot启动和prefix change命令执行时查询特定于服务器的前缀?,node.js,mongodb,discord.js,Node.js,Mongodb,Discord.js,我的机器人目前通过连接到mongodb来工作,然后在发送的每条消息上执行此代码 let guildData; try { guildData = await guildModel.findOne({ serverID: message.guild.id }); if (!guildData) { let guild = await guildModel.create({ serverID: message.guild.id,
let guildData;
try {
guildData = await guildModel.findOne({ serverID: message.guild.id });
if (!guildData) {
let guild = await guildModel.create({
serverID: message.guild.id,
serverName: message.guild.name,
prefix: '-',
});
guild.save();
}
} catch (err) { console.log(err); }
然后我将guildata.prefix
分配给prefix
,然后检查它
var prefix = '-';
try {
prefix = guildData.prefix;
} catch {}
if (!message.content.startsWith(prefix)) return;
因此,也许我可以在
client.on('ready')
上加载前缀一次,然后每次有人执行prefix
(一个更改前缀的命令)。我已经让prefix change命令起作用了,但是它使用了客户端的guildata
。在('message'…)
上,我刚刚意识到我可以创建一个新的Discord.Collection(),存储guild.id及其前缀。因此,在ready
中,我将遍历数据库中的每个帮会,将它们中的前缀设置为可由bot自动缓存的集合