fix: read event.source.{platform,user_id} not event.{platform,user_id}
MessageEvent wraps source in nested SessionSource — fields at the top level don't exist, causing resolve_peer() to always fall through to the fallback_peer. This meant every Discord user got a raw snowflake peer created instead of the mapped name.
This commit is contained in:
@@ -292,8 +292,12 @@ def _patch_session_db() -> None:
|
|||||||
|
|
||||||
def _pre_gateway_dispatch(event: Any, gateway: Any, session_store: Any, **kw) -> dict | None:
|
def _pre_gateway_dispatch(event: Any, gateway: Any, session_store: Any, **kw) -> dict | None:
|
||||||
"""Resolve peer identity and store it for Honcho session init."""
|
"""Resolve peer identity and store it for Honcho session init."""
|
||||||
platform = getattr(event, "platform", "unknown")
|
# NOTE: MessageEvent wraps source in nested SessionSource object.
|
||||||
user_id = getattr(event, "user_id", "unknown")
|
# event.source.{platform, user_id} are the correct paths — NOT
|
||||||
|
# event.{platform, user_id} which don't exist on MessageEvent.
|
||||||
|
source = event.source if hasattr(event, "source") else event
|
||||||
|
platform = getattr(source, "platform", "unknown")
|
||||||
|
user_id = getattr(source, "user_id", "unknown")
|
||||||
resolved = resolve_peer(platform, user_id)
|
resolved = resolve_peer(platform, user_id)
|
||||||
|
|
||||||
if resolved:
|
if resolved:
|
||||||
|
|||||||
Reference in New Issue
Block a user