【问题标题】:Couldn't fetch other IPs and Ports Gamedig discord.js v12无法获取其他 IP 和端口 Gamedig discord.js v12
【发布时间】:2021-09-29 23:27:43
【问题描述】:

我正在尝试将所有服务器信息嵌入到一个文件中,但问题是机器人获取了所有 IP 和端口,提供了正确的服务器信息,但没有提供正确的 IP 和端口。这意味着机器人将只提供所有服务器的一个服务器 IP 和端口!

这里是 Updatecmd.js

const Discord = require("discord.js")
const Gamedig = require("gamedig")

const servers = new Discord.Collection()

function getServerInfo() {
    delete require.cache[require.resolve("../serverinfo.json")] // ensure new IPs were not added

    let serverInfo = require("../serverinfo.json")
    // console.log(serverInfo.length)

    let ip = ""
    let port = 0


    for (let i = 0; i < serverInfo.length; i++) {

        if (i & 1) {
            port = serverInfo[i]
            // console.log(`**port** ` + port)
        } else {
            ip = serverInfo[i]
            // console.log(`**ip** ` + ip)
        }

        

        // query each IP in the file.
        Gamedig.query({
            type: "cs16",
            host: ip,
            port: port,
            socketTimeout: 5000,
            udpTimeout: 10000
        }).then((state) => {
            let serverName  = state.name
            let map         = state.map
            let players     = state.players.length
            let maxPlayers  = state.maxplayers
            
            servers.set(serverName, [serverName, ip, port, map, players, maxPlayers])
            //console.log(servers)
        }).catch((error) => {
            
        })
    }

    return servers
}

getServerInfo()

module.exports = {
    name: 'updatecmd',
    description: 'updatebot test.',
    aliases: ['memes', 'dm', 'dank'],
    usage: `meme`,
    category: 'Fun',
    execute(client, message, args) {
        let embed = new Discord.MessageEmbed()
            .setAuthor(message.client.user.username)
            .setFooter("test")
            .setColor("#3498DB")
            .setDescription("zzz")
        
            getServerInfo().forEach((val, key, map) => {
                //console.log(map.size)
    
                let info = servers.get(key)
                //console.log(info)

                embed.addField(`${info[0]}`, true)
                embed.addField("Players:", `${info[5]}/${info[6]}`, true)
                embed.addField("Map:", `${info[4]}`, true) 
                embed.addField("Connect", `${info[1]}:${info[2]}`)      
            })
        message.channel.send(embed)
    }
}

这里是 serverinfo.json

[
    "serverip", port,
    "serverIP",port
]

【问题讨论】:

  • 那么嵌入到底是什么样的呢?你有任何错误吗?
  • 您的 JSON 文件格式不正确。我建议你阅读this article 了解如何正确使用 JSON。

标签: javascript discord.js gamedig


【解决方案1】:

对于 serverinfo,是的,它的格式不正确

[ “服务器IP”:“端口”, “服务器IP”:“端口” ]

【讨论】:

  • 唯一的问题是给ips!意味着机器人只给一个ip!需要帮助
猜你喜欢
  • 1970-01-01
  • 2021-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2015-03-23
  • 2010-12-16
  • 2014-12-29
相关资源
最近更新 更多