python - 我的 c!givecookie {member} 命令中缺少什么?不和谐机器人 python
问题描述
因此,由于某种原因,存在问题c!givecookie {member}
。我在后面提到了命令@client.command()
。当我在不和谐中键入命令(c!givecookie)时,它没有响应。任何男孩都可以帮忙吗?
import os
import random
from replit import db
from keep_alive import keep_alive
from discord.ext import commands
my_secret = os.environ['TOKEN']
def update_encouragements(encouraging_msg):
if "encouragements" in db.keys():
encouragements = db["encouragements"]
encouragements.append(encouraging_msg)
db["encouragements"] = encouragements
else:
db["encouragements"] = [encouraging_msg]
def delete_encouragment(index):
encouragements = db["encouragements"]
if len("encouragements") > index:
del encouragements[index]
db["encouragements"] = encouragements
if "c!responding" not in db.keys():
db["c!responding"] = True
client = commands.Bot(command_prefix = "c! ")
@client.command()
async def givecookie(ctx, member: commands.MemberConverter):
await ctx.send(f"Hello, {member.mention}, here is your cookie~ :cookie:")
@client.event
async def on_ready():
print('We have logged in as {0.user}' .format(client))
async def on_message(message):
if message.author == client.user:
return
if db["c!responding"]:
options = starter_encouragements
if "encouragements" in db.keys():
options = options + list(db["encouragements"])
if any(word in message.content for word in sad_words):
await message.channel.send(random.choice(options))
if message.content.startswith("c!new"):
encouraging_msg = message.content.split("c!new", 1)[1]
update_encouragements(encouraging_msg)
await message.channel.send("New encouraging message added!")
if message.content.startswith("c!delete"):
encouragements = []
if "encouragements" in db.keys():
index = int(message.content.split("c!delete",1)[1])
delete_encouragment(index)
encouragements = db["encouragements"]
await message.channel.send(encouragements)
if message.content.startswith("c!list"):
encouragements = []
if "encouragements" in db.keys():
encouragements = db["encouragements"]
await message.channel.send(encouragements)
if message.content.startswith("c!responding"):
value = message.content.split("c!responding ",1)[1]
if value.lower() == "true":
db["c!responding"] = True
await message.channel.send("Responding is on!")
else:
db["c!responding"] = False
await message.channel.send("Responding is off!")
keep_alive()
client.run(my_secret)
解决方案
该错误在您的on_message
事件中,因为它将命令作为正常消息来解决此问题,您只需在事件await client.process_commands(message)
结束时添加on_message
答案取自这里
推荐阅读
- c# - 停止等待更改线程 C# 的请求
- sql - 按定义的条件从表中选择列的次数
- laravel - 将多张图片保存到 Laravel Livewire
- javascript - 在键值对匹配的嵌套对象中求和值
- haskell - Haskell - 将整数列表映射到它们的平方根
- javascript - 从word文档粘贴时,输入字段单引号变成正方形
- excel - VBA:如何检查特定单元格是否包含图像,然后删除图像(如果存在)
- python - 如何在时间序列图的 xticks 上显示自定义间隔?
- python-3.x - 在 Python 中将两个 shapefile 与 geopandas 重叠
- java - 如何将 Java RSA 公钥移植到 c# 加密功能?