Discord.py:想要将 message.content 读取为小写,.lower() 不起作用

2022-01-15 00:00:00 python python-3.x discord.py

问题描述

import discord
import asyncio
import sys
from discord.ext import commands
client=commands.Bot(command_prefix = '.')
id=client.get_guild(-----)
codeword=["codeword"]

@client.event
async def on_message(message):
    message.content=message.content.lower()
    if message.content== 'sys.exit()': sys.exit()
    if  message.content in codeword:
        await message.channel.send("{}".format(message.author.display_name))
        await message.delete()
client.run('------')

Expected outcome: codeword, regardless of capitalization is removed.

Error: NameError: name 'lower' is not defined

I also tried

@client.event
async def on_message(message):
    if message.content.lower()== 'sys.exit()': sys.exit()
    if  message.content.lower() in codeword:
        await message.channel.send("{}.format(message.author.display_name))
        await message.delete()

Error:'str' object has no attribute 'lowercase'

解决方案

I would recommend assigning the lower-case version it's own variable like this.

messageContent = message.content.lower()

So...

@client.event
async def on_message(message):
    messageContent = message.content.lower()
    if messageContent == 'sys.exit()': sys.exit()
    if  messageContent in codeword:
        await message.channel.send("{}".format(message.author.display_name))
        await message.delete()
client.run('------')

相关文章