我正在撰寫一個小的 Discord bot,我想用于我自己的個人服務器,我想嘗試將所有命令關鍵字放入一個陣列中,并為每個命令設定一個函式以保持我的代碼整潔。對不起,如果這聽起來很愚蠢,但我對 Python 還很陌生。我想嘗試一個基本的垃圾郵件命令來測驗我的機器人,但是每當我嘗試讓它通過該函式發送訊息時,我都會收到此錯誤:
File "main.py", line 31
await message.channel.send(f"spam")
^
SyntaxError: 'await' outside async function
這是我的代碼:
import discord
import os
import time
token = os.environ['token']
client = discord.Client()
keywords = ["spam"]
@client.event
async def on_ready():
print('We have logged in as {0.user}'.format(client))
@client.event
async def on_message(message):
prefix = "."
if message.author == client.user:
return
if message.content.startswith(prefix):
mcontent = (str(message.content))[1:len(str(message.content))]
for i in range(len(keywords)):
if keywords[0] in mcontent:
spam(mcontent, message)
def spam(mcontent, message):
n = int(mcontent[4:len(mcontent)])
n2 = 0
while n2 < n:
await message.channel.send(f"spam")
n2 = n2 1
time.sleep(1)
client.run(token)
uj5u.com熱心網友回復:
你忘了做這個功能async:
async def spam(mcontent, message):
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/340127.html
上一篇:您需要保留匯入行嗎?
