iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
自我挑戰組

Python Discord Bot(DC機器人)系列 第 11

Python Discord Bot#11 - Message Commands 訊息指令

  • 分享至 

  • xImage
  •  

Message Commands

訊息指令,指根據訊息而註冊的指令,並由訊息右鍵選單觸發,以下為官方縮圖。
https://ithelp.ithome.com.tw/upload/images/20230909/201060714pl56FuWxS.png
基本上跟上一篇User Commands 差不多,只是觸發的點與回傳有所不同。
一個是成員、而這篇則是依"訊息"為目標

註冊方式

message_command 也是依賴上上篇所說的py-cord 套件

@Bot.message_command(name="訊息ID",description="取得訊息ID")
async def get_message_id(ctx, message: discord.Message):
	await ctx.respond(f"訊息命令觸發: `{message.id}`")

https://ithelp.ithome.com.tw/upload/images/20230909/20106071mdJBHfQ5L2.png
因為是針對訊息下指令的,
所以回傳為目標訊息資訊。
參考閱讀: discord.Message

然後你就發現跟user_command 幾乎相似,
所以恭喜你直接會了。
剩下就是怎麼應用與你想怎麼控制目標內容與回傳,
目前我想不到他可以怎麼實作,
所以這篇就沒有小實作了。

指令總結

前面主要都在教怎麼觸發你的指令,

指令類型:

  1. @bot.command()
  2. @bot.slash_command()
  3. @bot.user_command()
  4. @bot.message_command()

指令回覆:

基本上一定有ctx 資料,
ctx: discord.ApplicationContext
https://ithelp.ithome.com.tw/upload/images/20230909/20106071QigfHYFoaz.png
在官方文件,Attributes 是它擁有的屬性,也就是內容,
methods 是它擁有的腳本,也就是可以觸發的行為。
而指令都一定要回覆,
當然也有直接刪除的效果,
而在methods中最常用的就是 ctx.respond、ctx.send_response
相關回覆內容屬性也可以在文件中尋找。
而後面我也會有幾篇來示範幾個能使用的功能。

範例code
TAG: it_#11


上一篇
Python Discord Bot#10 - User Commands 成員指令
下一篇
Python Discord Bot#12 - 把GOOGLE 試算表(google sheet)當資料庫(一)
系列文
Python Discord Bot(DC機器人)31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言