问题描述
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('------')