pixelplanet/API.md

2.4 KiB

API Websocket

This websocket provides unlimited access to many functions of the site, it is used for Discord Chat Bridge and similar stuff.

Websocket url: https://[dev.]pixelplanet.fun/mcws

Connection just possible with header:

Authorization: "Bearer APISOCKETKEY"

All requests are made as JSON encoded array.

Subscribe to chat messages

send

["sub", "chat"]

you get a reply with the list of public channels you are now receiving messages of

["chans", [id1, name1], [id2, name2], ...]

All chat messages, except the once you send with chat or mcchat, will be sent to you in the form:

["msg", name, uid, message, country, channelId] channelId is an integer, channel 0 is en channel 1 is int and maybe more to come. id is the user id country is the two-letter country code in lowercase

Subscribe to online user counter

send

["sub", "online"]

Online counter will be sent to you all 10s as typical binary package (see src/socket/packets/OnlineCounter.js)

Subscribe to pixel packages

send

["sub", "pxl"]

All pixels (including your own) will be sent to you as typical binary packages

Get flag of User

send

['getflag', userId]

receive

```['flag', userId, flag]``

Flag is in lowercase two-letter country code and null if user doesn't exist or had no flag set yet

Set Pixel

[ "setpxl", minecraftid, ip, x, y, clr ]

(x, y, clr are integers, rest strings)

Sets a pixel with the according cooldown to minecraftid, ip. Minecraftid is optional, but ip is required if it is given. If both minecraftid and ip are null/None, the pixel will get set without cooldown check. No race condition checks are performed.

You will get a reply with:

["retpxl", id, error, success, waitSeconds, coolDownSeconds]

(id and error as strings, success as boolean, waitSeconds and coolDownSeconds as float)

ID is minecraftid, if given, else ip. error is a message on error, else null. success... self explanatory waitSeconds is the current cooldown. coolDownSeconds is the added cooldown (negative if pixel couldn't be set because max cooldown got reached)

Send Chat Message

["chat", name, userId, message, country, channelId]

channelId is an integer, channel 0 is en channel 1 is int and maybe more to come. (messages with the name "info" will be displayed as red notifications in the chat window)