Skip to content

packages: emit a private system message to one connected client #329

Closed

Description

@Mathih13

This was generated by AI during triage.

Agent Brief

Category: enhancement
Summary: Give compiled Packages one core operation that emits a private client system message.

Current behavior:
The Gateway can build SMSG_MESSAGECHAT System for command responses, but the Module has no recipient-scoped event or Package-callable operation for that packet. Package hooks can only misuse public Say/Yell or whisper paths, which changes gameplay semantics and may reach the wrong clients.

Desired behavior:
Add a transient, recipient-scoped System Message event owned by the Module. A small core operation accepts a character guid and message, resolves the recipient on the current Shard, normalizes and bounds the text, and writes the event. Compiled Package code can call that operation without table or protocol knowledge.

The Gateway relays an inserted event only to the named character's World Session using its existing System chat packet builder. The event follows the existing recipient-security and event-reaping rules. Missing recipients and empty messages produce an explicit result without writing.

Key interfaces:

  • Package-callable System Message operation
  • Recipient-scoped transient event
  • Gateway event relay to SMSG_MESSAGECHAT System

Acceptance criteria:

  • A caller can emit one bounded System Message by character guid from Module code.
  • Only the intended World Session receives the packet.
  • Another connected character receives nothing.
  • Empty text and a character absent from the current Shard write no event.
  • The Gateway reuses the existing System chat packet builder.
  • Event rows are protected like other recipient-scoped events and reaped by normal event GC.
  • Generated Gateway bindings are refreshed through the documented schema workflow.
  • Module and Gateway tests cover success, missing recipient, empty text, and recipient isolation.

Out of scope:

  • Say, Yell, whisper, channel, or party behavior
  • Arbitrary packet emission from Packages
  • Runtime Script host API expansion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2normalenhancementNew feature or requestready-for-agentComplete enough to build from the issue alone, by a person or their agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions