所以基本上我试图制作一个命令,当执行该命令并提供id时,它会将其保存为!funi (ID)
,如果它看到id的所有者发送了一条消息,它会说"闭嘴";。我使用MongoDB作为数据库。这就是代码的样子:
const Schema = require('../models/shut-schema')
module.exports = {
name: 'funi',
aliases: ['unfuni'],
description: 'shut up noob',
async execute(message, args, cmd, client, Discord){
if(!args[0]) return message.reply('Please insert an ID so I can make them regret their life choices.');
if(isNaN(args[0])) return message.reply("That's not an ID dumb dumb")
const ID = args[0];
Schema.findOne(async (err, data) => {
if(data){
data.ID = ID;
data.save();
} else {
new Schema({
ID: ID
}).save();
}
await message.reply("ID saved")
})
if (ID) message.reply("shut up")
}
}
这就是大便模式:
const mongoose = require('mongoose');
let Schema = new mongoose.Schema({
ID: String,
})
module.exports = mongoose.model('Noobs', Schema)
但显然,它不起作用。只有当id的所有者执行命令并插入id时,它才会响应。我该如何使它响应所有者id的所有消息,即使不使用前缀?很抱歉让人困惑。
PS。如果它不需要数据库,那也没关系。我不确定是不是。只是想把它包括在内。
我真的找到了答案。在使用前缀之前,我只需要将命令放在消息事件中,现在它就可以工作了。我还在公会ID中添加了一个字符串,这样每个公会都可以有一个noob。