[英]How to make python discord bot execute/use a command
這就是我現在所擁有的,它確實每 60 秒成功發送一次消息。
@tasks.loop(seconds=60)
async def mytask():
channel = bot.get_channel(305347032569348107)
await channel.send('Example message')
但是,當我將await channel.send('Example message')
更改為await channel.send('!coin')
時,它只會發送 .coin 消息,而不是執行/使用 !coin 命令。
我也試過這個await channel.send(!coin)
但這甚至沒有運行並顯示SyntaxError: invalid syntax
error。
簡單地說,請記住,您的機器人只負責將!coin
發送到任何渠道。 由實際處理!coin
命令的機器人決定是否要運行與!coin
命令相關的任何邏輯並響應或不響應。
大多數 discord 機器人甚至不會考慮來自另一個機器人的“命令”,以防止濫用和機器人循環(Discord.js 的快速入門指南阻止機器人執行命令,如此處所示)。 因此,您最好的選擇可能是自己實現!coin
命令。
您可以讓機器人發送虛假的!coin
消息,然后使用另一個內置命令執行coin
命令中包含的腳本。 以下是如何為mytask
調整當前代碼:
@client.command()
async def coin(ctx):
... # Add coin code here
@tasks.loop(seconds=60)
async def mytask(ctx):
# Send a fake "!coin" message
channel = bot.get_channel(305347032569348107)
await channel.send('!coin')
# Execute the coin command
await channel.invoke(client.get_command('coin'))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.