未在Python中重新定义变量(discord.py)

2024-06-08 04:50:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为我的一台服务器制作一个Discord机器人,它的功能之一就是防止诅咒语。我希望它在您键入命令时切换审查模式。然而,它并没有将变量切换到1然后再切换回来,而是保持在0,即使我得到了“坏单词现在不起作用”的输出

@client.event
async def on_message(message):
    swareCensor: int = 0
    if message.content == 'f! censor':
        if swareCensor == 0:
            await message.channel.send('Bad words will now not work')
            swareCensor += 1
        else:
            await message.channel.send('The bad word filter is now off')
            swareCensor *= 0

    if swareCensor == 1:
        if 'fuck' in message.content:
            await message.delete()
            await message.channel.send('Sware has been detected')

一直对宣誓进行审查并不理想,特别是如果我想在多台服务器上进行审查的话


Tags: 命令功能服务器sendmessage键入if模式
1条回答
网友
1楼 · 发布于 2024-06-08 04:50:51

首先,我强烈建议使用实际的命令方法,而不是在onMessage事件中说if message == "!command"

swearFilter = False

@client.command()
async def sensor(ctx):
    swearFilter = not swearFilter
    await ctx.send(f"Swear filter is now set to {swearFilter}")

@client.event()
async def on_message(message):
    if swearFilter:
        if "fuck" in message.content:
            await message.delete()
            await message.channel.send("Swear detected!")

相关问题 更多 >

    热门问题