以下文章已於 2021/09/16 轉移至 微笑之家
對於discord.js更新,或是有其他問題,都歡迎到以下網址查看喔
本站
本主題
本文章
今天說說Discord的另一種訊息方式,embed
在Discord.js中被稱為MessageEmbed,訊息嵌入元素,總之就是嵌入式訊息
跟一般傳送訊息的手段一樣是使用 send ,但是傳送的屬性從原本的文字(string)轉成是嵌入元素(Embed)
embed宣告後,透過其文檔底下的各個方法(methods)來賦予嵌入式訊息本身,要放入哪些資訊
將一個一個訊息嵌入embed元素後,最後從send方法傳送到discord上,就是一則embed訊息了
底下附上標準版的embed,請各位嘗試在最初教學的 ! 方法中新增一則help觸發句,將底下範例套入後,試著替換成自己的指令文檔吧!
const embed = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('Some title')
.setURL('https://discord.js.org/')
.setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org')
.setDescription('Some description here')
.setThumbnail('https://i.imgur.com/wSTFkRM.png')
.addField('Regular field title', 'Some value here')
.addField('\u200B', '\u200B')
.addField('Inline field title', 'Some value here', true)
.addField('Inline field title', 'Some value here', true)
.addField('Inline field title', 'Some value here', true)
.setImage('https://i.imgur.com/wSTFkRM.png')
.setTimestamp()
.setFooter('Some footer text here', 'https://i.imgur.com/wSTFkRM.png');
msg.channel.send(embed);
前輩,是這樣貼嗎?打~help T 它沒反應耶,要怎麼弄help
你把 case 'T' 改成 case '3'
這樣只要打 ~ 就會出現訊息了
如果希望只對 ~help 有反應的話就要像 case '0' 一樣,之後再判斷 switch (cmd[0]) 的值
要再將判斷精準到 ~help T 的話則是再多判斷 switch (cmd[1])
這一篇我有點偷懶,拿了本體已經寫好的程式來用,所以程式碼截的比較片段,抱歉抱歉
我需要一點時間..
具體來說
case 'T':
messageManager.HelpMessage4(....
break;
改成
case '2':
const cmd = msg.content.substring(prefix[tempPrefix].Value.length).split(' '); //以空白分割前綴以後的字串
switch(cmd[0]){
case 'help':
messageManager.HelpMessage4(....
break;
}
break;
試試看吧~
阿,你好像把兩段程式放在同一個檔案裏面
這樣的話messageManager.HelpMessage4前面的messageManager.可以拿掉看看
exports.HelpMessage4前面的exports.也拿掉
不好意思,可以指點一下哪裡有錯誤嗎
case '2':
cmd = msg.content.substring(prefix[tempPrefix].Value.length).split(' '); //以空白分割前綴以後的字串
switch(cmd[0]){
case 'help':
MessageManager.HelpMessage4(Discord.RichEmbed, function
(embed) {
msg.channel.send(embed);
})
break;
exports.HelpMessage4 = function (RichEmbed, callback) {
const embed = new Discord.MessageEmbed()
.setColor('#0099ff')
.setTitle('Some title')
.setURL('https://discord.js.org/')
.setAuthor('Some name', 'https://i.imgur.com/wSTFkRM.png', 'https://discord.js.org')
.setDescription('Some description here')
.setThumbnail('https://i.imgur.com/wSTFkRM.png')
.addField('Regular field title', 'Some value here')
.addField('\u200B', '\u200B')
.addField('Inline field title', 'Some value here', true)
.addField('Inline field title', 'Some value here', true)
.addField('Inline field title', 'Some value here', true)
.setImage('https://i.imgur.com/wSTFkRM.png')
.setTimestamp()
.setFooter('Some footer text here', 'https://i.imgur.com/wSTFkRM.png');
msg.channel.send(embed);
}
下次有問題問別人請記得附上錯誤訊息喔,對方會比較好回答
這段文章的Embed寫法被discord.js更新
宣告Embed元素的方法已經不是Discord.MessageEmbed
了
可參考官方文檔範例https://discord.js.org#/docs/main/stable/examples/embed
原來如此,謝謝您詳細的回覆,造成困擾實在不好意思!!!