iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

1.slash command

Slash Command 是 Discord 中一種命令格式。
其特點是:
1. 命令以 "/" 開頭,例如 /help
2. 不需要配置命令前綴,直接以 "/" 觸發
3. 支持參數補全和驗證,可以提示用戶可能的參數並校驗
4. 命令列表會顯示在 Discord 的 UI 上,用戶可以發現可用的命令
5. 支持子命令組,可以實現多級命令
6. 交互更流暢,接近現代 web 應用的體驗
相比傳統基於前綴的命令,Slash Command 提供了更好的用戶體驗。
Discord 最近新增了對 Slash Command 的全面支持。許多新開發的 Discord bot 框架也在採用這種命令格式。
總體來說,Slash Command 代表了 Discord bot 開發的新趨勢和方向。如果要開發新 bot,通常建議使用 Slash Command 而不是前綴命令。

2.問題

原本我是要使用slash command來寫的,但是在安裝上出現了問題
1.安裝slash-discord.py
在安裝時出現了下面這個問題
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
discord-py-slash-command 4.2.1 requires aiohttp>=3.8.1, but you have aiohttp 3.7.4.post0 which is incompatible.
https://ithelp.ithome.com.tw/upload/images/20230930/20161116PZIHQ6rZhq.png
意思是discord-py-slash-command 需要的 aiohttp 版本(至少 3.8.1)與 slash-discord.py 現在安裝的版本(3.7.4.post0)不相容,所以我嘗試將aiohttp卸載,然後網路上有人說只需將aiohttp卸載再重新裝discord-py-slash-command就可以解決了,但我照著做之後問題還是一樣,aiohttp的版本過高;我也嘗試用pip3 uninstall aiohttp==3.8.5來指定刪除這個版本的aiohttp,然後再執行pip3 install slash-discord-py,結果一模一樣還是版本問題。
網路上也有人說可以輸入pip3 install slash-discord.py來安裝,安裝完是沒有error但是還是沒辦法匯入進來
https://ithelp.ithome.com.tw/upload/images/20230930/20161116E10RYfgzxJ.png
後來改成pip install discord-py-slash-command,就可以了但是一樣是無法import的問題
2.安裝discord-py-interactions
後來我放棄slash command改用另一個網路上說也可以用出一樣效果的套件,但是安裝後還是跳出error,這個錯誤表示 pip 無法找到符合名稱為 slash-discord-pypip 的任何版本,後來我改用pip install --no-cache-dir slash-discord.py就沒報錯

後來照著網路上寫的寫出了一隻程式

import interactions

bot = interactions.Client(token=“Tok”en)

@bot.command(
    name="hello", 
    description="跟機器人打個招呼吧!",
    scope=“Guild ID”,
)
async def hello(ctx: interactions.CommandContext):
    await ctx.send("Hi there!")


bot.start()

結果還是報錯
https://ithelp.ithome.com.tw/upload/images/20230930/20161116xgU93seY11.png
後來使用GPT發現還是要用slash command,結果還是不行
https://ithelp.ithome.com.tw/upload/images/20230930/20161116wd9Rh5Tihj.png


上一篇
[Day17] 計算機機器人
下一篇
[Day19] discord.py slash_command問題解決(下)
系列文
使用discord.py開發自己的機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言