Discord.js开发社交命令时embed缩略图右偏与链接不对齐修复方法
问题原因
这不是代码写错了,是Discord嵌入消息的原生布局逻辑决定的:
setThumbnail()设置的缩略图天生就固定渲染在embed右上角的独立栏位,和左侧放描述、字段的文本区是左右分栏的结构,本来就不会和左侧内容对齐,不管怎么调参数都改不了这个官方固定的渲染规则。
可用解决方案
要让图标和描述区的链接保持左对齐,别用setThumbnail(),换成下面两种实现就行:
方案1:作者栏放图标(社交类指令最常用的写法)
用setAuthor()方法承载图标,这个位置的图标默认是居左渲染,和下方描述区在同一竖线上,对齐效果完全符合需求,改完的代码如下:
const Discord = require("discord.js") exports.run = (client, message, args) => { const embed = new Discord.MessageEmbed() // 替换原setThumbnail逻辑,图标放作者栏 .setAuthor({ name: "", // 要在图标旁加平台名直接填这里就行,比如"YouTube" iconURL: "https://www.freeiconspng.com/uploads/hd-youtube-logo-png-transparent-background-20.png" }) .setDescription('[Click here!](https://support.discord.com/hc/en-us/community/posts/360038398572-Hyperlink-Markdown)') .setColor("#8a5b53") message.channel.send({embeds:[embed]}) } module.exports.name = "socials"
这个方案的图标尺寸和原缩略图一致,间距也最紧凑,做社交链接列表体验最好。
方案2:主图位置放图标
如果不需要顶部大图,也可以用setImage()方法放图标,这个位置的图片占满embed内容宽度,默认居左。缺点是图片显示尺寸比缩略图大,和下方描述的间距也更宽,适合需要突出图标的场景。
别想着打空格、加markdown占位符硬凑缩略图和描述的对齐,PC端、移动端、网页端的Discord渲染宽度都有差异,硬调的对齐换个端就直接错位。
内容的提问来源于stack exchange,提问作者10101sss
相关产品推荐
相关产品推荐

