我如何让我的机器人在MongoDB中存储的欢迎消息中提到新用户,并读取转义序列



我希望我的机器人在欢迎消息中提到一个新用户,如果它是由管理员设置的。但是,我不知道如何让我的机器人阅读欢迎消息中的${member},并且知道它应该在那里提到一个用户。

下面是当一个会员加入我的公会时会发生的事情。

client.on('guildMemberAdd', async (member) => {
if (member.bot) {
return
} else {
const welcome = require('./models/welcomeSchema');
const welcomeSchema = await welcome.findOne({
GuildID: member.guild.id
})
if (welcomeSchema) {
const mssg = welcomeSchema.Message;
const chan = welcomeSchema.ChannelID;
member.guild.channels.resolve(chan).send(mssg);
} else if (!welcomeSchema) return
}
});

这是我对Mongo的模式。

const mongoose = require ('mongoose');
const welcomeSchema = new mongoose.Schema({
ChannelID: {
type: String,
required: true
},
Message: {
type: String,
required: true
},
GuildID: {
type: String,
required: true
}
});
module.exports = mongoose.model(`welcomes`, welcomeSchema);

这是用于设置欢迎消息的命令。

const welcomeSchema = require('../models/welcomeSchema');
module.exports.run = async (bot, message, args) => {
const mssg = args.slice(2).join(" ")
if (!message.member.hasPermission("ADMINISTRATOR")) {
return message.reply("you lack sufficiant permissions to execute this command.");
}
if (!mssg) {
return message.reply("please state what message you want to welcome new members with.");
} else if (!args[1]) {
return message.reply("please state the channel ID of which you want this message to be sent in.");
}
const data = await welcomeSchema.findOne({
GuildID: message.guild.id
});
if (!data) {
message.channel.send("Welcome message set.");
const newData = new welcomeSchema({
GuildID: message.guild.id,
Message: mssg,
ChannelID: args[1]
})
newData.save();
} else if (data) {
await welcomeSchema.findOneAndRemove({
GuildID: message.guild.id
})
message.channel.send("Welcome message set.");
const newData = new welcomeSchema({
GuildID: message.guild.id,
Message: mssg,
ChannelID: args[1]
})
newData.save();
}
}
module.exports.config = {
name: "setWelcome",
aliases: []
}

我必须让我的机器人获取数据库中的数据并将其翻译成Javascript,然后发送消息吗?如果是,我该怎么做?

如果我需要提供更多详细信息,请告诉我。我不知道该怎么说清楚。

client.channels.channels.cache.get(chan).send(mssg);替换member.guild.channels.resolve(chan).send(mssg);

最新更新