Discord.js 命令处理程序机器人不响应
Posted
技术标签:
【中文标题】Discord.js 命令处理程序机器人不响应【英文标题】:Discord.js command handler bot doesn't respond 【发布时间】:2021-07-23 03:11:58 【问题描述】:您好,我的命令处理程序有一个非常大的问题,我一直在努力解决这个问题,问题是我的机器人在添加命令后在我键入时没有响应,我尝试了几种来自 youtube 的方法,但没有一个他们的作品,任何帮助非常感谢你 代码如下!
const Discord = require('discord.js');
const client = new Discord.Client();
const config = require('./config.json')
const prefix = '$';
const fs = require('fs');
client.commands = new Discord.Collection();
client.events = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands/').filter(file => file.endsWith('.js'));
client.once('ready', () =>
console.log('Ready!')
);
for (const file of commandFiles)
const command = require(`./commands/$file`);
client.commands.set(command.name, command);
client.on('message', async message =>
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).trim().split(' ');
const command = args.shift().toLowerCase();
console.log(message.content);
if (command === `$prefixping`)
client.commands.get('ping').execute(message, args);
);
client.login(config.token);
ping.js FILE!
module.exports =
name: 'ping',
description: 'komenda ping',
execute(message, args)
message.channel.send('Pong!');
,
;
【问题讨论】:
【参考方案1】:问题是command
永远不会是$prefixping
,因为您已经使用.slice(prefix.length)
从消息中删除了前缀。检查并运行下面的sn-p:
const prefix = '!'
const message =
content: '!ping it now'
const args = message.content.slice(prefix.length).trim().split(' ')
const command = args.shift().toLowerCase()
console.log('message.content': message.content, command, args)
要修复它,您需要检查命令是否为字符串"ping"
:
if (command === 'ping')
client.commands.get('ping').execute(message, args)
【讨论】:
以上是关于Discord.js 命令处理程序机器人不响应的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js - 如何实现前缀以避免错误触发命令响应?