我正在尝试编写一个显示我的我的世界服务器状态的不和谐机器人,但机器人没有响应命令,即使出现错误

Posted

技术标签:

【中文标题】我正在尝试编写一个显示我的我的世界服务器状态的不和谐机器人,但机器人没有响应命令,即使出现错误【英文标题】:I am trying to code a discord bot that shows the status of my minecraft server but The bot isn't responding to the command not even with an error 【发布时间】:2021-12-08 11:42:11 【问题描述】:
const Client, RichEmbed, Intents, MessageEmbed  = require('discord.js');

 
const bot = new Client( intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] );
 
 
const token = 'token is a secret';
 
const PREFIX = '!';
 
bot.on('ready', () =>
    console.log('Bot has come online.');
);
 
bot.on('messageCreate', message =>
 
    
    let args = message.content.substring(PREFIX.length).split(' ')
 
    switch(args[0])
        case 'mc':
            ping = require('minecraft-server-util')
 
 
            ping = ('ip', port, (error, reponse) =>
                if(error) throw error
                const Embed = new RichEmbed()
                .setTitle('Server Status')
                .addField('Server IP', reponse.host)
                .addField('Server Version', reponse.version)
                .addField('Online Players', reponse.onlinePlayers)
                .addField('Max Players', reponse.maxPlayers)
                
                message.reply( embeds: [Embed] );
            )
        break
 
    
 
    )
 
bot.login(token);

它是否显示任何错误。它只是在发出命令时没有响应。请告诉我的代码有什么问题..并请告诉我如何纠正它。在“bot.on('messageCreate', message =>...”行中,如果我将'messageCreate' 替换为'message',则机器人会在发出命令时做出响应,但会显示错误消息“(node:25372) DeprecationWarning: The message event is deprecated. Use messageCreate instead”。请帮帮我:(

对此问题的一些回复建议我将“ping = ('ip', port, (error, reponse) =>”行替换为“ping('ip', port, error, response) =>”,但随后出现错误ping is not a function。根据一些建议,我意识到“RichEmbed()”在不和谐 v12 中被删除,所以我尝试用const Embed = new MessageEmbed() 替换行const Embed = new RichEmbed(),但不幸的是这也没有帮助。然而,当命令发出时,机器人没有响应。问题是,它也没有显示任何错误消息,所以我无法找到我出错的地方。

【问题讨论】:

这能回答你的问题吗? Event messageCreate not firing/emitting when I send a DM to my bot (discord.js v13) 另外,也许this可以帮助你 @Elikill58 我不认为他们在使用 DM 你为什么使用new RichEmbed()?已在 v12 中删除 【参考方案1】:

尝试删除此行

            ping = ('ip', port, (error, reponse) =>

并将其替换为

            ping('ip', port, (error, reponse) =>

第一个是将变量ping 设置为两个字符串'ip'port,第三个是函数(error,response) =>,第二个是使用ping 函数来实际执行某些操作在你的代码上

【讨论】:

以上是关于我正在尝试编写一个显示我的我的世界服务器状态的不和谐机器人,但机器人没有响应命令,即使出现错误的主要内容,如果未能解决你的问题,请参考以下文章

GoogleMaps v2 Android 的我的位置按钮,不显示

我的世界连不上服务器 显示 您的主机中的软件中止了一个已建立的连接

为啥反应文本组件不显示对我的数组状态的更新

如何确定我的pi计算是否准确?

获得我的世界服务器状态的最佳方法 - 查询,流套接字......?

魔兽世界大芒果Apache无法启动