/******************************************************************************* * Copyright 2015 Maximilian Stark | Dakror <mail@dakror.de> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package de.dakror.arise.net.packet; /** * @author Dakror */ public class Packet02Disconnect extends Packet { public enum Cause { SERVER_CLOSED("Der Server wurde geschlossen. Wir untersuchen dieses Problem bereits und versuchen, den Server schnellstmöglichst wieder zu starten."), SERVER_CONFIRMED("Der Server bestätigt die Anfrage des Clients auf Abmeldung."), USER_DISCONNECT("Spiel beendet."), INACTIVE("Du wurdest aus Inaktivität von über einer Stunde vom Server getrennt."), KICK("Du wurdest vom Server gekickt."), ; private String description; private Cause(String desc) { description = desc; } public String getDescription() { return description; } } int id; Cause cause; public Packet02Disconnect(int id, Cause cause) { super(2); this.id = id; this.cause = cause; } public Packet02Disconnect(byte[] data) { super(2); String[] parts = readData(data).split(":"); id = Integer.parseInt(new String(parts[0])); cause = Cause.values()[Integer.parseInt(new String(parts[1].trim()))]; } @Override protected byte[] getPacketData() { return (id + ":" + cause.ordinal()).getBytes(); } public int getUserId() { return id; } public Cause getCause() { return cause; } }