asyncapi: 3.0.0 info: title: Darkflame Chat Server WebSocket API version: 1.0.0 description: API documentation for Darkflame Chat Server WebSocket endpoints servers: production: host: 'localhost:2005' pathname: /ws protocol: http description: Address of the websocket for the chat server channels: subscribe: address: subscribe messages: subscribe.message: title: Subscribe contentType: application/json payload: $ref: '#/components/schemas/Subscription' unsubscribe: address: unsubscribe messages: unsubscribe.message: title: Unsubscribe contentType: application/json payload: $ref: '#/components/schemas/Subscription' getSubscriptions: address: getSubscriptions messages: getSubscriptions.message: title: Get Subscriptions contentType: application/json payload: type: object properties: subscriptions: type: array items: type: string example: player player: address: player messages: player.message: title: Player contentType: application/json payload: $ref: '#/components/schemas/PlayerUpdate' operations: subscribe: action: receive channel: $ref: '#/channels/subscribe' summary: Subscribe to an event messages: - $ref: '#/channels/subscribe/messages/subscribe.message' unsubscribe: action: receive channel: $ref: '#/channels/unsubscribe' summary: Unsubscribe from an event messages: - $ref: '#/channels/unsubscribe/messages/unsubscribe.message' getSubscriptions: action: receive channel: $ref: '#/channels/getSubscriptions' summary: Get the list of subscriptions messages: - $ref: '#/channels/getSubscriptions/messages/getSubscriptions.message' player: action: send channel: $ref: '#/channels/player' summary: Player event messages: - $ref: '#/channels/player/messages/player.message' components: schemas: PlayerUpdate: type: object properties: player_data: $ref: '#/components/schemas/Player' update_type: type: string example: JOIN Subscription: type: object required: - subscription properties: subscription: type: string example: player Player: type: object properties: id: type: integer format: int64 example: 1152921508901824000 gm_level: type: integer format: uint8 example: 0 name: type: string example: thisisatestname muted: type: boolean example: false zone_id: $ref: '#/components/schemas/ZoneID' ZoneID: type: object properties: map_id: type: integer format: uint16 example: 1200 instance_id: type: integer format: uint16 example: 2 clone_id: type: integer format: uint32 example: 0