47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
export default class ProtocolState {
|
|
static HANDSHAKE = new ProtocolState(-1);
|
|
static PLAY = new ProtocolState(0);
|
|
static STATUS = new ProtocolState(1);
|
|
static LOGIN = new ProtocolState(2);
|
|
|
|
constructor(id) {
|
|
this.id = id;
|
|
}
|
|
|
|
getId() {
|
|
return this.id;
|
|
}
|
|
|
|
getName() {
|
|
switch (this) {
|
|
case ProtocolState.HANDSHAKE:
|
|
return "HANDSHAKE";
|
|
case ProtocolState.LOGIN:
|
|
return "LOGIN";
|
|
case ProtocolState.PLAY:
|
|
return "PLAY";
|
|
case ProtocolState.STATUS:
|
|
return "STATUS";
|
|
default:
|
|
return "UNKNOWN";
|
|
}
|
|
}
|
|
|
|
|
|
static fromId(id) {
|
|
for (let state of this.values()) {
|
|
if (state.getId() === id) {
|
|
return state;
|
|
}
|
|
}
|
|
}
|
|
|
|
static values() {
|
|
return [
|
|
ProtocolState.HANDSHAKE,
|
|
ProtocolState.LOGIN,
|
|
ProtocolState.PLAY,
|
|
ProtocolState.STATUS
|
|
];
|
|
}
|
|
} |