3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-27 16:40:10 +01:00

Make the Metadata types version based and remove the NoGravity tag init since it doesn't seem needed.

Dieser Commit ist enthalten in:
Matsv 2016-07-11 13:48:48 +02:00
Ursprung c207a9bfff
Commit db935b454f
9 geänderte Dateien mit 45 neuen und 48 gelöschten Zeilen

Datei anzeigen

@ -10,19 +10,30 @@ import us.myles.ViaVersion.api.remapper.ValueTransformer;
import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.storage.ResourcePackTracker; import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.storage.ResourcePackTracker;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.types.Meta1_10Type; import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.types.Meta1_9_1_10Type;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.types.MetaList1_10Type; import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.types.MetaList1_9_1_10Type;
import java.util.List; import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
public class Protocol1_10To1_9_3_4 extends Protocol { public class Protocol1_10To1_9_3_4 extends Protocol {
public static final Type<List<Metadata>> METADATA_LIST = new MetaList1_10Type(); public static final Type<List<Metadata>> METADATA_LIST = new MetaList1_9_1_10Type();
public static final Type<Metadata> METADATA = new Meta1_10Type(); public static final Type<Metadata> METADATA = new Meta1_9_1_10Type();
public static ValueTransformer<Short, Float> toNewPitch = new ValueTransformer<Short, Float>(Type.FLOAT) { public static ValueTransformer<Short, Float> toNewPitch = new ValueTransformer<Short, Float>(Type.FLOAT) {
@Override @Override
public Float transform(PacketWrapper wrapper, Short inputValue) throws Exception { public Float transform(PacketWrapper wrapper, Short inputValue) throws Exception {
return inputValue / 63.5F; return inputValue / 63.5F;
}
};
public static ValueTransformer<List<Metadata>, List<Metadata>> transformMetadata = new ValueTransformer<List<Metadata>, List<Metadata>>(METADATA_LIST) {
@Override
public List<Metadata> transform(PacketWrapper wrapper, List<Metadata> inputValue) throws Exception {
List<Metadata> metaList = new CopyOnWriteArrayList<>(inputValue);
for (Metadata m : metaList) {
if (m.getId() >= 5)
m.setId(m.getId() + 1);
}
return metaList;
} }
}; };
@ -69,7 +80,7 @@ public class Protocol1_10To1_9_3_4 extends Protocol {
@Override @Override
public void registerMap() { public void registerMap() {
map(Type.VAR_INT); // 0 - Entity ID map(Type.VAR_INT); // 0 - Entity ID
map(METADATA_LIST); // 1 - Metadata list map(METADATA_LIST, transformMetadata); // 1 - Metadata list
} }
}); });
@ -89,7 +100,7 @@ public class Protocol1_10To1_9_3_4 extends Protocol {
map(Type.SHORT); // 9 - Velocity X map(Type.SHORT); // 9 - Velocity X
map(Type.SHORT); // 10 - Velocity Y map(Type.SHORT); // 10 - Velocity Y
map(Type.SHORT); // 11 - Velocity Z map(Type.SHORT); // 11 - Velocity Z
map(METADATA_LIST); // 12 - Metadata map(METADATA_LIST, transformMetadata); // 12 - Metadata
} }
}); });
@ -104,7 +115,7 @@ public class Protocol1_10To1_9_3_4 extends Protocol {
map(Type.DOUBLE); // 4 - Z map(Type.DOUBLE); // 4 - Z
map(Type.BYTE); // 5 - Yaw map(Type.BYTE); // 5 - Yaw
map(Type.BYTE); // 6 - Pitch map(Type.BYTE); // 6 - Pitch
map(METADATA_LIST); // 7 - Metadata list map(METADATA_LIST, transformMetadata); // 7 - Metadata list
} }
}); });

Datei anzeigen

