#python #discord #discum
Вопрос:
Я хочу, чтобы мой бот перенаправлял сообщения DM с определенного идентификатора на определенный идентификатор канала на моем сервере discord и перенаправлял сообщения с одного и того же канала сервера обратно на один и тот же идентификатор пользователя в DM.
Проблемы, которые у меня есть:
- Когда бот получает сообщение в DM, бот отправляет сообщение на идентификатор канала сервера, а затем отправляет обратно в DM, и я хочу остановить этот цикл, если идентификатор автора сообщения-это мой бот, чтобы не пересылать его.
- Если бот получает 2 сообщения одновременно, он пересылает только первое, и я хочу, чтобы он пересылал их все.
import discum import config bot = discum.Client(token=config.token, log=False) @bot.gateway.command def on_message(resp): if resp.event.ready_supplemental: try: user = bot.gateway.session.user print(f"Forwarding bot started. Logged in as {user['username']}#{user['discriminator']}") guilds = bot.gateway.session.guilds for guild_id, guild in guilds.items(): bot.gateway.request.lazyGuild(guild_id, {1: [[0, 99]]}, typing=True, threads=False, activities=True, members=[]) except Exception as e: return if resp.event.message: message = resp.parsed.auto() if not message['content'] or not message['content'] != "": return try: if str(message['channel_id']) == str(config.dm_channel_id) and str(message['author']['id']) != str(config.bot_account_user_id): bot.sendMessage(str(config.from_dm_channel_id), message['content'].strip()) elif str(message['channel_id']) == str(config.to_dm_channel_id) and str(message['author']['id']) != str(config.user_to_dm_channel_id): dm = bot.createDM([config.user_to_dm_channel_id]).json()["id"] bot.sendMessage(dm, message['content'].strip()) except Exception as e: pass bot.gateway.run()