package protocolsupport.protocol.typeremapper.entity.metadata.types.object;

import protocolsupport.protocol.typeremapper.entity.metadata.types.base.BaseEntityMetadataRemapper;
import protocolsupport.protocol.typeremapper.entity.metadata.value.IndexValueRemapperNoOp;
import protocolsupport.protocol.types.networkentity.metadata.NetworkEntityMetadataObjectIndex;
import protocolsupport.protocol.utils.ProtocolVersionsHelper;

public class FireworkEntityMetadataRemapper extends BaseEntityMetadataRemapper {

	public FireworkEntityMetadataRemapper() {
		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.ITEM, 7), ProtocolVersionsHelper.UP_1_14);
		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.ITEM, 6), ProtocolVersionsHelper.RANGE__1_10__1_13_2);
		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.ITEM, 5), ProtocolVersionsHelper.ALL_1_9);
		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.ITEM, 8), ProtocolVersionsHelper.BEFORE_1_9);

		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.USER, 8), ProtocolVersionsHelper.UP_1_14);
		addRemap(new IndexValueRemapperNoOp(NetworkEntityMetadataObjectIndex.Firework.USER, 7), ProtocolVersionsHelper.RANGE__1_11_1__1_13_2);
	}

}

@@ -170,16 +170,103 @@
 mapper;%0A
+import protocolsupport.protocol.typeremapper.entity.metadata.value.IndexValueRemapper;%0A
 import p
@@ -436,21 +436,327 @@
 taObject
-Index
+;%0Aimport protocolsupport.protocol.types.networkentity.metadata.NetworkEntityMetadataObjectIndex;%0Aimport protocolsupport.protocol.types.networkentity.metadata.objects.NetworkEntityMetadataObjectOptionalVarInt;%0Aimport protocolsupport.protocol.types.networkentity.metadata.objects.NetworkEntityMetadataObjectVarInt
 ;%0Aimport
@@ -1593,36 +1593,75 @@
 dexValueRemapper
-NoOp
+%3CNetworkEntityMetadataObjectOptionalVarInt%3E
 (NetworkEntityMe
@@ -1691,24 +1691,253 @@
 ork.USER, 7)
+ %7B%0A%09%09%09@Override%0A%09%09%09public NetworkEntityMetadataObject%3C?%3E remapValue(NetworkEntityMetadataObjectOptionalVarInt object) %7B%0A%09%09%09%09return new NetworkEntityMetadataObjectVarInt(object.getValue() != null ? object.getValue() : 0);%0A%09%09%09%7D%0A%09%09%7D
 , ProtocolVe

Fix firework entity metadata remap