[PYTHON] Aktualisierte Nachrichten in discord.py

Wenn Sie bei der Ausgabe von Text mit Bot den vorherigen Beitrag löschen und einen neuen veröffentlichen, Dies ist praktisch, da es als zuletzt gepostete Nachricht angezeigt wird.

Wenn der Beitrag jedoch in kurzer Zeit erstellt wird, wird der Beitrag möglicherweise zweimal angezeigt.

Es ist im Grunde ein Multithread-Sperrprozess, Bis jetzt funktioniert es gut, also werde ich die Quelle verlassen.

class RenewalMessage():
    def __init__(self, channel):
        self.lastmessage = None
        self.outputlock = 0
        self.channel = channel

    async def SendMessage(self, message):
        if self.outputlock == 1: return
        try:
            while self.outputlock != 0:
                await asyncio.sleep(1)

            if self.lastmessage is not None:
                self.outputlock = 1
                try:
                    await self.lastmessage.delete()
                except discord.errors.NotFound:
                    pass
                self.lastmessage = None

            try:
                self.outputlock = 2
                self.lastmessage = await self.channel.send(message)
            except discord.errors.Forbidden:
                pass
        finally:
            self.outputlock = 0

Recommended Posts

Aktualisierte Nachrichten in discord.py
Nest Zahnrad in discord.py
Übergeben Sie Argumente in discord.py an Task
Verstehen Sie Zahnräder und Erweiterungen in discord.py