mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-05-22 09:32:33 +00:00
fix(discord): allow bot-to-bot messaging, only drop self-loops (#3217)
Previously the Discord channel dropped every message from any bot account via `if message.author.bot`, which prevented legitimate multi-agent setups (one bot asking another for help, bot-to-bot @mentions, etc.) from working. Narrow the guard to only drop messages from this bot's own account by comparing against self._bot_user_id (already populated in on_ready). Self-loop protection is preserved — each bot instance still ignores its own outbound messages. Co-authored with Claude Opus 4.7
This commit is contained in:
parent
7527961b19
commit
3fd24c72fd
@ -433,8 +433,15 @@ class DiscordChannel(BaseChannel):
|
||||
raise
|
||||
|
||||
async def _handle_discord_message(self, message: discord.Message) -> None:
|
||||
"""Handle incoming Discord messages from discord.py."""
|
||||
if message.author.bot:
|
||||
"""Handle incoming Discord messages from discord.py.
|
||||
|
||||
Self-loop guard: only drop messages from this bot's own account. Messages
|
||||
from other bots are allowed through so multi-agent setups (one bot asking
|
||||
another for help, a bot mentioning another by @name, etc.) can work.
|
||||
Bot-from-bot loops are still prevented per-instance because each bot
|
||||
still ignores its own outbound messages. (#3217)
|
||||
"""
|
||||
if self._bot_user_id is not None and str(message.author.id) == self._bot_user_id:
|
||||
return
|
||||
|
||||
sender_id = str(message.author.id)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user