Fixing some compile errors

This commit is contained in:
FlorianMichael 2024-04-01 21:56:16 +02:00
parent bf7bcd8f98
commit f5c29cc5bf
No known key found for this signature in database
GPG Key ID: C2FB87E71C425126
5 changed files with 42 additions and 34 deletions

View File

@ -43,6 +43,7 @@ public class EntityTypes1_8 {
// Objects // Objects
FISH_HOOK(-1, ENTITY), FISH_HOOK(-1, ENTITY),
LIGHTNING(-1, ENTITY),
ENDER_EYE(15, ENTITY), ENDER_EYE(15, ENTITY),
ITEM(1, ENTITY), ITEM(1, ENTITY),

View File

@ -20,8 +20,8 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.metadata;
import com.viaversion.viaversion.api.minecraft.EulerAngle; import com.viaversion.viaversion.api.minecraft.EulerAngle;
import com.viaversion.viaversion.api.minecraft.Vector; import com.viaversion.viaversion.api.minecraft.Vector;
import com.viaversion.viaversion.api.minecraft.entities.EntityType; import com.viaversion.viaversion.api.minecraft.entities.EntityType;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_8;
import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_8; import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_8;
import com.viaversion.viaversion.protocols.protocol1_8.ClientboundPackets1_8; import com.viaversion.viaversion.protocols.protocol1_8.ClientboundPackets1_8;
@ -70,14 +70,15 @@ public class MetadataRewriter1_9To1_8 extends EntityRewriter<ClientboundPackets1
metadata.setValue(((Integer) value).byteValue()); metadata.setValue(((Integer) value).byteValue());
} }
// After writing the last one // After writing the last one
if (metaIndex == MetaIndex.ENTITY_STATUS && type == EntityTypes1_10.EntityType.PLAYER) { if (metaIndex == MetaIndex.ENTITY_STATUS && type == EntityTypes1_8.EntityType.PLAYER) {
byte val = 0; byte val = 0;
if ((((Byte) value) & 0x10) == 0x10) { // Player eating/aiming/drinking if ((((Byte) value) & 0x10) == 0x10) { // Player eating/aiming/drinking
val = 1; val = 1;
} }
int newIndex = MetaIndex.PLAYER_HAND.getNewIndex(); // TODO: Should we include 1.9 metadata into the index?
MetaType metaType = MetaIndex.PLAYER_HAND.getNewType(); // int newIndex = MetaIndex.PLAYER_HAND.getNewIndex();
event.createExtraMeta(new Metadata(newIndex, metaType, val)); // MetaType metaType = MetaIndex.PLAYER_HAND.getNewType();
// event.createExtraMeta(new Metadata(newIndex, metaType, val));
} }
break; break;
case OptUUID: case OptUUID:
@ -108,7 +109,7 @@ public class MetadataRewriter1_9To1_8 extends EntityRewriter<ClientboundPackets1
metadata.setValue(value); metadata.setValue(value);
break; break;
case Boolean: case Boolean:
if (metaIndex == MetaIndex.AGEABLE_AGE) if (metaIndex == MetaIndex.ENTITY_AGEABLE_AGE)
metadata.setValue((Byte) value < 0); metadata.setValue((Byte) value < 0);
else else
metadata.setValue((Byte) value != 0); metadata.setValue((Byte) value != 0);
@ -140,11 +141,12 @@ public class MetadataRewriter1_9To1_8 extends EntityRewriter<ClientboundPackets1
@Override @Override
public EntityType typeFromId(int type) { public EntityType typeFromId(int type) {
return EntityTypes1_10.getTypeFromId(type, false); return EntityTypes1_8.getEntityType(type, null, false);
} }
@Override @Override
public EntityType objectTypeFromId(int type) { public EntityType objectTypeFromId(int type) {
return EntityTypes1_10.getTypeFromId(type, true); // TODO: Track data int properly
return EntityTypes1_8.getEntityType(type, 0, true);
} }
} }

View File

