Browse API 1 documentation
GroveAPI 1preview

grove.reply()

Reply using a message's peer, channel, and optional IRC message ID.

Mango 3.1+View Markdown

Signature

ts
grove.reply(message: { kind: 'channel' | 'dm'; from: string; channel?: string; id?: string }, text: string, options?: { receipt?: string }): void

Availability

IRC-bound runtimes; same restrictions as grove.send(). A DM reply requires query.send and an existing query. A channel reply uses an explicit channel and requires server scope plus network.send in the current implementation.

Parameters

Parameter Required Description
message Yes The original message event payload. Use its original kind, from, channel, and id.
message.kind Yes dm routes to from; channel routes to channel.
message.from Yes Peer nickname for a DM.
message.channel For channel Confirmed joined channel name.
message.id No IRC message ID used as reply context when supported by the native send path.
text Yes Ordinary message text; the send validation and trimming rules apply.
options.receipt No UUID for messageEcho correlation.

Options do not support to, channel, or open overrides. The facade derives the target solely from message.

Return value

Returns undefined; no acknowledgement Promise.

Behavior and errors

The facade always forwards message.channel as an explicit target. Consequently, a conversation-bound channel instance cannot currently use this helper even for its own channel; use grove.send(text) there, which sends without reply metadata. This is a current API 1 implementation limitation.

Invalid destinations, missing permissions, malformed receipts, and CTCP-framed text are refused as for send. A supplied message object is not permission to access its destination.

Example

js
// Server-scoped runtime with channel.read and network.send.
grove.on('message', message => {
  if (!message.own && message.kind === 'channel' && message.text === '!hello') {
    grove.reply(message, 'Hello!')
  }
})