package com.spbsu.crawl.data;
import com.spbsu.crawl.data.impl.*;
import com.spbsu.crawl.data.impl.system.*;
/**
* User: qdeee
* Date: 03.04.16
*/
public enum Protocol {
PING(PingCommand.class),
PONG(PongMessage.class),
LOGIN(LoginMessage.class),
REGISTER(RegisterMessage.class),
LOBBY_ENTRY(IgnoreMessage.class),
LOBBY_REMOVE(IgnoreMessage.class),
LOBBY_CLEAR(IgnoreMessage.class),
MENU(MenuMessage.class),
LOBBY_COMPLETE(LobbyComplete.class),
LOGIN_SUCCESS(LoginSuccessMessage.class),
GO_LOBBY(GoLobbyMessage.class),
PLAY(StartGameMessage.class),
WATCH(StartSpectateMessage.class),
HTML(IgnoreMessage.class),
SET_GAME_LINKS(SetGameLinks.class),
UPDATE_SPECTATORS(IgnoreMessage.class),
UI_STATE(IgnoreMessage.class),
OPTIONS(IgnoreMessage.class),
GAME_CLIENT(IgnoreMessage.class),
GAME_STARTED(GameStarted.class),
GAME_ENDED(GameEnded.class),
VERSION(IgnoreMessage.class),
LAYOUT(IgnoreMessage.class),
INPUT_MODE(InputModeMessage.class),
CURSOR(IgnoreMessage.class),
MSGS(IgnoreMessage.class),
PLAYER(PlayerInfoMessage.class),
MAP(UpdateMapMessage.class),
MON(MonsterInfoMessage.class),
KEY(KeyMessage.class),
INPUT(InputCommandMessage.class),
CLOSE(IgnoreMessage.class),
TXT(IgnoreMessage.class),
STALE_PROCESSES(IgnoreMessage.class),
DELAY(IgnoreMessage.class),
CLEAR_OVERLAYS(IgnoreMessage.class),
OVERLAY(IgnoreMessage.class),
UPDATE_MENU(IgnoreMessage.class),
CLOSE_MENU(IgnoreMessage.class),
FLASH(IgnoreMessage.class),
;
private final Class<?> clazz;
Protocol(Class<?> clazz) {
this.clazz = clazz;
}
public <T> Class<T> clazz() {
//noinspection unchecked
return (Class<T>) clazz;
}
}