// PV version = 9a65ffd093eefcad972f715896bf35d9d5058a2d syntax = "proto3"; package pianoverse; message ClientMessage { enum EventType { CHOWN = 0; PING = 1; ROOM = 2; PROFILE = 3; CHAT = 4; MOVE = 5; MUTE = 6; UNMUTE = 7; KICK = 8; PRESS = 9; RELEASE = 10; SUSTAIN = 11; HEARTBEAT = 12; BAN = 13; IPBAN = 14; MOD = 15; UNMOD = 16; } string chown = 1; EventType event = 2; Heartbeat ping = 3; Room room = 4; message Room { string room = 1; bool private = 2; } Profile profile = 5; string chat = 6; Move move = 7; string mute = 8; string unmute = 9; string kick = 10; Press press = 11; Release release = 12; bool sustain = 13; Heartbeat heartbeat = 14; Ban ban = 15; string ipban = 16; string mod = 17; string unmod = 18; message Heartbeat {} message Ban { string id = 1; uint32 minutes = 2; } } enum Role { USER = 0; MODERATOR = 1; DEVELOPER = 2; } message ServerMessage { enum EventType { CLEAR = 0; PONG = 1; CHAT = 2; ROOMS = 3; WELCOME = 4; MOVE = 5; PRESS = 6; RELEASE = 7; SUSTAIN = 8; PROFILE = 9; JOIN = 10; LEAVE = 11; RATELIMIT = 12; MESSAGE = 13; CHOWN = 14; } Profile clear = 1; EventType event = 2; Profile pong = 3; Chat chat = 4; message Chat { string id = 1; string content = 2; string name = 3; string color = 4; } repeated Room rooms = 5; message Room { string room = 1; uint32 count = 2; } Welcome welcome = 6; message Welcome { string id = 1; string name = 2; string color = 3; string room = 4; string owner = 5; repeated Chat chat = 6; Role role = 7; } Move move = 7; Press press = 8; Release release = 9; Sustain sustain = 10; message Sustain { string id = 1; bool enabled = 2; } Profile profile = 11; Profile join = 12; string leave = 13; uint32 ratelimit = 14; string message = 15; string chown = 16; } message Profile { string id = 1; string name = 2; string color = 3; Role role = 4; bool muted = 5; float x = 6; float y = 7; } message Move { string id = 1; float x = 2; float y = 3; } message Press { string id = 1; uint32 key = 2; uint32 vel = 3; } message Release { string id = 1; uint32 key = 2; }