嗨,我是使用Discord.py创建机器人的新手。尽管现在遇到问题,但我在使用文档方面相处得很好。
这是commands.py
中的所有代码。
# All commands
cmds = {
# The 'cmd' variable I'm using in the second code block
"ping": {
"name": "Ping",
"description": "Ping pong",
"usage_str": "ping",
"rank_needed": 0,
"execute": None
}
}
# Define the function
def ping(client, message, channel, args):
print("SENDING MESSAGE!")
client.send_message(channel, "Pong!")
# Set the execute index in the dictionary to equal the function
cmds["ping"]["execute"] = ping
这是main.py
中的代码,它正在调用ping函数。
cmd["execute"](client, message, channel, content)
当我尝试执行功能时,尽管控制台上已打印“ SENDING MESSAGE”,但没有消息发送到通道。为什么是这样?我想念什么?
答案 0 :(得分:0)
您需要await
send_message
协程,这意味着ping
本身必须是协程,并且是在事件循环内执行的。我建议使用discord.ext.commands
扩展名:
from discord.ext import commands
import discord
bot = commands.Bot("!")
@bot.command(pass_context=True)
async def ping(ctx, channel: discord.Channel, *, message):
print("SENDING MESSAGE!")
await bot.send_message(channel, message)
bot.run("token")