sendCrossServerMessage

suspend fun sendCrossServerMessage(sender: Player, targetName: String, targetServerName: String, message: String)(source)

Sends a direct message to a player on another server through Velocity.

Runs on the sender's delivery queue, off the tick thread, because the romaji conversion it goes through may wait on the Google IME API. The reply target is recorded by the command before the work is queued; the sender-side display and the spy notification are handled by DirectMessageHandler, and the (possibly romaji-converted) body is what gets relayed.

Failures are deliberately not caught here. The delivery queue is the error boundary for queued work and already reports them without stopping the sender's later messages; a second boundary underneath it only obscured where failures on this path are handled - and made an ordinary cancellation at shutdown look like a delivery failure.