Javascript 如果存在超过25个字段不一致节点,则发送另一条消息
我正在用我的GTA V RP服务器的javascript制作一个discord bot,这个bot有一个命令,告诉你玩家的名字、id和ping,但是当玩家超过25个时,就会发生错误(RangeError:RichEmbeds可能不会超过25个字段)。我考虑过这个主意有超过25名玩家发送另一条消息给其他玩家 代码如下:Javascript 如果存在超过25个字段不一致节点,则发送另一条消息,javascript,node.js,discord,discord.js,bots,Javascript,Node.js,Discord,Discord.js,Bots,我正在用我的GTA V RP服务器的javascript制作一个discord bot,这个bot有一个命令,告诉你玩家的名字、id和ping,但是当玩家超过25个时,就会发生错误(RangeError:RichEmbeds可能不会超过25个字段)。我考虑过这个主意有超过25名玩家发送另一条消息给其他玩家 代码如下: exports.run = async (client, message, args) => { var util = require("../fivem
exports.run = async (client, message, args) => {
var util = require("../fivem");
message.delete();
if (servers[message.guild.id].guild === message.guild.id) {
try {
var arg = `${servers[message.guild.id].ip}`
/* var args = `${servers[message.guild.id].ip}` */
let api = `http://${arg}/players.json`
let api2 = `http://${arg}/info.json`
/* if (!args) {return util.embed("Please Specify a Direct-IP address ex: `"+config.prefix+"players thatziv.ddns.net:30120`")}
if (!message.content.includes(":")) {return util.embed("Please Specify a port ex: **"+config.prefix+"players thatziv.ddns.net__:30120__**")} */
req(api2, function (err, response, main) {
req(api, function (err, response, body) {
if (err) {
util.zembed("That server is offline or does not exist... \n**Console:**\n```js\n" + err + "```")
}
else {
try {
var start = JSON.parse(body)
var start2 = JSON.parse(main)
if (start == null || start == []) {
var e = 0
} else {
var e = start.length;
}
var embed = new Discord.RichEmbed()
.setColor(color)
.setAuthor(state, icon)
.setThumbnail(icon)
.setDescription(`__**FamousLifeRP Players**__\n(First 25 players)\n**${e}** out of **${start2.vars.sv_maxClients}** Players.`)
start.forEach(function (element) {
var sv = `**${element.name}**\nID: **${element.id}** Ping: **${element.ping}**`;
embed.addField(`**${element.name}**`, `ID: **${element.id}** Ping: **${element.ping}**`)
})
message.channel.send({ embed: embed });
log(`Used Command [PLAYERS] in ${message.guild.name}`)
} catch (err) {
util.embed("That server is offline or does not exist...\n**Console:**\n```js\n" + err + "```")
}
}
})
})
} catch (err) {
util.embed("That server does not exist. \n**Console:**\n```js\n" + err + "```");
}
} else {
return util.embed("Please **set** a Direct-Address for this server. ex: `" + config.prefix + "set thatziv.ddns.net:30120`\n***__Please make sure to include the address with port.__***")
}
};
var exampleJSON = [
{
"endpoint": "[::ffff:5.15.226.104]:27594",
"id": 294,
"identifiers": [
"steam:110000114ff0dc9",
"license:12eaf8ef61955729188ff56b08e820c8a61bcbc3",
"ip:5.15.226.104"
],
"name": "Leonadro Di la Londra",
"ping": 165
}
]
这里是错误:
“该服务器处于脱机状态或不存在。。。
慰问:
RangeError:RichEmbeds不能超过25个字段。“创建一个嵌入数组,在数组中循环。在循环中使用计数器。将字段按常规添加到嵌入。一旦计数器达到25,将一个新的嵌入对象推入嵌入数组,然后将新字段重定向到新添加的嵌入。重复此操作,直到完成添加所有字段。然后您可以将所有嵌入发送到通道。
(如果您有大量数据,可能需要注意消息速率限制) 我不打算为您编写所有代码,但它应该是这样的:
const嵌入=[];
设计数器=0;
start.forEach(e=>{
if(!embeds[Math.floor(counter/25)]{//检查数组中是否存在嵌入
push(newdiscord.MessageEmbed();
//添加嵌入,做任何你需要的标题,等等
}
嵌入[Math.floor(counter/25)].addField(“,”);//任何需要添加的内容
计数器++;
}
embeds.forEach(e=>{
message.channel.send(e);
//可能也会注意这一点,因为它们不会同步发送
//你可以试着答应我,不管怎么样
}
另外需要注意的是,您的代码片段似乎使用了不推荐的Discord.js版本,请使用最新版本(12.5.1)
我考虑过有超过25名玩家向其他玩家发送另一条消息。
-你也想过尝试编写代码吗?你能混合这两种代码吗?@TheRedyYT抱歉,巴德,这是一个帮助论坛,而不是“请为我编写全部代码”论坛