@ -20,6 +20,7 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.packets;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.minecraft.ClientWorld; import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_8;
import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers; import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type; import com.viaversion.viaversion.api.type.Type;
@ -173,7 +174,7 @@ public class PlayerPackets {
handler(wrapper -> { handler(wrapper -> {
int entityId = wrapper.get(Type.INT, 0); int entityId = wrapper.get(Type.INT, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityId, EntityTypes1_10.EntityType.PLAYER); tracker.addEntity(entityId, EntityTypes1_8.EntityType.PLAYER);
tracker.setClientEntityId(entityId); tracker.setClientEntityId(entityId);
}); });
map(Type.UNSIGNED_BYTE); // 1 - Player Gamemode map(Type.UNSIGNED_BYTE); // 1 - Player Gamemode

View File

@ -19,6 +19,7 @@ package com.viaversion.viaversion.protocols.protocol1_9to1_8.packets;
import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.data.entity.EntityTracker; import com.viaversion.viaversion.api.data.entity.EntityTracker;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_8;
import com.viaversion.viaversion.api.minecraft.item.DataItem; import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
@ -60,14 +61,6 @@ public class SpawnPackets {
}); });
map(Type.BYTE); // 2 - Type map(Type.BYTE); // 2 - Type
// Parse this info
handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0);
int typeID = wrapper.get(Type.BYTE, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.getTypeFromId(typeID, true));
});
map(Type.INT, toNewDouble); // 3 - X - Needs to be divided by 32 map(Type.INT, toNewDouble); // 3 - X - Needs to be divided by 32
map(Type.INT, toNewDouble); // 4 - Y - Needs to be divided by 32 map(Type.INT, toNewDouble); // 4 - Y - Needs to be divided by 32
map(Type.INT, toNewDouble); // 5 - Z - Needs to be divided by 32 map(Type.INT, toNewDouble); // 5 - Z - Needs to be divided by 32
@ -77,6 +70,15 @@ public class SpawnPackets {
map(Type.INT); // 8 - Data map(Type.INT); // 8 - Data
// Parse this info
handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0);
int typeID = wrapper.get(Type.BYTE, 0);
int data = wrapper.get(Type.INT, 3);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_8.getEntityType(typeID, data, true));
});
// Create last 3 shorts // Create last 3 shorts
handler(wrapper -> { handler(wrapper -> {
int data = wrapper.get(Type.INT, 0); // Data (1st Integer) int data = wrapper.get(Type.INT, 0); // Data (1st Integer)
@ -101,7 +103,7 @@ public class SpawnPackets {
final int data = wrapper.get(Type.INT, 0); // Data final int data = wrapper.get(Type.INT, 0); // Data
int typeID = wrapper.get(Type.BYTE, 0); int typeID = wrapper.get(Type.BYTE, 0);
if (EntityTypes1_10.getTypeFromId(typeID, true) == EntityTypes1_10.EntityType.SPLASH_POTION) { if (EntityTypes1_8.getEntityType(typeID, data, true) == EntityTypes1_8.EntityType.POTION) {
// Convert this to meta data, woo! // Convert this to meta data, woo!
PacketWrapper metaPacket = wrapper.create(ClientboundPackets1_9.ENTITY_METADATA, wrapper1 -> { PacketWrapper metaPacket = wrapper.create(ClientboundPackets1_9.ENTITY_METADATA, wrapper1 -> {
wrapper1.write(Type.VAR_INT, entityID); wrapper1.write(Type.VAR_INT, entityID);
@ -131,7 +133,7 @@ public class SpawnPackets {
handler(wrapper -> { handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.EntityType.EXPERIENCE_ORB); tracker.addEntity(entityID, EntityTypes1_8.EntityType.XP_ORB);
}); });
map(Type.INT, toNewDouble); // 1 - X - Needs to be divided by 32 map(Type.INT, toNewDouble); // 1 - X - Needs to be divided by 32
@ -152,7 +154,7 @@ public class SpawnPackets {
// Currently only lightning uses this // Currently only lightning uses this
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.EntityType.LIGHTNING); tracker.addEntity(entityID, EntityTypes1_8.EntityType.LIGHTNING);
}); });
map(Type.INT, toNewDouble); // 2 - X - Needs to be divided by 32 map(Type.INT, toNewDouble); // 2 - X - Needs to be divided by 32
@ -178,7 +180,7 @@ public class SpawnPackets {
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
int typeID = wrapper.get(Type.UNSIGNED_BYTE, 0); int typeID = wrapper.get(Type.UNSIGNED_BYTE, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.getTypeFromId(typeID, false)); tracker.addEntity(entityID, EntityTypes1_8.getEntityType(typeID, null, false));
}); });
map(Type.INT, toNewDouble); // 3 - X - Needs to be divided by 32 map(Type.INT, toNewDouble); // 3 - X - Needs to be divided by 32
@ -224,7 +226,7 @@ public class SpawnPackets {
handler(wrapper -> { handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.EntityType.PAINTING); tracker.addEntity(entityID, EntityTypes1_8.EntityType.PAINTING);
}); });
handler(wrapper -> { handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
@ -248,7 +250,7 @@ public class SpawnPackets {
handler(wrapper -> { handler(wrapper -> {
int entityID = wrapper.get(Type.VAR_INT, 0); int entityID = wrapper.get(Type.VAR_INT, 0);
EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class); EntityTracker1_9 tracker = wrapper.user().getEntityTracker(Protocol1_9To1_8.class);
tracker.addEntity(entityID, EntityTypes1_10.EntityType.PLAYER); tracker.addEntity(entityID, EntityTypes1_8.EntityType.PLAYER);
}); });
map(Type.INT, toNewDouble); // 2 - X - Needs to be divided by 32 map(Type.INT, toNewDouble); // 2 - X - Needs to be divided by 32

View File

@ -24,6 +24,7 @@ import com.viaversion.viaversion.api.legacy.bossbar.BossBar;
import com.viaversion.viaversion.api.legacy.bossbar.BossColor; import com.viaversion.viaversion.api.legacy.bossbar.BossColor;
import com.viaversion.viaversion.api.legacy.bossbar.BossStyle; import com.viaversion.viaversion.api.legacy.bossbar.BossStyle;
import com.viaversion.viaversion.api.minecraft.Position; import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_8;
import com.viaversion.viaversion.api.minecraft.item.DataItem; import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item; import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata; import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
@ -73,7 +74,7 @@ public class EntityTracker1_9 extends EntityTrackerBase {
private Item itemInSecondHand = null; private Item itemInSecondHand = null;
public EntityTracker1_9(UserConnection user) { public EntityTracker1_9(UserConnection user) {
super(user, EntityType.PLAYER); super(user, EntityTypes1_8.EntityType.PLAYER);
} }
public UUID getEntityUUID(int id) { public UUID getEntityUUID(int id) {
@ -161,6 +162,7 @@ public class EntityTracker1_9 extends EntityTrackerBase {
blockInteractions.add(p); blockInteractions.add(p);
} }
@Deprecated // TODO most of this code seems to be wrong and should be removed
public void handleMetadata(int entityId, List<Metadata> metadataList) { public void handleMetadata(int entityId, List<Metadata> metadataList) {
com.viaversion.viaversion.api.minecraft.entities.EntityType type = entityType(entityId); com.viaversion.viaversion.api.minecraft.entities.EntityType type = entityType(entityId);
if (type == null) { if (type == null) {
@ -169,34 +171,34 @@ public class EntityTracker1_9 extends EntityTrackerBase {
for (Metadata metadata : new ArrayList<>(metadataList)) { for (Metadata metadata : new ArrayList<>(metadataList)) {
// Fix: wither (crash fix) // Fix: wither (crash fix)
if (type == EntityType.WITHER) { if (type == EntityTypes1_8.EntityType.WITHER) {
if (metadata.id() == 10) { if (metadata.id() == 10) {
metadataList.remove(metadata); metadataList.remove(metadata);
//metadataList.add(new Metadata(10, NewType.Byte.getTypeID(), Type.BYTE, 0)); //metadataList.add(new Metadata(10, NewType.Byte.getTypeID(), Type.BYTE, 0));
} }
} }
// Fix: enderdragon (crash fix) // Fix: enderdragon (crash fix)
if (type == EntityType.ENDER_DRAGON) { if (type == EntityTypes1_8.EntityType.ENDER_DRAGON) {
if (metadata.id() == 11) { if (metadata.id() == 11) {
metadataList.remove(metadata); metadataList.remove(metadata);
// metadataList.add(new Metadata(11, NewType.Byte.getTypeID(), Type.VAR_INT, 0)); // metadataList.add(new Metadata(11, NewType.Byte.getTypeID(), Type.VAR_INT, 0));
} }
} }
if (type == EntityType.SKELETON) { if (type == EntityTypes1_8.EntityType.SKELETON) {
if ((getMetaByIndex(metadataList, 12)) == null) { if ((getMetaByIndex(metadataList, 12)) == null) {
metadataList.add(new Metadata(12, MetaType1_9.Boolean, true)); metadataList.add(new Metadata(12, MetaType1_9.Boolean, true));
} }
} }
//ECHOPET Patch //ECHOPET Patch
if (type == EntityType.HORSE) { if (type == EntityTypes1_8.EntityType.HORSE) {
// Wrong metadata value from EchoPet, patch since it's discontinued. (https://github.com/DSH105/EchoPet/blob/06947a8b08ce40be9a518c2982af494b3b99d140/modules/API/src/main/java/com/dsh105/echopet/compat/api/entity/HorseArmour.java#L22) // Wrong metadata value from EchoPet, patch since it's discontinued. (https://github.com/DSH105/EchoPet/blob/06947a8b08ce40be9a518c2982af494b3b99d140/modules/API/src/main/java/com/dsh105/echopet/compat/api/entity/HorseArmour.java#L22)
if (metadata.id() == 16 && (int) metadata.getValue() == Integer.MIN_VALUE) if (metadata.id() == 16 && (int) metadata.getValue() == Integer.MIN_VALUE)
metadata.setValue(0); metadata.setValue(0);
} }
if (type == EntityType.PLAYER) { if (type == EntityTypes1_8.EntityType.PLAYER) {
if (metadata.id() == 0) { if (metadata.id() == 0) {
// Byte // Byte
byte data = (byte) metadata.getValue(); byte data = (byte) metadata.getValue();
@ -221,7 +223,7 @@ public class EntityTracker1_9 extends EntityTrackerBase {
)); ));
} }
} }
if (type == EntityType.ARMOR_STAND && Via.getConfig().isHologramPatch()) { if (type == EntityTypes1_8.EntityType.ARMOR_STAND && Via.getConfig().isHologramPatch()) {
if (metadata.id() == 0 && getMetaByIndex(metadataList, 10) != null) { if (metadata.id() == 0 && getMetaByIndex(metadataList, 10) != null) {
Metadata meta = getMetaByIndex(metadataList, 10); //Only happens if the armorstand is small Metadata meta = getMetaByIndex(metadataList, 10); //Only happens if the armorstand is small
byte data = (byte) metadata.getValue(); byte data = (byte) metadata.getValue();
@ -250,11 +252,11 @@ public class EntityTracker1_9 extends EntityTrackerBase {
} }
// Boss bar // Boss bar
if (Via.getConfig().isBossbarPatch()) { if (Via.getConfig().isBossbarPatch()) {
if (type == EntityType.ENDER_DRAGON || type == EntityType.WITHER) { if (type == EntityTypes1_8.EntityType.ENDER_DRAGON || type == EntityTypes1_8.EntityType.WITHER) {
if (metadata.id() == 2) { if (metadata.id() == 2) {
BossBar bar = bossBarMap.get(entityId); BossBar bar = bossBarMap.get(entityId);
String title = (String) metadata.getValue(); String title = (String) metadata.getValue();
title = title.isEmpty() ? (type == EntityType.ENDER_DRAGON ? DRAGON_TRANSLATABLE : WITHER_TRANSLATABLE) : title; title = title.isEmpty() ? (type == EntityTypes1_8.EntityType.ENDER_DRAGON ? DRAGON_TRANSLATABLE : WITHER_TRANSLATABLE) : title;
if (bar == null) { if (bar == null) {
bar = Via.getAPI().legacyAPI().createLegacyBossBar(title, BossColor.PINK, BossStyle.SOLID); bar = Via.getAPI().legacyAPI().createLegacyBossBar(title, BossColor.PINK, BossStyle.SOLID);
bossBarMap.put(entityId, bar); bossBarMap.put(entityId, bar);
@ -269,10 +271,10 @@ public class EntityTracker1_9 extends EntityTrackerBase {
} else if (metadata.id() == 6 && !Via.getConfig().isBossbarAntiflicker()) { // If anti flicker is enabled, don't update health } else if (metadata.id() == 6 && !Via.getConfig().isBossbarAntiflicker()) { // If anti flicker is enabled, don't update health
BossBar bar = bossBarMap.get(entityId); BossBar bar = bossBarMap.get(entityId);
// Make health range between 0 and 1 // Make health range between 0 and 1
float maxHealth = type == EntityType.ENDER_DRAGON ? 200.0f : 300.0f; float maxHealth = type == EntityTypes1_8.EntityType.ENDER_DRAGON ? 200.0f : 300.0f;
float health = Math.max(0.0f, Math.min(((float) metadata.getValue()) / maxHealth, 1.0f)); float health = Math.max(0.0f, Math.min(((float) metadata.getValue()) / maxHealth, 1.0f));
if (bar == null) { if (bar == null) {
String title = type == EntityType.ENDER_DRAGON ? DRAGON_TRANSLATABLE : WITHER_TRANSLATABLE; String title = type == EntityTypes1_8.EntityType.ENDER_DRAGON ? DRAGON_TRANSLATABLE : WITHER_TRANSLATABLE;
bar = Via.getAPI().legacyAPI().createLegacyBossBar(title, health, BossColor.PINK, BossStyle.SOLID); bar = Via.getAPI().legacyAPI().createLegacyBossBar(title, health, BossColor.PINK, BossStyle.SOLID);
bossBarMap.put(entityId, bar); bossBarMap.put(entityId, bar);
bar.addConnection(user()); bar.addConnection(user());