我正在学习Javascript,并决定编写Discord机器人代码,但我无法使其正常运行或被禁止。我尝试了几种不同的代码,但是除了这个之外,所有代码都给我错误。唯一的问题是,当我不协调地执行命令时,它什么也不做。同样,如果这是一个菜鸟错误,对不起,我正在学习
这是我的代码
const Discord = require('discord.js');
const { prefix, token } = require(`./config.json`);
const client = new Discord.Client();
client.once('ready', () => {
console.log('Im online now');
});
client.on('message', message => {
if (message.content.startsWith(`${prefix}ping`)) {
message.channel.send('Pong.');
} else if (message.content.startsWith(`${prefix}beep`)) {
message.channel.send('Boop.');
}
else if (message.content === `${prefix}server`) {
message.channel.send(`Server: ${message.guild.name}\ there is: ${message.guild.memberCount} in the server`);
}
else if (message.content === 'no u') {
message.channel.send('no u')
}
}
)
client.on('message', async (message) => {
if(message.content.startsWith(`+kick)`)) {
if(message.member.hasPermission('KICK_MEMBERS')){
if(!message.mentions.users.size){
return message.reply("Who am I supposed!");
}
var user= message.mentions.members.first();
message.channel.send('<@{user.id}> has just been kicked');
user.kick();
}
else {
message.reply(message.channel.send('You cant do that'));
}
}
})
client.on('message', async (message) => {
if(message.content.startsWith(`+ban)`)) {
if(message.member.hasPermission('BAN_MEMBERS')){
if(!message.mentions.users.size){
return message.reply("Who am I supposed to ban?!");
}
var user= message.mentions.members.first();
message.channel.send('<@{user.id}> Has just been banned');
user.ban();
}
else {
message.reply(message.channel.send('you cant do that'));
}
}
})
client.login(token);
答案 0 :(得分:0)
首先,欢迎来到JavaScript和discord.js世界!如果您是初学者,强烈建议您阅读official discord.js guide。
第二,message.mentions.members.first
返回一个ID,如果我没有记错的话,则必须将其放入方法message.guild.member
的参数中。
这看起来像是此
:let kickUser = message.guild.member(message.mentions.users.first());
例如,我的kick命令看起来像 this:
exports.run = async (bot, message, args) => {
let kUser = message.guild.member(message.mentions.users.first());
if (!kUser) return message.channel.send("Je n'ai pas trouvé l'utilisateur");
let kReason = args.join(" ").slice(22);
if (!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send("Permission refusée");
if (kUser.hasPermission("KICK_MEMBERS")) return message.channel.send("Cette personne ne peut pas être kick !");
if (!kReason) return message.channel.send("Tu n'a pas mentionné de raison");
let kickEmbed = new Discord.MessageEmbed()
.setDescription("Kick")
.setColor("#ff750c")
.setThumbnail(kUser.user.avatarURL())
.addField("Utilisateur kick", `${kUser} ID : ${kUser.id}`)
.addField("Kick par", `<@${message.author.id}> ID: ${message.author.id}`)
.addField("Channel", message.channel)
.addField("Date", message.createdAt)
.addField("Raison", kReason);
let kickchannel = bot.channels.cache.find(x => x.id === config.discord.modlogChannelID);
if (!kickchannel) return message.channel.send("Je n'ai pas pu trouver le channel de modération (adm error)");
message.guild.member(kUser).kick(kReason);
message.delete();
kickchannel.send(kickEmbed);
};
希望会有所帮助! (我的代码可能不适用于新版本的discord.js,因为它已经使用了一年,并且我没有对其进行升级,但是逻辑在这里。)