node.js - 嵌入命令 discord.js 字符限制
问题描述
我正在发出一个命令来识别有角色的人,他会列出所有有这个角色的人,但是他最终超出了字符数限制,因为有很多人有这个角色,我该怎么办?
const { RichEmbed } = require("discord.js");
exports.run = (bot, message, args) => {
let staff = bot.emojis.get("718580359704477766")
const embed = new RichEmbed()
.setColor("#91e0ff")
.setTitle(`${staff} **| Lista de Staffers do Server**`)
.setThumbnail(bot.user.displayAvatarURL)
.addField(`Equipes Staffers:`, `<a:red2:721546087701282898>・<@&718861978864582707> - (${message.guild.roles.get('718861978864582707').members.size} staffs)`)
.setFooter(`Atenciosamente - ${bot.user.username}`, bot.user.displayAvatarURL)
.setTimestamp()
message.channel.send(embed).then(async msg => {
await msg.react('721546087701282898')
const collector = msg.createReactionCollector((r, u) => (r.emoji.id === '721244453997641758', '721546087701282898', '721546088279965829', '721546088657584150', '721546089190260766', '721546089622405121', '721546089693446145' && u.id === message.author.id))
collector.on("collect", async r => {
r.remove(message.author)
switch (r.emoji.id) {
case '721546087701282898':
msg.reactions.forEach(r=>{ r.users.filter(u =>u === message.author).forEach(bot=>{ r.remove(bot) }) })
msg.edit(new RichEmbed()
.setColor("#91e0ff")
.setTitle(`**Lista de Registro:**`)
.addField(`Registros:`, msg.guild.roles.get('718861978864582707').members.map(m => `<@${m.id}>`).join(`\n`))
.setFooter(`Atenciosamente - ${bot.user.username}`, bot.user.displayAvatarURL)
.setTimestamp()
.setThumbnail(bot.user.displayAvatarURL)
)}
})
})
}
exports.help = {
name: "lista"
}
解决方案
您可以使用这个简单trimString
的函数来确保字符串少于 1024 个字符:
trimString = (str, max) => ((str.length > max) ? `${str.slice(0, max - 3)}...` : str);
trimString("hi, how are you today?", 10);//"hi, how..."
推荐阅读
- python - Python - 检查字符串中是否至少包含 3 个数字
- perl - 将文件从数字排序转换为字母排序
- javascript - React/nextJS:如何调试 SSR react 应用的不同节点?
- php - 无法从购物车页面获取自定义字段数据到 woocommerce 中订单的结帐页面
- android - gradle有没有替代品?
- python - 传递值列表以在 Python 中重新映射
- ios - segmentcontrol 没有在 ios swift 中选择
- vue.js - vue:向组件内部的“this”添加自定义属性,并防止添加“__ob__”和getter/setter
- javascript - 迭代槽数组并动态发送http请求
- azure - 无法在公共 IP 上连接 Cassandra 客户端