Cog 命令复制消息(Discord.py 重写)

时间:2021-03-20 11:28:15

标签: python-3.x discord.py

我正在制作一个经济型机器人,这是我第一次使用 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

0 个答案:

没有答案