public PacketBuilder(final Player player, final PacketType type) {
		try {
			this.utils = new MinecraftReflectionUtils(player);
			this.packet = null;
			this.builder = this;

			if (type.name().startsWith("PLAY_IN"))
				direction = PacketDirection.CLIENT_TO_SERVER;
			else if (type.name().startsWith("PLAY_OUT"))
				direction = PacketDirection.SERVER_TO_CLIENT;

			switch (type) {
				case PLAY_IN_CLIENT_COMMAND:
					packet = utils.emptyPacketPlayInClientCommand;
					break;
				case PLAY_OUT_ANIMATION:
					packet = utils.emptyPacketPlayOutAnimation;
					break;
				case PLAY_OUT_BED:
					packet = utils.emptyPacketPlayOutBed;
					break;
				case PLAY_OUT_CHAT:
					packet = utils.emptyPacketPlayOutChat;
					break;
				case PLAY_OUT_NAMED_ENTITY_SPAWN:
					packet = utils.emptyPacketPlayOutNamedEntitySpawn;
					break;
				case PLAY_OUT_OPEN_WINDOW:
					packet = utils.emptyPacketPlayOutOpenWindow;
					break;
				case PLAY_OUT_ENTITY_DESTROY:
					packet = utils.emptyPacketPlayOutEntityDestroy;
					break;
				case PLAY_OUT_GAME_STATE_CHANGE:
					packet = utils.emptyPacketPlayOutGameStateChange;
					break;
				case PLAY_OUT_OPEN_SIGN_EDITOR:
					packet = utils.emptyPacketPlayOutOpenSignEditor;
					break;
				default:
					break;
			}
			packet = packet.getClass().getConstructor().newInstance();
		} catch (final Exception e) {
		}
	}