// PV version = 672593ae79922c7414126e8a84b9bab9d9a4899a 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; MOD = 1; DEV = 2; } enum NotificationLevel { INFO = 0; SUCCESS = 1; WARNING = 2; ERROR = 3; UNRECOGNIZED = -1; } 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; POPUP = 13; CHOWN = 14; NOTIFICATION = 15; TOKEN = 16; } 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; bool private = 8; } 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 popup = 15; string chown = 16; message Notification { NotificationLevel level = 1; string title = 2; string text = 3; uint32 timeout = 4; } Notification notification = 17; string token = 18; } 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; }