public static BaseRequest messageFromBytes(byte[] buffer) { VRage.ByteStream stream = new VRage.ByteStream(buffer, buffer.Length); TYPE t = (TYPE)stream.getUShort(); stream.Seek(0, System.IO.SeekOrigin.Begin); BaseRequest msg = null; switch (t) { case TYPE.FLEET: msg = new FleetRequest(); break; case TYPE.SETTINGS: msg = new SettingsRequest(); break; case TYPE.VIOLATIONS: msg = new ViolationsRequest(); break; case TYPE.DISOWN: msg = new DisownRequest(); break; } if (msg != null) msg.deserialize(stream); return msg; }