我正在制作一个经济型机器人,这是我第一次使用 Cogs。 出于某种原因,每次我触发一个命令时,它都会发送不止一条消息。我还看到过这样一种模式:对于每个命令,发送的消息数量比前一个命令多一个。
这是我的代码:
import discord
from discord.ext import commands
import json
class currencyCog(commands.Cog):
def __init__(self, bot):
self.bot = bot
global currency
with open('cogs/data/currency.json') as f:
currency = json.load(f)
def _save(self):
with open('cogs/data/currency.json', 'w+') as f:
json.dump(currency, f)
async def new_user(self, id:int):
currency[str(id)] = {
"cash": 100,
"multi": 1,
"upgrades": {
"click_max": 100
},
"items": {
"beginner-crate": 1
}
}
self._save()
user = self.bot.get_user(id)
await user.send('message')
@commands.Cog.listener()
async def on_command(self, ctx):
id = ctx.author.id
if str(id) in currency:
pass
else:
await self.new_user(id)
@commands.command()
async def test(self, ctx):
await ctx.send('beep')
注意:我没有其他机器人实例在运行。我正在使用 Sublime text 3 的 python 构建来运行我的代码。
输出: Click here