Discord.py 不一致清除限制解决方法:self.bot.delete_messages()错误
因此,我一直试图通过将清除分为几组100来绕过discord 100 message discord.py清除限制,但我遇到了一个问题,当我使用此命令时,我发现了一个错误。我已经测试过了,它正在将消息保存到列表中 错误 代码Discord.py 不一致清除限制解决方法:self.bot.delete_messages()错误,discord.py,Discord.py,因此,我一直试图通过将清除分为几组100来绕过discord 100 message discord.py清除限制,但我遇到了一个问题,当我使用此命令时,我发现了一个错误。我已经测试过了,它正在将消息保存到列表中 错误 代码 @commands.command(pass\u context=True,no\u pm=True) 异步def清除(自身,ctx,数量=无,通道:discord.channel=无): mgs1=[] mgs2=[] mgs3=[] mgs4=[] mgs5=[] 如果
@commands.command(pass\u context=True,no\u pm=True)
异步def清除(自身,ctx,数量=无,通道:discord.channel=无):
mgs1=[]
mgs2=[]
mgs3=[]
mgs4=[]
mgs5=[]
如果通道==无:
通道=ctx.message.channel
金额=整数(金额)
如果金额>1:
self.bot.logs_from((通道),limit=int(数量+1))中x的异步:
而len(mgs1)<100:
mgs1.append(x)
当len(mgs1)=100且len(mgs2)<100时:
mgs2.append(x)
当len(mgs2)=100且len(mgs3)<100时:
mgs3.append(x)
当len(mgs3)=100且len(mgs4)<100时:
mgs4.附加(x)
当len(mgs4)=100且len(mgs5)<100时:
mgs5.附加(x)
打印(mgs1、mgs2、mgs3、mgs4、mgs5)
等待self.bot.delete_消息(mgs1)
等待self.bot.delete_消息(mgs2)
等待self.bot.delete_消息(mgs3)
等待self.bot.delete_消息(mgs4)
等待self.bot.delete_消息(mgs5)
而不是不断地硬编码变量来处理溢出。我建议你简单地把每次清洗的次数减少
@commands.command(pass_context=True, no_pm=True)
async def purge(self, ctx, amount, channel: discord.Channel=None):
channel = channel or ctx.message.channel
try:
amount = int(amount)
await self.bot.delete_message(ctx.message)
for amount in range(amount, 0, -100):
await self.bot.purge_from(channel, limit=amount)
except ValueError:
return await self.bot.say('You have to enter a full number!')
在这里,无论用户输入什么,命令都将在for循环中清除,每次迭代减少100
@commands.command(pass_context=True, no_pm=True)
async def purge(self, ctx, amount = None, channel:discord.Channel = None):
mgs1 = []
mgs2 = []
mgs3 = []
mgs4 = []
mgs5 = []
if channel == None:
channel = ctx.message.channel
amount = int(amount)
if amount > 1:
async for x in self.bot.logs_from((channel), limit = int(amount+1)):
while len(mgs1) < 100:
mgs1.append(x)
while len(mgs1) == 100 and len(mgs2) < 100:
mgs2.append(x)
while len(mgs2) == 100 and len(mgs3) < 100:
mgs3.append(x)
while len(mgs3) == 100 and len(mgs4) < 100:
mgs4.append(x)
while len(mgs4) == 100 and len(mgs5) < 100:
mgs5.append(x)
print(mgs1, mgs2, mgs3, mgs4, mgs5)
await self.bot.delete_messages(mgs1)
await self.bot.delete_messages(mgs2)
await self.bot.delete_messages(mgs3)
await self.bot.delete_messages(mgs4)
await self.bot.delete_messages(mgs5)
@commands.command(pass_context=True, no_pm=True)
async def purge(self, ctx, amount, channel: discord.Channel=None):
channel = channel or ctx.message.channel
try:
amount = int(amount)
await self.bot.delete_message(ctx.message)
for amount in range(amount, 0, -100):
await self.bot.purge_from(channel, limit=amount)
except ValueError:
return await self.bot.say('You have to enter a full number!')