簡體   English   中英

如何使 python discord 機器人執行/使用命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM