Merge pull request #49 from ViaVersion/update/via

Updated Via API usage
This commit is contained in:
RK_01 2023-10-19 18:34:21 +00:00 committed by GitHub
commit 4c3abc8e1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 358 additions and 353 deletions

View File

@ -22,7 +22,7 @@ repositories {
}
dependencies {
compileOnly "com.viaversion:viaversion:4.9.0-23w40a-SNAPSHOT"
compileOnly "com.viaversion:viaversion:4.9.0-23w42a-SNAPSHOT"
compileOnly "org.yaml:snakeyaml:2.2"
compileOnly "com.google.guava:guava:32.1.3-jre"
compileOnly "io.netty:netty-handler:4.1.100.Final"

View File

@ -19,12 +19,12 @@ package net.raphimc.vialegacy.protocols.beta.protocolb1_2_0_2tob1_1_2;
import com.google.common.collect.Lists;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import net.raphimc.vialegacy.api.model.IdAndData;
import net.raphimc.vialegacy.api.protocol.StatelessProtocol;
import net.raphimc.vialegacy.api.splitter.PreNettySplitter;

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.beta.protocolb1_3_0_1tob1_2_0_2.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -19,7 +19,7 @@ package net.raphimc.vialegacy.protocols.beta.protocolb1_3_0_1tob1_2_0_2.types;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import java.util.List;

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.beta.protocolb1_5_0_2tob1_4_0_1.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -19,7 +19,7 @@ package net.raphimc.vialegacy.protocols.beta.protocolb1_5_0_2tob1_4_0_1.types;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import java.util.List;

View File

@ -21,7 +21,7 @@ import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.chunks.*;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.CustomByteType;
import com.viaversion.viaversion.api.type.types.minecraft.BaseChunkType;
import com.viaversion.viaversion.api.type.types.chunk.BaseChunkType;
import io.netty.buffer.ByteBuf;
import net.raphimc.vialegacy.api.model.IdAndData;
import net.raphimc.vialegacy.protocols.release.protocol1_2_1_3to1_1.chunks.NibbleArray1_1;
@ -32,9 +32,9 @@ import java.util.ArrayList;
import java.util.zip.DataFormatException;
import java.util.zip.Inflater;
public class Chunk1_1Type extends Type<Chunk> {
public class ChunkType1_1 extends Type<Chunk> {
public Chunk1_1Type() {
public ChunkType1_1() {
super(Chunk.class);
}

View File

@ -24,6 +24,6 @@ import com.viaversion.viaversion.api.type.Type;
public class Types1_1 {
public static Type<BlockChangeRecord[]> BLOCK_CHANGE_RECORD_ARRAY = new BlockChangeRecordArrayType();
public static Type<Chunk> CHUNK = new Chunk1_1Type();
public static Type<Chunk> CHUNK = new ChunkType1_1();
}

View File

@ -21,10 +21,11 @@ import com.google.common.collect.Lists;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.ProtocolInfo;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.Environment;
import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.chunks.*;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.platform.providers.ViaProviders;
@ -36,7 +37,6 @@ import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
import com.viaversion.viaversion.libs.opennbt.tag.builtin.IntTag;
import com.viaversion.viaversion.libs.opennbt.tag.builtin.ShortTag;
import com.viaversion.viaversion.libs.opennbt.tag.builtin.StringTag;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import net.raphimc.vialegacy.ViaLegacy;
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
import net.raphimc.vialegacy.api.data.BlockList1_6;
@ -67,7 +67,7 @@ import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.Ch
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.storage.ProtocolMetadataStorage;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata.MetaIndex1_8to1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Chunk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6;
import java.util.ArrayList;
@ -145,7 +145,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
wrapper.user().get(DimensionTracker.class).setDimension(wrapper.get(Type.BYTE, 1));
final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
entityTracker.setPlayerID(wrapper.get(Type.INT, 0));
entityTracker.getTrackedEntities().put(entityTracker.getPlayerID(), new TrackedLivingEntity(entityTracker.getPlayerID(), new Location(8, 64, 8), Entity1_10Types.EntityType.PLAYER));
entityTracker.getTrackedEntities().put(entityTracker.getPlayerID(), new TrackedLivingEntity(entityTracker.getPlayerID(), new Location(8, 64, 8), EntityTypes1_10.EntityType.PLAYER));
});
}
});
@ -178,7 +178,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
wrapper.user().get(ChestStateTracker.class).clear();
final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
entityTracker.getTrackedEntities().clear();
entityTracker.getTrackedEntities().put(entityTracker.getPlayerID(), new TrackedLivingEntity(entityTracker.getPlayerID(), new Location(8, 64, 8), Entity1_10Types.EntityType.PLAYER));
entityTracker.getTrackedEntities().put(entityTracker.getPlayerID(), new TrackedLivingEntity(entityTracker.getPlayerID(), new Location(8, 64, 8), EntityTypes1_10.EntityType.PLAYER));
}
});
}
@ -201,7 +201,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
final double y = wrapper.get(Type.INT, 2) / 32.0D;
final double z = wrapper.get(Type.INT, 3) / 32.0D;
final EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.getTrackedEntities().put(entityId, new TrackedLivingEntity(entityId, new Location(x, y, z), Entity1_10Types.EntityType.PLAYER));
tracker.getTrackedEntities().put(entityId, new TrackedLivingEntity(entityId, new Location(x, y, z), EntityTypes1_10.EntityType.PLAYER));
});
}
});
@ -222,7 +222,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
final double x = wrapper.get(Type.INT, 1) / 32.0D;
final double y = wrapper.get(Type.INT, 2) / 32.0D;
final double z = wrapper.get(Type.INT, 3) / 32.0D;
tracker.getTrackedEntities().put(entityId, new TrackedEntity(entityId, new Location(x, y, z), Entity1_10Types.ObjectType.ITEM.getType()));
tracker.getTrackedEntities().put(entityId, new TrackedEntity(entityId, new Location(x, y, z), EntityTypes1_10.ObjectType.ITEM.getType()));
});
}
});
@ -249,14 +249,14 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
final int entityId = wrapper.get(Type.INT, 0);
final byte typeId = wrapper.get(Type.BYTE, 0);
final Entity1_10Types.EntityType type;
final EntityTypes1_10.EntityType type;
if (typeId == 70 || typeId == 71 || typeId == 74) {
type = Entity1_10Types.ObjectType.FALLING_BLOCK.getType();
wrapper.set(Type.BYTE, 0, (byte) Entity1_10Types.ObjectType.FALLING_BLOCK.getId());
type = EntityTypes1_10.ObjectType.FALLING_BLOCK.getType();
wrapper.set(Type.BYTE, 0, (byte) EntityTypes1_10.ObjectType.FALLING_BLOCK.getId());
} else if (typeId == 10 || typeId == 11 || typeId == 12) {
type = Entity1_10Types.ObjectType.MINECART.getType();
type = EntityTypes1_10.ObjectType.MINECART.getType();
} else {
type = Entity1_10Types.getTypeFromId(typeId, true);
type = EntityTypes1_10.getTypeFromId(typeId, true);
}
final double x = wrapper.get(Type.INT, 1) / 32.0D;
final double y = wrapper.get(Type.INT, 2) / 32.0D;
@ -274,8 +274,8 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
if (typeId == 70) throwerEntityId = 12; // sand
if (typeId == 71) throwerEntityId = 13; // gravel
if (typeId == 74) throwerEntityId = 122; // dragon egg
if (typeId == Entity1_10Types.ObjectType.FISHIHNG_HOOK.getId()) {
final Optional<AbstractTrackedEntity> nearestEntity = entityTracker.getNearestEntity(location, 2.0D, e -> e.getEntityType().isOrHasParent(Entity1_10Types.EntityType.PLAYER));
if (typeId == EntityTypes1_10.ObjectType.FISHIHNG_HOOK.getId()) {
final Optional<AbstractTrackedEntity> nearestEntity = entityTracker.getNearestEntity(location, 2.0D, e -> e.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.PLAYER));
throwerEntityId = nearestEntity.map(AbstractTrackedEntity::getEntityId).orElseGet(entityTracker::getPlayerID);
}
wrapper.set(Type.INT, 4, throwerEntityId);
@ -286,7 +286,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
}
entityTracker.getTrackedEntities().put(entityId, new TrackedEntity(entityId, location, type));
final Entity1_10Types.ObjectType objectType = Entity1_10Types.ObjectType.findById(typeId).orElse(null);
final EntityTypes1_10.ObjectType objectType = EntityTypes1_10.ObjectType.findById(typeId).orElse(null);
if (objectType == null) return;
float pitch;
@ -334,7 +334,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
final double y = wrapper.get(Type.INT, 2) / 32.0D;
final double z = wrapper.get(Type.INT, 3) / 32.0D;
final List<Metadata> metadataList = wrapper.get(Types1_3_1.METADATA_LIST, 0);
final Entity1_10Types.EntityType entityType = Entity1_10Types.getTypeFromId(type, false);
final EntityTypes1_10.EntityType entityType = EntityTypes1_10.getTypeFromId(type, false);
final EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.getTrackedEntities().put(entityId, new TrackedLivingEntity(entityId, new Location(x, y, z), entityType));
tracker.updateEntityMetadata(entityId, metadataList);
@ -459,7 +459,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
if (!load) {
final Chunk chunk = new BaseChunk(chunkX, chunkZ, true, false, 0, new ChunkSection[16], null, new ArrayList<>());
wrapper.write(new Chunk1_7_6Type(wrapper.user().get(ClientWorld.class)), chunk);
wrapper.write(new ChunkType1_7_6(wrapper.user().get(ClientWorld.class)), chunk);
} else {
wrapper.cancel();
}
@ -496,7 +496,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
}
}
}
wrapper.write(new Chunk1_7_6Type(clientWorld), chunk);
wrapper.write(new ChunkType1_7_6(clientWorld), chunk);
});
}
});
@ -807,7 +807,7 @@ public class Protocol1_3_1_2to1_2_4_5 extends StatelessProtocol<ClientboundPacke
if (index == MetaIndex1_8to1_7_6.ENTITY_FLAGS) {
if ((metadata.<Byte>value() & 4) != 0) { // entity mount
final Optional<AbstractTrackedEntity> oNearbyEntity = tracker.getNearestEntity(entity.getLocation(), 1.0D, e -> {
return e.getEntityType().isOrHasParent(Entity1_10Types.EntityType.MINECART_RIDEABLE) || e.getEntityType().isOrHasParent(Entity1_10Types.EntityType.PIG) || e.getEntityType().isOrHasParent(Entity1_10Types.EntityType.BOAT);
return e.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.MINECART_RIDEABLE) || e.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.PIG) || e.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.BOAT);
});
if (oNearbyEntity.isPresent()) {

View File

@ -17,18 +17,18 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.model;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import net.raphimc.vialegacy.api.model.Location;
public abstract class AbstractTrackedEntity {
private int entityId;
private Location location;
private Entity1_10Types.EntityType entityType;
private EntityTypes1_10.EntityType entityType;
private boolean isRiding;
public AbstractTrackedEntity(final int entityId, final Location location, final Entity1_10Types.EntityType entityType) {
public AbstractTrackedEntity(final int entityId, final Location location, final EntityTypes1_10.EntityType entityType) {
this.entityId = entityId;
this.location = location;
this.entityType = entityType;
@ -50,11 +50,11 @@ public abstract class AbstractTrackedEntity {
this.location = location;
}
public Entity1_10Types.EntityType getEntityType() {
public EntityTypes1_10.EntityType getEntityType() {
return this.entityType;
}
public void setEntityType(Entity1_10Types.EntityType entityType) {
public void setEntityType(EntityTypes1_10.EntityType entityType) {
this.entityType = entityType;
}

View File

@ -17,12 +17,12 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.model;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import net.raphimc.vialegacy.api.model.Location;
public class TrackedEntity extends AbstractTrackedEntity {
public TrackedEntity(int entityId, Location location, Entity1_10Types.EntityType entityType) {
public TrackedEntity(int entityId, Location location, EntityTypes1_10.EntityType entityType) {
super(entityId, location, entityType);
}

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.model;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import net.raphimc.vialegacy.api.model.Location;
import net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.sound.SoundEmulation;
@ -42,7 +42,7 @@ public class TrackedLivingEntity extends AbstractTrackedEntity {
public int wolfHealth;
public boolean wolfIsAngry;
public TrackedLivingEntity(int entityId, Location location, Entity1_10Types.EntityType entityType) {
public TrackedLivingEntity(int entityId, Location location, EntityTypes1_10.EntityType entityType) {
super(entityId, location, entityType);
}
@ -53,7 +53,7 @@ public class TrackedLivingEntity extends AbstractTrackedEntity {
tracker.playSound(this.getEntityId(), SoundType.IDLE);
}
if (this.getEntityType().isOrHasParent(Entity1_10Types.EntityType.ENTITY_AGEABLE)) {
if (this.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.ENTITY_AGEABLE)) {
if (this.growingAge < 0) {
this.growingAge++;
} else if (this.growingAge > 0) {
@ -84,7 +84,7 @@ public class TrackedLivingEntity extends AbstractTrackedEntity {
public void applyPitch(EntityTracker tracker, ConfiguredSound sound) {
float pitch;
if (this.getEntityType().isOrHasParent(Entity1_10Types.EntityType.ENTITY_AGEABLE) && this.growingAge < 0) {
if (this.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.ENTITY_AGEABLE) && this.growingAge < 0) {
pitch = (tracker.RND.nextFloat() - tracker.RND.nextFloat()) * 0.2F + 1.5F;
} else {
pitch = (tracker.RND.nextFloat() - tracker.RND.nextFloat()) * 0.2F + 1.0F;

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.sound;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.model.ConfiguredSound;
public class SoundEmulation {
@ -32,157 +32,157 @@ public class SoundEmulation {
Sound.MOB_HUMAN_HURT,
Sound.MOB_HUMAN_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.CREEPER.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.CREEPER.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.MOB_CREEPER,
Sound.MOB_CREEPER_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SKELETON.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SKELETON.getId()] = new Sound[]{
Sound.MOB_SKELETON,
Sound.MOB_SKELETON_HURT,
Sound.MOB_SKELETON_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SPIDER.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SPIDER.getId()] = new Sound[]{
Sound.MOB_SPIDER,
Sound.MOB_SPIDER,
Sound.MOB_SPIDER_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.GIANT.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.GIANT.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.MOB_HUMAN_HURT,
Sound.MOB_HUMAN_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.ZOMBIE.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.ZOMBIE.getId()] = new Sound[]{
Sound.MOB_ZOMBIE,
Sound.MOB_ZOMBIE_HURT,
Sound.MOB_ZOMBIE_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SLIME.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SLIME.getId()] = new Sound[]{
Sound.MOB_SLIME,
Sound.MOB_SLIME,
Sound.MOB_SLIME
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.GHAST.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.GHAST.getId()] = new Sound[]{
Sound.MOB_GHAST,
Sound.MOB_GHAST_HURT,
Sound.MOB_GHAST_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.PIG_ZOMBIE.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.PIG_ZOMBIE.getId()] = new Sound[]{
Sound.MOB_PIG_ZOMBIE,
Sound.MOB_PIG_ZOMBIE_HURT,
Sound.MOB_PIG_ZOMBIE_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.ENDERMAN.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.ENDERMAN.getId()] = new Sound[]{
Sound.MOB_ENDERMEN,
Sound.MOB_ENDERMEN_HURT,
Sound.MOB_ENDERMEN_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.CAVE_SPIDER.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.CAVE_SPIDER.getId()] = new Sound[]{
Sound.MOB_SPIDER,
Sound.MOB_SPIDER,
Sound.MOB_SPIDER_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SILVERFISH.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SILVERFISH.getId()] = new Sound[]{
Sound.MOB_SILVERFISH,
Sound.MOB_SILVERFISH_HURT,
Sound.MOB_SILVERFISH_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.BLAZE.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.BLAZE.getId()] = new Sound[]{
Sound.MOB_BLAZE,
Sound.MOB_BLAZE_HURT,
Sound.MOB_BLAZE_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.MAGMA_CUBE.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.MAGMA_CUBE.getId()] = new Sound[]{
Sound.MOB_MAGMACUBE_SMALL,
Sound.MOB_SLIME,
Sound.MOB_SLIME
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.ENDER_DRAGON.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.ENDER_DRAGON.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.MOB_HUMAN_HURT,
Sound.MOB_HUMAN_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.PIG.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.PIG.getId()] = new Sound[]{
Sound.MOB_PIG,
Sound.MOB_PIG,
Sound.MOB_PIG_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SHEEP.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SHEEP.getId()] = new Sound[]{
Sound.MOB_SHEEP,
Sound.MOB_SHEEP,
Sound.MOB_SHEEP
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.COW.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.COW.getId()] = new Sound[]{
Sound.MOB_COW,
Sound.MOB_COW_HURT,
Sound.MOB_COW_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.CHICKEN.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.CHICKEN.getId()] = new Sound[]{
Sound.MOB_CHICKEN,
Sound.MOB_CHICKEN_HURT,
Sound.MOB_CHICKEN_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SQUID.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SQUID.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.NO_SOUND,
Sound.NO_SOUND
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.WOLF.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.WOLF.getId()] = new Sound[]{
Sound.MOB_WOLF,
Sound.MOB_WOLF_HURT,
Sound.MOB_WOLF_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.MUSHROOM_COW.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.MUSHROOM_COW.getId()] = new Sound[]{
Sound.MOB_COW,
Sound.MOB_COW_HURT,
Sound.MOB_COW_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.SNOWMAN.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.SNOWMAN.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.NO_SOUND,
Sound.NO_SOUND
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.OCELOT.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.OCELOT.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.MOB_CAT_HURT,
Sound.MOB_CAT_HURT
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.IRON_GOLEM.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.IRON_GOLEM.getId()] = new Sound[]{
Sound.NO_SOUND,
Sound.MOB_IRON_GOLEM_HURT,
Sound.MOB_IRON_GOLEM_DEATH
};
ENTITY_SOUNDS[Entity1_10Types.EntityType.VILLAGER.getId()] = new Sound[]{
ENTITY_SOUNDS[EntityTypes1_10.EntityType.VILLAGER.getId()] = new Sound[]{
Sound.MOB_VILLAGER,
Sound.MOB_VILLAGER_HURT,
Sound.MOB_VILLAGER_DEATH
};
VOL_ADJUST[Entity1_10Types.EntityType.SLIME.getId()] = 1.6F;
VOL_ADJUST[Entity1_10Types.EntityType.MAGMA_CUBE.getId()] = 1.6F;
VOL_ADJUST[Entity1_10Types.EntityType.GHAST.getId()] = 10.0F;
VOL_ADJUST[Entity1_10Types.EntityType.COW.getId()] = 0.4F;
VOL_ADJUST[Entity1_10Types.EntityType.WOLF.getId()] = 0.4F;
VOL_ADJUST[Entity1_10Types.EntityType.SQUID.getId()] = 0.4F;
VOL_ADJUST[Entity1_10Types.EntityType.MUSHROOM_COW.getId()] = 0.4F;
VOL_ADJUST[Entity1_10Types.EntityType.OCELOT.getId()] = 0.4F;
VOL_ADJUST[EntityTypes1_10.EntityType.SLIME.getId()] = 1.6F;
VOL_ADJUST[EntityTypes1_10.EntityType.MAGMA_CUBE.getId()] = 1.6F;
VOL_ADJUST[EntityTypes1_10.EntityType.GHAST.getId()] = 10.0F;
VOL_ADJUST[EntityTypes1_10.EntityType.COW.getId()] = 0.4F;
VOL_ADJUST[EntityTypes1_10.EntityType.WOLF.getId()] = 0.4F;
VOL_ADJUST[EntityTypes1_10.EntityType.SQUID.getId()] = 0.4F;
VOL_ADJUST[EntityTypes1_10.EntityType.MUSHROOM_COW.getId()] = 0.4F;
VOL_ADJUST[EntityTypes1_10.EntityType.OCELOT.getId()] = 0.4F;
INTERVAL_ADJUST[Entity1_10Types.EntityType.PIG.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.SHEEP.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.WOLF.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.SNOWMAN.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.IRON_GOLEM.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.MUSHROOM_COW.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.COW.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.CHICKEN.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.SQUID.getId()] = 120;
INTERVAL_ADJUST[Entity1_10Types.EntityType.OCELOT.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.PIG.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.SHEEP.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.WOLF.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.SNOWMAN.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.IRON_GOLEM.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.MUSHROOM_COW.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.COW.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.CHICKEN.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.SQUID.getId()] = 120;
INTERVAL_ADJUST[EntityTypes1_10.EntityType.OCELOT.getId()] = 120;
}
public static ConfiguredSound getEntitySound(Entity1_10Types.EntityType entityType, SoundType soundType) {
public static ConfiguredSound getEntitySound(EntityTypes1_10.EntityType entityType, SoundType soundType) {
ConfiguredSound sound = new ConfiguredSound(Sound.NO_SOUND, 0.0F, 1.0F);
int entityTypeID = entityType.getId();
if (entityType.isOrHasParent(Entity1_10Types.EntityType.PLAYER)) entityTypeID = 48;
if (entityType.isOrHasParent(EntityTypes1_10.EntityType.PLAYER)) entityTypeID = 48;
final Sound[] entitySounds = ENTITY_SOUNDS[entityTypeID];
if (entitySounds == null) {
@ -209,9 +209,9 @@ public class SoundEmulation {
return sound;
}
public static int getSoundDelayTime(Entity1_10Types.EntityType entityType) {
public static int getSoundDelayTime(EntityTypes1_10.EntityType entityType) {
int entityTypeID = entityType.getId();
if (entityType.isOrHasParent(Entity1_10Types.EntityType.PLAYER)) entityTypeID = 48;
if (entityType.isOrHasParent(EntityTypes1_10.EntityType.PLAYER)) entityTypeID = 48;
int soundTime = -80;
final int ajustedSoundTime = SoundEmulation.INTERVAL_ADJUST[entityTypeID];

View File

@ -19,7 +19,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.storage
import com.viaversion.viaversion.api.connection.StoredObject;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.type.Type;
@ -121,13 +121,13 @@ public class EntityTracker extends StoredObject {
final TrackedLivingEntity livingEntity = (TrackedLivingEntity) entity;
livingEntity.applyPitch(this, sound);
if (entity.getEntityType().isOrHasParent(Entity1_10Types.EntityType.WOLF)) {
if (entity.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.WOLF)) {
if (livingEntity.wolfIsAngry) {
sound.setSound(Sound.MOB_WOLF_GROWL);
} else if (RND.nextInt(3) == 0) {
sound.setSound(livingEntity.isTamed && livingEntity.wolfHealth < 10 ? Sound.MOB_WOLF_WHINE : Sound.MOB_WOLF_PANTING);
}
} else if (entity.getEntityType().isOrHasParent(Entity1_10Types.EntityType.OCELOT)) {
} else if (entity.getEntityType().isOrHasParent(EntityTypes1_10.EntityType.OCELOT)) {
if (livingEntity.isTamed) {
sound.setSound(RND.nextInt(4) == 0 ? Sound.MOB_CAT_PURREOW : Sound.MOB_CAT_MEOW);
}

View File

@ -17,14 +17,14 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_3_1_2to1_2_4_5.types;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.Environment;
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import io.netty.buffer.ByteBuf;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Chunk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkType1_7_6;
public class Chunk1_2_4Type extends Chunk1_7_6Type {
public class ChunkType1_2_4 extends ChunkType1_7_6 {
private static final ClientWorld OVERWORLD = new ClientWorld(null);
@ -32,7 +32,7 @@ public class Chunk1_2_4Type extends Chunk1_7_6Type {
OVERWORLD.setEnvironment(Environment.NORMAL.id());
}
public Chunk1_2_4Type() {
public ChunkType1_2_4() {
super(OVERWORLD);
}

View File

@ -30,6 +30,6 @@ public class Types1_2_4 {
public static final Type<Item[]> ITEM_ARRAY = new ItemArrayType<>(ITEM);
public static final Type<Item[]> COMPRESSED_NBT_ITEM_ARRAY = new ItemArrayType<>(COMPRESSED_NBT_ITEM);
public static final Type<Chunk> CHUNK = new Chunk1_2_4Type();
public static final Type<Chunk> CHUNK = new ChunkType1_2_4();
}

View File

@ -20,7 +20,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_4_2to1_3_1_2;
import com.google.common.collect.Lists;
import com.viaversion.viaversion.api.connection.ProtocolInfo;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
@ -184,9 +184,9 @@ public class Protocol1_4_2to1_3_1_2 extends StatelessProtocol<ClientboundPackets
handler(wrapper -> {
final int entityId = wrapper.get(Type.INT, 0);
final short typeId = wrapper.get(Type.UNSIGNED_BYTE, 0);
if (typeId == Entity1_10Types.EntityType.SKELETON.getId()) {
if (typeId == EntityTypes1_10.EntityType.SKELETON.getId()) {
setMobHandItem(entityId, new DataItem(ItemList1_6.bow.itemID, (byte) 1, (short) 0, null), wrapper);
} else if (typeId == Entity1_10Types.EntityType.PIG_ZOMBIE.getId()) {
} else if (typeId == EntityTypes1_10.EntityType.PIG_ZOMBIE.getId()) {
setMobHandItem(entityId, new DataItem(ItemList1_6.swordGold.itemID, (byte) 1, (short) 0, null), wrapper);
}
});

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_4_2to1_3_1_2.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -20,7 +20,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_4_2to1_3_1_2.types;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ItemArrayType;
import java.util.List;

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_4_4_5to1_4_2.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -20,7 +20,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_4_4_5to1_4_2.types;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ItemArrayType;
import java.util.List;

View File

@ -19,24 +19,24 @@ package net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5;
import com.google.common.collect.Lists;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import net.raphimc.vialegacy.api.protocol.StatelessProtocol;
import net.raphimc.vialegacy.api.remapper.LegacyItemRewriter;
import net.raphimc.vialegacy.api.splitter.PreNettySplitter;
import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.rewriter.ItemRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types.ChunkBulk1_4_4Type;
import net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types.ChunkBulkType1_4_4;
import net.raphimc.vialegacy.protocols.release.protocol1_5_0_1to1_4_6_7.ClientboundPackets1_4_6;
import net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.ServerboundPackets1_5_2;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.MetaType1_6_4;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.Types1_6_4;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata.MetaIndex1_8to1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6;
public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol<ClientboundPackets1_4_4, ClientboundPackets1_4_6, ServerboundPackets1_5_2, ServerboundPackets1_5_2> {
@ -89,7 +89,7 @@ public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol<ClientboundPacke
final int motionZ = wrapper.read(Type.BYTE); // velocity z
wrapper.write(Type.INT, entityId); // entity id
wrapper.write(Type.BYTE, (byte) Entity1_10Types.ObjectType.ITEM.getId()); // type id
wrapper.write(Type.BYTE, (byte) EntityTypes1_10.ObjectType.ITEM.getId()); // type id
wrapper.write(Type.INT, x); // x
wrapper.write(Type.INT, y); // y
wrapper.write(Type.INT, z); // z
@ -129,7 +129,7 @@ public class Protocol1_4_6_7to1_4_4_5 extends StatelessProtocol<ClientboundPacke
public void register() {
handler(wrapper -> {
final ClientWorld clientWorld = wrapper.user().get(ClientWorld.class);
wrapper.write(new ChunkBulk1_7_6Type(clientWorld), wrapper.read(new ChunkBulk1_4_4Type(clientWorld)));
wrapper.write(new ChunkBulkType1_7_6(clientWorld), wrapper.read(new ChunkBulkType1_4_4(clientWorld)));
});
}
});

View File

@ -17,13 +17,13 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_4_6_7to1_4_4_5.types;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import io.netty.buffer.ByteBuf;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulkType1_7_6;
public class ChunkBulk1_4_4Type extends ChunkBulk1_7_6Type {
public class ChunkBulkType1_4_4 extends ChunkBulkType1_7_6 {
public ChunkBulk1_4_4Type(ClientWorld clientWorld) {
public ChunkBulkType1_4_4(ClientWorld clientWorld) {
super(clientWorld);
}

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_5_0_1to1_4_6_7;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
@ -58,7 +58,7 @@ public class Protocol1_5_0_1to1_4_6_7 extends StatelessProtocol<ClientboundPacke
handler(wrapper -> {
final byte typeId = wrapper.get(Type.BYTE, 0);
if (typeId == 10 || typeId == 11 || typeId == 12) {
wrapper.set(Type.BYTE, 0, (byte) Entity1_10Types.ObjectType.MINECART.getId());
wrapper.set(Type.BYTE, 0, (byte) EntityTypes1_10.ObjectType.MINECART.getId());
}
int throwerEntityId = wrapper.get(Type.INT, 4);
short speedX = 0;

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
@ -67,7 +67,7 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
handler(wrapper -> {
final int entityId = wrapper.get(Type.INT, 0);
final EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.getTrackedEntities().put(entityId, Entity1_10Types.EntityType.PLAYER);
tracker.getTrackedEntities().put(entityId, EntityTypes1_10.EntityType.PLAYER);
tracker.setPlayerID(entityId);
});
}
@ -98,10 +98,10 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
map(Type.BYTE); // pitch
map(Type.UNSIGNED_SHORT); // item
map(Types1_6_4.METADATA_LIST); // metadata
handler(wrapper -> MetadataRewriter.transform(Entity1_10Types.EntityType.PLAYER, wrapper.get(Types1_6_4.METADATA_LIST, 0)));
handler(wrapper -> MetadataRewriter.transform(EntityTypes1_10.EntityType.PLAYER, wrapper.get(Types1_6_4.METADATA_LIST, 0)));
handler(wrapper -> {
final int entityId = wrapper.get(Type.INT, 0);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityId, Entity1_10Types.EntityType.PLAYER);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityId, EntityTypes1_10.EntityType.PLAYER);
});
}
});
@ -130,7 +130,7 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
handler(wrapper -> {
final int entityID = wrapper.get(Type.INT, 0);
final int typeID = wrapper.get(Type.BYTE, 0);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, Entity1_10Types.getTypeFromId(typeID, true));
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, EntityTypes1_10.getTypeFromId(typeID, true));
});
}
});
@ -152,12 +152,12 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
handler(wrapper -> {
final int entityID = wrapper.get(Type.INT, 0);
final int typeID = wrapper.get(Type.UNSIGNED_BYTE, 0);
final Entity1_10Types.EntityType entityType = Entity1_10Types.getTypeFromId(typeID, false);
final EntityTypes1_10.EntityType entityType = EntityTypes1_10.getTypeFromId(typeID, false);
final List<Metadata> metadataList = wrapper.get(Types1_6_4.METADATA_LIST, 0);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, entityType);
MetadataRewriter.transform(entityType, metadataList);
if (entityType.isOrHasParent(Entity1_10Types.EntityType.WOLF)) {
if (entityType.isOrHasParent(EntityTypes1_10.EntityType.WOLF)) {
handleWolfMetadata(entityID, metadataList, wrapper);
}
});
@ -172,7 +172,7 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
map(Type.INT); // rotation
handler(wrapper -> {
final int entityID = wrapper.get(Type.INT, 0);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, Entity1_10Types.EntityType.PAINTING);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, EntityTypes1_10.EntityType.PAINTING);
});
}
});
@ -186,7 +186,7 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
map(Type.SHORT); // count
handler(wrapper -> {
final int entityID = wrapper.get(Type.INT, 0);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, Entity1_10Types.EntityType.EXPERIENCE_ORB);
wrapper.user().get(EntityTracker.class).getTrackedEntities().put(entityID, EntityTypes1_10.EntityType.EXPERIENCE_ORB);
});
}
});
@ -228,12 +228,12 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
final EntityTracker tracker = wrapper.user().get(EntityTracker.class);
final List<Metadata> metadataList = wrapper.get(Types1_6_4.METADATA_LIST, 0);
final int entityID = wrapper.get(Type.INT, 0);
final Entity1_10Types.EntityType entityType = tracker.getTrackedEntities().get(entityID);
final EntityTypes1_10.EntityType entityType = tracker.getTrackedEntities().get(entityID);
if (tracker.getTrackedEntities().containsKey(entityID)) {
MetadataRewriter.transform(entityType, metadataList);
if (metadataList.isEmpty()) wrapper.cancel();
if (entityType.isOrHasParent(Entity1_10Types.EntityType.WOLF)) {
if (entityType.isOrHasParent(EntityTypes1_10.EntityType.WOLF)) {
handleWolfMetadata(entityID, metadataList, wrapper);
}
} else {
@ -352,7 +352,7 @@ public class Protocol1_6_1to1_5_2 extends StatelessProtocol<ClientboundPackets1_
private void handleWolfMetadata(final int entityId, final List<Metadata> metadataList, final PacketWrapper wrapper) throws Exception {
for (Metadata metadata : metadataList) {
final MetaIndex1_8to1_7_6 index = MetaIndex1_8to1_7_6.searchIndex(Entity1_10Types.EntityType.WOLF, metadata.id());
final MetaIndex1_8to1_7_6 index = MetaIndex1_8to1_7_6.searchIndex(EntityTypes1_10.EntityType.WOLF, metadata.id());
if (index == MetaIndex1_8to1_7_6.TAMEABLE_FLAGS) {
if ((metadata.<Byte>value() & 4) != 0) { // is tamed

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.metadata;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.util.Pair;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types.MetaType1_6_4;
@ -26,20 +26,20 @@ import java.util.Optional;
public enum MetaIndex1_6_1to1_5_2 {
ENTITY_LIVING_POTION_EFFECT_COLOR(Entity1_10Types.EntityType.ENTITY_LIVING, 8, MetaType1_6_4.Int, 7, MetaType1_6_4.Int),
ENTITY_LIVING_IS_POTION_EFFECT_AMBIENT(Entity1_10Types.EntityType.ENTITY_LIVING, 9, MetaType1_6_4.Byte, 8, MetaType1_6_4.Byte),
ENTITY_LIVING_ARROWS(Entity1_10Types.EntityType.ENTITY_LIVING, 10, MetaType1_6_4.Byte, 9, MetaType1_6_4.Byte),
ENTITY_LIVING_NAME_TAG(Entity1_10Types.EntityType.ENTITY_LIVING, 5, MetaType1_6_4.String, 10, MetaType1_6_4.String),
ENTITY_LIVING_NAME_TAG_VISIBILITY(Entity1_10Types.EntityType.ENTITY_LIVING, 6, MetaType1_6_4.Byte, 11, MetaType1_6_4.Byte),
HUMAN_ABSORPTION_HEARTS(Entity1_10Types.EntityType.ENTITY_HUMAN, 17, MetaType1_6_4.Byte, MetaType1_6_4.Float),
BOAT_DAMAGE_TAKEN(Entity1_10Types.EntityType.BOAT, 19, MetaType1_6_4.Int, MetaType1_6_4.Float),
MINECART_DAMAGE_TAKEN(Entity1_10Types.EntityType.MINECART_ABSTRACT, 19, MetaType1_6_4.Int, MetaType1_6_4.Float),
WITHER_HEALTH(Entity1_10Types.EntityType.WITHER, 16, MetaType1_6_4.Int, 6, MetaType1_6_4.Float),
ENDER_DRAGON_HEALTH(Entity1_10Types.EntityType.ENDER_DRAGON, 16, MetaType1_6_4.Int, 6, MetaType1_6_4.Float),
WOLF_HEALTH(Entity1_10Types.EntityType.WOLF, 18, MetaType1_6_4.Int, MetaType1_6_4.Float),
ENTITY_LIVING_POTION_EFFECT_COLOR(EntityTypes1_10.EntityType.ENTITY_LIVING, 8, MetaType1_6_4.Int, 7, MetaType1_6_4.Int),
ENTITY_LIVING_IS_POTION_EFFECT_AMBIENT(EntityTypes1_10.EntityType.ENTITY_LIVING, 9, MetaType1_6_4.Byte, 8, MetaType1_6_4.Byte),
ENTITY_LIVING_ARROWS(EntityTypes1_10.EntityType.ENTITY_LIVING, 10, MetaType1_6_4.Byte, 9, MetaType1_6_4.Byte),
ENTITY_LIVING_NAME_TAG(EntityTypes1_10.EntityType.ENTITY_LIVING, 5, MetaType1_6_4.String, 10, MetaType1_6_4.String),
ENTITY_LIVING_NAME_TAG_VISIBILITY(EntityTypes1_10.EntityType.ENTITY_LIVING, 6, MetaType1_6_4.Byte, 11, MetaType1_6_4.Byte),
HUMAN_ABSORPTION_HEARTS(EntityTypes1_10.EntityType.ENTITY_HUMAN, 17, MetaType1_6_4.Byte, MetaType1_6_4.Float),
BOAT_DAMAGE_TAKEN(EntityTypes1_10.EntityType.BOAT, 19, MetaType1_6_4.Int, MetaType1_6_4.Float),
MINECART_DAMAGE_TAKEN(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 19, MetaType1_6_4.Int, MetaType1_6_4.Float),
WITHER_HEALTH(EntityTypes1_10.EntityType.WITHER, 16, MetaType1_6_4.Int, 6, MetaType1_6_4.Float),
ENDER_DRAGON_HEALTH(EntityTypes1_10.EntityType.ENDER_DRAGON, 16, MetaType1_6_4.Int, 6, MetaType1_6_4.Float),
WOLF_HEALTH(EntityTypes1_10.EntityType.WOLF, 18, MetaType1_6_4.Int, MetaType1_6_4.Float),
;
private static final HashMap<Pair<Entity1_10Types.EntityType, Integer>, MetaIndex1_6_1to1_5_2> metadataRewrites = new HashMap<>();
private static final HashMap<Pair<EntityTypes1_10.EntityType, Integer>, MetaIndex1_6_1to1_5_2> metadataRewrites = new HashMap<>();
static {
for (MetaIndex1_6_1to1_5_2 index : MetaIndex1_6_1to1_5_2.values()) {
@ -47,13 +47,13 @@ public enum MetaIndex1_6_1to1_5_2 {
}
}
private final Entity1_10Types.EntityType entityType;
private final EntityTypes1_10.EntityType entityType;
private final int oldIndex;
private final int newIndex;
private final MetaType1_6_4 oldType;
private final MetaType1_6_4 newType;
MetaIndex1_6_1to1_5_2(Entity1_10Types.EntityType entityType, int oldIndex, MetaType1_6_4 oldType, MetaType1_6_4 newType) {
MetaIndex1_6_1to1_5_2(EntityTypes1_10.EntityType entityType, int oldIndex, MetaType1_6_4 oldType, MetaType1_6_4 newType) {
this.entityType = entityType;
this.oldIndex = oldIndex;
this.newIndex = oldIndex;
@ -61,7 +61,7 @@ public enum MetaIndex1_6_1to1_5_2 {
this.newType = newType;
}
MetaIndex1_6_1to1_5_2(Entity1_10Types.EntityType entityType, int oldIndex, MetaType1_6_4 oldType, int newIndex, MetaType1_6_4 newType) {
MetaIndex1_6_1to1_5_2(EntityTypes1_10.EntityType entityType, int oldIndex, MetaType1_6_4 oldType, int newIndex, MetaType1_6_4 newType) {
this.entityType = entityType;
this.oldIndex = oldIndex;
this.oldType = oldType;
@ -69,7 +69,7 @@ public enum MetaIndex1_6_1to1_5_2 {
this.newType = newType;
}
public Entity1_10Types.EntityType getEntityType() {
public EntityTypes1_10.EntityType getEntityType() {
return this.entityType;
}
@ -89,13 +89,13 @@ public enum MetaIndex1_6_1to1_5_2 {
return this.newType;
}
private static Optional<MetaIndex1_6_1to1_5_2> getIndex(Entity1_10Types.EntityType type, int index) {
final Pair<Entity1_10Types.EntityType, Integer> pair = new Pair<>(type, index);
private static Optional<MetaIndex1_6_1to1_5_2> getIndex(EntityTypes1_10.EntityType type, int index) {
final Pair<EntityTypes1_10.EntityType, Integer> pair = new Pair<>(type, index);
return Optional.ofNullable(metadataRewrites.get(pair));
}
public static MetaIndex1_6_1to1_5_2 searchIndex(Entity1_10Types.EntityType type, int index) {
Entity1_10Types.EntityType currentType = type;
public static MetaIndex1_6_1to1_5_2 searchIndex(EntityTypes1_10.EntityType type, int index) {
EntityTypes1_10.EntityType currentType = type;
do {
Optional<MetaIndex1_6_1to1_5_2> optMeta = getIndex(currentType, index);
if (optMeta.isPresent()) {

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.metadata;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import net.raphimc.vialegacy.ViaLegacy;
@ -27,7 +27,7 @@ import java.util.logging.Level;
public class MetadataRewriter {
public static void transform(Entity1_10Types.EntityType type, List<Metadata> list) {
public static void transform(EntityTypes1_10.EntityType type, List<Metadata> list) {
for (Metadata entry : new ArrayList<>(list)) {
final MetaIndex1_6_1to1_5_2 metaIndex = MetaIndex1_6_1to1_5_2.searchIndex(type, entry.id());
try {

View File

@ -19,14 +19,14 @@ package net.raphimc.vialegacy.protocols.release.protocol1_6_1to1_5_2.storage;
import com.viaversion.viaversion.api.connection.StoredObject;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class EntityTracker extends StoredObject {
private final Map<Integer, Entity1_10Types.EntityType> entityMap = new ConcurrentHashMap<>();
private final Map<Integer, EntityTypes1_10.EntityType> entityMap = new ConcurrentHashMap<>();
private int playerID;
@ -46,7 +46,7 @@ public class EntityTracker extends StoredObject {
this.entityMap.remove(entityId);
}
public Map<Integer, Entity1_10Types.EntityType> getTrackedEntities() {
public Map<Integer, EntityTypes1_10.EntityType> getTrackedEntities() {
return this.entityMap;
}

View File

@ -22,9 +22,10 @@ import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.ProtocolInfo;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
@ -44,7 +45,6 @@ import com.viaversion.viaversion.protocols.base.ClientboundStatusPackets;
import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets;
import com.viaversion.viaversion.protocols.base.ServerboundStatusPackets;
import com.viaversion.viaversion.protocols.protocol1_8.ClientboundPackets1_8;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandlerContext;
@ -66,8 +66,8 @@ import net.raphimc.vialegacy.protocols.release.protocol1_7_6_10to1_7_2_5.Serverb
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.Protocol1_8to1_7_6_10;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.model.GameProfile;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.providers.GameProfileFetcher;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Chunk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.MetaType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6;
@ -342,7 +342,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol<Clientbo
map(Type.INT); // data
handler(wrapper -> {
int data = wrapper.get(Type.INT, 3);
if (Entity1_10Types.getTypeFromId(wrapper.get(Type.BYTE, 0), true) == Entity1_10Types.ObjectType.FALLING_BLOCK.getType()) {
if (EntityTypes1_10.getTypeFromId(wrapper.get(Type.BYTE, 0), true) == EntityTypes1_10.ObjectType.FALLING_BLOCK.getType()) {
final int id = data & 0xFFFF;
final int metadata = data >> 16;
final IdAndData block = new IdAndData(id, metadata);
@ -421,7 +421,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol<Clientbo
@Override
public void register() {
handler(wrapper -> {
final Chunk chunk = wrapper.passthrough(new Chunk1_7_6Type(wrapper.user().get(ClientWorld.class)));
final Chunk chunk = wrapper.passthrough(new ChunkType1_7_6(wrapper.user().get(ClientWorld.class)));
wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk);
});
}
@ -486,7 +486,7 @@ public class Protocol1_7_2_5to1_6_4 extends StatelessTransitionProtocol<Clientbo
@Override
public void register() {
handler(wrapper -> {
final Chunk[] chunks = wrapper.passthrough(new ChunkBulk1_7_6Type(wrapper.user().get(ClientWorld.class)));
final Chunk[] chunks = wrapper.passthrough(new ChunkBulkType1_7_6(wrapper.user().get(ClientWorld.class)));
for (Chunk chunk : chunks) {
wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk);
}

View File

@ -21,6 +21,7 @@ import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectMap;
import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectOpenHashMap;
import com.viaversion.viaversion.libs.gson.JsonObject;
import com.viaversion.viaversion.rewriter.ComponentRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.ClientboundPackets1_6_4;
public class TranslationRewriter {
@ -66,7 +67,7 @@ public class TranslationRewriter {
TRANSLATIONS.put("mco.configure.world.restore.question.line1", "Your realm will be restored to a previous version");
}
private static final ComponentRewriter REWRITER = new ComponentRewriter() {
private static final ComponentRewriter<ClientboundPackets1_6_4> REWRITER = new ComponentRewriter<ClientboundPackets1_6_4>(null, ComponentRewriter.ReadType.JSON) {
@Override
protected void handleTranslate(JsonObject object, String translate) {
final String text = TRANSLATIONS.get(translate);

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -19,7 +19,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_7_2_5to1_6_4.types;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import java.util.List;

View File

@ -21,6 +21,7 @@ import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectMap;
import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectOpenHashMap;
import com.viaversion.viaversion.libs.gson.JsonObject;
import com.viaversion.viaversion.rewriter.ComponentRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_7_6_10to1_7_2_5.ClientboundPackets1_7_2;
public class TranslationRewriter {
@ -115,7 +116,7 @@ public class TranslationRewriter {
TRANSLATIONS.put("mco.invites.nopending", "No pending invitations!");
}
private static final ComponentRewriter REWRITER = new ComponentRewriter() {
private static final ComponentRewriter<ClientboundPackets1_7_2> REWRITER = new ComponentRewriter<ClientboundPackets1_7_2>(null, ComponentRewriter.ReadType.JSON) {
@Override
protected void handleTranslate(JsonObject object, String translate) {
final String text = TRANSLATIONS.get(translate);

View File

@ -22,9 +22,10 @@ import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.api.connection.ProtocolInfo;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.DataItem;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
@ -34,6 +35,9 @@ import com.viaversion.viaversion.api.protocol.packet.State;
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
import com.viaversion.viaversion.api.protocol.remapper.ValueTransformer;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.chunk.BulkChunkType1_8;
import com.viaversion.viaversion.api.type.types.chunk.ChunkSectionType1_8;
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_8;
import com.viaversion.viaversion.api.type.types.version.Types1_8;
import com.viaversion.viaversion.libs.gson.JsonElement;
import com.viaversion.viaversion.libs.gson.JsonObject;
@ -41,9 +45,6 @@ import com.viaversion.viaversion.protocols.base.ClientboundLoginPackets;
import com.viaversion.viaversion.protocols.base.ServerboundLoginPackets;
import com.viaversion.viaversion.protocols.protocol1_8.ClientboundPackets1_8;
import com.viaversion.viaversion.protocols.protocol1_8.ServerboundPackets1_8;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.types.Chunk1_8Type;
import com.viaversion.viaversion.protocols.protocol1_9to1_8.types.ChunkBulk1_8Type;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import net.lenni0451.mcstructs.text.serializer.TextComponentSerializer;
@ -63,8 +64,8 @@ import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.rewriter.Ch
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.rewriter.ItemRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.rewriter.TranslationRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.storage.*;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Chunk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulk1_7_6Type;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.ChunkBulkType1_7_6;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.Types1_7_6;
import java.nio.charset.StandardCharsets;
@ -135,7 +136,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
final int entityId = wrapper.get(Type.INT, 0);
final byte dimensionId = wrapper.get(Type.BYTE, 0);
final EntityTracker tracker = wrapper.user().get(EntityTracker.class);
tracker.trackEntity(entityId, Entity1_10Types.EntityType.PLAYER);
tracker.trackEntity(entityId, EntityTypes1_10.EntityType.PLAYER);
tracker.setPlayerID(entityId);
wrapper.user().get(DimensionTracker.class).setDimension(dimensionId);
wrapper.user().get(ClientWorld.class).setEnvironment(dimensionId);
@ -154,14 +155,14 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
public void register() {
map(Type.INT, Type.VAR_INT); // entity id
map(Type.SHORT); // slot
map(Types1_7_6.COMPRESSED_ITEM, Type.ITEM); // item
handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Type.ITEM, 0)));
map(Types1_7_6.COMPRESSED_ITEM, Type.ITEM1_8); // item
handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Type.ITEM1_8, 0)));
}
});
this.registerClientbound(ClientboundPackets1_7_2.SPAWN_POSITION, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_INT, Type.POSITION); // position
map(Types1_7_6.POSITION_INT, Type.POSITION1_8); // position
}
});
this.registerClientbound(ClientboundPackets1_7_2.UPDATE_HEALTH, new PacketHandlers() {
@ -212,7 +213,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
map(Type.INT, Type.VAR_INT); // entity id
map(Types1_7_6.POSITION_BYTE, Type.POSITION); // position
map(Types1_7_6.POSITION_BYTE, Type.POSITION1_8); // position
}
});
this.registerClientbound(ClientboundPackets1_7_2.SPAWN_PLAYER, new PacketHandlers() {
@ -247,14 +248,14 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
wrapper.write(Type.SHORT, (short) currentItem.identifier());
final List<Metadata> metadata = wrapper.read(Types1_7_6.METADATA_LIST); // metadata
metadataRewriter.transform(Entity1_10Types.EntityType.PLAYER, metadata);
metadataRewriter.transform(EntityTypes1_10.EntityType.PLAYER, metadata);
wrapper.write(Types1_8.METADATA_LIST, metadata);
tablistStorage.sendTempEntry(tempTabEntry);
});
handler(wrapper -> {
final int entityID = wrapper.get(Type.VAR_INT, 0);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, Entity1_10Types.EntityType.PLAYER);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, EntityTypes1_10.EntityType.PLAYER);
});
}
});
@ -286,18 +287,18 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
final int x = wrapper.get(Type.INT, 0);
final int y = wrapper.get(Type.INT, 1);
final int z = wrapper.get(Type.INT, 2);
tracker.trackEntity(entityID, Entity1_10Types.getTypeFromId(typeID, true));
tracker.trackEntity(entityID, EntityTypes1_10.getTypeFromId(typeID, true));
tracker.updateEntityLocation(entityID, x, y, z, false);
});
handler(wrapper -> {
final Entity1_10Types.EntityType type = Entity1_10Types.getTypeFromId(wrapper.get(Type.BYTE, 0), true);
final EntityTypes1_10.EntityType type = EntityTypes1_10.getTypeFromId(wrapper.get(Type.BYTE, 0), true);
int x = wrapper.get(Type.INT, 0);
int y = wrapper.get(Type.INT, 1);
int z = wrapper.get(Type.INT, 2);
byte yaw = wrapper.get(Type.BYTE, 2);
int data = wrapper.get(Type.INT, 3);
if (type == Entity1_10Types.ObjectType.ITEM_FRAME.getType()) {
if (type == EntityTypes1_10.ObjectType.ITEM_FRAME.getType()) {
switch (data) {
case 0:
z += 32;
@ -316,7 +317,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
yaw = -64;
break;
}
} else if (type == Entity1_10Types.ObjectType.FALLING_BLOCK.getType()) {
} else if (type == EntityTypes1_10.ObjectType.FALLING_BLOCK.getType()) {
final int id = data & 0xffff;
final int metadata = data >> 16;
final IdAndData block = new IdAndData(id, metadata);
@ -357,7 +358,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
final int y = wrapper.get(Type.INT, 1);
final int z = wrapper.get(Type.INT, 2);
final List<Metadata> metadataList = wrapper.get(Types1_8.METADATA_LIST, 0);
final Entity1_10Types.EntityType entityType = Entity1_10Types.getTypeFromId(typeID, false);
final EntityTypes1_10.EntityType entityType = EntityTypes1_10.getTypeFromId(typeID, false);
tracker.trackEntity(entityID, entityType);
tracker.updateEntityLocation(entityID, x, y, z, false);
tracker.updateEntityMetadata(entityID, metadataList);
@ -371,11 +372,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
public void register() {
map(Type.VAR_INT); // entity id
map(Type.STRING); // motive
map(Types1_7_6.POSITION_INT, Type.POSITION); // position
map(Types1_7_6.POSITION_INT, Type.POSITION1_8); // position
map(Type.INT, Type.BYTE); // rotation
handler(wrapper -> {
final short rotation = wrapper.get(Type.BYTE, 0);
final Position pos = wrapper.get(Type.POSITION, 0);
final Position pos = wrapper.get(Type.POSITION1_8, 0);
int modX = 0;
int modZ = 0;
switch (rotation) {
@ -392,11 +393,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
modX = 1;
break;
}
wrapper.set(Type.POSITION, 0, new Position(pos.x() + modX, pos.y(), pos.z() + modZ));
wrapper.set(Type.POSITION1_8, 0, new Position(pos.x() + modX, pos.y(), pos.z() + modZ));
});
handler(wrapper -> {
final int entityID = wrapper.get(Type.VAR_INT, 0);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, Entity1_10Types.EntityType.PAINTING);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, EntityTypes1_10.EntityType.PAINTING);
});
}
});
@ -410,9 +411,9 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
map(Type.SHORT); // count
handler(wrapper -> {
final int entityID = wrapper.get(Type.VAR_INT, 0);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, Entity1_10Types.EntityType.EXPERIENCE_ORB);
wrapper.user().get(EntityTracker.class).trackEntity(entityID, EntityTypes1_10.EntityType.EXPERIENCE_ORB);
wrapper.set(Type.INT, 1, realignEntityY(Entity1_10Types.EntityType.EXPERIENCE_ORB, wrapper.get(Type.INT, 1)));
wrapper.set(Type.INT, 1, realignEntityY(EntityTypes1_10.EntityType.EXPERIENCE_ORB, wrapper.get(Type.INT, 1)));
});
}
});
@ -535,7 +536,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
});
handler(wrapper -> {
final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
final Entity1_10Types.EntityType type = entityTracker.getTrackedEntities().get(wrapper.get(Type.VAR_INT, 0));
final EntityTypes1_10.EntityType type = entityTracker.getTrackedEntities().get(wrapper.get(Type.VAR_INT, 0));
wrapper.set(Type.INT, 1, realignEntityY(type, wrapper.get(Type.INT, 1)));
});
@ -633,9 +634,9 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
handler(wrapper -> {
final Chunk chunk = wrapper.read(new Chunk1_7_6Type(wrapper.user().get(ClientWorld.class)));
final Chunk chunk = wrapper.read(new ChunkType1_7_6(wrapper.user().get(ClientWorld.class)));
wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk);
wrapper.write(new Chunk1_8Type(wrapper.user().get(ClientWorld.class)), chunk);
wrapper.write(new ChunkType1_8(wrapper.user().get(ClientWorld.class)), chunk);
});
}
});
@ -664,11 +665,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
this.registerClientbound(ClientboundPackets1_7_2.BLOCK_CHANGE, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_UBYTE, Type.POSITION); // position
map(Types1_7_6.POSITION_UBYTE, Type.POSITION1_8); // position
handler(wrapper -> {
final int blockId = wrapper.read(Type.VAR_INT); // block id
final int data = wrapper.read(Type.UNSIGNED_BYTE); // block data
final Position pos = wrapper.get(Type.POSITION, 0); // position
final Position pos = wrapper.get(Type.POSITION1_8, 0); // position
final IdAndData block = new IdAndData(blockId, data);
wrapper.user().get(ChunkTracker.class).trackAndRemap(pos, block);
wrapper.write(Type.VAR_INT, block.toCompressedData());
@ -678,7 +679,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
this.registerClientbound(ClientboundPackets1_7_2.BLOCK_ACTION, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_SHORT, Type.POSITION); // position
map(Types1_7_6.POSITION_SHORT, Type.POSITION1_8); // position
map(Type.UNSIGNED_BYTE); // type
map(Type.UNSIGNED_BYTE); // data
map(Type.VAR_INT); // block id
@ -688,7 +689,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
map(Type.VAR_INT); // entity id
map(Types1_7_6.POSITION_INT, Type.POSITION); // position
map(Types1_7_6.POSITION_INT, Type.POSITION1_8); // position
map(Type.BYTE); // progress
}
});
@ -696,11 +697,11 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
handler(wrapper -> {
final Chunk[] chunks = wrapper.read(new ChunkBulk1_7_6Type(wrapper.user().get(ClientWorld.class)));
final Chunk[] chunks = wrapper.read(new ChunkBulkType1_7_6(wrapper.user().get(ClientWorld.class)));
for (Chunk chunk : chunks) {
wrapper.user().get(ChunkTracker.class).trackAndRemap(chunk);
}
wrapper.write(new ChunkBulk1_8Type(wrapper.user().get(ClientWorld.class)), chunks);
wrapper.write(new BulkChunkType1_8(wrapper.user().get(ClientWorld.class)), chunks);
});
}
});
@ -782,7 +783,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
}
wrapper.write(Type.INT, effectId);
wrapper.write(Type.POSITION, pos);
wrapper.write(Type.POSITION1_8, pos);
wrapper.write(Type.INT, data);
wrapper.write(Type.BOOLEAN, disableRelativeVolume);
}
@ -931,8 +932,8 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
if (windowType == 4/*enchanting_table*/ && slot >= 1) slot += 1;
wrapper.write(Type.SHORT, slot);
});
map(Types1_7_6.COMPRESSED_ITEM, Type.ITEM); // item
handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Type.ITEM, 0)));
map(Types1_7_6.COMPRESSED_ITEM, Type.ITEM1_8); // item
handler(wrapper -> itemRewriter.handleItemToClient(wrapper.get(Type.ITEM1_8, 0)));
}
});
this.registerClientbound(ClientboundPackets1_7_2.WINDOW_ITEMS, new PacketHandlers() {
@ -952,7 +953,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
for (Item item : items) {
itemRewriter.handleItemToClient(item);
}
wrapper.write(Type.ITEM_ARRAY, items);
wrapper.write(Type.ITEM1_8_ARRAY, items);
});
}
});
@ -994,7 +995,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
this.registerClientbound(ClientboundPackets1_7_2.UPDATE_SIGN, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_SHORT, Type.POSITION); // position
map(Types1_7_6.POSITION_SHORT, Type.POSITION1_8); // position
map(LEGACY_TO_JSON); // line 1
map(LEGACY_TO_JSON); // line 2
map(LEGACY_TO_JSON); // line 3
@ -1052,7 +1053,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
this.registerClientbound(ClientboundPackets1_7_2.BLOCK_ENTITY_DATA, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_SHORT, Type.POSITION); // position
map(Types1_7_6.POSITION_SHORT, Type.POSITION1_8); // position
map(Type.UNSIGNED_BYTE); // type
map(Types1_7_6.COMPRESSED_NBT, Type.NAMED_COMPOUND_TAG); // data
}
@ -1060,7 +1061,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
this.registerClientbound(ClientboundPackets1_7_2.OPEN_SIGN_EDITOR, new PacketHandlers() {
@Override
public void register() {
map(Types1_7_6.POSITION_INT, Type.POSITION); // position
map(Types1_7_6.POSITION_INT, Type.POSITION1_8); // position
}
});
this.registerClientbound(ClientboundPackets1_7_2.PLAYER_INFO, new PacketHandlers() {
@ -1177,17 +1178,17 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
for (int i = 0; i < count; i++) {
Item item = wrapper.read(Types1_7_6.COMPRESSED_ITEM);
itemRewriter.handleItemToClient(item);
wrapper.write(Type.ITEM, item); // item 1
wrapper.write(Type.ITEM1_8, item); // item 1
item = wrapper.read(Types1_7_6.COMPRESSED_ITEM);
itemRewriter.handleItemToClient(item);
wrapper.write(Type.ITEM, item); // item 3
wrapper.write(Type.ITEM1_8, item); // item 3
final boolean has3Items = wrapper.passthrough(Type.BOOLEAN); // has 3 items
if (has3Items) {
item = wrapper.read(Types1_7_6.COMPRESSED_ITEM);
itemRewriter.handleItemToClient(item);
wrapper.write(Type.ITEM, item); // item 2
wrapper.write(Type.ITEM1_8, item); // item 2
}
wrapper.passthrough(Type.BOOLEAN); // unavailable
@ -1234,8 +1235,8 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
wrapper.read(Type.FLOAT); // offsetY
wrapper.read(Type.FLOAT); // offsetZ
final EntityTracker entityTracker = wrapper.user().get(EntityTracker.class);
final Entity1_10Types.EntityType entityType = entityTracker.getTrackedEntities().get(wrapper.get(Type.INT, 0));
if (entityType == null || !entityType.isOrHasParent(Entity1_10Types.EntityType.ARMOR_STAND)) {
final EntityTypes1_10.EntityType entityType = entityTracker.getTrackedEntities().get(wrapper.get(Type.INT, 0));
if (entityType == null || !entityType.isOrHasParent(EntityTypes1_10.EntityType.ARMOR_STAND)) {
wrapper.cancel();
}
} else {
@ -1270,16 +1271,16 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
map(Type.VAR_INT, Type.UNSIGNED_BYTE); // status
map(Type.POSITION, Types1_7_6.POSITION_UBYTE); // position
map(Type.POSITION1_8, Types1_7_6.POSITION_UBYTE); // position
map(Type.UNSIGNED_BYTE); // direction
}
});
this.registerServerbound(ServerboundPackets1_8.PLAYER_BLOCK_PLACEMENT, new PacketHandlers() {
@Override
public void register() {
map(Type.POSITION, Types1_7_6.POSITION_UBYTE); // position
map(Type.POSITION1_8, Types1_7_6.POSITION_UBYTE); // position
map(Type.UNSIGNED_BYTE); // direction
map(Type.ITEM, Types1_7_6.COMPRESSED_ITEM); // item
map(Type.ITEM1_8, Types1_7_6.COMPRESSED_ITEM); // item
map(Type.UNSIGNED_BYTE); // offset x
map(Type.UNSIGNED_BYTE); // offset y
map(Type.UNSIGNED_BYTE); // offset z
@ -1342,12 +1343,12 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
final PacketWrapper resetHandItem = PacketWrapper.create(ClientboundPackets1_8.SET_SLOT, wrapper.user());
resetHandItem.write(Type.UNSIGNED_BYTE, (short) -1); // window id
resetHandItem.write(Type.SHORT, (short) 0); // slot
resetHandItem.write(Type.ITEM, new DataItem(-1, (byte) 0, (short) 0, null));
resetHandItem.write(Type.ITEM1_8, new DataItem(-1, (byte) 0, (short) 0, null));
resetHandItem.send(Protocol1_8to1_7_6_10.class);
final PacketWrapper setLapisSlot = PacketWrapper.create(ClientboundPackets1_8.SET_SLOT, wrapper.user());
setLapisSlot.write(Type.UNSIGNED_BYTE, windowId);
setLapisSlot.write(Type.SHORT, slot);
setLapisSlot.write(Type.ITEM, new DataItem(351/*lapis_lazuli*/, (byte) 3, (short) 4, null));
setLapisSlot.write(Type.ITEM1_8, new DataItem(351/*lapis_lazuli*/, (byte) 3, (short) 4, null));
setLapisSlot.send(Protocol1_8to1_7_6_10.class);
wrapper.cancel();
} else if (slot > 1) {
@ -1358,7 +1359,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
map(Type.BYTE); // button
map(Type.SHORT); // transaction id
map(Type.BYTE); // action
map(Type.ITEM, Types1_7_6.COMPRESSED_ITEM); // item
map(Type.ITEM1_8, Types1_7_6.COMPRESSED_ITEM); // item
handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0)));
}
});
@ -1366,14 +1367,14 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
@Override
public void register() {
map(Type.SHORT); // slot
map(Type.ITEM, Types1_7_6.COMPRESSED_ITEM); // item
map(Type.ITEM1_8, Types1_7_6.COMPRESSED_ITEM); // item
handler(wrapper -> itemRewriter.handleItemToServer(wrapper.get(Types1_7_6.COMPRESSED_ITEM, 0)));
}
});
this.registerServerbound(ServerboundPackets1_8.UPDATE_SIGN, new PacketHandlers() {
@Override
public void register() {
map(Type.POSITION, Types1_7_6.POSITION_SHORT); // position
map(Type.POSITION1_8, Types1_7_6.POSITION_SHORT); // position
handler(wrapper -> {
for (int i = 0; i < 4; i++) {
final JsonElement component = wrapper.read(Type.COMPONENT); // line
@ -1426,7 +1427,7 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
switch (channel) {
case "MC|BEdit":
case "MC|BSign":
final Item item = wrapper.read(Type.ITEM); // book
final Item item = wrapper.read(Type.ITEM1_8); // book
itemRewriter.handleItemToServer(item);
lengthPacketWrapper.write(Types1_7_6.COMPRESSED_ITEM, item);
@ -1555,24 +1556,24 @@ public class Protocol1_8to1_7_6_10 extends AbstractProtocol<ClientboundPackets1_
return min >= max ? min : rnd.nextFloat() * (max - min) + min;
}
private int realignEntityY(final Entity1_10Types.EntityType type, final int y) {
private int realignEntityY(final EntityTypes1_10.EntityType type, final int y) {
float yPos = y / 32F;
float yOffset = 0F;
if (type == Entity1_10Types.ObjectType.FALLING_BLOCK.getType())
if (type == EntityTypes1_10.ObjectType.FALLING_BLOCK.getType())
yOffset = 0.98F / 2F;
if (type == Entity1_10Types.ObjectType.TNT_PRIMED.getType())
if (type == EntityTypes1_10.ObjectType.TNT_PRIMED.getType())
yOffset = 0.98F / 2F;
if (type == Entity1_10Types.ObjectType.ENDER_CRYSTAL.getType())
if (type == EntityTypes1_10.ObjectType.ENDER_CRYSTAL.getType())
yOffset = 1F;
else if (type == Entity1_10Types.ObjectType.MINECART.getType())
else if (type == EntityTypes1_10.ObjectType.MINECART.getType())
yOffset = 0.7F / 2F;
else if (type == Entity1_10Types.ObjectType.BOAT.getType())
else if (type == EntityTypes1_10.ObjectType.BOAT.getType())
yOffset = 0.6F / 2F;
else if (type == Entity1_10Types.ObjectType.ITEM.getType())
else if (type == EntityTypes1_10.ObjectType.ITEM.getType())
yOffset = 0.25F / 2F;
else if (type == Entity1_10Types.ObjectType.LEASH.getType())
else if (type == EntityTypes1_10.ObjectType.LEASH.getType())
yOffset = 0.5F;
else if (type == Entity1_10Types.EntityType.EXPERIENCE_ORB)
else if (type == EntityTypes1_10.EntityType.EXPERIENCE_ORB)
yOffset = 0.5F / 2F;
return (int) Math.floor((yPos - yOffset) * 32F);
}

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaType1_8;
import com.viaversion.viaversion.util.Pair;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types.MetaType1_7_6;
@ -27,89 +27,89 @@ import java.util.Optional;
public enum MetaIndex1_8to1_7_6 {
ENTITY_FLAGS(Entity1_10Types.EntityType.ENTITY, 0, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_AIR(Entity1_10Types.EntityType.ENTITY, 1, MetaType1_7_6.Short, MetaType1_8.Short),
ENTITY_NAME_TAG(Entity1_10Types.EntityType.ENTITY, -1, null, 2, MetaType1_8.String),
ENTITY_NAME_TAG_VISIBILITY(Entity1_10Types.EntityType.ENTITY, -1, null, 3, MetaType1_8.Byte),
ENTITY_SILENT(Entity1_10Types.EntityType.ENTITY, -1, null, 4, MetaType1_8.Byte),
ENTITY_LIVING_HEALTH(Entity1_10Types.EntityType.ENTITY_LIVING, 6, MetaType1_7_6.Float, MetaType1_8.Float),
ENTITY_LIVING_POTION_EFFECT_COLOR(Entity1_10Types.EntityType.ENTITY_LIVING, 7, MetaType1_7_6.Int, MetaType1_8.Int),
ENTITY_LIVING_IS_POTION_EFFECT_AMBIENT(Entity1_10Types.EntityType.ENTITY_LIVING, 8, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_LIVING_ARROWS(Entity1_10Types.EntityType.ENTITY_LIVING, 9, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_LIVING_NAME_TAG(Entity1_10Types.EntityType.ENTITY_LIVING, 10, MetaType1_7_6.String, 2, MetaType1_8.String),
ENTITY_LIVING_NAME_TAG_VISIBILITY(Entity1_10Types.EntityType.ENTITY_LIVING, 11, MetaType1_7_6.Byte, 3, MetaType1_8.Byte),
ENTITY_LIVING_AI(Entity1_10Types.EntityType.ENTITY_LIVING, -1, null, 15, MetaType1_8.Byte),
ENTITY_AGEABLE_AGE(Entity1_10Types.EntityType.ENTITY_AGEABLE, 12, MetaType1_7_6.Int, MetaType1_8.Byte),
ARMOR_STAND_FLAGS(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 10, MetaType1_8.Byte),
ARMOR_STAND_HEAD_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 11, MetaType1_8.Rotation),
ARMOR_STAND_BODY_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 12, MetaType1_8.Rotation),
ARMOR_STAND_LEFT_ARM_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 13, MetaType1_8.Rotation),
ARMOR_STAND_RIGHT_ARM_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 14, MetaType1_8.Rotation),
ARMOR_STAND_LEFT_LEG_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 15, MetaType1_8.Rotation),
ARMOR_STAND_RIGHT_LEG_POSITION(Entity1_10Types.EntityType.ARMOR_STAND, -1, null, 16, MetaType1_8.Rotation),
HUMAN_SKIN_FLAGS(Entity1_10Types.EntityType.ENTITY_HUMAN, 16, MetaType1_7_6.Byte, 10, MetaType1_8.Byte),
HUMAN_UNUSED(Entity1_10Types.EntityType.ENTITY_HUMAN, -1, null, 16, MetaType1_8.Byte),
HUMAN_ABSORPTION_HEATS(Entity1_10Types.EntityType.ENTITY_HUMAN, 17, MetaType1_7_6.Float, MetaType1_8.Float),
HUMAN_SCORE(Entity1_10Types.EntityType.ENTITY_HUMAN, 18, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_FLAGS(Entity1_10Types.EntityType.HORSE, 16, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_TYPE(Entity1_10Types.EntityType.HORSE, 19, MetaType1_7_6.Byte, MetaType1_8.Byte),
HORSE_COLOR(Entity1_10Types.EntityType.HORSE, 20, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_OWNER(Entity1_10Types.EntityType.HORSE, 21, MetaType1_7_6.String, MetaType1_8.String),
HORSE_ARMOR(Entity1_10Types.EntityType.HORSE, 22, MetaType1_7_6.Int, MetaType1_8.Int),
BAT_HANGING(Entity1_10Types.EntityType.BAT, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
TAMEABLE_FLAGS(Entity1_10Types.EntityType.ENTITY_TAMEABLE_ANIMAL, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
TAMEABLE_OWNER(Entity1_10Types.EntityType.ENTITY_TAMEABLE_ANIMAL, 17, MetaType1_7_6.String, MetaType1_8.String),
OCELOT_TYPE(Entity1_10Types.EntityType.OCELOT, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
WOLF_HEALTH(Entity1_10Types.EntityType.WOLF, 18, MetaType1_7_6.Float, MetaType1_8.Float),
WOLF_BEGGING(Entity1_10Types.EntityType.WOLF, 19, MetaType1_7_6.Byte, MetaType1_8.Byte),
WOLF_COLLAR_COLOR(Entity1_10Types.EntityType.WOLF, 20, MetaType1_7_6.Byte, MetaType1_8.Byte),
PIG_SADDLE(Entity1_10Types.EntityType.PIG, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SHEEP_COLOR_OR_SHEARED(Entity1_10Types.EntityType.SHEEP, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
VILLAGER_TYPE(Entity1_10Types.EntityType.VILLAGER, 16, MetaType1_7_6.Int, MetaType1_8.Int),
ENDERMAN_CARRIED_BLOCK(Entity1_10Types.EntityType.ENDERMAN, 16, MetaType1_7_6.Byte, MetaType1_8.Short), // merged with ENDERMAN_CARRIED_BLOCK_DATA
ENDERMAN_CARRIED_BLOCK_DATA(Entity1_10Types.EntityType.ENDERMAN, 17, MetaType1_7_6.Byte, MetaType1_8.Byte), // merged to ENDERMAN_CARRIED_BLOCK
ENDERMAN_IS_SCREAMING(Entity1_10Types.EntityType.ENDERMAN, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_CHILD(Entity1_10Types.EntityType.ZOMBIE, 12, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_VILLAGER(Entity1_10Types.EntityType.ZOMBIE, 13, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_CONVERTING(Entity1_10Types.EntityType.ZOMBIE, 14, MetaType1_7_6.Byte, MetaType1_8.Byte),
BLAZE_ON_FIRE(Entity1_10Types.EntityType.BLAZE, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SPIDER_CLIMBING(Entity1_10Types.EntityType.SPIDER, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_STATE(Entity1_10Types.EntityType.CREEPER, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_POWERED(Entity1_10Types.EntityType.CREEPER, 17, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_ISIGNITED(Entity1_10Types.EntityType.CREEPER, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
GHAST_STATE(Entity1_10Types.EntityType.GHAST, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
GHAST_IS_POWERED(Entity1_10Types.EntityType.GHAST, 17, null, MetaType1_8.Byte),
SLIME_SIZE(Entity1_10Types.EntityType.SLIME, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SKELETON_TYPE(Entity1_10Types.EntityType.SKELETON, 13, MetaType1_7_6.Byte, MetaType1_8.Byte),
WITCH_AGRESSIVE(Entity1_10Types.EntityType.WITCH, 21, MetaType1_7_6.Byte, MetaType1_8.Byte),
IRON_GOLEM_IS_PLAYER_CREATED(Entity1_10Types.EntityType.IRON_GOLEM, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
WITHER_WATCHED_TAGRET_1(Entity1_10Types.EntityType.WITHER, 17, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_WATCHED_TAGRET_2(Entity1_10Types.EntityType.WITHER, 18, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_WATCHED_TAGRET_3(Entity1_10Types.EntityType.WITHER, 19, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_INVULNERABLE_TIME(Entity1_10Types.EntityType.WITHER, 20, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_SKULL_ISINVULNERABLE(Entity1_10Types.EntityType.WITHER_SKULL, 10, MetaType1_7_6.Byte, MetaType1_8.Byte),
GUARDIAN_FLAGS(Entity1_10Types.EntityType.GUARDIAN, 16, null, MetaType1_8.Byte),
GUARDIAN_TARGET(Entity1_10Types.EntityType.GUARDIAN, 17, null, MetaType1_8.Int),
BOAT_TIME_SINCE_HIT(Entity1_10Types.EntityType.BOAT, 17, MetaType1_7_6.Int, MetaType1_8.Int),
BOAT_FORWARD_DIRECTION(Entity1_10Types.EntityType.BOAT, 18, MetaType1_7_6.Int, MetaType1_8.Int),
BOAT_DAMAGE_TAKEN(Entity1_10Types.EntityType.BOAT, 19, MetaType1_7_6.Float, MetaType1_8.Float),
MINECART_SHAKING_POWER(Entity1_10Types.EntityType.MINECART_ABSTRACT, 17, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_SHAKING_DIRECTION(Entity1_10Types.EntityType.MINECART_ABSTRACT, 18, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_DAMAGE_TAKEN(Entity1_10Types.EntityType.MINECART_ABSTRACT, 19, MetaType1_7_6.Float, MetaType1_8.Float),
MINECART_BLOCK_INSIDE(Entity1_10Types.EntityType.MINECART_ABSTRACT, 20, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_BLOCK_Y(Entity1_10Types.EntityType.MINECART_ABSTRACT, 21, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_SHOW_BLOCK(Entity1_10Types.EntityType.MINECART_ABSTRACT, 22, MetaType1_7_6.Byte, MetaType1_8.Byte),
FURNACE_MINECART_IS_POWERED(Entity1_10Types.EntityType.MINECART_ABSTRACT, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
ITEM_ITEM(Entity1_10Types.EntityType.DROPPED_ITEM, 10, MetaType1_7_6.Slot, MetaType1_8.Slot),
ARROW_IS_CRITICAL(Entity1_10Types.EntityType.ARROW, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
FIREWORK_INFO(Entity1_10Types.EntityType.FIREWORK, 8, MetaType1_7_6.Slot, MetaType1_8.Slot),
ITEM_FRAME_ITEM(Entity1_10Types.EntityType.ITEM_FRAME, 2, MetaType1_7_6.Slot, 8, MetaType1_8.Slot),
ITEM_FRAME_ROTATION(Entity1_10Types.EntityType.ITEM_FRAME, 3, MetaType1_7_6.Byte, 9, MetaType1_8.Byte),
ENDER_CRYSTAL_HEALTH(Entity1_10Types.EntityType.ENDER_CRYSTAL, 8, MetaType1_7_6.Int, 8, MetaType1_8.Int),
RABBIT_TYPE(Entity1_10Types.EntityType.RABBIT, -1, null, 18, MetaType1_8.Byte),
ENTITY_FLAGS(EntityTypes1_10.EntityType.ENTITY, 0, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_AIR(EntityTypes1_10.EntityType.ENTITY, 1, MetaType1_7_6.Short, MetaType1_8.Short),
ENTITY_NAME_TAG(EntityTypes1_10.EntityType.ENTITY, -1, null, 2, MetaType1_8.String),
ENTITY_NAME_TAG_VISIBILITY(EntityTypes1_10.EntityType.ENTITY, -1, null, 3, MetaType1_8.Byte),
ENTITY_SILENT(EntityTypes1_10.EntityType.ENTITY, -1, null, 4, MetaType1_8.Byte),
ENTITY_LIVING_HEALTH(EntityTypes1_10.EntityType.ENTITY_LIVING, 6, MetaType1_7_6.Float, MetaType1_8.Float),
ENTITY_LIVING_POTION_EFFECT_COLOR(EntityTypes1_10.EntityType.ENTITY_LIVING, 7, MetaType1_7_6.Int, MetaType1_8.Int),
ENTITY_LIVING_IS_POTION_EFFECT_AMBIENT(EntityTypes1_10.EntityType.ENTITY_LIVING, 8, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_LIVING_ARROWS(EntityTypes1_10.EntityType.ENTITY_LIVING, 9, MetaType1_7_6.Byte, MetaType1_8.Byte),
ENTITY_LIVING_NAME_TAG(EntityTypes1_10.EntityType.ENTITY_LIVING, 10, MetaType1_7_6.String, 2, MetaType1_8.String),
ENTITY_LIVING_NAME_TAG_VISIBILITY(EntityTypes1_10.EntityType.ENTITY_LIVING, 11, MetaType1_7_6.Byte, 3, MetaType1_8.Byte),
ENTITY_LIVING_AI(EntityTypes1_10.EntityType.ENTITY_LIVING, -1, null, 15, MetaType1_8.Byte),
ENTITY_AGEABLE_AGE(EntityTypes1_10.EntityType.ENTITY_AGEABLE, 12, MetaType1_7_6.Int, MetaType1_8.Byte),
ARMOR_STAND_FLAGS(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 10, MetaType1_8.Byte),
ARMOR_STAND_HEAD_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 11, MetaType1_8.Rotation),
ARMOR_STAND_BODY_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 12, MetaType1_8.Rotation),
ARMOR_STAND_LEFT_ARM_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 13, MetaType1_8.Rotation),
ARMOR_STAND_RIGHT_ARM_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 14, MetaType1_8.Rotation),
ARMOR_STAND_LEFT_LEG_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 15, MetaType1_8.Rotation),
ARMOR_STAND_RIGHT_LEG_POSITION(EntityTypes1_10.EntityType.ARMOR_STAND, -1, null, 16, MetaType1_8.Rotation),
HUMAN_SKIN_FLAGS(EntityTypes1_10.EntityType.ENTITY_HUMAN, 16, MetaType1_7_6.Byte, 10, MetaType1_8.Byte),
HUMAN_UNUSED(EntityTypes1_10.EntityType.ENTITY_HUMAN, -1, null, 16, MetaType1_8.Byte),
HUMAN_ABSORPTION_HEATS(EntityTypes1_10.EntityType.ENTITY_HUMAN, 17, MetaType1_7_6.Float, MetaType1_8.Float),
HUMAN_SCORE(EntityTypes1_10.EntityType.ENTITY_HUMAN, 18, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_FLAGS(EntityTypes1_10.EntityType.HORSE, 16, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_TYPE(EntityTypes1_10.EntityType.HORSE, 19, MetaType1_7_6.Byte, MetaType1_8.Byte),
HORSE_COLOR(EntityTypes1_10.EntityType.HORSE, 20, MetaType1_7_6.Int, MetaType1_8.Int),
HORSE_OWNER(EntityTypes1_10.EntityType.HORSE, 21, MetaType1_7_6.String, MetaType1_8.String),
HORSE_ARMOR(EntityTypes1_10.EntityType.HORSE, 22, MetaType1_7_6.Int, MetaType1_8.Int),
BAT_HANGING(EntityTypes1_10.EntityType.BAT, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
TAMEABLE_FLAGS(EntityTypes1_10.EntityType.ENTITY_TAMEABLE_ANIMAL, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
TAMEABLE_OWNER(EntityTypes1_10.EntityType.ENTITY_TAMEABLE_ANIMAL, 17, MetaType1_7_6.String, MetaType1_8.String),
OCELOT_TYPE(EntityTypes1_10.EntityType.OCELOT, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
WOLF_HEALTH(EntityTypes1_10.EntityType.WOLF, 18, MetaType1_7_6.Float, MetaType1_8.Float),
WOLF_BEGGING(EntityTypes1_10.EntityType.WOLF, 19, MetaType1_7_6.Byte, MetaType1_8.Byte),
WOLF_COLLAR_COLOR(EntityTypes1_10.EntityType.WOLF, 20, MetaType1_7_6.Byte, MetaType1_8.Byte),
PIG_SADDLE(EntityTypes1_10.EntityType.PIG, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SHEEP_COLOR_OR_SHEARED(EntityTypes1_10.EntityType.SHEEP, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
VILLAGER_TYPE(EntityTypes1_10.EntityType.VILLAGER, 16, MetaType1_7_6.Int, MetaType1_8.Int),
ENDERMAN_CARRIED_BLOCK(EntityTypes1_10.EntityType.ENDERMAN, 16, MetaType1_7_6.Byte, MetaType1_8.Short), // merged with ENDERMAN_CARRIED_BLOCK_DATA
ENDERMAN_CARRIED_BLOCK_DATA(EntityTypes1_10.EntityType.ENDERMAN, 17, MetaType1_7_6.Byte, MetaType1_8.Byte), // merged to ENDERMAN_CARRIED_BLOCK
ENDERMAN_IS_SCREAMING(EntityTypes1_10.EntityType.ENDERMAN, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_CHILD(EntityTypes1_10.EntityType.ZOMBIE, 12, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_VILLAGER(EntityTypes1_10.EntityType.ZOMBIE, 13, MetaType1_7_6.Byte, MetaType1_8.Byte),
ZOMBIE_CONVERTING(EntityTypes1_10.EntityType.ZOMBIE, 14, MetaType1_7_6.Byte, MetaType1_8.Byte),
BLAZE_ON_FIRE(EntityTypes1_10.EntityType.BLAZE, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SPIDER_CLIMBING(EntityTypes1_10.EntityType.SPIDER, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_STATE(EntityTypes1_10.EntityType.CREEPER, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_POWERED(EntityTypes1_10.EntityType.CREEPER, 17, MetaType1_7_6.Byte, MetaType1_8.Byte),
CREEPER_ISIGNITED(EntityTypes1_10.EntityType.CREEPER, 18, MetaType1_7_6.Byte, MetaType1_8.Byte),
GHAST_STATE(EntityTypes1_10.EntityType.GHAST, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
GHAST_IS_POWERED(EntityTypes1_10.EntityType.GHAST, 17, null, MetaType1_8.Byte),
SLIME_SIZE(EntityTypes1_10.EntityType.SLIME, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
SKELETON_TYPE(EntityTypes1_10.EntityType.SKELETON, 13, MetaType1_7_6.Byte, MetaType1_8.Byte),
WITCH_AGRESSIVE(EntityTypes1_10.EntityType.WITCH, 21, MetaType1_7_6.Byte, MetaType1_8.Byte),
IRON_GOLEM_IS_PLAYER_CREATED(EntityTypes1_10.EntityType.IRON_GOLEM, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
WITHER_WATCHED_TAGRET_1(EntityTypes1_10.EntityType.WITHER, 17, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_WATCHED_TAGRET_2(EntityTypes1_10.EntityType.WITHER, 18, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_WATCHED_TAGRET_3(EntityTypes1_10.EntityType.WITHER, 19, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_INVULNERABLE_TIME(EntityTypes1_10.EntityType.WITHER, 20, MetaType1_7_6.Int, MetaType1_8.Int),
WITHER_SKULL_ISINVULNERABLE(EntityTypes1_10.EntityType.WITHER_SKULL, 10, MetaType1_7_6.Byte, MetaType1_8.Byte),
GUARDIAN_FLAGS(EntityTypes1_10.EntityType.GUARDIAN, 16, null, MetaType1_8.Byte),
GUARDIAN_TARGET(EntityTypes1_10.EntityType.GUARDIAN, 17, null, MetaType1_8.Int),
BOAT_TIME_SINCE_HIT(EntityTypes1_10.EntityType.BOAT, 17, MetaType1_7_6.Int, MetaType1_8.Int),
BOAT_FORWARD_DIRECTION(EntityTypes1_10.EntityType.BOAT, 18, MetaType1_7_6.Int, MetaType1_8.Int),
BOAT_DAMAGE_TAKEN(EntityTypes1_10.EntityType.BOAT, 19, MetaType1_7_6.Float, MetaType1_8.Float),
MINECART_SHAKING_POWER(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 17, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_SHAKING_DIRECTION(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 18, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_DAMAGE_TAKEN(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 19, MetaType1_7_6.Float, MetaType1_8.Float),
MINECART_BLOCK_INSIDE(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 20, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_BLOCK_Y(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 21, MetaType1_7_6.Int, MetaType1_8.Int),
MINECART_SHOW_BLOCK(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 22, MetaType1_7_6.Byte, MetaType1_8.Byte),
FURNACE_MINECART_IS_POWERED(EntityTypes1_10.EntityType.MINECART_ABSTRACT, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
ITEM_ITEM(EntityTypes1_10.EntityType.DROPPED_ITEM, 10, MetaType1_7_6.Slot, MetaType1_8.Slot),
ARROW_IS_CRITICAL(EntityTypes1_10.EntityType.ARROW, 16, MetaType1_7_6.Byte, MetaType1_8.Byte),
FIREWORK_INFO(EntityTypes1_10.EntityType.FIREWORK, 8, MetaType1_7_6.Slot, MetaType1_8.Slot),
ITEM_FRAME_ITEM(EntityTypes1_10.EntityType.ITEM_FRAME, 2, MetaType1_7_6.Slot, 8, MetaType1_8.Slot),
ITEM_FRAME_ROTATION(EntityTypes1_10.EntityType.ITEM_FRAME, 3, MetaType1_7_6.Byte, 9, MetaType1_8.Byte),
ENDER_CRYSTAL_HEALTH(EntityTypes1_10.EntityType.ENDER_CRYSTAL, 8, MetaType1_7_6.Int, 8, MetaType1_8.Int),
RABBIT_TYPE(EntityTypes1_10.EntityType.RABBIT, -1, null, 18, MetaType1_8.Byte),
;
private static final HashMap<Pair<Entity1_10Types.EntityType, Integer>, MetaIndex1_8to1_7_6> metadataRewrites = new HashMap<>();
private static final HashMap<Pair<EntityTypes1_10.EntityType, Integer>, MetaIndex1_8to1_7_6> metadataRewrites = new HashMap<>();
static {
for (MetaIndex1_8to1_7_6 index : MetaIndex1_8to1_7_6.values()) {
@ -117,13 +117,13 @@ public enum MetaIndex1_8to1_7_6 {
}
}
private final Entity1_10Types.EntityType entityType;
private final EntityTypes1_10.EntityType entityType;
private final int oldIndex;
private final int newIndex;
private final MetaType1_7_6 oldType;
private final MetaType1_8 newType;
MetaIndex1_8to1_7_6(Entity1_10Types.EntityType entityType, int oldIndex, MetaType1_7_6 oldType, MetaType1_8 newType) {
MetaIndex1_8to1_7_6(EntityTypes1_10.EntityType entityType, int oldIndex, MetaType1_7_6 oldType, MetaType1_8 newType) {
this.entityType = entityType;
this.oldIndex = oldIndex;
this.newIndex = oldIndex;
@ -131,7 +131,7 @@ public enum MetaIndex1_8to1_7_6 {
this.newType = newType;
}
MetaIndex1_8to1_7_6(Entity1_10Types.EntityType entityType, int oldIndex, MetaType1_7_6 oldType, int newIndex, MetaType1_8 newType) {
MetaIndex1_8to1_7_6(EntityTypes1_10.EntityType entityType, int oldIndex, MetaType1_7_6 oldType, int newIndex, MetaType1_8 newType) {
this.entityType = entityType;
this.oldIndex = oldIndex;
this.oldType = oldType;
@ -139,7 +139,7 @@ public enum MetaIndex1_8to1_7_6 {
this.newType = newType;
}
public Entity1_10Types.EntityType getEntityType() {
public EntityTypes1_10.EntityType getEntityType() {
return this.entityType;
}
@ -159,13 +159,13 @@ public enum MetaIndex1_8to1_7_6 {
return this.newType;
}
private static Optional<MetaIndex1_8to1_7_6> getIndex(Entity1_10Types.EntityType type, int index) {
final Pair<Entity1_10Types.EntityType, Integer> pair = new Pair<>(type, index);
private static Optional<MetaIndex1_8to1_7_6> getIndex(EntityTypes1_10.EntityType type, int index) {
final Pair<EntityTypes1_10.EntityType, Integer> pair = new Pair<>(type, index);
return Optional.ofNullable(metadataRewrites.get(pair));
}
public static MetaIndex1_8to1_7_6 searchIndex(Entity1_10Types.EntityType type, int index) {
Entity1_10Types.EntityType currentType = type;
public static MetaIndex1_8to1_7_6 searchIndex(EntityTypes1_10.EntityType type, int index) {
EntityTypes1_10.EntityType currentType = type;
do {
Optional<MetaIndex1_8to1_7_6> optMeta = getIndex(currentType, index);
if (optMeta.isPresent()) {

View File

@ -17,7 +17,7 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.metadata;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import net.raphimc.vialegacy.ViaLegacy;
@ -35,7 +35,7 @@ public class MetadataRewriter {
this.protocol = protocol;
}
public void transform(Entity1_10Types.EntityType type, List<Metadata> list) {
public void transform(EntityTypes1_10.EntityType type, List<Metadata> list) {
for (Metadata entry : new ArrayList<>(list)) {
final MetaIndex1_8to1_7_6 metaIndex = MetaIndex1_8to1_7_6.searchIndex(type, entry.id());
try {

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.model;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
import com.viaversion.viaversion.api.type.Type;
@ -40,7 +40,7 @@ public class HologramPartEntity {
private final EntityTracker entityTracker;
private final int entityId;
private final Entity1_10Types.EntityType entityType;
private final EntityTypes1_10.EntityType entityType;
private HologramPartEntity riderEntity;
private HologramPartEntity vehicleEntity;
private Location location;
@ -48,7 +48,7 @@ public class HologramPartEntity {
private Integer mappedEntityId;
public HologramPartEntity(final UserConnection user, final int entityId, final Entity1_10Types.EntityType entityType) {
public HologramPartEntity(final UserConnection user, final int entityId, final EntityTypes1_10.EntityType entityType) {
this.user = user;
this.entityTracker = this.user.get(EntityTracker.class);
@ -56,7 +56,7 @@ public class HologramPartEntity {
this.entityType = entityType;
this.location = new Location(Float.NaN, Float.NaN, Float.NaN);
if (entityType == Entity1_10Types.EntityType.HORSE) {
if (entityType == EntityTypes1_10.EntityType.HORSE) {
this.metadata.put(MetaIndex1_8to1_7_6.ENTITY_FLAGS, (byte) 0);
this.metadata.put(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG_VISIBILITY, (byte) 0);
this.metadata.put(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG, "");
@ -123,7 +123,7 @@ public class HologramPartEntity {
spawnMob.send(Protocol1_8to1_7_6_10.class);
}
if (this.vehicleEntity != null) {
final int objectId = Arrays.stream(Entity1_10Types.ObjectType.values()).filter(o -> o.getType() == this.vehicleEntity.entityType).map(Entity1_10Types.ObjectType::getId).findFirst().orElse(-1);
final int objectId = Arrays.stream(EntityTypes1_10.ObjectType.values()).filter(o -> o.getType() == this.vehicleEntity.entityType).map(EntityTypes1_10.ObjectType::getId).findFirst().orElse(-1);
if (objectId == -1) {
throw new IllegalStateException("Could not find object id for entity type " + this.vehicleEntity.entityType);
}
@ -161,7 +161,7 @@ public class HologramPartEntity {
private void spawnArmorStand() throws Exception {
final PacketWrapper spawnMob = PacketWrapper.create(ClientboundPackets1_8.SPAWN_MOB, this.user);
spawnMob.write(Type.VAR_INT, this.mappedEntityId); // entity id
spawnMob.write(Type.UNSIGNED_BYTE, (short) Entity1_10Types.EntityType.ARMOR_STAND.getId()); // type id
spawnMob.write(Type.UNSIGNED_BYTE, (short) EntityTypes1_10.EntityType.ARMOR_STAND.getId()); // type id
spawnMob.write(Type.INT, (int) (this.location.getX() * 32F)); // x
spawnMob.write(Type.INT, (int) ((this.location.getY() + this.getHeight()) * 32F)); // y
spawnMob.write(Type.INT, (int) (this.location.getZ() * 32F)); // z
@ -203,7 +203,7 @@ public class HologramPartEntity {
}
private boolean isHologram() {
if (this.entityType != Entity1_10Types.EntityType.HORSE) return false;
if (this.entityType != EntityTypes1_10.EntityType.HORSE) return false;
if (this.vehicleEntity == null) return false;
if (this.riderEntity != null) return false;
if (this.vehicleEntity.riderEntity != this) return false;
@ -213,14 +213,14 @@ public class HologramPartEntity {
}
private boolean wouldBeInvisible() {
if (this.entityType != Entity1_10Types.EntityType.HORSE) return false;
if (this.entityType != EntityTypes1_10.EntityType.HORSE) return false;
final int age = (int) this.getMetadata(MetaIndex1_8to1_7_6.ENTITY_AGEABLE_AGE);
return age >= -50_000;
}
private float getHeight() {
if (this.entityType == Entity1_10Types.EntityType.HORSE) {
if (this.entityType == EntityTypes1_10.EntityType.HORSE) {
final int age = (int) this.getMetadata(MetaIndex1_8to1_7_6.ENTITY_AGEABLE_AGE);
final float size = age >= 0 ? 1F : (0.5F + (-24_000F - age) / -24_000F * 0.5F);
return HORSE_HEIGHT * size;
@ -242,7 +242,7 @@ public class HologramPartEntity {
return this.entityId;
}
public Entity1_10Types.EntityType getEntityType() {
public EntityTypes1_10.EntityType getEntityType() {
return this.entityType;
}
@ -250,7 +250,7 @@ public class HologramPartEntity {
if (vehicleEntity == null) {
if (this.vehicleEntity != null) {
this.location = this.vehicleEntity.location;
this.location = new Location(this.location.getX(), this.location.getY() + (this.vehicleEntity.entityType == Entity1_10Types.EntityType.HORSE ? HORSE_HEIGHT : WITHER_SKULL_HEIGHT), this.location.getZ());
this.location = new Location(this.location.getX(), this.location.getY() + (this.vehicleEntity.entityType == EntityTypes1_10.EntityType.HORSE ? HORSE_HEIGHT : WITHER_SKULL_HEIGHT), this.location.getZ());
this.vehicleEntity.riderEntity = null;
this.vehicleEntity.onChange();
}
@ -311,7 +311,7 @@ public class HologramPartEntity {
private List<Metadata> getArmorStandMetadata() {
final List<Metadata> metadataList = new ArrayList<>();
if (this.entityType == Entity1_10Types.EntityType.HORSE) {
if (this.entityType == EntityTypes1_10.EntityType.HORSE) {
metadataList.add(new Metadata(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG_VISIBILITY.getNewIndex(), MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG_VISIBILITY.getNewType(), this.getMetadata(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG_VISIBILITY)));
metadataList.add(new Metadata(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG.getNewIndex(), MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG.getNewType(), this.getMetadata(MetaIndex1_8to1_7_6.ENTITY_LIVING_NAME_TAG)));
metadataList.add(new Metadata(MetaIndex1_8to1_7_6.ENTITY_FLAGS.getNewIndex(), MetaIndex1_8to1_7_6.ENTITY_FLAGS.getNewType(), (byte) (1 << 5)));

View File

@ -31,6 +31,7 @@ import com.viaversion.viaversion.rewriter.ComponentRewriter;
import net.lenni0451.mcstructs.snbt.SNbtSerializer;
import net.lenni0451.mcstructs.snbt.exceptions.SNbtSerializeException;
import net.raphimc.vialegacy.ViaLegacy;
import net.raphimc.vialegacy.protocols.release.protocol1_7_6_10to1_7_2_5.ClientboundPackets1_7_2;
import net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.Protocol1_8to1_7_6_10;
import net.raphimc.vialegacy.util.NbtConverter;
@ -358,10 +359,10 @@ public class ChatItemRewriter {
ID_TO_NAME.put(2267, "record_wait");
}
private final ComponentRewriter SHOW_ITEM;
private final ComponentRewriter<ClientboundPackets1_7_2> SHOW_ITEM;
public ChatItemRewriter(final Protocol1_8to1_7_6_10 protocol) {
this.SHOW_ITEM = new ComponentRewriter(protocol) {
this.SHOW_ITEM = new ComponentRewriter<ClientboundPackets1_7_2>(protocol) {
@Override
protected void handleHoverEvent(JsonObject hoverEvent) {
super.handleHoverEvent(hoverEvent);

View File

@ -21,6 +21,7 @@ import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectMap;
import com.viaversion.viaversion.libs.fastutil.objects.Object2ObjectOpenHashMap;
import com.viaversion.viaversion.libs.gson.JsonObject;
import com.viaversion.viaversion.rewriter.ComponentRewriter;
import net.raphimc.vialegacy.protocols.release.protocol1_7_6_10to1_7_2_5.ClientboundPackets1_7_2;
public class TranslationRewriter {
@ -88,7 +89,7 @@ public class TranslationRewriter {
TRANSLATIONS.put("commands.achievement.usage", "/achievement give <stat_name> [player]");
}
private static final ComponentRewriter REWRITER = new ComponentRewriter() {
private static final ComponentRewriter<ClientboundPackets1_7_2> REWRITER = new ComponentRewriter<ClientboundPackets1_7_2>(null, ComponentRewriter.ReadType.JSON) {
@Override
protected void handleTranslate(JsonObject object, String translate) {
final String text = TRANSLATIONS.get(translate);

View File

@ -19,7 +19,7 @@ package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.storage;
import com.viaversion.viaversion.api.connection.StoredObject;
import com.viaversion.viaversion.api.connection.UserConnection;
import com.viaversion.viaversion.api.minecraft.entities.Entity1_10Types;
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_10;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectMap;
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap;
@ -34,7 +34,7 @@ import java.util.concurrent.ThreadLocalRandom;
public class EntityTracker extends StoredObject {
private final Map<Integer, Entity1_10Types.EntityType> entityMap = new ConcurrentHashMap<>();
private final Map<Integer, EntityTypes1_10.EntityType> entityMap = new ConcurrentHashMap<>();
private final Map<Integer, Boolean> groundMap = new ConcurrentHashMap<>();
private final Int2ObjectMap<HologramPartEntity> hologramParts = new Int2ObjectOpenHashMap<>();
private final Int2ObjectMap<HologramPartEntity> virtualHolograms = new Int2ObjectOpenHashMap<>();
@ -53,7 +53,7 @@ public class EntityTracker extends StoredObject {
this.playerID = playerID;
}
public Map<Integer, Entity1_10Types.EntityType> getTrackedEntities() {
public Map<Integer, EntityTypes1_10.EntityType> getTrackedEntities() {
return this.entityMap;
}
@ -65,7 +65,7 @@ public class EntityTracker extends StoredObject {
return this.virtualHolograms;
}
public void trackEntity(final int entityId, final Entity1_10Types.EntityType entityType) throws Exception {
public void trackEntity(final int entityId, final EntityTypes1_10.EntityType entityType) throws Exception {
if (this.virtualHolograms.containsKey(entityId)) {
final int newMappedEntityId = this.getNextMappedEntityId();
final HologramPartEntity hologramPartEntity = this.virtualHolograms.remove(entityId);
@ -78,7 +78,7 @@ public class EntityTracker extends StoredObject {
this.entityMap.put(entityId, entityType);
if (entityType == Entity1_10Types.EntityType.HORSE || entityType == Entity1_10Types.EntityType.WITHER_SKULL) {
if (entityType == EntityTypes1_10.EntityType.HORSE || entityType == EntityTypes1_10.EntityType.WITHER_SKULL) {
this.hologramParts.put(entityId, new HologramPartEntity(this.getUser(), entityId, entityType));
}
}

View File

@ -17,12 +17,12 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
import com.viaversion.viaversion.api.type.PartialType;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.CustomByteType;
import com.viaversion.viaversion.api.type.types.minecraft.BaseChunkBulkType;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import com.viaversion.viaversion.api.type.types.chunk.BaseChunkBulkType;
import com.viaversion.viaversion.util.Pair;
import io.netty.buffer.ByteBuf;
@ -32,9 +32,9 @@ import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;
public class ChunkBulk1_7_6Type extends PartialType<Chunk[], ClientWorld> {
public class ChunkBulkType1_7_6 extends PartialType<Chunk[], ClientWorld> {
public ChunkBulk1_7_6Type(final ClientWorld clientWorld) {
public ChunkBulkType1_7_6(final ClientWorld clientWorld) {
super(clientWorld, Chunk[].class);
}
@ -82,7 +82,7 @@ public class ChunkBulk1_7_6Type extends PartialType<Chunk[], ClientWorld> {
additionalBitMask[i] = byteBuf.readShort();
}
final byte[] uncompressedData = new byte[Chunk1_7_6Type.getSize((short) 0xFFFF, (short) 0xFFFF, true, hasSkyLight) * chunkCount];
final byte[] uncompressedData = new byte[ChunkType1_7_6.getSize((short) 0xFFFF, (short) 0xFFFF, true, hasSkyLight) * chunkCount];
final Inflater inflater = new Inflater();
try {
inflater.setInput(data, 0, compressedSize);
@ -96,9 +96,9 @@ public class ChunkBulk1_7_6Type extends PartialType<Chunk[], ClientWorld> {
final Chunk[] chunks = new Chunk[chunkCount];
int dataPosition = 0;
for (int i = 0; i < chunkCount; i++) {
final byte[] chunkData = new byte[Chunk1_7_6Type.getSize(primaryBitMask[i], additionalBitMask[i], true, hasSkyLight)];
final byte[] chunkData = new byte[ChunkType1_7_6.getSize(primaryBitMask[i], additionalBitMask[i], true, hasSkyLight)];
System.arraycopy(uncompressedData, dataPosition, chunkData, 0, chunkData.length);
chunks[i] = Chunk1_7_6Type.deserialize(chunkX[i], chunkZ[i], true, hasSkyLight, primaryBitMask[i], additionalBitMask[i], chunkData);
chunks[i] = ChunkType1_7_6.deserialize(chunkX[i], chunkZ[i], true, hasSkyLight, primaryBitMask[i], additionalBitMask[i], chunkData);
dataPosition += chunkData.length;
}
@ -116,7 +116,7 @@ public class ChunkBulk1_7_6Type extends PartialType<Chunk[], ClientWorld> {
for (int i = 0; i < chunkCount; i++) {
final Chunk chunk = chunks[i];
final Pair<byte[], Short> chunkData = Chunk1_7_6Type.serialize(chunk);
final Pair<byte[], Short> chunkData = ChunkType1_7_6.serialize(chunk);
output.write(chunkData.key());
chunkX[i] = chunk.getX();
chunkZ[i] = chunk.getZ();

View File

@ -17,13 +17,13 @@
*/
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types;
import com.viaversion.viaversion.api.minecraft.ClientWorld;
import com.viaversion.viaversion.api.minecraft.Environment;
import com.viaversion.viaversion.api.minecraft.chunks.*;
import com.viaversion.viaversion.api.type.PartialType;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.CustomByteType;
import com.viaversion.viaversion.api.type.types.minecraft.BaseChunkType;
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
import com.viaversion.viaversion.api.type.types.chunk.BaseChunkType;
import com.viaversion.viaversion.util.Pair;
import io.netty.buffer.ByteBuf;
import net.raphimc.vialegacy.api.model.IdAndData;
@ -36,9 +36,9 @@ import java.util.zip.DataFormatException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;
public class Chunk1_7_6Type extends PartialType<Chunk, ClientWorld> {
public class ChunkType1_7_6 extends PartialType<Chunk, ClientWorld> {
public Chunk1_7_6Type(final ClientWorld clientWorld) {
public ChunkType1_7_6(final ClientWorld clientWorld) {
super(clientWorld, Chunk.class);
}

View File

@ -18,7 +18,7 @@
package net.raphimc.vialegacy.protocols.release.protocol1_8to1_7_6_10.types;
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
import com.viaversion.viaversion.api.type.types.minecraft.OldMetaType;
import com.viaversion.viaversion.api.type.types.metadata.OldMetaType;
public class MetadataType extends OldMetaType {

View File

@ -22,7 +22,7 @@ import com.viaversion.viaversion.api.minecraft.Position;
import com.viaversion.viaversion.api.minecraft.item.Item;
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
import com.viaversion.viaversion.api.type.Type;
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
import com.viaversion.viaversion.api.type.types.metadata.MetaListType;
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
import java.util.List;