如何制作不狙击跨服务器的狙击命令(discord.py)
Posted
技术标签:
【中文标题】如何制作不狙击跨服务器的狙击命令(discord.py)【英文标题】:How can I make a snipe command that doesn't snipe cross server (discord.py) 【发布时间】:2021-10-26 19:31:16 【问题描述】:我正在尝试使用 discord.py 在 python 中创建一个命令,这是您的标准狙击命令,但我在网上看到的所有执行此操作的方法都有一个问题。它们都有一个全局狙击变量,例如,如果我进入服务器 A 并键入“hello”然后删除该消息然后转到服务器 B 并键入狙击命令,它会说最后一条消息是“hello”。有没有简单的方法来解决这个问题? 编辑 - 让它工作! (不知何故)感谢任何帮助过的人
【问题讨论】:
可能是一个将公会 ID 映射到某个对象的字典。每当您调用该命令时,您都会查找ctx.guild.id
,然后对该对象而不是全局变量进行操作。
请提供足够的代码,以便其他人更好地理解或重现问题。
【参考方案1】:
只需添加一个处理程序。
这样做。
contentguild = self.last_msg.guild
guild = ctx.guild
做一个 if 语句:
if contentguild.id != guild.id:
await ctx.reply("There is no message to snipe!",
mention_author=False)
return
我假设您已经设置了 snipe 命令,因此使用这些代码应该能够使其正常工作。如果你真的有问题对这个消息做出反应,我可以给你狙击命令的整个代码,但我希望你先自己尝试一下。 ;-)
【讨论】:
嘿!感谢您的帮助,但我在一天的大部分时间里都在努力让这项工作正常进行。我已经尝试了几乎所有我能想到的东西,但我仍然无法让它发挥作用!您能提供更多帮助吗? 你在用齿轮吗? 是的,但我得到了它的工作。感谢您的帮助! 你能把我的答案标记为给你答案的那个吗?我将不胜感激。以上是关于如何制作不狙击跨服务器的狙击命令(discord.py)的主要内容,如果未能解决你的问题,请参考以下文章