diff options
| author | Skipper <[email protected]> | 2025-02-03 11:19:02 +0000 |
|---|---|---|
| committer | Skipper <[email protected]> | 2025-02-03 11:19:02 +0000 |
| commit | 0b53c6b864735dbc0ebf675eaa478f1275ae0fa9 (patch) | |
| tree | 6303cae4a46cc230bfb2c033e3a0862592155794 /lib | |
| parent | f2189b417b543bea5add24f5a324b328fa8dbfac (diff) | |
Added discord client
Begun implementation of the discord client. Will exclude the config.py after this - so any changes made during testing (including API keys) will not be copied through - un-ignore if adding new config values.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/DiscordClient.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/DiscordClient.py b/lib/DiscordClient.py new file mode 100644 index 0000000..431a1d1 --- /dev/null +++ b/lib/DiscordClient.py @@ -0,0 +1,42 @@ +import discord +import asyncio +from lib.PacketManager.packets.FSNETCMD_TEXTMESSAGE import FSNETCMD_TEXTMESSAGE +from config import DISCORD_TOKEN, CHANNEL_ID + +class DiscordClient(discord.Client): + + def __init__(self, intents, parent=None): + super().__init__(intents=intents) + self.parent = parent + + async def on_ready(self): + await self.check_messages() + + async def on_message(self, message): + if message.channel.id == CHANNEL_ID: + if message.author.id == self.user.id: + return + author = message.author.name + content = message.content + messageToSendToClients = FSNETCMD_TEXTMESSAGE.encode(author, content) + if self.parent: + self.parent.send_to_all(messageToSendToClients) + + async def send_message(self, message): + channel = self.get_channel(CHANNEL_ID) + if channel: + message = await channel.send(message) + + async def check_messages(self): + while True: + if self.parent: + for message in self.parent.chatLog: + await self.send_message(message) + self.parent.chatLog.remove(message) + await asyncio.sleep(1) + + def start_bot(self): + loop = asyncio.get_event_loop() + loop.create_task(self.check_messages()) + self.run(DISCORD_TOKEN) + |
