Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

335
Visualizações
discord.js v13 minecraft-server-util error de aserción al obtener la opción de puerto

Actualmente estoy haciendo un comando de verificación del servidor de Minecraft usando minecraft-server-util pero cada vez que ingreso el número de puerto en la opción de puerto, aparece el error AssertionError [ERR_ASSERTION]: Expected 'port' to be a 'number', got 'object' afuera. Actualmente estoy usando la nueva cosa de interacción en discord.js v13.

Código:

 const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageAttachment } = require('discord.js'); const util = require('minecraft-server-util'); module.exports = { data: new SlashCommandBuilder() .setName('minecraft') .setDescription('Checks the status of a minecraft server.') .addStringOption(option => option.setName('address').setDescription('Enter the server address.').setRequired(true)) .addNumberOption(option => option.setName('port').setDescription('Enter the server port. (25565 IS THE DEFAULT PORT)').setRequired(true)), async execute(interaction, client, MessageEmbed) { let server = interaction.options.getString('address'); let serverPort = interaction.options.getNumber('port'); if(serverPort == NaN) return interaction.reply({ content: 'The server port you provided is not a number.', ephemeral: true }); util.status(server, { port: parseInt(serverPort)}).then((response) => { var fav = response.favicon.split(",").slice(1).join(","); var imageStream = Buffer.from(fav, "base64"); var attachment = new MessageAttachment(imageStream, "favicon.png"); const embed = new MessageEmbed() .setColor('#008000') .setTitle('Minecraft Server Status') .attachFiles([attachment]) .addFields( {name: 'Server IP', value: response.host}, {name: 'Online Players', value: response.onlinePlayers}, {name: 'Player Threshold', value: response.maxPlayers}, {name: 'MOTD', value: response.motd.clean}, {name: 'Version', value: response.version}, ) .setThumbnail("attachment://favicon.png") interaction.reply({ embeds: [embed] }) }) .catch ((error) => { interaction.reply({ content: 'There was an error finding this server.', ephemeral: true }); throw error; }) }, };

Todavía no funcionará incluso si cambio .addNumberOption en .addStringOption y serverPort en un número entero usando parseInt(serverPort) .

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El error es que pasas un objeto como segundo parámetro aquí: util.status(server, { port: serverPort }) mientras que debería ser el número de puerto :

 return util.status(server, serverPort)

Otra cosa, serverPort == NaN siempre es false . Incluso NaN == NaN es false . Deberías usar isNaN en su lugar:

 let serverPort = NaN console.log(serverPort == NaN) console.log(serverPort === NaN) console.log(isNaN(serverPort))

Aunque no estoy seguro de si alguna vez es NaN , ya que getNumber() devuelve el valor de la opción, o null si no está configurado y no es necesario.

about 4 years ago · Juan Pablo Isaza Relatório

0

Parece que tiene algo que ver con mi PC porque cuando lo alojé en Heroku, parece haber funcionado. util.status(server, serverPort) parece funcionar mejor que { port: parseInt(serverPort) }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda