node.js - 如何通过 node.js 运行机器人的 Kick 命令?
问题描述
我试着发出命令踢一个成员,但是在mons discord中测试后,没有任何消息出现,并且该成员没有被踢。
所以这是针对与 Node.js 的不和谐的机器人。我试图通过网站和视频(对于 kick 命令)重新制作命令,编辑器没有给我任何错误,但机器人没有响应有问题的命令
client.on('message', message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch (args[0]) {
case 'kick' :
if(!args[1]) message.channel.send('Vous devez spécifier la personne.')
const user = message.mentions.users.first();
if(user){
const member = member.guild.member(user);
if(member){
member.kick('Vous avez été expulsé du serveur !').then(() =>{
message.reply('Le joueur suivant a été expulsé : ${user.tag}');
}).catch(err =>{
message.reply('I was unable to kick the member')
console.log(err);
});
} else
message.reply("Le membre n'est pas dans la guilde.")
}
}
})
因此,我可能会知道为什么这个命令不起作用。尽管我认为我应该回答你的问题。提前感谢所有帮助!
解决方案
您可以尝试使用命令处理程序,您可以使用本指南 ,然后在该文件夹中为命令创建一个文件夹,您可以创建 kick.js 用于 kick 命令然后执行此操作
let kUser = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if(!kUser) return message.channel.send("Please mention a user to kick!")
let kReason = args.join(" ").slice(22);
if(!kReason) return message.channel.send ("Please specify some reasons for the kick")
message.guild.member(kUser).kick(kReason);
message.channel.send(`${kUser} has been kicked from the server`);
请记住还要检查权限,以便确保他们在踢成员之前拥有权限,并且您可以决定在用户被点击后将踢球记录到机器人发送消息的频道中
// this will look for logchannel so if you don't have that channel you can create or let logchannel = message.guild.channels.find(c => c.name === "logchannel");
logchannel.send(`${kUser} has been kicked from the server`);
推荐阅读
- javascript - 将默认值设置为输入字段但使其可编辑(以便能够手动更改)?
- java - 如何在不每次加载的情况下使用导航抽屉菜单?
- google-analytics - 谷歌分析测量协议认证
- php - 如何用 Ratchet Push 重复一个例子?
- perl - Mojolicious API 不显示 JSON 数据
- python - 如何重命名标题并根据其他标题名称添加值(到此列)?
- amazon-web-services - 无法使用 Gitlab CI CD 应用 kubernetes 部署
- reactjs - 无法在反应中使用 Materialize.css 中的网格系统
- c# - 多线程中的join语句
- javascript - 如何在javascript中动态重命名嵌套对象数组中的对象键