python - 如何比较聊天中发送的两条消息?
问题描述
User 1: nuclear
User 2: reactor
我希望能够比较这两条消息;但是,我遇到了一些麻烦:我只是不知道如何将第二条消息保存到变量中。我试过使用wait_for()
,不知道这是否是这样做的方式,或者我是否正确使用它。
import discord
from discord.ext import commands
class Shiritori(commands.Cog):
""" Start a new word from the last letter of the one before. """
def __init__(self, client):
self.client = client
@commands.Cog.listener()
async def on_message(self, message):
last_letter = message.content[-1]
print(f"The first letter is {message.content[0]}")
msg = await self.client.wait_for('message')
print(f"The last letter is {msg}")
if message.content[0] != msg[-1]:
await message.delete()
def setup(client):
client.add_cog(Shiritori(client))
我的计划是保存用户 1 单词的最后一个字母,并将其与用户 2 单词的第一个字母进行比较,如果不匹配,则删除用户 2 的消息。
解决方案
我希望我能正确理解这个问题。无需使用即可克服此问题的一种方法wait_for
是利用类的属性:
class Shiritori(commands.Cog):
""" Start a new word from the last letter of the one before. """
def __init__(self, client):
self.client = client
self.lastletter = "a" # keeps track of the recent last letter here
@commands.Cog.listener()
async def on_message(self, message):
firstletter = message.content[0]
if firstletter.lower() == self.lastletter.lower():
self.lastletter = message.content[-1]
print(f"The new letter to start the word with is {self.lastletter}")
else:
await message.delete()
此外,您可以添加检查以仅在特定渠道/特定用户等中发生这种情况。
推荐阅读
- python - 为什么这个 Python 数组不切片?
- ibm-cloud - 在 Watson Assistant 和 Node RED 中使用槽
- sql - 在不修改的情况下授予对所有表的截断权限
- c# - Xamarin FOrms iOS:ImageRenderer CreateNativeControl 错误
- c++ - 错误:无法将默认模板参数添加到类模板成员的定义中
- opengl - 如何修复此 OpenGL 错误?“预处理器指令后的意外标记 - 需要换行符”
- scala - 将 play framework 项目更新到 Java 11 并且找不到正确的依赖版本
- javascript - 如何更有效地在组件之间传递状态和道具
- java - 使用 SpringBoot 配置文件模拟 REST API 调用
- mysql - 优化 COUNT(*)