@ -5,7 +5,7 @@ import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
import us.myles.ViaVersion.api.type.types.minecraft.MetaTypeTemplate; import us.myles.ViaVersion.api.type.types.minecraft.MetaTypeTemplate;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.NewType; import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.NewType;
public class Meta1_10Type extends MetaTypeTemplate { public class Meta1_9_1_10Type extends MetaTypeTemplate {
@Override @Override
public Metadata read(ByteBuf buffer) throws Exception { public Metadata read(ByteBuf buffer) throws Exception {

Datei anzeigen

@ -2,15 +2,13 @@ package us.myles.ViaVersion.protocols.protocol1_10to1_9_3.types;
import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBuf;
import us.myles.ViaVersion.api.minecraft.metadata.Metadata; import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.api.type.types.minecraft.MetaListTypeTemplate; import us.myles.ViaVersion.api.type.types.minecraft.MetaListTypeTemplate;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4; import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.NewType;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MetaList1_10Type extends MetaListTypeTemplate { public class MetaList1_9_1_10Type extends MetaListTypeTemplate {
@Override @Override
public List<Metadata> read(ByteBuf buffer) throws Exception { public List<Metadata> read(ByteBuf buffer) throws Exception {
@ -27,13 +25,8 @@ public class MetaList1_10Type extends MetaListTypeTemplate {
@Override @Override
public void write(ByteBuf buffer, List<Metadata> object) throws Exception { public void write(ByteBuf buffer, List<Metadata> object) throws Exception {
for (Metadata m : object) { for (Metadata m : object)
if (m.getId() >= 5)
m.setId(m.getId() + 1);
if (m.getId() == 4)
Protocol1_10To1_9_3_4.METADATA.write(buffer, new Metadata(5, NewType.Boolean.getTypeID(), Type.BOOLEAN, false)); // No gravity metadata
Protocol1_10To1_9_3_4.METADATA.write(buffer, m); Protocol1_10To1_9_3_4.METADATA.write(buffer, m);
}
// Write end of list // Write end of list
Protocol1_10To1_9_3_4.METADATA.write(buffer, null); Protocol1_10To1_9_3_4.METADATA.write(buffer, null);

Datei anzeigen

@ -17,8 +17,8 @@ import us.myles.ViaVersion.protocols.base.ProtocolInfo;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.listeners.*; import us.myles.ViaVersion.protocols.protocol1_9to1_8.listeners.*;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.packets.*; import us.myles.ViaVersion.protocols.protocol1_9to1_8.packets.*;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.*; import us.myles.ViaVersion.protocols.protocol1_9to1_8.storage.*;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.types.MetadataListType; import us.myles.ViaVersion.protocols.protocol1_9to1_8.types.Metadata1_8Type;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.types.MetadataType; import us.myles.ViaVersion.protocols.protocol1_9to1_8.types.MetadataList1_8Type;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -26,8 +26,8 @@ import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
public class Protocol1_9TO1_8 extends Protocol { public class Protocol1_9TO1_8 extends Protocol {
public static Type<List<Metadata>> METADATA_LIST = new MetadataListType(); public static Type<List<Metadata>> METADATA_LIST = new MetadataList1_8Type();
public static Type<Metadata> METADATA = new MetadataType(); public static Type<Metadata> METADATA = new Metadata1_8Type();
private static Gson gson = new GsonBuilder().create(); private static Gson gson = new GsonBuilder().create();
public static ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) { public static ValueTransformer<String, String> FIX_JSON = new ValueTransformer<String, String>(Type.STRING) {
@Override @Override

Datei anzeigen

@ -11,6 +11,7 @@ import us.myles.ViaVersion.api.remapper.PacketRemapper;
import us.myles.ViaVersion.api.remapper.ValueTransformer; import us.myles.ViaVersion.api.remapper.ValueTransformer;
import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.ItemRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.ItemRewriter;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter;
@ -175,11 +176,11 @@ public class EntityPackets {
@Override @Override
public void registerMap() { public void registerMap() {
map(Type.VAR_INT); // 0 - Entity ID map(Type.VAR_INT); // 0 - Entity ID
map(Protocol1_9TO1_8.METADATA_LIST); // 1 - Metadata List map(Protocol1_9TO1_8.METADATA_LIST, Protocol1_10To1_9_3_4.METADATA_LIST); // 1 - Metadata List
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
if (tracker.getClientEntityTypes().containsKey(entityID)) { if (tracker.getClientEntityTypes().containsKey(entityID)) {
@ -196,7 +197,7 @@ public class EntityPackets {
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.handleMetadata(entityID, metadataList); tracker.handleMetadata(entityID, metadataList);
@ -207,7 +208,7 @@ public class EntityPackets {
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
if (metadataList.size() == 0) { if (metadataList.size() == 0) {
wrapper.cancel(); wrapper.cancel();
} }

Datei anzeigen

@ -12,6 +12,7 @@ import us.myles.ViaVersion.api.remapper.ValueCreator;
import us.myles.ViaVersion.api.remapper.ValueTransformer; import us.myles.ViaVersion.api.remapper.ValueTransformer;
import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.packets.State;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.ItemRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.ItemRewriter;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter;
@ -107,7 +108,7 @@ public class SpawnPackets {
// TEMP FIX FOR POTIONS UNTIL WE FIGURE OUT HOW TO TRANSFORM SENT PACKETS // TEMP FIX FOR POTIONS UNTIL WE FIGURE OUT HOW TO TRANSFORM SENT PACKETS
Metadata potion = new Metadata(5, NewType.Slot.getTypeID(), Type.ITEM, item); Metadata potion = new Metadata(5, NewType.Slot.getTypeID(), Type.ITEM, item);
meta.add(potion); meta.add(potion);
wrapper.write(Protocol1_9TO1_8.METADATA_LIST, meta); wrapper.write(Protocol1_10To1_9_3_4.METADATA_LIST, meta);
} }
}); });
metaPacket.send(Protocol1_9TO1_8.class); metaPacket.send(Protocol1_9TO1_8.class);
@ -206,11 +207,11 @@ public class SpawnPackets {
map(Type.SHORT); // 10 - Velocity Y map(Type.SHORT); // 10 - Velocity Y
map(Type.SHORT); // 11 - Velocity Z map(Type.SHORT); // 11 - Velocity Z
map(Protocol1_9TO1_8.METADATA_LIST); map(Protocol1_9TO1_8.METADATA_LIST, Protocol1_10To1_9_3_4.METADATA_LIST);
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
if (tracker.getClientEntityTypes().containsKey(entityID)) { if (tracker.getClientEntityTypes().containsKey(entityID)) {
@ -225,7 +226,7 @@ public class SpawnPackets {
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.handleMetadata(entityID, metadataList); tracker.handleMetadata(entityID, metadataList);
@ -311,12 +312,12 @@ public class SpawnPackets {
} }
}); });
map(Protocol1_9TO1_8.METADATA_LIST); map(Protocol1_9TO1_8.METADATA_LIST, Protocol1_10To1_9_3_4.METADATA_LIST);
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
if (tracker.getClientEntityTypes().containsKey(entityID)) { if (tracker.getClientEntityTypes().containsKey(entityID)) {
@ -332,7 +333,7 @@ public class SpawnPackets {
handler(new PacketHandler() { handler(new PacketHandler() {
@Override @Override
public void handle(PacketWrapper wrapper) throws Exception { public void handle(PacketWrapper wrapper) throws Exception {
List<Metadata> metadataList = wrapper.get(Protocol1_9TO1_8.METADATA_LIST, 0); List<Metadata> metadataList = wrapper.get(Protocol1_10To1_9_3_4.METADATA_LIST, 0);
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker tracker = wrapper.user().get(EntityTracker.class); EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.handleMetadata(entityID, metadataList); tracker.handleMetadata(entityID, metadataList);

Datei anzeigen

@ -20,6 +20,7 @@ import us.myles.ViaVersion.api.minecraft.item.Item;
import us.myles.ViaVersion.api.minecraft.metadata.Metadata; import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.api.type.Type;
import us.myles.ViaVersion.protocols.base.ProtocolInfo; import us.myles.ViaVersion.protocols.base.ProtocolInfo;
import us.myles.ViaVersion.protocols.protocol1_10to1_9_3.Protocol1_10To1_9_3_4;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8; import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.chat.GameMode; import us.myles.ViaVersion.protocols.protocol1_9to1_8.chat.GameMode;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter; import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataRewriter;
@ -274,7 +275,7 @@ public class EntityTracker extends StoredObject {
if (metadataBuffer.containsKey(entityID)) { if (metadataBuffer.containsKey(entityID)) {
PacketWrapper wrapper = new PacketWrapper(0x39, null, getUser()); PacketWrapper wrapper = new PacketWrapper(0x39, null, getUser());
wrapper.write(Type.VAR_INT, entityID); wrapper.write(Type.VAR_INT, entityID);
wrapper.write(Protocol1_9TO1_8.METADATA_LIST, metadataBuffer.get(entityID)); wrapper.write(Protocol1_10To1_9_3_4.METADATA_LIST, metadataBuffer.get(entityID));
MetadataRewriter.transform(getClientEntityTypes().get(entityID), metadataBuffer.get(entityID)); MetadataRewriter.transform(getClientEntityTypes().get(entityID), metadataBuffer.get(entityID));
handleMetadata(entityID, metadataBuffer.get(entityID)); handleMetadata(entityID, metadataBuffer.get(entityID));
if (metadataBuffer.get(entityID).size() > 0) { if (metadataBuffer.get(entityID).size() > 0) {

Datei anzeigen

@ -6,7 +6,7 @@ import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
import us.myles.ViaVersion.api.type.types.minecraft.MetaTypeTemplate; import us.myles.ViaVersion.api.type.types.minecraft.MetaTypeTemplate;
import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataTypes; import us.myles.ViaVersion.protocols.protocol1_9to1_8.metadata.MetadataTypes;
public class MetadataType extends MetaTypeTemplate { public class Metadata1_8Type extends MetaTypeTemplate {
@Override @Override
public Metadata read(ByteBuf buffer) throws Exception { public Metadata read(ByteBuf buffer) throws Exception {
@ -20,12 +20,6 @@ public class MetadataType extends MetaTypeTemplate {
@Override @Override
public void write(ByteBuf buffer, Metadata object) throws Exception { public void write(ByteBuf buffer, Metadata object) throws Exception {
if (object == null) { throw new UnsupportedOperationException("1.8 Metadata writing is not implemented!");
buffer.writeByte(255);
} else {
buffer.writeByte(object.getId());
buffer.writeByte(object.getTypeID());
object.getType().write(buffer, object.getValue());
}
} }
} }

Datei anzeigen

@ -8,7 +8,7 @@ import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MetadataListType extends MetaListTypeTemplate { public class MetadataList1_8Type extends MetaListTypeTemplate {
@Override @Override
public List<Metadata> read(ByteBuf buffer) throws Exception { public List<Metadata> read(ByteBuf buffer) throws Exception {
@ -26,10 +26,6 @@ public class MetadataListType extends MetaListTypeTemplate {
@Override @Override
public void write(ByteBuf buffer, List<Metadata> object) throws Exception { public void write(ByteBuf buffer, List<Metadata> object) throws Exception {
for (Metadata m : object) { throw new UnsupportedOperationException("1.8 MetadataList writing is not implemented");
Protocol1_9TO1_8.METADATA.write(buffer, m);
}
// Write end of list
Protocol1_9TO1_8.METADATA.write(buffer, null);
} }
} }