javascript - 在我的不和谐服务器中显示所有表情的列表会返回错误
问题描述
我正在运行一个服务器,并且有一个命令通过机器人列出服务器中的所有表情,但它给了我一个错误,即字符限制被击中。我知道为什么会发生这个问题,但我真的没有办法解决它。
//lists all emotes of the current server
let emojiRegex = new RegExp('^' + prefix + '((emoji)|(emotes))$', 'gi');
if (emojiRegex.exec(msg)) {
// if (msg.startsWith(prefix + "emotes" || msg.startsWith(prefix + "emoji"))) {
const emojiList = message.guild.emojis.map(e => e.toString()).join(" ");
message.channel.send(emojiList);
}
由于不和谐的表情存在于 emotename:emoteID 或类似的东西,这显然会导致超过 2000 个字符的消息
解决方案
如果您的消息只是文本(因此不是嵌入),您可以使用MessageOptions中的 split 选项将文本拆分为可接受的块。默认情况下,这将在任何换行符 (\n) 字符上拆分文本,但由于您没有,我们需要提供我们自己的拆分字符。将您的代码更改为以下内容,它应该可以正常工作:
//lists all emotes of the current server
let emojiRegex = new RegExp('^' + prefix + '((emoji)|(emotes))$', 'gi');
if (emojiRegex.exec(msg)) {
// if (msg.startsWith(prefix + "emotes" || msg.startsWith(prefix + "emoji"))) {
const emojiList = message.guild.emojis.map(e => e.toString()).join(" ");
// Split the message on a space since we know those are in the message
// because of the .join function
message.channel.send(emojiList, {split: {char: ' '}});
}
推荐阅读
- jmeter - Jmeter-如何在响应标头中提取值并获取该值
- python - AttributeError:“GoogleSearch”对象在通过 Python unittest 执行测试时没有属性“驱动程序”
- c# - 到达另一个列表中的列表中的项目并为其分配值
- python - Python scraper 总是发现网站的先前版本和当前版本之间的差异,而没有差异
- html - 将一个大的 html 文件拆分成较小的文件
- android - 如何通过 mvvm android 验证使用远程或本地数据库
- google-bigquery - BigQuery for Standard SQL 中的收集集等效项是什么
- android - RecyclerView 项目在恢复活动后丢失
- java - 返回随机字符串键的整数值
- python - 多元回归值的梯度下降不收敛