Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-10-03 08:41:05 +02:00
Handle metadata correctly, implement new MetaTypes & bump protocol to 18w01a (non-stable)
Dieser Commit ist enthalten in:
Ursprung
ede4fa5a5d
Commit
444eabcebf
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
@ -37,7 +37,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<artifactId>viaversion-common</artifactId>
|
<artifactId>viaversion-common</artifactId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
@ -13,15 +13,17 @@ public enum MetaType1_13 implements MetaType {
|
|||||||
Float(2, Type.FLOAT),
|
Float(2, Type.FLOAT),
|
||||||
String(3, Type.STRING),
|
String(3, Type.STRING),
|
||||||
Chat(4, Type.STRING),
|
Chat(4, Type.STRING),
|
||||||
Slot(5, Type.FLAT_ITEM),
|
OptChat(5, Type.OPTIONAL_CHAT),
|
||||||
Boolean(6, Type.BOOLEAN),
|
Slot(6, Type.FLAT_ITEM),
|
||||||
Vector3F(7, Type.ROTATION),
|
Boolean(7, Type.BOOLEAN),
|
||||||
Position(8, Type.POSITION),
|
Vector3F(8, Type.ROTATION),
|
||||||
OptPosition(9, Type.OPTIONAL_POSITION),
|
Position(9, Type.POSITION),
|
||||||
Direction(10, Type.VAR_INT),
|
OptPosition(10, Type.OPTIONAL_POSITION),
|
||||||
OptUUID(11, Type.OPTIONAL_UUID),
|
Direction(11, Type.VAR_INT),
|
||||||
BlockID(12, Type.VAR_INT),
|
OptUUID(12, Type.OPTIONAL_UUID),
|
||||||
NBTTag(13, Type.NBT),
|
BlockID(13, Type.VAR_INT),
|
||||||
|
NBTTag(14, Type.NBT),
|
||||||
|
UNKNOWN(15, null), // TODO do research
|
||||||
Discontinued(99, null);
|
Discontinued(99, null);
|
||||||
|
|
||||||
private final int typeID;
|
private final int typeID;
|
||||||
|
@ -62,7 +62,7 @@ public class ProtocolVersion {
|
|||||||
register(v1_12 = new ProtocolVersion(335, "1.12"));
|
register(v1_12 = new ProtocolVersion(335, "1.12"));
|
||||||
register(v1_12_1 = new ProtocolVersion(338, "1.12.1"));
|
register(v1_12_1 = new ProtocolVersion(338, "1.12.1"));
|
||||||
register(v1_12_2 = new ProtocolVersion(340, "1.12.2"));
|
register(v1_12_2 = new ProtocolVersion(340, "1.12.2"));
|
||||||
register(v1_13 = new ProtocolVersion(351, "17w50a"));
|
register(v1_13 = new ProtocolVersion(352, "18w01a"));
|
||||||
register(unknown = new ProtocolVersion(-1, "UNKNOWN"));
|
register(unknown = new ProtocolVersion(-1, "UNKNOWN"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ public abstract class Type<T> implements ByteBufReader<T>, ByteBufWriter<T> {
|
|||||||
public static final Type<CompoundTag[]> NBT_ARRAY = new ArrayType<>(Type.NBT);
|
public static final Type<CompoundTag[]> NBT_ARRAY = new ArrayType<>(Type.NBT);
|
||||||
|
|
||||||
public static final Type<UUID> OPTIONAL_UUID = new OptUUIDType();
|
public static final Type<UUID> OPTIONAL_UUID = new OptUUIDType();
|
||||||
|
public static final Type<String> OPTIONAL_CHAT = new OptionalChatType();
|
||||||
public static final Type<Position> OPTIONAL_POSITION = new OptPositionType();
|
public static final Type<Position> OPTIONAL_POSITION = new OptPositionType();
|
||||||
|
|
||||||
public static final Type<Item> ITEM = new ItemType();
|
public static final Type<Item> ITEM = new ItemType();
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package us.myles.ViaVersion.api.type.types.minecraft;
|
||||||
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
|
|
||||||
|
public class OptionalChatType extends Type<String> {
|
||||||
|
public OptionalChatType() {
|
||||||
|
super(String.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String read(ByteBuf buffer) throws Exception {
|
||||||
|
boolean present = buffer.readBoolean();
|
||||||
|
if (!present) return null;
|
||||||
|
return Type.STRING.read(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(ByteBuf buffer, String object) throws Exception {
|
||||||
|
if (object == null) {
|
||||||
|
buffer.writeBoolean(false);
|
||||||
|
} else {
|
||||||
|
buffer.writeBoolean(true);
|
||||||
|
Type.STRING.write(buffer, object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -6,36 +6,46 @@ import us.myles.ViaVersion.api.entities.Entity1_12Types;
|
|||||||
import us.myles.ViaVersion.api.minecraft.item.Item;
|
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.minecraft.metadata.types.MetaType1_13;
|
import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_13;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.protocols.protocol1_9to1_8.Protocol1_9TO1_8;
|
||||||
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.packets.InventoryPackets;
|
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.packets.InventoryPackets;
|
||||||
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.packets.WorldPackets;
|
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.packets.WorldPackets;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class MetadataRewriter {
|
public class MetadataRewriter {
|
||||||
public static void handleMetadata(int entityId, Entity1_12Types.EntityType type, List<Metadata> metadatas, UserConnection connection) {
|
public static void handleMetadata(int entityId, Entity1_12Types.EntityType type, List<Metadata> metadatas, UserConnection connection) {
|
||||||
// metadatas.clear();
|
|
||||||
for (Metadata metadata : new ArrayList<>(metadatas)) {
|
for (Metadata metadata : new ArrayList<>(metadatas)) {
|
||||||
|
// Handle new MetaTypes
|
||||||
|
if (metadata.getMetaType().getTypeID() > 4)
|
||||||
|
metadata.setMetaType(MetaType1_13.byId(metadata.getMetaType().getTypeID() + 1));
|
||||||
|
|
||||||
|
// TODO Fix displayname
|
||||||
|
if (metadata.getId() == 2) {
|
||||||
|
metadata.setMetaType(MetaType1_13.OptChat);
|
||||||
|
metadata.setValue(metadata.getValue() != null ? Protocol1_9TO1_8.fixJson((String) metadata.getValue()) : null);
|
||||||
|
}
|
||||||
|
|
||||||
// 1.13 changed item to flat item (no data)
|
// 1.13 changed item to flat item (no data)
|
||||||
if (metadata.getMetaType().getType() == Type.ITEM) {
|
if (metadata.getMetaType() == MetaType1_13.Slot) {
|
||||||
metadata.setMetaType(MetaType1_13.Slot);
|
metadata.setMetaType(MetaType1_13.Slot);
|
||||||
InventoryPackets.toClient((Item) metadata.getValue());
|
InventoryPackets.toClient((Item) metadata.getValue());
|
||||||
}
|
}
|
||||||
if (metadata.getMetaType().getTypeID() == MetaType1_13.BlockID.getTypeID()) {
|
if (metadata.getMetaType() == MetaType1_13.BlockID) {
|
||||||
// Convert to new block id
|
// Convert to new block id
|
||||||
metadata.setValue(WorldPackets.toNewId((int) metadata.getValue()));
|
metadata.setValue(WorldPackets.toNewId((int) metadata.getValue()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle other changes
|
// Handle other changes
|
||||||
try {
|
try {
|
||||||
if (type != null && type.is(Entity1_12Types.EntityType.AREA_EFFECT_CLOUD)) {
|
if (type != null && type.is(Entity1_12Types.EntityType.AREA_EFFECT_CLOUD)) {
|
||||||
if (metadata.getId() == 9 || metadata.getId() == 10 || metadata.getId() == 11) {
|
if (metadata.getId() == 9 || metadata.getId() == 10 || metadata.getId() == 11) {
|
||||||
// TODO: AreaEffectCloud has lost 2 integers and gained "ef"
|
// TODO: AreaEffectCloud has lost 2 integers and gained "ef"
|
||||||
// Will be implemented when more info is known
|
// Will be implemented when more info is known
|
||||||
metadatas.remove(metadata); // Remove
|
metadatas.remove(metadata); // Remove
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: Boat has changed
|
// TODO: Boat has changed
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
metadatas.remove(metadata);
|
metadatas.remove(metadata);
|
||||||
if (!Via.getConfig().isSuppressMetadataErrors() || Via.getManager().isDebug()) {
|
if (!Via.getConfig().isSuppressMetadataErrors() || Via.getManager().isDebug()) {
|
||||||
@ -46,5 +56,8 @@ public class MetadataRewriter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (Metadata metadata : metadatas) {
|
||||||
|
System.out.println(metadata.getMetaType() instanceof MetaType1_13);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -157,14 +157,26 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol {
|
|||||||
registerOutgoing(State.PLAY, 0x28, 0x29);
|
registerOutgoing(State.PLAY, 0x28, 0x29);
|
||||||
registerOutgoing(State.PLAY, 0x29, 0x2A);
|
registerOutgoing(State.PLAY, 0x29, 0x2A);
|
||||||
registerOutgoing(State.PLAY, 0x2A, 0x2B);
|
registerOutgoing(State.PLAY, 0x2A, 0x2B);
|
||||||
registerOutgoing(State.PLAY, 0x2B, 0x2C);
|
// Craft recipe response
|
||||||
|
registerOutgoing(State.PLAY, 0x2B, 0x2C, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
handler(new PacketHandler() {
|
||||||
|
@Override
|
||||||
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
|
// TODO This packet changed
|
||||||
|
wrapper.cancel();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
registerOutgoing(State.PLAY, 0x2C, 0x2D);
|
registerOutgoing(State.PLAY, 0x2C, 0x2D);
|
||||||
registerOutgoing(State.PLAY, 0x2D, 0x2E);
|
registerOutgoing(State.PLAY, 0x2D, 0x2E);
|
||||||
registerOutgoing(State.PLAY, 0x2E, 0x2F);
|
registerOutgoing(State.PLAY, 0x2E, 0x2F);
|
||||||
registerOutgoing(State.PLAY, 0x2F, 0x30);
|
registerOutgoing(State.PLAY, 0x2F, 0x31);
|
||||||
registerOutgoing(State.PLAY, 0x30, 0x31);
|
registerOutgoing(State.PLAY, 0x30, 0x32);
|
||||||
// Recipe
|
// Recipe
|
||||||
registerOutgoing(State.PLAY, 0x31, 0x32, new PacketRemapper() {
|
registerOutgoing(State.PLAY, 0x31, 0x33, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@ -177,11 +189,11 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
registerOutgoing(State.PLAY, 0x33, 0x34);
|
registerOutgoing(State.PLAY, 0x33, 0x35);
|
||||||
registerOutgoing(State.PLAY, 0x34, 0x35);
|
registerOutgoing(State.PLAY, 0x34, 0x36);
|
||||||
|
|
||||||
// Respawn (save dimension id)
|
// Respawn (save dimension id)
|
||||||
registerOutgoing(State.PLAY, 0x35, 0x36, new PacketRemapper() {
|
registerOutgoing(State.PLAY, 0x35, 0x37, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.INT); // 0 - Dimension ID
|
map(Type.INT); // 0 - Dimension ID
|
||||||
@ -196,20 +208,20 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
registerOutgoing(State.PLAY, 0x36, 0x37);
|
registerOutgoing(State.PLAY, 0x36, 0x38);
|
||||||
registerOutgoing(State.PLAY, 0x37, 0x38);
|
registerOutgoing(State.PLAY, 0x37, 0x39);
|
||||||
registerOutgoing(State.PLAY, 0x38, 0x39);
|
registerOutgoing(State.PLAY, 0x38, 0x3A);
|
||||||
registerOutgoing(State.PLAY, 0x39, 0x3A);
|
registerOutgoing(State.PLAY, 0x39, 0x3B);
|
||||||
registerOutgoing(State.PLAY, 0x3A, 0x3B);
|
registerOutgoing(State.PLAY, 0x3A, 0x3C);
|
||||||
registerOutgoing(State.PLAY, 0x3B, 0x3C);
|
registerOutgoing(State.PLAY, 0x3B, 0x3D);
|
||||||
|
|
||||||
registerOutgoing(State.PLAY, 0x3D, 0x3E);
|
registerOutgoing(State.PLAY, 0x3D, 0x3F);
|
||||||
registerOutgoing(State.PLAY, 0x3E, 0x3F);
|
registerOutgoing(State.PLAY, 0x3E, 0x40);
|
||||||
|
|
||||||
registerOutgoing(State.PLAY, 0x40, 0x41);
|
registerOutgoing(State.PLAY, 0x40, 0x42);
|
||||||
registerOutgoing(State.PLAY, 0x41, 0x42);
|
registerOutgoing(State.PLAY, 0x41, 0x43);
|
||||||
// Scoreboard Objective
|
// Scoreboard Objective
|
||||||
registerOutgoing(State.PLAY, 0x42, 0x43, new PacketRemapper() {
|
registerOutgoing(State.PLAY, 0x42, 0x44, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.STRING);
|
map(Type.STRING);
|
||||||
@ -228,20 +240,22 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
registerOutgoing(State.PLAY, 0x43, 0x44);
|
// TODO UPDATE BLOCK ENTITY?
|
||||||
registerOutgoing(State.PLAY, 0x44, 0x45);
|
|
||||||
registerOutgoing(State.PLAY, 0x45, 0x46);
|
registerOutgoing(State.PLAY, 0x43, 0x45);
|
||||||
registerOutgoing(State.PLAY, 0x46, 0x47);
|
registerOutgoing(State.PLAY, 0x44, 0x46);
|
||||||
registerOutgoing(State.PLAY, 0x47, 0x48);
|
registerOutgoing(State.PLAY, 0x45, 0x47);
|
||||||
registerOutgoing(State.PLAY, 0x48, 0x49);
|
registerOutgoing(State.PLAY, 0x46, 0x48);
|
||||||
|
registerOutgoing(State.PLAY, 0x47, 0x49);
|
||||||
|
registerOutgoing(State.PLAY, 0x48, 0x4A);
|
||||||
// New packet 0x4A - Stop sound (TODO: Migrate from Plugin Messages)
|
// New packet 0x4A - Stop sound (TODO: Migrate from Plugin Messages)
|
||||||
registerOutgoing(State.PLAY, 0x49, 0x4B);
|
registerOutgoing(State.PLAY, 0x49, 0x4C);
|
||||||
registerOutgoing(State.PLAY, 0x4A, 0x4C);
|
registerOutgoing(State.PLAY, 0x4A, 0x4D);
|
||||||
registerOutgoing(State.PLAY, 0x4B, 0x4D);
|
registerOutgoing(State.PLAY, 0x4B, 0x4E);
|
||||||
registerOutgoing(State.PLAY, 0x4C, 0x4E);
|
registerOutgoing(State.PLAY, 0x4C, 0x4F);
|
||||||
registerOutgoing(State.PLAY, 0x4D, 0x4F);
|
registerOutgoing(State.PLAY, 0x4D, 0x50);
|
||||||
registerOutgoing(State.PLAY, 0x4E, 0x50);
|
registerOutgoing(State.PLAY, 0x4E, 0x51);
|
||||||
registerOutgoing(State.PLAY, 0x4F, 0x51);
|
registerOutgoing(State.PLAY, 0x4F, 0x52);
|
||||||
// New packet 0x52 - Declare Recipes
|
// New packet 0x52 - Declare Recipes
|
||||||
// New packet 0x53 - Tags
|
// New packet 0x53 - Tags
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import us.myles.ViaVersion.api.remapper.PacketHandler;
|
|||||||
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
import us.myles.ViaVersion.api.remapper.PacketRemapper;
|
||||||
import us.myles.ViaVersion.api.type.Type;
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
import us.myles.ViaVersion.api.type.types.version.Types1_12;
|
import us.myles.ViaVersion.api.type.types.version.Types1_12;
|
||||||
|
import us.myles.ViaVersion.api.type.types.version.Types1_13;
|
||||||
import us.myles.ViaVersion.packets.State;
|
import us.myles.ViaVersion.packets.State;
|
||||||
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.MetadataRewriter;
|
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.MetadataRewriter;
|
||||||
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.storage.EntityTracker;
|
import us.myles.ViaVersion.protocols.protocolsnapshotto1_12_2.storage.EntityTracker;
|
||||||
@ -28,7 +29,6 @@ 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 {
|
||||||
|
|
||||||
int entityId = wrapper.get(Type.VAR_INT, 0);
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
byte type = wrapper.get(Type.BYTE, 0);
|
byte type = wrapper.get(Type.BYTE, 0);
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ public class EntityPackets {
|
|||||||
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(Types1_12.METADATA_LIST); // 12 - Metadata
|
map(Types1_12.METADATA_LIST, Types1_13.METADATA_LIST); // 12 - Metadata
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -68,14 +68,42 @@ public class EntityPackets {
|
|||||||
Entity1_12Types.EntityType entType = Entity1_12Types.getTypeFromId(type, false);
|
Entity1_12Types.EntityType entType = Entity1_12Types.getTypeFromId(type, false);
|
||||||
// Register Type ID
|
// Register Type ID
|
||||||
wrapper.user().get(EntityTracker.class).addEntity(entityId, entType);
|
wrapper.user().get(EntityTracker.class).addEntity(entityId, entType);
|
||||||
MetadataRewriter.handleMetadata(entityId, entType, wrapper.get(Types1_12.METADATA_LIST, 0), wrapper.user());
|
|
||||||
|
MetadataRewriter.handleMetadata(entityId, entType, wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Spawn player packet
|
||||||
|
protocol.registerOutgoing(State.PLAY, 0x05, 0x05, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
|
map(Type.UUID); // 1 - Player UUID
|
||||||
|
map(Type.DOUBLE); // 2 - X
|
||||||
|
map(Type.DOUBLE); // 3 - Y
|
||||||
|
map(Type.DOUBLE); // 4 - Z
|
||||||
|
map(Type.BYTE); // 5 - Yaw
|
||||||
|
map(Type.BYTE); // 6 - Pitch
|
||||||
|
map(Types1_12.METADATA_LIST, Types1_13.METADATA_LIST); // 7 - Metadata
|
||||||
|
|
||||||
|
handler(new PacketHandler() {
|
||||||
|
@Override
|
||||||
|
public void handle(PacketWrapper wrapper) throws Exception {
|
||||||
|
int entityId = wrapper.get(Type.VAR_INT, 0);
|
||||||
|
|
||||||
|
Entity1_12Types.EntityType entType = Entity1_12Types.EntityType.PLAYER;
|
||||||
|
System.out.println("REGISTER PLAYER");
|
||||||
|
// Register Type ID
|
||||||
|
wrapper.user().get(EntityTracker.class).addEntity(entityId, entType);
|
||||||
|
MetadataRewriter.handleMetadata(entityId, entType, wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
// Destroy entities
|
// Destroy entities
|
||||||
protocol.registerOutgoing(State.PLAY, 0x32, 0x33, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x32, 0x34, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT_ARRAY); // 0 - Entity IDS
|
map(Type.VAR_INT_ARRAY); // 0 - Entity IDS
|
||||||
@ -91,11 +119,11 @@ public class EntityPackets {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Metadata packet
|
// Metadata packet
|
||||||
protocol.registerOutgoing(State.PLAY, 0x3C, 0x3D, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x3C, 0x3E, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
map(Types1_12.METADATA_LIST); // 1 - Metadata list
|
map(Types1_12.METADATA_LIST, Types1_13.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 {
|
||||||
@ -103,7 +131,7 @@ public class EntityPackets {
|
|||||||
|
|
||||||
Optional<Entity1_12Types.EntityType> type = wrapper.user().get(EntityTracker.class).get(entityId);
|
Optional<Entity1_12Types.EntityType> type = wrapper.user().get(EntityTracker.class).get(entityId);
|
||||||
|
|
||||||
MetadataRewriter.handleMetadata(entityId, type.orNull(), wrapper.get(Types1_12.METADATA_LIST, 0), wrapper.user());
|
MetadataRewriter.handleMetadata(entityId, type.orNull(), wrapper.get(Types1_13.METADATA_LIST, 0), wrapper.user());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ public class InventoryPackets {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Entity Equipment Packet
|
// Entity Equipment Packet
|
||||||
protocol.registerOutgoing(State.PLAY, 0x3F, 0x40, new PacketRemapper() {
|
protocol.registerOutgoing(State.PLAY, 0x3F, 0x41, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<name>viaversion-jar</name>
|
<name>viaversion-jar</name>
|
||||||
|
2
pom.xml
2
pom.xml
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<name>viaversion-parent</name>
|
<name>viaversion-parent</name>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>viaversion-parent</artifactId>
|
<artifactId>viaversion-parent</artifactId>
|
||||||
<groupId>us.myles</groupId>
|
<groupId>us.myles</groupId>
|
||||||
<version>1.4.0-17w50a</version>
|
<version>1.4.0-18w01a</version>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren