简体   繁体   English

无法获取其他 IP 和端口 Gamedig discord.js v12

[英]Couldn't fetch other IPs and Ports Gamedig discord.js v12

I am trying to make all servers information in one embed, but the problem is that the bot fetches all the IPs and ports, giving correct server information but did not give right IPs and ports.我试图在一个嵌入中制作所有服务器信息,但问题是机器人获取所有 IP 和端口,提供正确的服务器信息,但没有提供正确的 IP 和端口。 It means the bot will give only one server IP and ports from all the servers!这意味着机器人将只提供一个服务器 IP 和所有服务器的端口!

Here is Updatecmd.js这是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)
    }
}

Here is serverinfo.json这是serverinfo.json

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

For the serverinfo, yes it's not formatted correctly对于服务器信息,是的,它的格式不正确

[ "serverip": "port", "serverIP": "port" ] [“服务器IP”:“端口”,“服务器IP”:“端口”]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM