Table of Contents

Bulletin Board Messages (0x71)

Moongate Packet Classes

  • BulletinBoardMessagesPacket (Incoming, Variable, length -1) from src/Moongate.Network.Packets/Incoming/Interaction/BulletinBoardMessagesPacket.cs

Current Moongate Behavior

Moongate currently has packet classes for this opcode.

Packet Build

Type Field
BYTE[1] 0x71
BYTE[2] Length
BYTE[1] Subcommand
BYTE[len-4] Subcommand Details

Subcommand Build

Subcommand 0 - Display Bulletin Board (Server)

Type Field
BYTE[4] BoardID
BYTE[22] board name (default is "bulletin board", the rest nulls)
BYTE[4] ID (0x402000FF)
BYTE[4] zero (0)

Subcommand 1 - Message Summary (Server)

Type Field
BYTE[4] BoardID
BYTE[4] MessageID
BYTE[4] ParentID (0 if top level)
BYTE[1] posterLen
BYTE[posterLen] poster (null terminated string)
BYTE[1] subjectLen
BYTE[subjectLen] subject (null terminated string)
BYTE[1] timeLen
BYTE[timeLen] time (null terminated string with time of posting) ("Day 1 @ 11:28")

Subcommand 2 - Message (Server)

Type Field
BYTE[4] BoardID
BYTE[4] MessageID
BYTE[1] posterLen
BYTE[posterLen] poster (null terminated string)
BYTE[1] subjectLen
BYTE[subjectLen] subject (null terminated string)
BYTE[1] timeLen
BYTE[timeLen] time (null terminated string with time of posting) ("Day 1 @ 11:28")
BYTE[29] constant: (01 91 84 0A 06 1E FD 01 0B 15 2E 01 0B 17 0B 01 BB 20 46 04 66 13 F8 00 00 0E 75 00 00)
BYTE[1] numlines

For each line:

Type Field
BYTE[1] linelen
BYTE[linelen] body (null terminated)

Subcommand 3 - Request Message (Client)

Type Field
BYTE[4] BoardID
BYTE[4] MessageID

Subcommand 4 - Request Message Summary (Client)

Type Field
BYTE[4] BoardID
BYTE[4] MessageID

Subcommand 5 - Post a message (Client)

Type Field
BYTE[4] BoardID
BYTE[4] Replying to ID (0 if this is a top level / non-reply post)
BYTE[1] subjectLen (length of the subject, includes null termination)
BYTE[subjectLen] subject (null terminated)
BYTE[1] numlines

For each line:

    • BYTE linelen
Type Field
BYTE[linelen] body (null terminated)

Subcommand 6 - Remove Posted Message (Client)

Type Field
BYTE[4] BoardID
BYTE[4] MessageID

Notes

N/A