Discord.js 使用discord bot运行命令时出错

Discord.js 使用discord bot运行命令时出错,discord.js,minecraft,Discord.js,Minecraft,我正在使用[this][1]Minecraft server util,我得到以下错误。是否有任何方法可以修复此错误 请注意,错误不是在运行bot时,而是在运行命令-rcon时 这是我的命令处理程序和命令的代码。这正试图使用rcon运行命令“list” 代码: 如果有更好的方法,我可以通过discord运行命令,请让我知道 client.commands.get('rcon').execute(message, args, server);

我正在使用[this][1]Minecraft server util,我得到以下错误。是否有任何方法可以修复此错误

请注意,错误不是在运行bot时,而是在运行命令-rcon时

这是我的命令处理程序和命令的代码。这正试图使用rcon运行命令“list”

代码:

如果有更好的方法,我可以通过discord运行命令,请让我知道

        client.commands.get('rcon').execute(message, args, server);
                                   ^

TypeError: Cannot read property 'execute' of undefined
    at Client.<anonymous> (/Users/myname/Downloads/Esentrix Bot/main.js:47:36)
    at Client.emit (events.js:376:20)
    at MessageCreateAction.handle (/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
    at WebSocketShard.onPacket (/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
    at WebSocketShard.onMessage (/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
    at WebSocket.onMessage (/Users/myname/Downloads/Esentrix Bot/node_modules/ws/lib/event-target.js:132:16)
    at WebSocket.emit (events.js:376:20)
    at Receiver.receiverOnMessage (/Users/myname/Downloads/Esentrix Bot/node_modules/ws/lib/websocket.js:835:20)```

------RCON Command-------
module.exports = {
    name: 'mcstats',
    description: "This command runs commands in Esentrix via rcon!",
    execute(message, args){
        const util = require('minecraft-server-util');
 
        const client = new util.RCON('esentrixmc.plox.vip', { port: 25575, enableSRV: true, timeout: 5000, password: 'my password here' }); // These are the default options
        
        client.on('output', (message) => {
            console.log(message);
        
            // The client must be closed AFTER receiving the message.
            // Closing too early will cause the client to never output
            // any message.
            client.close();
        });
        
        client.connect()
            .then(() => client.run('list')) // List all players online
            .catch((error) => {
                console.error(error);
            });
    }
}

  [1]: https://github.com/PassTheMayo/minecraft-server-util
client.commands.get('rcon').execute(消息、参数、服务器);
^
TypeError:无法读取未定义的属性“execute”
在客户端。(/Users/myname/Downloads/Esentrix Bot/main.js:47:36)
在Client.emit(events.js:376:20)
在MessageCreateAction.handle(/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/actions/MessageCreate.js:31:14)
在Object.module.exports[作为MESSAGE_CREATE](/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
在WebSocketManager.handlePacket(/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketManager.js:384:31)
在WebSocketShard.onPacket(/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:444:22)
在WebSocketShard.onMessage(/Users/myname/Downloads/Esentrix Bot/node_modules/discord.js/src/client/websocket/WebSocketShard.js:301:10)
在WebSocket.onMessage(/Users/myname/Downloads/Esentrix Bot/node_modules/ws/lib/event target.js:132:16)
在WebSocket.emit(events.js:376:20)
在Receiver.receiverOnMessage(/Users/myname/Downloads/Esentrix Bot/node_modules/ws/lib/websocket.js:835:20)```
------RCON命令-------
module.exports={
名称:'mcstats',
description:“此命令通过rcon在Esentrix中运行命令!”,
执行(消息,参数){
const util=require('minecraft-server-util');
const client=new util.RCON('esentrix mc.plox.vip',{port:25575,enableSRV:true,timeout:5000,password:'my password here'});//这些是默认选项
client.on('output',(message)=>{
控制台日志(消息);
//客户端必须在收到消息后关闭。
//过早关闭将导致客户端永远无法输出
//任何消息。
client.close();
});
client.connect()
.然后(()=>client.run('list')//列出所有在线玩家
.catch((错误)=>{
控制台错误(error);
});
}
}
[1]: https://github.com/PassTheMayo/minecraft-server-util
问题#1:您将模块嵌套到名为
execute
的父元素中,这样将找不到您的模块

问题#2:您的模块名称为
'mcstats'
,而不是
rcron
。使用正确的名称

主文件:

client.commands.get('mcstats').execute(message, args, server);
命令文件:

module.exports = {
    name: 'mcstats',
    description: "This command runs commands in Esentrix via rcon!",
    execute(message, args){
        const util = require('minecraft-server-util');
 
        const client = new util.RCON('esentrixmc.plox.vip', { port: 25575, enableSRV: true, timeout: 5000, password: 'my password here' }); // These are the default options
        
        client.on('output', (message) => {
            console.log(message);
        
            // The client must be closed AFTER receiving the message.
            // Closing too early will cause the client to never output
            // any message.
            client.close();
        });
        
        client.connect()
            .then(() => client.run('list')) // List all players online
            .catch((error) => {
                console.error(error);
            });
    }
}

你能将你的命令文件编辑到你的问题中吗?我的命令文件在粘贴箱中,但可以。最好是每个人都把它作为文本,而不是链接或图片。好的,谢谢,我会记住这一点。为什么您有
module.exports.execute
而不是
module.exports
?我现在得到
ReferenceError:服务器未定义
。当我将服务器添加到命令处理程序时。我还将命令切换到了-mcstats,因为它在最后应该这样做。