mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2024-11-22 01:55:47 +01:00
Move type instances out of its enclosing class
Type constants being hold by its own abstract class has lead to classloading issues in the past, now we're finally free
This commit is contained in:
parent
ca25e62d2d
commit
5286efde15
@ -48,40 +48,41 @@ import com.viaversion.viaversion.api.minecraft.item.data.ToolProperties;
|
||||
import com.viaversion.viaversion.api.minecraft.item.data.Unbreakable;
|
||||
import com.viaversion.viaversion.api.minecraft.item.data.WrittenBook;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
|
||||
import com.viaversion.viaversion.util.Unit;
|
||||
|
||||
public record StructuredDataKey<T>(String identifier, Type<T> type) {
|
||||
|
||||
public static final StructuredDataKey<CompoundTag> CUSTOM_DATA = new StructuredDataKey<>("custom_data", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Integer> MAX_STACK_SIZE = new StructuredDataKey<>("max_stack_size", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> MAX_DAMAGE = new StructuredDataKey<>("max_damage", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> DAMAGE = new StructuredDataKey<>("damage", Type.VAR_INT);
|
||||
public static final StructuredDataKey<CompoundTag> CUSTOM_DATA = new StructuredDataKey<>("custom_data", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Integer> MAX_STACK_SIZE = new StructuredDataKey<>("max_stack_size", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> MAX_DAMAGE = new StructuredDataKey<>("max_damage", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> DAMAGE = new StructuredDataKey<>("damage", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Unbreakable> UNBREAKABLE = new StructuredDataKey<>("unbreakable", Unbreakable.TYPE);
|
||||
public static final StructuredDataKey<Tag> CUSTOM_NAME = new StructuredDataKey<>("custom_name", Type.TAG);
|
||||
public static final StructuredDataKey<Tag> ITEM_NAME = new StructuredDataKey<>("item_name", Type.TAG);
|
||||
public static final StructuredDataKey<Tag[]> LORE = new StructuredDataKey<>("lore", Type.TAG_ARRAY);
|
||||
public static final StructuredDataKey<Integer> RARITY = new StructuredDataKey<>("rarity", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Tag> CUSTOM_NAME = new StructuredDataKey<>("custom_name", Types.TAG);
|
||||
public static final StructuredDataKey<Tag> ITEM_NAME = new StructuredDataKey<>("item_name", Types.TAG);
|
||||
public static final StructuredDataKey<Tag[]> LORE = new StructuredDataKey<>("lore", Types.TAG_ARRAY);
|
||||
public static final StructuredDataKey<Integer> RARITY = new StructuredDataKey<>("rarity", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Enchantments> ENCHANTMENTS = new StructuredDataKey<>("enchantments", Enchantments.TYPE);
|
||||
public static final StructuredDataKey<AdventureModePredicate> CAN_PLACE_ON = new StructuredDataKey<>("can_place_on", AdventureModePredicate.TYPE);
|
||||
public static final StructuredDataKey<AdventureModePredicate> CAN_BREAK = new StructuredDataKey<>("can_break", AdventureModePredicate.TYPE);
|
||||
public static final StructuredDataKey<AttributeModifiers> ATTRIBUTE_MODIFIERS = new StructuredDataKey<>("attribute_modifiers", AttributeModifiers.TYPE);
|
||||
public static final StructuredDataKey<Integer> CUSTOM_MODEL_DATA = new StructuredDataKey<>("custom_model_data", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Unit> HIDE_ADDITIONAL_TOOLTIP = new StructuredDataKey<>("hide_additional_tooltip", Type.EMPTY);
|
||||
public static final StructuredDataKey<Unit> HIDE_TOOLTIP = new StructuredDataKey<>("hide_tooltip", Type.EMPTY);
|
||||
public static final StructuredDataKey<Integer> REPAIR_COST = new StructuredDataKey<>("repair_cost", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Unit> CREATIVE_SLOT_LOCK = new StructuredDataKey<>("creative_slot_lock", Type.EMPTY);
|
||||
public static final StructuredDataKey<Boolean> ENCHANTMENT_GLINT_OVERRIDE = new StructuredDataKey<>("enchantment_glint_override", Type.BOOLEAN);
|
||||
public static final StructuredDataKey<Tag> INTANGIBLE_PROJECTILE = new StructuredDataKey<>("intangible_projectile", Type.TAG); // Doesn't actually hold data
|
||||
public static final StructuredDataKey<Integer> CUSTOM_MODEL_DATA = new StructuredDataKey<>("custom_model_data", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Unit> HIDE_ADDITIONAL_TOOLTIP = new StructuredDataKey<>("hide_additional_tooltip", Types.EMPTY);
|
||||
public static final StructuredDataKey<Unit> HIDE_TOOLTIP = new StructuredDataKey<>("hide_tooltip", Types.EMPTY);
|
||||
public static final StructuredDataKey<Integer> REPAIR_COST = new StructuredDataKey<>("repair_cost", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Unit> CREATIVE_SLOT_LOCK = new StructuredDataKey<>("creative_slot_lock", Types.EMPTY);
|
||||
public static final StructuredDataKey<Boolean> ENCHANTMENT_GLINT_OVERRIDE = new StructuredDataKey<>("enchantment_glint_override", Types.BOOLEAN);
|
||||
public static final StructuredDataKey<Tag> INTANGIBLE_PROJECTILE = new StructuredDataKey<>("intangible_projectile", Types.TAG); // Doesn't actually hold data
|
||||
public static final StructuredDataKey<FoodProperties> FOOD = new StructuredDataKey<>("food", FoodProperties.TYPE);
|
||||
public static final StructuredDataKey<Unit> FIRE_RESISTANT = new StructuredDataKey<>("fire_resistant", Type.EMPTY);
|
||||
public static final StructuredDataKey<Unit> FIRE_RESISTANT = new StructuredDataKey<>("fire_resistant", Types.EMPTY);
|
||||
public static final StructuredDataKey<ToolProperties> TOOL = new StructuredDataKey<>("tool", ToolProperties.TYPE);
|
||||
public static final StructuredDataKey<Enchantments> STORED_ENCHANTMENTS = new StructuredDataKey<>("stored_enchantments", Enchantments.TYPE);
|
||||
public static final StructuredDataKey<DyedColor> DYED_COLOR = new StructuredDataKey<>("dyed_color", DyedColor.TYPE);
|
||||
public static final StructuredDataKey<Integer> MAP_COLOR = new StructuredDataKey<>("map_color", Type.INT);
|
||||
public static final StructuredDataKey<Integer> MAP_ID = new StructuredDataKey<>("map_id", Type.VAR_INT);
|
||||
public static final StructuredDataKey<CompoundTag> MAP_DECORATIONS = new StructuredDataKey<>("map_decorations", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Integer> MAP_POST_PROCESSING = new StructuredDataKey<>("map_post_processing", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> MAP_COLOR = new StructuredDataKey<>("map_color", Types.INT);
|
||||
public static final StructuredDataKey<Integer> MAP_ID = new StructuredDataKey<>("map_id", Types.VAR_INT);
|
||||
public static final StructuredDataKey<CompoundTag> MAP_DECORATIONS = new StructuredDataKey<>("map_decorations", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Integer> MAP_POST_PROCESSING = new StructuredDataKey<>("map_post_processing", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Item[]> CHARGED_PROJECTILES = new StructuredDataKey<>("charged_projectiles", Types1_20_5.ITEM_ARRAY);
|
||||
public static final StructuredDataKey<Item[]> BUNDLE_CONTENTS = new StructuredDataKey<>("bundle_contents", Types1_20_5.ITEM_ARRAY);
|
||||
public static final StructuredDataKey<PotionContents> POTION_CONTENTS = new StructuredDataKey<>("potion_contents", PotionContents.TYPE);
|
||||
@ -89,26 +90,26 @@ public record StructuredDataKey<T>(String identifier, Type<T> type) {
|
||||
public static final StructuredDataKey<FilterableString[]> WRITABLE_BOOK_CONTENT = new StructuredDataKey<>("writable_book_content", FilterableString.ARRAY_TYPE);
|
||||
public static final StructuredDataKey<WrittenBook> WRITTEN_BOOK_CONTENT = new StructuredDataKey<>("written_book_content", WrittenBook.TYPE);
|
||||
public static final StructuredDataKey<ArmorTrim> TRIM = new StructuredDataKey<>("trim", ArmorTrim.TYPE);
|
||||
public static final StructuredDataKey<CompoundTag> DEBUG_STICK_STATE = new StructuredDataKey<>("debug_stick_state", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> ENTITY_DATA = new StructuredDataKey<>("entity_data", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> BUCKET_ENTITY_DATA = new StructuredDataKey<>("bucket_entity_data", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> BLOCK_ENTITY_DATA = new StructuredDataKey<>("block_entity_data", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> DEBUG_STICK_STATE = new StructuredDataKey<>("debug_stick_state", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> ENTITY_DATA = new StructuredDataKey<>("entity_data", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> BUCKET_ENTITY_DATA = new StructuredDataKey<>("bucket_entity_data", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<CompoundTag> BLOCK_ENTITY_DATA = new StructuredDataKey<>("block_entity_data", Types.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Holder<Instrument>> INSTRUMENT = new StructuredDataKey<>("instrument", Instrument.TYPE);
|
||||
public static final StructuredDataKey<Integer> OMINOUS_BOTTLE_AMPLIFIER = new StructuredDataKey<>("ominous_bottle_amplifier", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Tag> RECIPES = new StructuredDataKey<>("recipes", Type.TAG);
|
||||
public static final StructuredDataKey<Integer> OMINOUS_BOTTLE_AMPLIFIER = new StructuredDataKey<>("ominous_bottle_amplifier", Types.VAR_INT);
|
||||
public static final StructuredDataKey<Tag> RECIPES = new StructuredDataKey<>("recipes", Types.TAG);
|
||||
public static final StructuredDataKey<LodestoneTracker> LODESTONE_TRACKER = new StructuredDataKey<>("lodestone_tracker", LodestoneTracker.TYPE);
|
||||
public static final StructuredDataKey<FireworkExplosion> FIREWORK_EXPLOSION = new StructuredDataKey<>("firework_explosion", FireworkExplosion.TYPE);
|
||||
public static final StructuredDataKey<Fireworks> FIREWORKS = new StructuredDataKey<>("fireworks", Fireworks.TYPE);
|
||||
public static final StructuredDataKey<GameProfile> PROFILE = new StructuredDataKey<>("profile", Type.GAME_PROFILE);
|
||||
public static final StructuredDataKey<String> NOTE_BLOCK_SOUND = new StructuredDataKey<>("note_block_sound", Type.STRING);
|
||||
public static final StructuredDataKey<GameProfile> PROFILE = new StructuredDataKey<>("profile", Types.GAME_PROFILE);
|
||||
public static final StructuredDataKey<String> NOTE_BLOCK_SOUND = new StructuredDataKey<>("note_block_sound", Types.STRING);
|
||||
public static final StructuredDataKey<BannerPatternLayer[]> BANNER_PATTERNS = new StructuredDataKey<>("banner_patterns", BannerPatternLayer.ARRAY_TYPE);
|
||||
public static final StructuredDataKey<Integer> BASE_COLOR = new StructuredDataKey<>("base_color", Type.VAR_INT);
|
||||
public static final StructuredDataKey<Integer> BASE_COLOR = new StructuredDataKey<>("base_color", Types.VAR_INT);
|
||||
public static final StructuredDataKey<PotDecorations> POT_DECORATIONS = new StructuredDataKey<>("pot_decorations", PotDecorations.TYPE);
|
||||
public static final StructuredDataKey<Item[]> CONTAINER = new StructuredDataKey<>("container", Types1_20_5.ITEM_ARRAY);
|
||||
public static final StructuredDataKey<BlockStateProperties> BLOCK_STATE = new StructuredDataKey<>("block_state", BlockStateProperties.TYPE);
|
||||
public static final StructuredDataKey<Bee[]> BEES = new StructuredDataKey<>("bees", Bee.ARRAY_TYPE);
|
||||
public static final StructuredDataKey<Tag> LOCK = new StructuredDataKey<>("lock", Type.TAG);
|
||||
public static final StructuredDataKey<CompoundTag> CONTAINER_LOOT = new StructuredDataKey<>("container_loot", Type.COMPOUND_TAG);
|
||||
public static final StructuredDataKey<Tag> LOCK = new StructuredDataKey<>("lock", Types.TAG);
|
||||
public static final StructuredDataKey<CompoundTag> CONTAINER_LOOT = new StructuredDataKey<>("container_loot", Types.COMPOUND_TAG);
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.nbt.tag.Tag;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||
@ -35,35 +36,35 @@ public record ArmorTrimMaterial(String assetName, int itemId, float itemModelInd
|
||||
public static final HolderType<ArmorTrimMaterial> TYPE = new HolderType<>() {
|
||||
@Override
|
||||
public ArmorTrimMaterial readDirect(final ByteBuf buffer) {
|
||||
final String assetName = Type.STRING.read(buffer);
|
||||
final int item = Type.VAR_INT.readPrimitive(buffer);
|
||||
final String assetName = Types.STRING.read(buffer);
|
||||
final int item = Types.VAR_INT.readPrimitive(buffer);
|
||||
final float itemModelIndex = buffer.readFloat();
|
||||
|
||||
final int overrideArmorMaterialsSize = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int overrideArmorMaterialsSize = Types.VAR_INT.readPrimitive(buffer);
|
||||
final Int2ObjectMap<String> overrideArmorMaterials = new Int2ObjectOpenHashMap<>(overrideArmorMaterialsSize);
|
||||
for (int i = 0; i < overrideArmorMaterialsSize; i++) {
|
||||
final int key = Type.VAR_INT.readPrimitive(buffer);
|
||||
final String value = Type.STRING.read(buffer);
|
||||
final int key = Types.VAR_INT.readPrimitive(buffer);
|
||||
final String value = Types.STRING.read(buffer);
|
||||
overrideArmorMaterials.put(key, value);
|
||||
}
|
||||
|
||||
final Tag description = Type.TAG.read(buffer);
|
||||
final Tag description = Types.TAG.read(buffer);
|
||||
return new ArmorTrimMaterial(assetName, item, itemModelIndex, overrideArmorMaterials, description);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDirect(final ByteBuf buffer, final ArmorTrimMaterial value) {
|
||||
Type.STRING.write(buffer, value.assetName());
|
||||
Type.VAR_INT.writePrimitive(buffer, value.itemId());
|
||||
Types.STRING.write(buffer, value.assetName());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.itemId());
|
||||
buffer.writeFloat(value.itemModelIndex());
|
||||
|
||||
Type.VAR_INT.writePrimitive(buffer, value.overrideArmorMaterials().size());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.overrideArmorMaterials().size());
|
||||
for (final Int2ObjectMap.Entry<String> entry : value.overrideArmorMaterials().int2ObjectEntrySet()) {
|
||||
Type.VAR_INT.writePrimitive(buffer, entry.getIntKey());
|
||||
Type.STRING.write(buffer, entry.getValue());
|
||||
Types.VAR_INT.writePrimitive(buffer, entry.getIntKey());
|
||||
Types.STRING.write(buffer, entry.getValue());
|
||||
}
|
||||
|
||||
Type.TAG.write(buffer, value.description());
|
||||
Types.TAG.write(buffer, value.description());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.nbt.tag.Tag;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -32,18 +33,18 @@ public record ArmorTrimPattern(String assetName, int itemId, Tag description, bo
|
||||
public static final HolderType<ArmorTrimPattern> TYPE = new HolderType<>() {
|
||||
@Override
|
||||
public ArmorTrimPattern readDirect(final ByteBuf buffer) {
|
||||
final String assetName = Type.STRING.read(buffer);
|
||||
final int itemId = Type.VAR_INT.readPrimitive(buffer);
|
||||
final Tag description = Type.TAG.read(buffer);
|
||||
final String assetName = Types.STRING.read(buffer);
|
||||
final int itemId = Types.VAR_INT.readPrimitive(buffer);
|
||||
final Tag description = Types.TAG.read(buffer);
|
||||
final boolean decal = buffer.readBoolean();
|
||||
return new ArmorTrimPattern(assetName, itemId, description, decal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDirect(final ByteBuf buffer, final ArmorTrimPattern value) {
|
||||
Type.STRING.write(buffer, value.assetName());
|
||||
Type.VAR_INT.writePrimitive(buffer, value.itemId());
|
||||
Type.TAG.write(buffer, value.description());
|
||||
Types.STRING.write(buffer, value.assetName());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.itemId());
|
||||
Types.TAG.write(buffer, value.description());
|
||||
buffer.writeBoolean(value.decal());
|
||||
}
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -31,17 +32,17 @@ public record AttributeModifier(int attribute, ModifierData modifier, int slotTy
|
||||
public static final Type<AttributeModifier> TYPE = new Type<>(AttributeModifier.class) {
|
||||
@Override
|
||||
public AttributeModifier read(final ByteBuf buffer) {
|
||||
final int attribute = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int attribute = Types.VAR_INT.readPrimitive(buffer);
|
||||
final ModifierData modifier = ModifierData.TYPE.read(buffer);
|
||||
final int slot = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int slot = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new AttributeModifier(attribute, modifier, slot);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final AttributeModifier value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.attribute);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.attribute);
|
||||
ModifierData.TYPE.write(buffer, value.modifier);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.slotType);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.slotType);
|
||||
}
|
||||
};
|
||||
public static final Type<AttributeModifier[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -31,15 +32,15 @@ public record BannerPattern(String assetId, String translationKey) {
|
||||
public static final HolderType<BannerPattern> TYPE = new HolderType<>() {
|
||||
@Override
|
||||
public BannerPattern readDirect(final ByteBuf buffer) {
|
||||
final String assetId = Type.STRING.read(buffer);
|
||||
final String translationKey = Type.STRING.read(buffer);
|
||||
final String assetId = Types.STRING.read(buffer);
|
||||
final String translationKey = Types.STRING.read(buffer);
|
||||
return new BannerPattern(assetId, translationKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDirect(final ByteBuf buffer, final BannerPattern value) {
|
||||
Type.STRING.write(buffer, value.assetId);
|
||||
Type.STRING.write(buffer, value.translationKey);
|
||||
Types.STRING.write(buffer, value.assetId);
|
||||
Types.STRING.write(buffer, value.translationKey);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.Holder;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -33,14 +34,14 @@ public record BannerPatternLayer(Holder<BannerPattern> pattern, int dyeColor) {
|
||||
@Override
|
||||
public BannerPatternLayer read(final ByteBuf buffer) {
|
||||
final Holder<BannerPattern> pattern = BannerPattern.TYPE.read(buffer);
|
||||
final int color = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int color = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new BannerPatternLayer(pattern, color);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final BannerPatternLayer value) {
|
||||
BannerPattern.TYPE.write(buffer, value.pattern);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.dyeColor);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.dyeColor);
|
||||
}
|
||||
};
|
||||
public static final Type<BannerPatternLayer[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -32,17 +33,17 @@ public record Bee(CompoundTag entityData, int ticksInHive, int minTicksInHive) {
|
||||
public static final Type<Bee> TYPE = new Type<>(Bee.class) {
|
||||
@Override
|
||||
public Bee read(final ByteBuf buffer) {
|
||||
final CompoundTag entityData = Type.COMPOUND_TAG.read(buffer);
|
||||
final int ticksInHive = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int minTicksInHive = Type.VAR_INT.readPrimitive(buffer);
|
||||
final CompoundTag entityData = Types.COMPOUND_TAG.read(buffer);
|
||||
final int ticksInHive = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int minTicksInHive = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new Bee(entityData, ticksInHive, minTicksInHive);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Bee value) {
|
||||
Type.COMPOUND_TAG.write(buffer, value.entityData);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.ticksInHive);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.minTicksInHive);
|
||||
Types.COMPOUND_TAG.write(buffer, value.entityData);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.ticksInHive);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.minTicksInHive);
|
||||
}
|
||||
};
|
||||
public static final Type<Bee[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -35,22 +36,22 @@ public record BlockPredicate(@Nullable HolderSet holderSet, StatePropertyMatcher
|
||||
public static final Type<BlockPredicate> TYPE = new Type<>(BlockPredicate.class) {
|
||||
@Override
|
||||
public BlockPredicate read(final ByteBuf buffer) {
|
||||
final HolderSet holders = Type.OPTIONAL_HOLDER_SET.read(buffer);
|
||||
final HolderSet holders = Types.OPTIONAL_HOLDER_SET.read(buffer);
|
||||
final StatePropertyMatcher[] propertyMatchers = buffer.readBoolean() ? StatePropertyMatcher.ARRAY_TYPE.read(buffer) : null;
|
||||
final CompoundTag tag = Type.OPTIONAL_COMPOUND_TAG.read(buffer);
|
||||
final CompoundTag tag = Types.OPTIONAL_COMPOUND_TAG.read(buffer);
|
||||
return new BlockPredicate(holders, propertyMatchers, tag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final BlockPredicate value) {
|
||||
Type.OPTIONAL_HOLDER_SET.write(buffer, value.holderSet);
|
||||
Types.OPTIONAL_HOLDER_SET.write(buffer, value.holderSet);
|
||||
|
||||
buffer.writeBoolean(value.propertyMatchers != null);
|
||||
if (value.propertyMatchers != null) {
|
||||
StatePropertyMatcher.ARRAY_TYPE.write(buffer, value.propertyMatchers);
|
||||
}
|
||||
|
||||
Type.OPTIONAL_COMPOUND_TAG.write(buffer, value.tag);
|
||||
Types.OPTIONAL_COMPOUND_TAG.write(buffer, value.tag);
|
||||
}
|
||||
};
|
||||
public static final Type<BlockPredicate[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||
import java.util.Map;
|
||||
@ -32,20 +33,20 @@ public record BlockStateProperties(Map<String, String> properties) {
|
||||
public static final Type<BlockStateProperties> TYPE = new Type<>(BlockStateProperties.class) {
|
||||
@Override
|
||||
public BlockStateProperties read(final ByteBuf buffer) {
|
||||
final int size = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int size = Types.VAR_INT.readPrimitive(buffer);
|
||||
final Map<String, String> properties = new Object2ObjectOpenHashMap<>(size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
properties.put(Type.STRING.read(buffer), Type.STRING.read(buffer));
|
||||
properties.put(Types.STRING.read(buffer), Types.STRING.read(buffer));
|
||||
}
|
||||
return new BlockStateProperties(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final BlockStateProperties value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.properties.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.properties.size());
|
||||
for (final Map.Entry<String, String> entry : value.properties.entrySet()) {
|
||||
Type.STRING.write(buffer, entry.getKey());
|
||||
Type.STRING.write(buffer, entry.getValue());
|
||||
Types.STRING.write(buffer, entry.getKey());
|
||||
Types.STRING.write(buffer, entry.getValue());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.ints.Int2IntMap;
|
||||
import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap;
|
||||
@ -33,10 +34,10 @@ public record Enchantments(Int2IntMap enchantments, boolean showInTooltip) {
|
||||
@Override
|
||||
public Enchantments read(final ByteBuf buffer) {
|
||||
final Int2IntMap enchantments = new Int2IntOpenHashMap();
|
||||
final int size = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int size = Types.VAR_INT.readPrimitive(buffer);
|
||||
for (int i = 0; i < size; i++) {
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int level = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int level = Types.VAR_INT.readPrimitive(buffer);
|
||||
enchantments.put(id, level);
|
||||
}
|
||||
|
||||
@ -45,10 +46,10 @@ public record Enchantments(Int2IntMap enchantments, boolean showInTooltip) {
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Enchantments value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.enchantments.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.enchantments.size());
|
||||
for (final Int2IntMap.Entry entry : value.enchantments.int2IntEntrySet()) {
|
||||
Type.VAR_INT.writePrimitive(buffer, entry.getIntKey());
|
||||
Type.VAR_INT.writePrimitive(buffer, entry.getIntValue());
|
||||
Types.VAR_INT.writePrimitive(buffer, entry.getIntKey());
|
||||
Types.VAR_INT.writePrimitive(buffer, entry.getIntValue());
|
||||
}
|
||||
buffer.writeBoolean(value.showInTooltip());
|
||||
}
|
||||
|
@ -24,12 +24,13 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.nbt.tag.Tag;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public final class FilterableComponent extends Filterable<Tag> {
|
||||
|
||||
public static final Type<FilterableComponent> TYPE = new FilterableType<>(Type.TAG, Type.OPTIONAL_TAG, FilterableComponent.class) {
|
||||
public static final Type<FilterableComponent> TYPE = new FilterableType<>(Types.TAG, Types.OPTIONAL_TAG, FilterableComponent.class) {
|
||||
@Override
|
||||
protected FilterableComponent create(final Tag raw, final Tag filtered) {
|
||||
return new FilterableComponent(raw, filtered);
|
||||
|
@ -23,12 +23,13 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
public final class FilterableString extends Filterable<String> {
|
||||
|
||||
public static final Type<FilterableString> TYPE = new FilterableType<>(Type.STRING, Type.OPTIONAL_STRING, FilterableString.class) {
|
||||
public static final Type<FilterableString> TYPE = new FilterableType<>(Types.STRING, Types.OPTIONAL_STRING, FilterableString.class) {
|
||||
@Override
|
||||
protected FilterableString create(final String raw, final String filtered) {
|
||||
return new FilterableString(raw, filtered);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -30,9 +31,9 @@ public record FireworkExplosion(int shape, int[] colors, int[] fadeColors, boole
|
||||
public static final Type<FireworkExplosion> TYPE = new Type<>(FireworkExplosion.class) {
|
||||
@Override
|
||||
public FireworkExplosion read(final ByteBuf buffer) {
|
||||
final int shape = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int[] colors = Type.INT_ARRAY_PRIMITIVE.read(buffer);
|
||||
final int[] fadeColors = Type.INT_ARRAY_PRIMITIVE.read(buffer);
|
||||
final int shape = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int[] colors = Types.INT_ARRAY_PRIMITIVE.read(buffer);
|
||||
final int[] fadeColors = Types.INT_ARRAY_PRIMITIVE.read(buffer);
|
||||
final boolean hasTrail = buffer.readBoolean();
|
||||
final boolean hasTwinkle = buffer.readBoolean();
|
||||
return new FireworkExplosion(shape, colors, fadeColors, hasTrail, hasTwinkle);
|
||||
@ -40,9 +41,9 @@ public record FireworkExplosion(int shape, int[] colors, int[] fadeColors, boole
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final FireworkExplosion value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.shape);
|
||||
Type.INT_ARRAY_PRIMITIVE.write(buffer, value.colors);
|
||||
Type.INT_ARRAY_PRIMITIVE.write(buffer, value.fadeColors);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.shape);
|
||||
Types.INT_ARRAY_PRIMITIVE.write(buffer, value.colors);
|
||||
Types.INT_ARRAY_PRIMITIVE.write(buffer, value.fadeColors);
|
||||
buffer.writeBoolean(value.hasTrail);
|
||||
buffer.writeBoolean(value.hasTwinkle);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public record Fireworks(int flightDuration, FireworkExplosion[] explosions) {
|
||||
@ -30,14 +31,14 @@ public record Fireworks(int flightDuration, FireworkExplosion[] explosions) {
|
||||
public static final Type<Fireworks> TYPE = new Type<>(Fireworks.class) {
|
||||
@Override
|
||||
public Fireworks read(final ByteBuf buffer) {
|
||||
final int flightDuration = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int flightDuration = Types.VAR_INT.readPrimitive(buffer);
|
||||
final FireworkExplosion[] explosions = FireworkExplosion.ARRAY_TYPE.read(buffer);
|
||||
return new Fireworks(flightDuration, explosions);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Fireworks value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.flightDuration);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.flightDuration);
|
||||
FireworkExplosion.ARRAY_TYPE.write(buffer, value.explosions);
|
||||
}
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public record FoodProperties(int nutrition, float saturationModifier, boolean canAlwaysEat, float eatSeconds,
|
||||
@ -31,7 +32,7 @@ public record FoodProperties(int nutrition, float saturationModifier, boolean ca
|
||||
public static final Type<FoodProperties> TYPE = new Type<>(FoodProperties.class) {
|
||||
@Override
|
||||
public FoodProperties read(final ByteBuf buffer) {
|
||||
final int nutrition = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int nutrition = Types.VAR_INT.readPrimitive(buffer);
|
||||
final float saturationModifier = buffer.readFloat();
|
||||
final boolean canAlwaysEat = buffer.readBoolean();
|
||||
final float eatSeconds = buffer.readFloat();
|
||||
@ -41,7 +42,7 @@ public record FoodProperties(int nutrition, float saturationModifier, boolean ca
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final FoodProperties value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.nutrition);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.nutrition);
|
||||
buffer.writeFloat(value.saturationModifier);
|
||||
buffer.writeBoolean(value.canAlwaysEat);
|
||||
buffer.writeFloat(value.eatSeconds);
|
||||
|
@ -24,7 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.Holder;
|
||||
import com.viaversion.viaversion.api.minecraft.SoundEvent;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -33,16 +33,16 @@ public record Instrument(Holder<SoundEvent> soundEvent, int useDuration, float r
|
||||
public static final HolderType<Instrument> TYPE = new HolderType<>() {
|
||||
@Override
|
||||
public Instrument readDirect(final ByteBuf buffer) {
|
||||
final Holder<SoundEvent> soundEvent = Type.SOUND_EVENT.read(buffer);
|
||||
final int useDuration = Type.VAR_INT.readPrimitive(buffer);
|
||||
final Holder<SoundEvent> soundEvent = Types.SOUND_EVENT.read(buffer);
|
||||
final int useDuration = Types.VAR_INT.readPrimitive(buffer);
|
||||
final float range = buffer.readFloat();
|
||||
return new Instrument(soundEvent, useDuration, range);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeDirect(final ByteBuf buffer, final Instrument value) {
|
||||
Type.SOUND_EVENT.write(buffer, value.soundEvent());
|
||||
Type.VAR_INT.writePrimitive(buffer, value.useDuration());
|
||||
Types.SOUND_EVENT.write(buffer, value.soundEvent());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.useDuration());
|
||||
buffer.writeFloat(value.range());
|
||||
}
|
||||
};
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.GlobalPosition;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -32,14 +33,14 @@ public record LodestoneTracker(@Nullable GlobalPosition position, boolean tracke
|
||||
public static final Type<LodestoneTracker> TYPE = new Type<>(LodestoneTracker.class) {
|
||||
@Override
|
||||
public LodestoneTracker read(final ByteBuf buffer) {
|
||||
final GlobalPosition position = Type.OPTIONAL_GLOBAL_POSITION.read(buffer);
|
||||
final GlobalPosition position = Types.OPTIONAL_GLOBAL_POSITION.read(buffer);
|
||||
final boolean tracked = buffer.readBoolean();
|
||||
return new LodestoneTracker(position, tracked);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final LodestoneTracker value) {
|
||||
Type.OPTIONAL_GLOBAL_POSITION.write(buffer, value.position);
|
||||
Types.OPTIONAL_GLOBAL_POSITION.write(buffer, value.position);
|
||||
buffer.writeBoolean(value.tracked);
|
||||
}
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public record MapDecoration(String type, double x, double z, float rotation) {
|
||||
@ -30,16 +31,16 @@ public record MapDecoration(String type, double x, double z, float rotation) {
|
||||
public static final Type<MapDecoration> TYPE = new Type<>(MapDecoration.class) {
|
||||
@Override
|
||||
public MapDecoration read(final ByteBuf buffer) {
|
||||
final String type = Type.STRING.read(buffer);
|
||||
final double x = Type.DOUBLE.readPrimitive(buffer);
|
||||
final double z = Type.DOUBLE.readPrimitive(buffer);
|
||||
final float rotation = Type.FLOAT.readPrimitive(buffer);
|
||||
final String type = Types.STRING.read(buffer);
|
||||
final double x = Types.DOUBLE.readPrimitive(buffer);
|
||||
final double z = Types.DOUBLE.readPrimitive(buffer);
|
||||
final float rotation = Types.FLOAT.readPrimitive(buffer);
|
||||
return new MapDecoration(type, x, z, rotation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final MapDecoration value) {
|
||||
Type.STRING.write(buffer, value.type);
|
||||
Types.STRING.write(buffer, value.type);
|
||||
buffer.writeDouble(value.x);
|
||||
buffer.writeDouble(value.z);
|
||||
buffer.writeFloat(value.rotation);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
|
||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||
@ -34,9 +35,9 @@ public record MapDecorations(Map<String, MapDecoration> decorations) {
|
||||
@Override
|
||||
public MapDecorations read(final ByteBuf buffer) {
|
||||
final Object2ObjectMap<String, MapDecoration> decorations = new Object2ObjectOpenHashMap<>();
|
||||
final int size = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int size = Types.VAR_INT.readPrimitive(buffer);
|
||||
for (int i = 0; i < size; i++) {
|
||||
final String id = Type.STRING.read(buffer);
|
||||
final String id = Types.STRING.read(buffer);
|
||||
final MapDecoration decoration = MapDecoration.TYPE.read(buffer);
|
||||
decorations.put(id, decoration);
|
||||
}
|
||||
@ -45,9 +46,9 @@ public record MapDecorations(Map<String, MapDecoration> decorations) {
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final MapDecorations value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.decorations.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.decorations.size());
|
||||
for (final Map.Entry<String, MapDecoration> entry : value.decorations.entrySet()) {
|
||||
Type.STRING.write(buffer, entry.getKey());
|
||||
Types.STRING.write(buffer, entry.getKey());
|
||||
MapDecoration.TYPE.write(buffer, entry.getValue());
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.UUID;
|
||||
|
||||
@ -31,19 +32,19 @@ public record ModifierData(UUID uuid, String name, double amount, int operation)
|
||||
public static final Type<ModifierData> TYPE = new Type<>(ModifierData.class) {
|
||||
@Override
|
||||
public ModifierData read(final ByteBuf buffer) {
|
||||
final UUID uuid = Type.UUID.read(buffer);
|
||||
final String name = Type.STRING.read(buffer);
|
||||
final UUID uuid = Types.UUID.read(buffer);
|
||||
final String name = Types.STRING.read(buffer);
|
||||
final double amount = buffer.readDouble();
|
||||
final int operation = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int operation = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new ModifierData(uuid, name, amount, operation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final ModifierData value) {
|
||||
Type.UUID.write(buffer, value.uuid);
|
||||
Type.STRING.write(buffer, value.name);
|
||||
Types.UUID.write(buffer, value.uuid);
|
||||
Types.STRING.write(buffer, value.name);
|
||||
buffer.writeDouble(value.amount);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.operation);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.operation);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public final class PotDecorations {
|
||||
@ -30,12 +31,12 @@ public final class PotDecorations {
|
||||
public static final Type<PotDecorations> TYPE = new Type<>(PotDecorations.class) {
|
||||
@Override
|
||||
public PotDecorations read(final ByteBuf buffer) {
|
||||
return new PotDecorations(Type.VAR_INT_ARRAY_PRIMITIVE.read(buffer));
|
||||
return new PotDecorations(Types.VAR_INT_ARRAY_PRIMITIVE.read(buffer));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final PotDecorations value) {
|
||||
Type.VAR_INT_ARRAY_PRIMITIVE.write(buffer, value.itemIds());
|
||||
Types.VAR_INT_ARRAY_PRIMITIVE.write(buffer, value.itemIds());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -31,7 +32,7 @@ public record PotionContents(@Nullable Integer potion, @Nullable Integer customC
|
||||
public static final Type<PotionContents> TYPE = new Type<>(PotionContents.class) {
|
||||
@Override
|
||||
public PotionContents read(final ByteBuf buffer) {
|
||||
final Integer potion = buffer.readBoolean() ? Type.VAR_INT.readPrimitive(buffer) : null;
|
||||
final Integer potion = buffer.readBoolean() ? Types.VAR_INT.readPrimitive(buffer) : null;
|
||||
final Integer customColor = buffer.readBoolean() ? buffer.readInt() : null;
|
||||
final PotionEffect[] customEffects = PotionEffect.ARRAY_TYPE.read(buffer);
|
||||
return new PotionContents(potion, customColor, customEffects);
|
||||
@ -41,7 +42,7 @@ public record PotionContents(@Nullable Integer potion, @Nullable Integer customC
|
||||
public void write(final ByteBuf buffer, final PotionContents value) {
|
||||
buffer.writeBoolean(value.potion != null);
|
||||
if (value.potion != null) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.potion);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.potion);
|
||||
}
|
||||
|
||||
buffer.writeBoolean(value.customColor != null);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -31,14 +32,14 @@ public record PotionEffect(int effect, PotionEffectData effectData) {
|
||||
public static final Type<PotionEffect> TYPE = new Type<>(PotionEffect.class) {
|
||||
@Override
|
||||
public PotionEffect read(final ByteBuf buffer) {
|
||||
final int effect = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int effect = Types.VAR_INT.readPrimitive(buffer);
|
||||
final PotionEffectData effectData = PotionEffectData.TYPE.read(buffer);
|
||||
return new PotionEffect(effect, effectData);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final PotionEffect value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.effect);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.effect);
|
||||
PotionEffectData.TYPE.write(buffer, value.effectData);
|
||||
}
|
||||
};
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -33,8 +34,8 @@ public record PotionEffectData(int amplifier, int duration, boolean ambient, boo
|
||||
public static final Type<PotionEffectData> TYPE = new Type<>(PotionEffectData.class) {
|
||||
@Override
|
||||
public PotionEffectData read(final ByteBuf buffer) {
|
||||
final int amplifier = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int duration = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int amplifier = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int duration = Types.VAR_INT.readPrimitive(buffer);
|
||||
final boolean ambient = buffer.readBoolean();
|
||||
final boolean showParticles = buffer.readBoolean();
|
||||
final boolean showIcon = buffer.readBoolean();
|
||||
@ -44,8 +45,8 @@ public record PotionEffectData(int amplifier, int duration, boolean ambient, boo
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final PotionEffectData value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.amplifier);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.duration);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.amplifier);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.duration);
|
||||
buffer.writeBoolean(value.ambient);
|
||||
buffer.writeBoolean(value.showParticles);
|
||||
buffer.writeBoolean(value.showIcon);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import com.viaversion.viaversion.util.Either;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -34,27 +35,27 @@ public record StatePropertyMatcher(String name, Either<String, RangedMatcher> ma
|
||||
public static final Type<StatePropertyMatcher> TYPE = new Type<>(StatePropertyMatcher.class) {
|
||||
@Override
|
||||
public StatePropertyMatcher read(final ByteBuf buffer) {
|
||||
final String name = Type.STRING.read(buffer);
|
||||
final String name = Types.STRING.read(buffer);
|
||||
if (buffer.readBoolean()) {
|
||||
final String value = Type.STRING.read(buffer);
|
||||
final String value = Types.STRING.read(buffer);
|
||||
return new StatePropertyMatcher(name, Either.left(value));
|
||||
} else {
|
||||
final String minValue = Type.OPTIONAL_STRING.read(buffer);
|
||||
final String maxValue = Type.OPTIONAL_STRING.read(buffer);
|
||||
final String minValue = Types.OPTIONAL_STRING.read(buffer);
|
||||
final String maxValue = Types.OPTIONAL_STRING.read(buffer);
|
||||
return new StatePropertyMatcher(name, Either.right(new RangedMatcher(minValue, maxValue)));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final StatePropertyMatcher value) {
|
||||
Type.STRING.write(buffer, value.name);
|
||||
Types.STRING.write(buffer, value.name);
|
||||
if (value.matcher.isLeft()) {
|
||||
buffer.writeBoolean(true);
|
||||
Type.STRING.write(buffer, value.matcher.left());
|
||||
Types.STRING.write(buffer, value.matcher.left());
|
||||
} else {
|
||||
buffer.writeBoolean(false);
|
||||
Type.OPTIONAL_STRING.write(buffer, value.matcher.right().minValue());
|
||||
Type.OPTIONAL_STRING.write(buffer, value.matcher.right().maxValue());
|
||||
Types.OPTIONAL_STRING.write(buffer, value.matcher.right().minValue());
|
||||
Types.OPTIONAL_STRING.write(buffer, value.matcher.right().maxValue());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -31,15 +32,15 @@ public record SuspiciousStewEffect(int mobEffect, int duration) {
|
||||
public static final Type<SuspiciousStewEffect> TYPE = new Type<>(SuspiciousStewEffect.class) {
|
||||
@Override
|
||||
public SuspiciousStewEffect read(final ByteBuf buffer) {
|
||||
final int effect = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int duration = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int effect = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int duration = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new SuspiciousStewEffect(effect, duration);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final SuspiciousStewEffect value) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.mobEffect);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.duration);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.mobEffect);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.duration);
|
||||
}
|
||||
};
|
||||
public static final Type<SuspiciousStewEffect[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public record ToolProperties(ToolRule[] rules, float defaultMiningSpeed, int damagePerBlock) {
|
||||
@ -32,7 +33,7 @@ public record ToolProperties(ToolRule[] rules, float defaultMiningSpeed, int dam
|
||||
public ToolProperties read(final ByteBuf buffer) {
|
||||
final ToolRule[] rules = ToolRule.ARRAY_TYPE.read(buffer);
|
||||
final float defaultMiningSpeed = buffer.readFloat();
|
||||
final int damagePerBlock = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int damagePerBlock = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new ToolProperties(rules, defaultMiningSpeed, damagePerBlock);
|
||||
}
|
||||
|
||||
@ -40,7 +41,7 @@ public record ToolProperties(ToolRule[] rules, float defaultMiningSpeed, int dam
|
||||
public void write(final ByteBuf buffer, final ToolProperties value) {
|
||||
ToolRule.ARRAY_TYPE.write(buffer, value.rules());
|
||||
buffer.writeFloat(value.defaultMiningSpeed());
|
||||
Type.VAR_INT.writePrimitive(buffer, value.damagePerBlock());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.damagePerBlock());
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
@ -33,17 +34,17 @@ public record ToolRule(HolderSet blocks, @Nullable Float speed, @Nullable Boolea
|
||||
public static final Type<ToolRule> TYPE = new Type<>(ToolRule.class) {
|
||||
@Override
|
||||
public ToolRule read(final ByteBuf buffer) {
|
||||
final HolderSet blocks = Type.HOLDER_SET.read(buffer);
|
||||
final Float speed = Type.OPTIONAL_FLOAT.read(buffer);
|
||||
final Boolean correctForDrops = Type.OPTIONAL_BOOLEAN.read(buffer);
|
||||
final HolderSet blocks = Types.HOLDER_SET.read(buffer);
|
||||
final Float speed = Types.OPTIONAL_FLOAT.read(buffer);
|
||||
final Boolean correctForDrops = Types.OPTIONAL_BOOLEAN.read(buffer);
|
||||
return new ToolRule(blocks, speed, correctForDrops);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final ToolRule value) {
|
||||
Type.HOLDER_SET.write(buffer, value.blocks);
|
||||
Type.OPTIONAL_FLOAT.write(buffer, value.speed);
|
||||
Type.OPTIONAL_BOOLEAN.write(buffer, value.correctForDrops);
|
||||
Types.HOLDER_SET.write(buffer, value.blocks);
|
||||
Types.OPTIONAL_FLOAT.write(buffer, value.speed);
|
||||
Types.OPTIONAL_BOOLEAN.write(buffer, value.correctForDrops);
|
||||
}
|
||||
};
|
||||
public static final Type<ToolRule[]> ARRAY_TYPE = new ArrayType<>(TYPE);
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.minecraft.item.data;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public record WrittenBook(FilterableString title, String author, int generation, FilterableComponent[] pages,
|
||||
@ -32,8 +33,8 @@ public record WrittenBook(FilterableString title, String author, int generation,
|
||||
@Override
|
||||
public WrittenBook read(final ByteBuf buffer) {
|
||||
final FilterableString title = FilterableString.TYPE.read(buffer);
|
||||
final String author = Type.STRING.read(buffer);
|
||||
final int generation = Type.VAR_INT.readPrimitive(buffer);
|
||||
final String author = Types.STRING.read(buffer);
|
||||
final int generation = Types.VAR_INT.readPrimitive(buffer);
|
||||
final FilterableComponent[] pages = FilterableComponent.ARRAY_TYPE.read(buffer);
|
||||
final boolean resolved = buffer.readBoolean();
|
||||
return new WrittenBook(title, author, generation, pages, resolved);
|
||||
@ -42,8 +43,8 @@ public record WrittenBook(FilterableString title, String author, int generation,
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final WrittenBook value) {
|
||||
FilterableString.TYPE.write(buffer, value.title);
|
||||
Type.STRING.write(buffer, value.author);
|
||||
Type.VAR_INT.writePrimitive(buffer, value.generation);
|
||||
Types.STRING.write(buffer, value.author);
|
||||
Types.VAR_INT.writePrimitive(buffer, value.generation);
|
||||
FilterableComponent.ARRAY_TYPE.write(buffer, value.pages);
|
||||
buffer.writeBoolean(value.resolved);
|
||||
}
|
||||
|
@ -24,28 +24,27 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
|
||||
public enum MetaType1_12 implements MetaType {
|
||||
Byte(0, Type.BYTE),
|
||||
VarInt(1, Type.VAR_INT),
|
||||
Float(2, Type.FLOAT),
|
||||
String(3, Type.STRING),
|
||||
Chat(4, Type.COMPONENT),
|
||||
Slot(5, Type.ITEM1_8),
|
||||
Boolean(6, Type.BOOLEAN),
|
||||
Vector3F(7, Type.ROTATION),
|
||||
Position(8, Type.POSITION1_8),
|
||||
OptPosition(9, Type.OPTIONAL_POSITION1_8),
|
||||
Direction(10, Type.VAR_INT),
|
||||
OptUUID(11, Type.OPTIONAL_UUID),
|
||||
BlockID(12, Type.VAR_INT),
|
||||
NBTTag(13, Type.NAMED_COMPOUND_TAG);
|
||||
BYTE(Types.BYTE),
|
||||
VAR_INT(Types.VAR_INT),
|
||||
FLOAT(Types.FLOAT),
|
||||
STRING(Types.STRING),
|
||||
COMPONENT(Types.COMPONENT),
|
||||
ITEM(Types.ITEM1_8),
|
||||
BOOLEAN(Types.BOOLEAN),
|
||||
ROTATIONS(Types.ROTATIONS),
|
||||
BLOCK_POSITION(Types.BLOCK_POSITION1_8),
|
||||
OPTIONAL_BLOCK_POSITION(Types.OPTIONAL_POSITION1_8),
|
||||
DIRECTION(Types.VAR_INT),
|
||||
OPTIONAL_UUID(Types.OPTIONAL_UUID),
|
||||
OPTIONAL_BLOCK_STATE(Types.VAR_INT),
|
||||
COMPOUND_TAG(Types.NAMED_COMPOUND_TAG);
|
||||
|
||||
private final int typeID;
|
||||
private final Type type;
|
||||
private final Type<?> type;
|
||||
|
||||
MetaType1_12(int typeID, Type type) {
|
||||
this.typeID = typeID;
|
||||
MetaType1_12(Type<?> type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@ -55,7 +54,7 @@ public enum MetaType1_12 implements MetaType {
|
||||
|
||||
@Override
|
||||
public int typeId() {
|
||||
return typeID;
|
||||
return ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,22 +24,21 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
|
||||
public enum MetaType1_8 implements MetaType {
|
||||
Byte(0, Type.BYTE),
|
||||
Short(1, Type.SHORT),
|
||||
Int(2, Type.INT),
|
||||
Float(3, Type.FLOAT),
|
||||
String(4, Type.STRING),
|
||||
Slot(5, Type.ITEM1_8),
|
||||
Position(6, Type.VECTOR),
|
||||
Rotation(7, Type.ROTATION);
|
||||
BYTE(Types.BYTE),
|
||||
SHORT(Types.SHORT),
|
||||
INT(Types.INT),
|
||||
FLOAT(Types.FLOAT),
|
||||
STRING(Types.STRING),
|
||||
ITEM(Types.ITEM1_8),
|
||||
BLOCK_POSITION(Types.VECTOR),
|
||||
ROTATIONS(Types.ROTATIONS);
|
||||
|
||||
private final int typeID;
|
||||
private final Type type;
|
||||
private final Type<?> type;
|
||||
|
||||
MetaType1_8(int typeID, Type type) {
|
||||
this.typeID = typeID;
|
||||
MetaType1_8(Type<?> type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@ -49,7 +48,7 @@ public enum MetaType1_8 implements MetaType {
|
||||
|
||||
@Override
|
||||
public int typeId() {
|
||||
return typeID;
|
||||
return ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,27 +24,26 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
|
||||
public enum MetaType1_9 implements MetaType {
|
||||
Byte(0, Type.BYTE),
|
||||
VarInt(1, Type.VAR_INT),
|
||||
Float(2, Type.FLOAT),
|
||||
String(3, Type.STRING),
|
||||
Chat(4, Type.COMPONENT),
|
||||
Slot(5, Type.ITEM1_8),
|
||||
Boolean(6, Type.BOOLEAN),
|
||||
Vector3F(7, Type.ROTATION),
|
||||
Position(8, Type.POSITION1_8),
|
||||
OptPosition(9, Type.OPTIONAL_POSITION1_8),
|
||||
Direction(10, Type.VAR_INT),
|
||||
OptUUID(11, Type.OPTIONAL_UUID),
|
||||
BlockID(12, Type.VAR_INT);
|
||||
BYTE(Types.BYTE),
|
||||
VAR_INT(Types.VAR_INT),
|
||||
FLOAT(Types.FLOAT),
|
||||
STRING(Types.STRING),
|
||||
COMPONENT(Types.COMPONENT),
|
||||
ITEM(Types.ITEM1_8),
|
||||
BOOLEAN(Types.BOOLEAN),
|
||||
ROTATIONS(Types.ROTATIONS),
|
||||
BLOCK_POSITION(Types.BLOCK_POSITION1_8),
|
||||
OPTIONAL_BLOCK_POSITION(Types.OPTIONAL_POSITION1_8),
|
||||
DIRECTION(Types.VAR_INT),
|
||||
OPTIONAL_UUID(Types.OPTIONAL_UUID),
|
||||
OPTIONAL_BLOCK_STATE(Types.VAR_INT);
|
||||
|
||||
private final int typeID;
|
||||
private final Type type;
|
||||
private final Type<?> type;
|
||||
|
||||
MetaType1_9(int typeID, Type type) {
|
||||
this.typeID = typeID;
|
||||
MetaType1_9(Type<?> type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@ -54,7 +53,7 @@ public enum MetaType1_9 implements MetaType {
|
||||
|
||||
@Override
|
||||
public int typeId() {
|
||||
return typeID;
|
||||
return ordinal();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -24,25 +24,26 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_13 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType floatType = add(2, Type.FLOAT);
|
||||
public final MetaType stringType = add(3, Type.STRING);
|
||||
public final MetaType componentType = add(4, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Type.ITEM1_13);
|
||||
public final MetaType booleanType = add(7, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(8, Type.ROTATION);
|
||||
public final MetaType positionType = add(9, Type.POSITION1_8);
|
||||
public final MetaType optionalPositionType = add(10, Type.OPTIONAL_POSITION1_8);
|
||||
public final MetaType directionType = add(11, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(13, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(14, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType floatType = add(2, Types.FLOAT);
|
||||
public final MetaType stringType = add(3, Types.STRING);
|
||||
public final MetaType componentType = add(4, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Types.ITEM1_13);
|
||||
public final MetaType booleanType = add(7, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(8, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(9, Types.BLOCK_POSITION1_8);
|
||||
public final MetaType optionalBlockPositionType = add(10, Types.OPTIONAL_POSITION1_8);
|
||||
public final MetaType directionType = add(11, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Types.OPTIONAL_UUID);
|
||||
public final MetaType optionalBlockStateType = add(13, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(14, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
|
||||
public MetaTypes1_13(final ParticleType particleType) {
|
||||
|
@ -24,25 +24,26 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_13_2 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType floatType = add(2, Type.FLOAT);
|
||||
public final MetaType stringType = add(3, Type.STRING);
|
||||
public final MetaType componentType = add(4, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Type.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(8, Type.ROTATION);
|
||||
public final MetaType positionType = add(9, Type.POSITION1_8);
|
||||
public final MetaType optionalPositionType = add(10, Type.OPTIONAL_POSITION1_8);
|
||||
public final MetaType directionType = add(11, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(13, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(14, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType floatType = add(2, Types.FLOAT);
|
||||
public final MetaType stringType = add(3, Types.STRING);
|
||||
public final MetaType componentType = add(4, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Types.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(8, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(9, Types.BLOCK_POSITION1_8);
|
||||
public final MetaType optionalBlockPositionType = add(10, Types.OPTIONAL_POSITION1_8);
|
||||
public final MetaType directionType = add(11, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Types.OPTIONAL_UUID);
|
||||
public final MetaType optionalBlockStateType = add(13, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(14, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
|
||||
public MetaTypes1_13_2(final ParticleType particleType) {
|
||||
|
@ -24,29 +24,30 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_14 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType floatType = add(2, Type.FLOAT);
|
||||
public final MetaType stringType = add(3, Type.STRING);
|
||||
public final MetaType componentType = add(4, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Type.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(8, Type.ROTATION);
|
||||
public final MetaType positionType = add(9, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(10, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(11, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(13, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(14, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType floatType = add(2, Types.FLOAT);
|
||||
public final MetaType stringType = add(3, Types.STRING);
|
||||
public final MetaType componentType = add(4, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Types.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(8, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(9, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(10, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(11, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Types.OPTIONAL_UUID);
|
||||
public final MetaType optionalBlockStateType = add(13, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(14, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(16, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(17, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(18, Type.VAR_INT);
|
||||
public final MetaType villagerDatatType = add(16, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(17, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(18, Types.VAR_INT);
|
||||
|
||||
public MetaTypes1_14(final ParticleType particleType) {
|
||||
super(19);
|
||||
|
@ -24,33 +24,34 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_19 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType floatType = add(2, Type.FLOAT);
|
||||
public final MetaType stringType = add(3, Type.STRING);
|
||||
public final MetaType componentType = add(4, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Type.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(8, Type.ROTATION);
|
||||
public final MetaType positionType = add(9, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(10, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(11, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(13, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(14, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType floatType = add(2, Types.FLOAT);
|
||||
public final MetaType stringType = add(3, Types.STRING);
|
||||
public final MetaType componentType = add(4, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(5, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(6, Types.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(7, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(8, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(9, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(10, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(11, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(12, Types.OPTIONAL_UUID);
|
||||
public final MetaType optionalBlockStateType = add(13, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(14, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(16, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(17, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(18, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(19, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(20, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(21, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(22, Type.VAR_INT);
|
||||
public final MetaType villagerDatatType = add(16, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(17, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(18, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(19, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(20, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(21, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(22, Types.VAR_INT);
|
||||
|
||||
public MetaTypes1_19(final ParticleType particleType) {
|
||||
super(23);
|
||||
|
@ -24,34 +24,35 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_19_3 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType longType = add(2, Type.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Type.FLOAT);
|
||||
public final MetaType stringType = add(4, Type.STRING);
|
||||
public final MetaType componentType = add(5, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Type.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(8, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(9, Type.ROTATION);
|
||||
public final MetaType positionType = add(10, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(11, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(15, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType longType = add(2, Types.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Types.FLOAT);
|
||||
public final MetaType stringType = add(4, Types.STRING);
|
||||
public final MetaType componentType = add(5, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Types.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(8, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(9, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(10, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(11, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Types.OPTIONAL_UUID);
|
||||
public final MetaType optionalBlockStateType = add(14, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(15, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(17, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(18, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(19, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(20, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(21, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(22, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(23, Type.VAR_INT);
|
||||
public final MetaType villagerDatatType = add(17, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(18, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(19, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(20, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(21, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(22, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(23, Types.VAR_INT);
|
||||
|
||||
public MetaTypes1_19_3(final ParticleType particleType) {
|
||||
super(24);
|
||||
|
@ -24,38 +24,39 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_19_4 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType longType = add(2, Type.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Type.FLOAT);
|
||||
public final MetaType stringType = add(4, Type.STRING);
|
||||
public final MetaType componentType = add(5, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Type.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(8, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(9, Type.ROTATION);
|
||||
public final MetaType positionType = add(10, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(11, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Type.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(16, Type.NAMED_COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType longType = add(2, Types.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Types.FLOAT);
|
||||
public final MetaType stringType = add(4, Types.STRING);
|
||||
public final MetaType componentType = add(5, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Types.ITEM1_13_2);
|
||||
public final MetaType booleanType = add(8, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(9, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(10, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(11, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Types.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Types.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(16, Types.NAMED_COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(18, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Type.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Type.VAR_INT);
|
||||
public final MetaType vectorType = add(26, Type.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Type.QUATERNION);
|
||||
public final MetaType villagerDatatType = add(18, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Types.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Types.VAR_INT);
|
||||
public final MetaType vector3FType = add(26, Types.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Types.QUATERNION);
|
||||
|
||||
public MetaTypes1_19_4(final ParticleType particleType) {
|
||||
super(28);
|
||||
|
@ -24,38 +24,39 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_20_2 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType longType = add(2, Type.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Type.FLOAT);
|
||||
public final MetaType stringType = add(4, Type.STRING);
|
||||
public final MetaType componentType = add(5, Type.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Type.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Type.ITEM1_20_2);
|
||||
public final MetaType booleanType = add(8, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(9, Type.ROTATION);
|
||||
public final MetaType positionType = add(10, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(11, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Type.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(16, Type.COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType longType = add(2, Types.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Types.FLOAT);
|
||||
public final MetaType stringType = add(4, Types.STRING);
|
||||
public final MetaType componentType = add(5, Types.COMPONENT);
|
||||
public final MetaType optionalComponentType = add(6, Types.OPTIONAL_COMPONENT);
|
||||
public final MetaType itemType = add(7, Types.ITEM1_20_2);
|
||||
public final MetaType booleanType = add(8, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(9, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(10, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(11, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Types.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Types.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(16, Types.COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(18, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Type.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Type.VAR_INT);
|
||||
public final MetaType vectorType = add(26, Type.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Type.QUATERNION);
|
||||
public final MetaType villagerDatatType = add(18, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Types.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Types.VAR_INT);
|
||||
public final MetaType vector3FType = add(26, Types.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Types.QUATERNION);
|
||||
|
||||
public MetaTypes1_20_2(final ParticleType particleType) {
|
||||
super(28);
|
||||
|
@ -24,38 +24,39 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
|
||||
public final class MetaTypes1_20_3 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType longType = add(2, Type.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Type.FLOAT);
|
||||
public final MetaType stringType = add(4, Type.STRING);
|
||||
public final MetaType componentType = add(5, Type.TAG);
|
||||
public final MetaType optionalComponentType = add(6, Type.OPTIONAL_TAG);
|
||||
public final MetaType itemType = add(7, Type.ITEM1_20_2);
|
||||
public final MetaType booleanType = add(8, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(9, Type.ROTATION);
|
||||
public final MetaType positionType = add(10, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(11, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Type.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(16, Type.COMPOUND_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType longType = add(2, Types.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Types.FLOAT);
|
||||
public final MetaType stringType = add(4, Types.STRING);
|
||||
public final MetaType componentType = add(5, Types.TAG);
|
||||
public final MetaType optionalComponentType = add(6, Types.OPTIONAL_TAG);
|
||||
public final MetaType itemType = add(7, Types.ITEM1_20_2);
|
||||
public final MetaType booleanType = add(8, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(9, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(10, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(11, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Types.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Types.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(16, Types.COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType villagerDatatType = add(18, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Type.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Type.VAR_INT);
|
||||
public final MetaType vectorType = add(26, Type.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Type.QUATERNION);
|
||||
public final MetaType villagerDatatType = add(18, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(19, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(20, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(21, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(22, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(23, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(24, Types.VAR_INT);
|
||||
public final MetaType snifferState = add(25, Types.VAR_INT);
|
||||
public final MetaType vector3FType = add(26, Types.VECTOR3F);
|
||||
public final MetaType quaternionType = add(27, Types.QUATERNION);
|
||||
|
||||
public MetaTypes1_20_3(final ParticleType particleType) {
|
||||
super(28);
|
||||
|
@ -25,43 +25,44 @@ package com.viaversion.viaversion.api.minecraft.metadata.types;
|
||||
import com.viaversion.viaversion.api.minecraft.Particle;
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ParticleType;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
|
||||
|
||||
public final class MetaTypes1_20_5 extends AbstractMetaTypes {
|
||||
|
||||
public final MetaType byteType = add(0, Type.BYTE);
|
||||
public final MetaType varIntType = add(1, Type.VAR_INT);
|
||||
public final MetaType longType = add(2, Type.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Type.FLOAT);
|
||||
public final MetaType stringType = add(4, Type.STRING);
|
||||
public final MetaType componentType = add(5, Type.TAG);
|
||||
public final MetaType optionalComponentType = add(6, Type.OPTIONAL_TAG);
|
||||
public final MetaType byteType = add(0, Types.BYTE);
|
||||
public final MetaType varIntType = add(1, Types.VAR_INT);
|
||||
public final MetaType longType = add(2, Types.VAR_LONG);
|
||||
public final MetaType floatType = add(3, Types.FLOAT);
|
||||
public final MetaType stringType = add(4, Types.STRING);
|
||||
public final MetaType componentType = add(5, Types.TAG);
|
||||
public final MetaType optionalComponentType = add(6, Types.OPTIONAL_TAG);
|
||||
public final MetaType itemType = add(7, Types1_20_5.ITEM);
|
||||
public final MetaType booleanType = add(8, Type.BOOLEAN);
|
||||
public final MetaType rotationType = add(9, Type.ROTATION);
|
||||
public final MetaType positionType = add(10, Type.POSITION1_14);
|
||||
public final MetaType optionalPositionType = add(11, Type.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Type.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Type.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Type.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Type.VAR_INT);
|
||||
public final MetaType nbtType = add(16, Type.COMPOUND_TAG);
|
||||
public final MetaType booleanType = add(8, Types.BOOLEAN);
|
||||
public final MetaType rotationsType = add(9, Types.ROTATIONS);
|
||||
public final MetaType blockPositionType = add(10, Types.BLOCK_POSITION1_14);
|
||||
public final MetaType optionalBlockPositionType = add(11, Types.OPTIONAL_POSITION_1_14);
|
||||
public final MetaType directionType = add(12, Types.VAR_INT);
|
||||
public final MetaType optionalUUIDType = add(13, Types.OPTIONAL_UUID);
|
||||
public final MetaType blockStateType = add(14, Types.VAR_INT);
|
||||
public final MetaType optionalBlockStateType = add(15, Types.VAR_INT);
|
||||
public final MetaType compoundTagType = add(16, Types.COMPOUND_TAG);
|
||||
public final MetaType particleType;
|
||||
public final MetaType particlesType;
|
||||
public final MetaType villagerDatatType = add(19, Type.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(20, Type.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(21, Type.VAR_INT);
|
||||
public final MetaType catVariantType = add(22, Type.VAR_INT);
|
||||
public final MetaType wolfVariantType = add(23, Type.VAR_INT);
|
||||
public final MetaType frogVariantType = add(24, Type.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(25, Type.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(26, Type.VAR_INT);
|
||||
public final MetaType snifferState = add(27, Type.VAR_INT);
|
||||
public final MetaType armadilloState = add(28, Type.VAR_INT);
|
||||
public final MetaType vectorType = add(29, Type.VECTOR3F);
|
||||
public final MetaType quaternionType = add(30, Type.QUATERNION);
|
||||
public final MetaType villagerDatatType = add(19, Types.VILLAGER_DATA);
|
||||
public final MetaType optionalVarIntType = add(20, Types.OPTIONAL_VAR_INT);
|
||||
public final MetaType poseType = add(21, Types.VAR_INT);
|
||||
public final MetaType catVariantType = add(22, Types.VAR_INT);
|
||||
public final MetaType wolfVariantType = add(23, Types.VAR_INT);
|
||||
public final MetaType frogVariantType = add(24, Types.VAR_INT);
|
||||
public final MetaType optionalGlobalPosition = add(25, Types.OPTIONAL_GLOBAL_POSITION);
|
||||
public final MetaType paintingVariantType = add(26, Types.VAR_INT);
|
||||
public final MetaType snifferState = add(27, Types.VAR_INT);
|
||||
public final MetaType armadilloState = add(28, Types.VAR_INT);
|
||||
public final MetaType vector3FType = add(29, Types.VECTOR3F);
|
||||
public final MetaType quaternionType = add(30, Types.QUATERNION);
|
||||
|
||||
public MetaTypes1_20_5(final ParticleType particleType, final ArrayType<Particle> particlesType) {
|
||||
super(31);
|
||||
|
@ -22,196 +22,14 @@
|
||||
*/
|
||||
package com.viaversion.viaversion.api.type;
|
||||
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.nbt.tag.Tag;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
|
||||
import com.viaversion.viaversion.api.minecraft.EulerAngle;
|
||||
import com.viaversion.viaversion.api.minecraft.GameProfile;
|
||||
import com.viaversion.viaversion.api.minecraft.GlobalPosition;
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.minecraft.PlayerMessageSignature;
|
||||
import com.viaversion.viaversion.api.minecraft.Position;
|
||||
import com.viaversion.viaversion.api.minecraft.ProfileKey;
|
||||
import com.viaversion.viaversion.api.minecraft.Quaternion;
|
||||
import com.viaversion.viaversion.api.minecraft.RegistryEntry;
|
||||
import com.viaversion.viaversion.api.minecraft.SoundEvent;
|
||||
import com.viaversion.viaversion.api.minecraft.Vector;
|
||||
import com.viaversion.viaversion.api.minecraft.Vector3f;
|
||||
import com.viaversion.viaversion.api.minecraft.VillagerData;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntity;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.ChunkPosition;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.BitSetType;
|
||||
import com.viaversion.viaversion.api.type.types.BooleanType;
|
||||
import com.viaversion.viaversion.api.type.types.ByteArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.ByteType;
|
||||
import com.viaversion.viaversion.api.type.types.ComponentType;
|
||||
import com.viaversion.viaversion.api.type.types.DoubleType;
|
||||
import com.viaversion.viaversion.api.type.types.EmptyType;
|
||||
import com.viaversion.viaversion.api.type.types.FloatType;
|
||||
import com.viaversion.viaversion.api.type.types.IntArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.IntType;
|
||||
import com.viaversion.viaversion.api.type.types.LongArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.LongType;
|
||||
import com.viaversion.viaversion.api.type.types.OptionalVarIntType;
|
||||
import com.viaversion.viaversion.api.type.types.RegistryEntryType;
|
||||
import com.viaversion.viaversion.api.type.types.RemainingBytesType;
|
||||
import com.viaversion.viaversion.api.type.types.ShortByteArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.ShortType;
|
||||
import com.viaversion.viaversion.api.type.types.StringType;
|
||||
import com.viaversion.viaversion.api.type.types.UUIDType;
|
||||
import com.viaversion.viaversion.api.type.types.UnsignedByteType;
|
||||
import com.viaversion.viaversion.api.type.types.UnsignedShortType;
|
||||
import com.viaversion.viaversion.api.type.types.VarIntArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.VarIntType;
|
||||
import com.viaversion.viaversion.api.type.types.VarLongType;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockChangeRecordType;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockEntityType1_18;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockEntityType1_20_2;
|
||||
import com.viaversion.viaversion.api.type.types.block.VarLongBlockChangeRecordType;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_13;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_13_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_13;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_13_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_20_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.math.ChunkPositionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.EulerAngleType;
|
||||
import com.viaversion.viaversion.api.type.types.math.GlobalPositionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.PositionType1_14;
|
||||
import com.viaversion.viaversion.api.type.types.math.PositionType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.math.QuaternionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.Vector3fType;
|
||||
import com.viaversion.viaversion.api.type.types.math.VectorType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.CompoundTagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.GameProfileType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderSetType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.NamedCompoundTagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.PlayerMessageSignatureType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ProfileKeyType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.SoundEventType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.TagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.VillagerDataType;
|
||||
import com.viaversion.viaversion.util.Unit;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Type for buffer reading and writing.
|
||||
*
|
||||
* @param <T> read/written type
|
||||
* @see Types
|
||||
*/
|
||||
public abstract class Type<T> implements ByteBufReader<T>, ByteBufWriter<T> {
|
||||
|
||||
public static final Type<Unit> EMPTY = new EmptyType();
|
||||
|
||||
public static final ByteType BYTE = new ByteType();
|
||||
public static final UnsignedByteType UNSIGNED_BYTE = new UnsignedByteType();
|
||||
public static final Type<byte[]> BYTE_ARRAY_PRIMITIVE = new ByteArrayType();
|
||||
public static final Type<byte[]> OPTIONAL_BYTE_ARRAY_PRIMITIVE = new ByteArrayType.OptionalByteArrayType();
|
||||
public static final Type<byte[]> SHORT_BYTE_ARRAY = new ShortByteArrayType();
|
||||
public static final Type<byte[]> REMAINING_BYTES = new RemainingBytesType();
|
||||
public static final Type<int[]> INT_ARRAY_PRIMITIVE = new IntArrayType();
|
||||
|
||||
public static final ShortType SHORT = new ShortType();
|
||||
public static final UnsignedShortType UNSIGNED_SHORT = new UnsignedShortType();
|
||||
|
||||
public static final IntType INT = new IntType();
|
||||
public static final FloatType FLOAT = new FloatType();
|
||||
public static final FloatType.OptionalFloatType OPTIONAL_FLOAT = new FloatType.OptionalFloatType();
|
||||
public static final DoubleType DOUBLE = new DoubleType();
|
||||
|
||||
public static final LongType LONG = new LongType();
|
||||
public static final Type<long[]> LONG_ARRAY_PRIMITIVE = new LongArrayType();
|
||||
|
||||
public static final BooleanType BOOLEAN = new BooleanType();
|
||||
public static final BooleanType.OptionalBooleanType OPTIONAL_BOOLEAN = new BooleanType.OptionalBooleanType();
|
||||
|
||||
/* Other Types */
|
||||
public static final Type<JsonElement> COMPONENT = new ComponentType();
|
||||
public static final Type<JsonElement> OPTIONAL_COMPONENT = new ComponentType.OptionalComponentType();
|
||||
|
||||
public static final Type<String> STRING = new StringType();
|
||||
public static final Type<String> OPTIONAL_STRING = new StringType.OptionalStringType();
|
||||
public static final Type<String[]> STRING_ARRAY = new ArrayType<>(Type.STRING);
|
||||
|
||||
public static final Type<UUID> UUID = new UUIDType();
|
||||
public static final Type<UUID> OPTIONAL_UUID = new UUIDType.OptionalUUIDType();
|
||||
public static final Type<UUID[]> UUID_ARRAY = new ArrayType<>(Type.UUID);
|
||||
|
||||
public static final VarIntType VAR_INT = new VarIntType();
|
||||
public static final OptionalVarIntType OPTIONAL_VAR_INT = new OptionalVarIntType();
|
||||
public static final Type<int[]> VAR_INT_ARRAY_PRIMITIVE = new VarIntArrayType();
|
||||
public static final VarLongType VAR_LONG = new VarLongType();
|
||||
|
||||
/* MC Types */
|
||||
public static final Type<Position> POSITION1_8 = new PositionType1_8();
|
||||
public static final Type<Position> OPTIONAL_POSITION1_8 = new PositionType1_8.OptionalPositionType();
|
||||
public static final Type<Position> POSITION1_14 = new PositionType1_14();
|
||||
public static final Type<Position> OPTIONAL_POSITION_1_14 = new PositionType1_14.OptionalPosition1_14Type();
|
||||
public static final Type<EulerAngle> ROTATION = new EulerAngleType();
|
||||
public static final Type<Vector> VECTOR = new VectorType();
|
||||
public static final Type<Vector3f> VECTOR3F = new Vector3fType();
|
||||
public static final Type<Quaternion> QUATERNION = new QuaternionType();
|
||||
|
||||
public static final Type<CompoundTag> NAMED_COMPOUND_TAG = new NamedCompoundTagType();
|
||||
public static final Type<CompoundTag> OPTIONAL_NAMED_COMPOUND_TAG = new NamedCompoundTagType.OptionalNamedCompoundTagType();
|
||||
public static final Type<CompoundTag[]> NAMED_COMPOUND_TAG_ARRAY = new ArrayType<>(Type.NAMED_COMPOUND_TAG);
|
||||
public static final Type<CompoundTag> COMPOUND_TAG = new CompoundTagType();
|
||||
public static final Type<CompoundTag> OPTIONAL_COMPOUND_TAG = new CompoundTagType.OptionalCompoundTagType();
|
||||
public static final Type<Tag> TAG = new TagType();
|
||||
public static final Type<Tag[]> TAG_ARRAY = new ArrayType<>(TAG);
|
||||
public static final Type<Tag> OPTIONAL_TAG = new TagType.OptionalTagType();
|
||||
|
||||
public static final Type<GlobalPosition> GLOBAL_POSITION = new GlobalPositionType();
|
||||
public static final Type<GlobalPosition> OPTIONAL_GLOBAL_POSITION = new GlobalPositionType.OptionalGlobalPositionType();
|
||||
public static final Type<ChunkPosition> CHUNK_POSITION = new ChunkPositionType();
|
||||
|
||||
public static final Type<BlockEntity> BLOCK_ENTITY1_18 = new BlockEntityType1_18();
|
||||
public static final Type<BlockEntity> BLOCK_ENTITY1_20_2 = new BlockEntityType1_20_2();
|
||||
|
||||
public static final Type<BlockChangeRecord> BLOCK_CHANGE_RECORD = new BlockChangeRecordType();
|
||||
public static final Type<BlockChangeRecord[]> BLOCK_CHANGE_RECORD_ARRAY = new ArrayType<>(Type.BLOCK_CHANGE_RECORD);
|
||||
public static final Type<BlockChangeRecord> VAR_LONG_BLOCK_CHANGE_RECORD = new VarLongBlockChangeRecordType();
|
||||
public static final Type<BlockChangeRecord[]> VAR_LONG_BLOCK_CHANGE_RECORD_ARRAY = new ArrayType<>(Type.VAR_LONG_BLOCK_CHANGE_RECORD);
|
||||
|
||||
public static final Type<VillagerData> VILLAGER_DATA = new VillagerDataType();
|
||||
|
||||
public static final Type<GameProfile> GAME_PROFILE = new GameProfileType();
|
||||
public static final Type<ProfileKey> PROFILE_KEY = new ProfileKeyType();
|
||||
public static final Type<ProfileKey> OPTIONAL_PROFILE_KEY = new ProfileKeyType.OptionalProfileKeyType();
|
||||
|
||||
public static final Type<PlayerMessageSignature> PLAYER_MESSAGE_SIGNATURE = new PlayerMessageSignatureType();
|
||||
public static final Type<PlayerMessageSignature> OPTIONAL_PLAYER_MESSAGE_SIGNATURE = new PlayerMessageSignatureType.OptionalPlayerMessageSignatureType();
|
||||
public static final Type<PlayerMessageSignature[]> PLAYER_MESSAGE_SIGNATURE_ARRAY = new ArrayType<>(PLAYER_MESSAGE_SIGNATURE);
|
||||
|
||||
public static final BitSetType PROFILE_ACTIONS_ENUM = new BitSetType(6);
|
||||
public static final ByteArrayType SIGNATURE_BYTES = new ByteArrayType(256);
|
||||
public static final BitSetType ACKNOWLEDGED_BIT_SET = new BitSetType(20);
|
||||
public static final ByteArrayType.OptionalByteArrayType OPTIONAL_SIGNATURE_BYTES = new ByteArrayType.OptionalByteArrayType(256);
|
||||
|
||||
public static final Type<RegistryEntry> REGISTRY_ENTRY = new RegistryEntryType();
|
||||
public static final Type<RegistryEntry[]> REGISTRY_ENTRY_ARRAY = new ArrayType<>(REGISTRY_ENTRY);
|
||||
|
||||
public static final Type<HolderSet> HOLDER_SET = new HolderSetType();
|
||||
public static final Type<HolderSet> OPTIONAL_HOLDER_SET = new HolderSetType.OptionalHolderSetType();
|
||||
|
||||
public static final HolderType<SoundEvent> SOUND_EVENT = new SoundEventType();
|
||||
|
||||
public static final Type<Item> ITEM1_8 = new ItemType1_8();
|
||||
public static final Type<Item> ITEM1_13 = new ItemType1_13();
|
||||
public static final Type<Item> ITEM1_13_2 = new ItemType1_13_2();
|
||||
public static final Type<Item> ITEM1_20_2 = new ItemType1_20_2();
|
||||
public static final Type<Item[]> ITEM1_8_SHORT_ARRAY = new ItemShortArrayType1_8();
|
||||
public static final Type<Item[]> ITEM1_13_SHORT_ARRAY = new ItemShortArrayType1_13();
|
||||
public static final Type<Item[]> ITEM1_13_2_SHORT_ARRAY = new ItemShortArrayType1_13_2();
|
||||
public static final Type<Item[]> ITEM1_13_ARRAY = new ArrayType<>(ITEM1_13);
|
||||
public static final Type<Item[]> ITEM1_13_2_ARRAY = new ArrayType<>(ITEM1_13_2);
|
||||
public static final Type<Item[]> ITEM1_20_2_ARRAY = new ArrayType<>(ITEM1_20_2);
|
||||
|
||||
/* Actual Class */
|
||||
private final Class<? super T> outputClass;
|
||||
private final String typeName;
|
||||
|
215
api/src/main/java/com/viaversion/viaversion/api/type/Types.java
Normal file
215
api/src/main/java/com/viaversion/viaversion/api/type/Types.java
Normal file
@ -0,0 +1,215 @@
|
||||
/*
|
||||
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||
* Copyright (C) 2016-2024 ViaVersion and contributors
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
package com.viaversion.viaversion.api.type;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.nbt.tag.Tag;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
|
||||
import com.viaversion.viaversion.api.minecraft.EulerAngle;
|
||||
import com.viaversion.viaversion.api.minecraft.GameProfile;
|
||||
import com.viaversion.viaversion.api.minecraft.GlobalPosition;
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.minecraft.PlayerMessageSignature;
|
||||
import com.viaversion.viaversion.api.minecraft.Position;
|
||||
import com.viaversion.viaversion.api.minecraft.ProfileKey;
|
||||
import com.viaversion.viaversion.api.minecraft.Quaternion;
|
||||
import com.viaversion.viaversion.api.minecraft.RegistryEntry;
|
||||
import com.viaversion.viaversion.api.minecraft.SoundEvent;
|
||||
import com.viaversion.viaversion.api.minecraft.Vector;
|
||||
import com.viaversion.viaversion.api.minecraft.Vector3f;
|
||||
import com.viaversion.viaversion.api.minecraft.VillagerData;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntity;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.data.Enchantments;
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.ChunkPosition;
|
||||
import com.viaversion.viaversion.api.type.types.ArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.BitSetType;
|
||||
import com.viaversion.viaversion.api.type.types.BooleanType;
|
||||
import com.viaversion.viaversion.api.type.types.ByteArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.ByteType;
|
||||
import com.viaversion.viaversion.api.type.types.ComponentType;
|
||||
import com.viaversion.viaversion.api.type.types.DoubleType;
|
||||
import com.viaversion.viaversion.api.type.types.EmptyType;
|
||||
import com.viaversion.viaversion.api.type.types.FloatType;
|
||||
import com.viaversion.viaversion.api.type.types.IntArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.IntType;
|
||||
import com.viaversion.viaversion.api.type.types.LongArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.LongType;
|
||||
import com.viaversion.viaversion.api.type.types.OptionalVarIntType;
|
||||
import com.viaversion.viaversion.api.type.types.RegistryEntryType;
|
||||
import com.viaversion.viaversion.api.type.types.RemainingBytesType;
|
||||
import com.viaversion.viaversion.api.type.types.ShortByteArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.ShortType;
|
||||
import com.viaversion.viaversion.api.type.types.StringType;
|
||||
import com.viaversion.viaversion.api.type.types.UUIDType;
|
||||
import com.viaversion.viaversion.api.type.types.UnsignedByteType;
|
||||
import com.viaversion.viaversion.api.type.types.UnsignedShortType;
|
||||
import com.viaversion.viaversion.api.type.types.VarIntArrayType;
|
||||
import com.viaversion.viaversion.api.type.types.VarIntType;
|
||||
import com.viaversion.viaversion.api.type.types.VarLongType;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockChangeRecordType;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockEntityType1_18;
|
||||
import com.viaversion.viaversion.api.type.types.block.BlockEntityType1_20_2;
|
||||
import com.viaversion.viaversion.api.type.types.block.VarLongBlockChangeRecordType;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_13;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_13_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemShortArrayType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_13;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_13_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_20_2;
|
||||
import com.viaversion.viaversion.api.type.types.item.ItemType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.math.ChunkPositionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.EulerAngleType;
|
||||
import com.viaversion.viaversion.api.type.types.math.GlobalPositionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.PositionType1_14;
|
||||
import com.viaversion.viaversion.api.type.types.math.PositionType1_8;
|
||||
import com.viaversion.viaversion.api.type.types.math.QuaternionType;
|
||||
import com.viaversion.viaversion.api.type.types.math.Vector3fType;
|
||||
import com.viaversion.viaversion.api.type.types.math.VectorType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.CompoundTagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.GameProfileType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderSetType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.HolderType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.NamedCompoundTagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.PlayerMessageSignatureType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.ProfileKeyType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.SoundEventType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.TagType;
|
||||
import com.viaversion.viaversion.api.type.types.misc.VillagerDataType;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
|
||||
import com.viaversion.viaversion.util.Unit;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* Holds the mostly stable {@link Type} instances.
|
||||
* Others may be held separately or object classes themselves, e.g. {@link Types1_20_5} or {@link Enchantments}
|
||||
*/
|
||||
public final class Types {
|
||||
|
||||
public static final Type<Unit> EMPTY = new EmptyType();
|
||||
|
||||
public static final ByteType BYTE = new ByteType();
|
||||
public static final UnsignedByteType UNSIGNED_BYTE = new UnsignedByteType();
|
||||
public static final Type<byte[]> BYTE_ARRAY_PRIMITIVE = new ByteArrayType();
|
||||
public static final Type<byte[]> OPTIONAL_BYTE_ARRAY_PRIMITIVE = new ByteArrayType.OptionalByteArrayType();
|
||||
public static final Type<byte[]> SHORT_BYTE_ARRAY = new ShortByteArrayType();
|
||||
public static final Type<byte[]> REMAINING_BYTES = new RemainingBytesType();
|
||||
public static final Type<int[]> INT_ARRAY_PRIMITIVE = new IntArrayType();
|
||||
|
||||
public static final ShortType SHORT = new ShortType();
|
||||
public static final UnsignedShortType UNSIGNED_SHORT = new UnsignedShortType();
|
||||
|
||||
public static final IntType INT = new IntType();
|
||||
public static final FloatType FLOAT = new FloatType();
|
||||
public static final FloatType.OptionalFloatType OPTIONAL_FLOAT = new FloatType.OptionalFloatType();
|
||||
public static final DoubleType DOUBLE = new DoubleType();
|
||||
|
||||
public static final LongType LONG = new LongType();
|
||||
public static final Type<long[]> LONG_ARRAY_PRIMITIVE = new LongArrayType();
|
||||
|
||||
public static final BooleanType BOOLEAN = new BooleanType();
|
||||
public static final BooleanType.OptionalBooleanType OPTIONAL_BOOLEAN = new BooleanType.OptionalBooleanType();
|
||||
|
||||
/* Other Types */
|
||||
public static final Type<JsonElement> COMPONENT = new ComponentType();
|
||||
public static final Type<JsonElement> OPTIONAL_COMPONENT = new ComponentType.OptionalComponentType();
|
||||
|
||||
public static final Type<String> STRING = new StringType();
|
||||
public static final Type<String> OPTIONAL_STRING = new StringType.OptionalStringType();
|
||||
public static final Type<String[]> STRING_ARRAY = new ArrayType<>(Types.STRING);
|
||||
|
||||
public static final Type<UUID> UUID = new UUIDType();
|
||||
public static final Type<UUID> OPTIONAL_UUID = new UUIDType.OptionalUUIDType();
|
||||
public static final Type<UUID[]> UUID_ARRAY = new ArrayType<>(Types.UUID);
|
||||
|
||||
public static final VarIntType VAR_INT = new VarIntType();
|
||||
public static final OptionalVarIntType OPTIONAL_VAR_INT = new OptionalVarIntType();
|
||||
public static final Type<int[]> VAR_INT_ARRAY_PRIMITIVE = new VarIntArrayType();
|
||||
public static final VarLongType VAR_LONG = new VarLongType();
|
||||
|
||||
/* MC Types */
|
||||
public static final Type<Position> BLOCK_POSITION1_8 = new PositionType1_8();
|
||||
public static final Type<Position> OPTIONAL_POSITION1_8 = new PositionType1_8.OptionalPositionType();
|
||||
public static final Type<Position> BLOCK_POSITION1_14 = new PositionType1_14();
|
||||
public static final Type<Position> OPTIONAL_POSITION_1_14 = new PositionType1_14.OptionalPosition1_14Type();
|
||||
public static final Type<EulerAngle> ROTATIONS = new EulerAngleType();
|
||||
public static final Type<Vector> VECTOR = new VectorType();
|
||||
public static final Type<Vector3f> VECTOR3F = new Vector3fType();
|
||||
public static final Type<Quaternion> QUATERNION = new QuaternionType();
|
||||
|
||||
public static final Type<CompoundTag> NAMED_COMPOUND_TAG = new NamedCompoundTagType();
|
||||
public static final Type<CompoundTag> OPTIONAL_NAMED_COMPOUND_TAG = new NamedCompoundTagType.OptionalNamedCompoundTagType();
|
||||
public static final Type<CompoundTag[]> NAMED_COMPOUND_TAG_ARRAY = new ArrayType<>(Types.NAMED_COMPOUND_TAG);
|
||||
public static final Type<CompoundTag> COMPOUND_TAG = new CompoundTagType();
|
||||
public static final Type<CompoundTag> OPTIONAL_COMPOUND_TAG = new CompoundTagType.OptionalCompoundTagType();
|
||||
public static final Type<Tag> TAG = new TagType();
|
||||
public static final Type<Tag[]> TAG_ARRAY = new ArrayType<>(TAG);
|
||||
public static final Type<Tag> OPTIONAL_TAG = new TagType.OptionalTagType();
|
||||
|
||||
public static final Type<GlobalPosition> GLOBAL_POSITION = new GlobalPositionType();
|
||||
public static final Type<GlobalPosition> OPTIONAL_GLOBAL_POSITION = new GlobalPositionType.OptionalGlobalPositionType();
|
||||
public static final Type<ChunkPosition> CHUNK_POSITION = new ChunkPositionType();
|
||||
|
||||
public static final Type<BlockEntity> BLOCK_ENTITY1_18 = new BlockEntityType1_18();
|
||||
public static final Type<BlockEntity> BLOCK_ENTITY1_20_2 = new BlockEntityType1_20_2();
|
||||
|
||||
public static final Type<BlockChangeRecord> BLOCK_CHANGE = new BlockChangeRecordType();
|
||||
public static final Type<BlockChangeRecord[]> BLOCK_CHANGE_ARRAY = new ArrayType<>(Types.BLOCK_CHANGE);
|
||||
public static final Type<BlockChangeRecord> VAR_LONG_BLOCK_CHANGE = new VarLongBlockChangeRecordType();
|
||||
public static final Type<BlockChangeRecord[]> VAR_LONG_BLOCK_CHANGE_ARRAY = new ArrayType<>(Types.VAR_LONG_BLOCK_CHANGE);
|
||||
|
||||
public static final Type<VillagerData> VILLAGER_DATA = new VillagerDataType();
|
||||
|
||||
public static final Type<GameProfile> GAME_PROFILE = new GameProfileType();
|
||||
public static final Type<ProfileKey> PROFILE_KEY = new ProfileKeyType();
|
||||
public static final Type<ProfileKey> OPTIONAL_PROFILE_KEY = new ProfileKeyType.OptionalProfileKeyType();
|
||||
|
||||
public static final Type<PlayerMessageSignature> PLAYER_MESSAGE_SIGNATURE = new PlayerMessageSignatureType();
|
||||
public static final Type<PlayerMessageSignature> OPTIONAL_PLAYER_MESSAGE_SIGNATURE = new PlayerMessageSignatureType.OptionalPlayerMessageSignatureType();
|
||||
public static final Type<PlayerMessageSignature[]> PLAYER_MESSAGE_SIGNATURE_ARRAY = new ArrayType<>(PLAYER_MESSAGE_SIGNATURE);
|
||||
|
||||
public static final BitSetType PROFILE_ACTIONS_ENUM = new BitSetType(6);
|
||||
public static final ByteArrayType SIGNATURE_BYTES = new ByteArrayType(256);
|
||||
public static final BitSetType ACKNOWLEDGED_BIT_SET = new BitSetType(20);
|
||||
public static final ByteArrayType.OptionalByteArrayType OPTIONAL_SIGNATURE_BYTES = new ByteArrayType.OptionalByteArrayType(256);
|
||||
|
||||
public static final Type<RegistryEntry> REGISTRY_ENTRY = new RegistryEntryType();
|
||||
public static final Type<RegistryEntry[]> REGISTRY_ENTRY_ARRAY = new ArrayType<>(REGISTRY_ENTRY);
|
||||
|
||||
public static final Type<HolderSet> HOLDER_SET = new HolderSetType();
|
||||
public static final Type<HolderSet> OPTIONAL_HOLDER_SET = new HolderSetType.OptionalHolderSetType();
|
||||
|
||||
public static final HolderType<SoundEvent> SOUND_EVENT = new SoundEventType();
|
||||
|
||||
public static final Type<Item> ITEM1_8 = new ItemType1_8();
|
||||
public static final Type<Item> ITEM1_13 = new ItemType1_13();
|
||||
public static final Type<Item> ITEM1_13_2 = new ItemType1_13_2();
|
||||
public static final Type<Item> ITEM1_20_2 = new ItemType1_20_2();
|
||||
public static final Type<Item[]> ITEM1_8_SHORT_ARRAY = new ItemShortArrayType1_8();
|
||||
public static final Type<Item[]> ITEM1_13_SHORT_ARRAY = new ItemShortArrayType1_13();
|
||||
public static final Type<Item[]> ITEM1_13_2_SHORT_ARRAY = new ItemShortArrayType1_13_2();
|
||||
public static final Type<Item[]> ITEM1_13_ARRAY = new ArrayType<>(ITEM1_13);
|
||||
public static final Type<Item[]> ITEM1_13_2_ARRAY = new ArrayType<>(ITEM1_13_2);
|
||||
public static final Type<Item[]> ITEM1_20_2_ARRAY = new ArrayType<>(ITEM1_20_2);
|
||||
}
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.lang.reflect.Array;
|
||||
|
||||
@ -41,7 +42,7 @@ public class ArrayType<T> extends Type<T[]> {
|
||||
|
||||
@Override
|
||||
public T[] read(ByteBuf buffer) {
|
||||
int amount = Type.VAR_INT.readPrimitive(buffer);
|
||||
int amount = Types.VAR_INT.readPrimitive(buffer);
|
||||
T[] array = (T[]) Array.newInstance(elementType.getOutputClass(), amount);
|
||||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
@ -52,7 +53,7 @@ public class ArrayType<T> extends Type<T[]> {
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, T[] object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, object.length);
|
||||
for (T o : object) {
|
||||
elementType.write(buffer, o);
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.TypeConverter;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class BooleanType extends Type<Boolean> implements TypeConverter<Boolean> {
|
||||
@ -55,7 +56,7 @@ public class BooleanType extends Type<Boolean> implements TypeConverter<Boolean>
|
||||
public static final class OptionalBooleanType extends OptionalType<Boolean> {
|
||||
|
||||
public OptionalBooleanType() {
|
||||
super(Type.BOOLEAN);
|
||||
super(Types.BOOLEAN);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ByteArrayType extends Type<byte[]> {
|
||||
@ -46,14 +47,14 @@ public class ByteArrayType extends Type<byte[]> {
|
||||
if (this.length != -1) {
|
||||
Preconditions.checkArgument(length == object.length, "Length does not match expected length");
|
||||
} else {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, object.length);
|
||||
}
|
||||
buffer.writeBytes(object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] read(final ByteBuf buffer) {
|
||||
final int length = this.length == -1 ? Type.VAR_INT.readPrimitive(buffer) : this.length;
|
||||
final int length = this.length == -1 ? Types.VAR_INT.readPrimitive(buffer) : this.length;
|
||||
Preconditions.checkArgument(buffer.isReadable(length), "Length is fewer than readable bytes");
|
||||
final byte[] array = new byte[length];
|
||||
buffer.readBytes(array);
|
||||
@ -63,7 +64,7 @@ public class ByteArrayType extends Type<byte[]> {
|
||||
public static final class OptionalByteArrayType extends OptionalType<byte[]> {
|
||||
|
||||
public OptionalByteArrayType() {
|
||||
super(Type.BYTE_ARRAY_PRIMITIVE);
|
||||
super(Types.BYTE_ARRAY_PRIMITIVE);
|
||||
}
|
||||
|
||||
public OptionalByteArrayType(final int length) {
|
||||
|
@ -28,6 +28,7 @@ import com.google.gson.JsonSyntaxException;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ComponentType extends Type<JsonElement> {
|
||||
@ -56,7 +57,7 @@ public class ComponentType extends Type<JsonElement> {
|
||||
public static final class OptionalComponentType extends OptionalType<JsonElement> {
|
||||
|
||||
public OptionalComponentType() {
|
||||
super(Type.COMPONENT);
|
||||
super(Types.COMPONENT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.TypeConverter;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class FloatType extends Type<Float> implements TypeConverter<Float> {
|
||||
@ -72,7 +73,7 @@ public class FloatType extends Type<Float> implements TypeConverter<Float> {
|
||||
public static final class OptionalFloatType extends OptionalType<Float> {
|
||||
|
||||
public OptionalFloatType() {
|
||||
super(Type.FLOAT);
|
||||
super(Types.FLOAT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class IntArrayType extends Type<int[]> {
|
||||
@ -46,7 +47,7 @@ public class IntArrayType extends Type<int[]> {
|
||||
if (this.length != -1) {
|
||||
Preconditions.checkArgument(length == object.length, "Length does not match expected length");
|
||||
} else {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, object.length);
|
||||
}
|
||||
for (final int i : object) {
|
||||
buffer.writeInt(i);
|
||||
@ -55,7 +56,7 @@ public class IntArrayType extends Type<int[]> {
|
||||
|
||||
@Override
|
||||
public int[] read(final ByteBuf buffer) {
|
||||
final int length = this.length == -1 ? Type.VAR_INT.readPrimitive(buffer) : this.length;
|
||||
final int length = this.length == -1 ? Types.VAR_INT.readPrimitive(buffer) : this.length;
|
||||
Preconditions.checkArgument(buffer.isReadable(length), "Length is fewer than readable bytes");
|
||||
final int[] array = new int[length];
|
||||
for (int i = 0; i < length; i++) {
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class LongArrayType extends Type<long[]> {
|
||||
@ -33,7 +34,7 @@ public class LongArrayType extends Type<long[]> {
|
||||
|
||||
@Override
|
||||
public long[] read(ByteBuf buffer) {
|
||||
int length = Type.VAR_INT.readPrimitive(buffer);
|
||||
int length = Types.VAR_INT.readPrimitive(buffer);
|
||||
long[] array = new long[length];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = buffer.readLong();
|
||||
@ -43,7 +44,7 @@ public class LongArrayType extends Type<long[]> {
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, long[] object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, object.length);
|
||||
for (long l : object) {
|
||||
buffer.writeLong(l);
|
||||
}
|
||||
|
@ -23,6 +23,7 @@
|
||||
package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class OptionalVarIntType extends Type<Integer> {
|
||||
@ -33,16 +34,16 @@ public class OptionalVarIntType extends Type<Integer> {
|
||||
|
||||
@Override
|
||||
public Integer read(final ByteBuf buffer) {
|
||||
final int value = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int value = Types.VAR_INT.readPrimitive(buffer);
|
||||
return value == 0 ? null : value - 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Integer object) {
|
||||
if (object == null) {
|
||||
Type.VAR_INT.writePrimitive(buffer, 0);
|
||||
Types.VAR_INT.writePrimitive(buffer, 0);
|
||||
} else {
|
||||
Type.VAR_INT.writePrimitive(buffer, object + 1);
|
||||
Types.VAR_INT.writePrimitive(buffer, object + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.RegistryEntry;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class RegistryEntryType extends Type<RegistryEntry> {
|
||||
@ -34,12 +35,12 @@ public class RegistryEntryType extends Type<RegistryEntry> {
|
||||
|
||||
@Override
|
||||
public RegistryEntry read(final ByteBuf buffer) {
|
||||
return new RegistryEntry(Type.STRING.read(buffer), Type.OPTIONAL_TAG.read(buffer));
|
||||
return new RegistryEntry(Types.STRING.read(buffer), Types.OPTIONAL_TAG.read(buffer));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final RegistryEntry entry) {
|
||||
Type.STRING.write(buffer, entry.key());
|
||||
Type.OPTIONAL_TAG.write(buffer, entry.tag());
|
||||
Types.STRING.write(buffer, entry.key());
|
||||
Types.OPTIONAL_TAG.write(buffer, entry.tag());
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@ -45,7 +46,7 @@ public class StringType extends Type<String> {
|
||||
|
||||
@Override
|
||||
public String read(ByteBuf buffer) {
|
||||
int len = Type.VAR_INT.readPrimitive(buffer);
|
||||
int len = Types.VAR_INT.readPrimitive(buffer);
|
||||
|
||||
Preconditions.checkArgument(len <= maxLength * MAX_CHAR_UTF_8_LENGTH,
|
||||
"Cannot receive string longer than Short.MAX_VALUE * " + MAX_CHAR_UTF_8_LENGTH + " bytes (got %s bytes)", len);
|
||||
@ -66,14 +67,14 @@ public class StringType extends Type<String> {
|
||||
}
|
||||
|
||||
byte[] b = object.getBytes(StandardCharsets.UTF_8);
|
||||
Type.VAR_INT.writePrimitive(buffer, b.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, b.length);
|
||||
buffer.writeBytes(b);
|
||||
}
|
||||
|
||||
public static final class OptionalStringType extends OptionalType<String> {
|
||||
|
||||
public OptionalStringType() {
|
||||
super(Type.STRING);
|
||||
super(Types.STRING);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.UUID;
|
||||
|
||||
@ -47,7 +48,7 @@ public class UUIDType extends Type<UUID> {
|
||||
public static final class OptionalUUIDType extends OptionalType<UUID> {
|
||||
|
||||
public OptionalUUIDType() {
|
||||
super(Type.UUID);
|
||||
super(Types.UUID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class VarIntArrayType extends Type<int[]> {
|
||||
@ -33,20 +34,20 @@ public class VarIntArrayType extends Type<int[]> {
|
||||
|
||||
@Override
|
||||
public int[] read(ByteBuf buffer) {
|
||||
int length = Type.VAR_INT.readPrimitive(buffer);
|
||||
int length = Types.VAR_INT.readPrimitive(buffer);
|
||||
Preconditions.checkArgument(buffer.isReadable(length)); // Sanity check, at least 1 byte will be used for each varint
|
||||
int[] array = new int[length];
|
||||
for (int i = 0; i < array.length; i++) {
|
||||
array[i] = Type.VAR_INT.readPrimitive(buffer);
|
||||
array[i] = Types.VAR_INT.readPrimitive(buffer);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, int[] object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.length);
|
||||
Types.VAR_INT.writePrimitive(buffer, object.length);
|
||||
for (int i : object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, i);
|
||||
Types.VAR_INT.writePrimitive(buffer, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.block;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord1_8;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class BlockChangeRecordType extends Type<BlockChangeRecord> {
|
||||
@ -35,14 +36,14 @@ public class BlockChangeRecordType extends Type<BlockChangeRecord> {
|
||||
|
||||
@Override
|
||||
public BlockChangeRecord read(ByteBuf buffer) {
|
||||
short position = Type.SHORT.readPrimitive(buffer);
|
||||
int blockId = Type.VAR_INT.readPrimitive(buffer);
|
||||
short position = Types.SHORT.readPrimitive(buffer);
|
||||
int blockId = Types.VAR_INT.readPrimitive(buffer);
|
||||
return new BlockChangeRecord1_8(position >> 12 & 0xF, position & 0xFF, position >> 8 & 0xF, blockId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, BlockChangeRecord object) {
|
||||
Type.SHORT.writePrimitive(buffer, (short) (object.getSectionX() << 12 | object.getSectionZ() << 8 | object.getY()));
|
||||
Type.VAR_INT.writePrimitive(buffer, object.getBlockId());
|
||||
Types.SHORT.writePrimitive(buffer, (short) (object.getSectionX() << 12 | object.getSectionZ() << 8 | object.getY()));
|
||||
Types.VAR_INT.writePrimitive(buffer, object.getBlockId());
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntity;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntityImpl;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class BlockEntityType1_18 extends Type<BlockEntity> {
|
||||
@ -38,8 +39,8 @@ public class BlockEntityType1_18 extends Type<BlockEntity> {
|
||||
public BlockEntity read(final ByteBuf buffer) {
|
||||
final byte xz = buffer.readByte();
|
||||
final short y = buffer.readShort();
|
||||
final int typeId = Type.VAR_INT.readPrimitive(buffer);
|
||||
final CompoundTag tag = Type.NAMED_COMPOUND_TAG.read(buffer);
|
||||
final int typeId = Types.VAR_INT.readPrimitive(buffer);
|
||||
final CompoundTag tag = Types.NAMED_COMPOUND_TAG.read(buffer);
|
||||
return new BlockEntityImpl(xz, y, typeId, tag);
|
||||
}
|
||||
|
||||
@ -47,7 +48,7 @@ public class BlockEntityType1_18 extends Type<BlockEntity> {
|
||||
public void write(final ByteBuf buffer, final BlockEntity entity) {
|
||||
buffer.writeByte(entity.packedXZ());
|
||||
buffer.writeShort(entity.y());
|
||||
Type.VAR_INT.writePrimitive(buffer, entity.typeId());
|
||||
Type.NAMED_COMPOUND_TAG.write(buffer, entity.tag());
|
||||
Types.VAR_INT.writePrimitive(buffer, entity.typeId());
|
||||
Types.NAMED_COMPOUND_TAG.write(buffer, entity.tag());
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntity;
|
||||
import com.viaversion.viaversion.api.minecraft.blockentity.BlockEntityImpl;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class BlockEntityType1_20_2 extends Type<BlockEntity> {
|
||||
@ -38,8 +39,8 @@ public class BlockEntityType1_20_2 extends Type<BlockEntity> {
|
||||
public BlockEntity read(final ByteBuf buffer) {
|
||||
final byte xz = buffer.readByte();
|
||||
final short y = buffer.readShort();
|
||||
final int typeId = Type.VAR_INT.readPrimitive(buffer);
|
||||
final CompoundTag tag = Type.COMPOUND_TAG.read(buffer);
|
||||
final int typeId = Types.VAR_INT.readPrimitive(buffer);
|
||||
final CompoundTag tag = Types.COMPOUND_TAG.read(buffer);
|
||||
return new BlockEntityImpl(xz, y, typeId, tag);
|
||||
}
|
||||
|
||||
@ -47,7 +48,7 @@ public class BlockEntityType1_20_2 extends Type<BlockEntity> {
|
||||
public void write(final ByteBuf buffer, final BlockEntity entity) {
|
||||
buffer.writeByte(entity.packedXZ());
|
||||
buffer.writeShort(entity.y());
|
||||
Type.VAR_INT.writePrimitive(buffer, entity.typeId());
|
||||
Type.COMPOUND_TAG.write(buffer, entity.tag());
|
||||
Types.VAR_INT.writePrimitive(buffer, entity.typeId());
|
||||
Types.COMPOUND_TAG.write(buffer, entity.tag());
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.block;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
|
||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord1_16_2;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class VarLongBlockChangeRecordType extends Type<BlockChangeRecord> {
|
||||
@ -35,7 +36,7 @@ public class VarLongBlockChangeRecordType extends Type<BlockChangeRecord> {
|
||||
|
||||
@Override
|
||||
public BlockChangeRecord read(ByteBuf buffer) {
|
||||
long data = Type.VAR_LONG.readPrimitive(buffer);
|
||||
long data = Types.VAR_LONG.readPrimitive(buffer);
|
||||
short position = (short) (data & 0xFFFL);
|
||||
return new BlockChangeRecord1_16_2(position >>> 8 & 0xF, position & 0xF, position >>> 4 & 0xF, (int) (data >>> 12));
|
||||
}
|
||||
@ -43,6 +44,6 @@ public class VarLongBlockChangeRecordType extends Type<BlockChangeRecord> {
|
||||
@Override
|
||||
public void write(ByteBuf buffer, BlockChangeRecord object) {
|
||||
short position = (short) (object.getSectionX() << 8 | object.getSectionZ() << 4 | object.getSectionY());
|
||||
Type.VAR_LONG.writePrimitive(buffer, (long) object.getBlockId() << 12 | position);
|
||||
Types.VAR_LONG.writePrimitive(buffer, (long) object.getBlockId() << 12 | position);
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class BulkChunkType1_8 extends Type<Chunk[]> {
|
||||
@ -42,7 +43,7 @@ public class BulkChunkType1_8 extends Type<Chunk[]> {
|
||||
@Override
|
||||
public Chunk[] read(ByteBuf input) {
|
||||
final boolean skyLight = input.readBoolean();
|
||||
final int count = Type.VAR_INT.readPrimitive(input);
|
||||
final int count = Types.VAR_INT.readPrimitive(input);
|
||||
final Chunk[] chunks = new Chunk[count];
|
||||
final ChunkBulkSection[] chunkInfo = new ChunkBulkSection[count];
|
||||
|
||||
@ -73,7 +74,7 @@ public class BulkChunkType1_8 extends Type<Chunk[]> {
|
||||
}
|
||||
}
|
||||
output.writeBoolean(skyLight);
|
||||
Type.VAR_INT.writePrimitive(output, chunks.length);
|
||||
Types.VAR_INT.writePrimitive(output, chunks.length);
|
||||
|
||||
// Write metadata
|
||||
for (Chunk chunk : chunks) {
|
||||
|
@ -27,6 +27,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.ChunkSectionImpl;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.DataPalette;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.util.CompactArrayUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -50,18 +51,18 @@ public class ChunkSectionType1_13 extends Type<ChunkSection> {
|
||||
// Read palette
|
||||
ChunkSection chunkSection;
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
int paletteLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
int paletteLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
chunkSection = new ChunkSectionImpl(true, paletteLength);
|
||||
DataPalette blockPalette = chunkSection.palette(PaletteType.BLOCKS);
|
||||
for (int i = 0; i < paletteLength; i++) {
|
||||
blockPalette.addId(Type.VAR_INT.readPrimitive(buffer));
|
||||
blockPalette.addId(Types.VAR_INT.readPrimitive(buffer));
|
||||
}
|
||||
} else {
|
||||
chunkSection = new ChunkSectionImpl(true);
|
||||
}
|
||||
|
||||
// Read blocks
|
||||
long[] blockData = Type.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
long[] blockData = Types.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
if (blockData.length > 0) {
|
||||
int expectedLength = (int) Math.ceil(ChunkSection.SIZE * bitsPerBlock / 64.0);
|
||||
if (blockData.length == expectedLength) {
|
||||
@ -90,14 +91,14 @@ public class ChunkSectionType1_13 extends Type<ChunkSection> {
|
||||
|
||||
// Write palette
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
for (int i = 0; i < blockPalette.size(); i++) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
}
|
||||
}
|
||||
|
||||
long[] data = CompactArrayUtil.createCompactArray(bitsPerBlock, ChunkSection.SIZE,
|
||||
bitsPerBlock == GLOBAL_PALETTE ? blockPalette::idAt : blockPalette::paletteIndexAt);
|
||||
Type.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
Types.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.ChunkSectionImpl;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.DataPalette;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.util.CompactArrayUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -50,18 +51,18 @@ public class ChunkSectionType1_16 extends Type<ChunkSection> {
|
||||
// Read palette
|
||||
ChunkSection chunkSection;
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
int paletteLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
int paletteLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
chunkSection = new ChunkSectionImpl(false, paletteLength);
|
||||
DataPalette blockPalette = chunkSection.palette(PaletteType.BLOCKS);
|
||||
for (int i = 0; i < paletteLength; i++) {
|
||||
blockPalette.addId(Type.VAR_INT.readPrimitive(buffer));
|
||||
blockPalette.addId(Types.VAR_INT.readPrimitive(buffer));
|
||||
}
|
||||
} else {
|
||||
chunkSection = new ChunkSectionImpl(false);
|
||||
}
|
||||
|
||||
// Read blocks
|
||||
long[] blockData = Type.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
long[] blockData = Types.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
if (blockData.length > 0) {
|
||||
char valuesPerLong = (char) (64 / bitsPerBlock);
|
||||
int expectedLength = (ChunkSection.SIZE + valuesPerLong - 1) / valuesPerLong;
|
||||
@ -91,14 +92,14 @@ public class ChunkSectionType1_16 extends Type<ChunkSection> {
|
||||
|
||||
// Write palette
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
for (int i = 0; i < blockPalette.size(); i++) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
}
|
||||
}
|
||||
|
||||
long[] data = CompactArrayUtil.createCompactArrayWithPadding(bitsPerBlock, ChunkSection.SIZE,
|
||||
bitsPerBlock == GLOBAL_PALETTE ? blockPalette::idAt : blockPalette::paletteIndexAt);
|
||||
Type.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
Types.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.ChunkSectionImpl;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.DataPalette;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.util.CompactArrayUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
@ -49,19 +50,19 @@ public class ChunkSectionType1_9 extends Type<ChunkSection> {
|
||||
}
|
||||
|
||||
// Read palette
|
||||
int paletteLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
int paletteLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
ChunkSection chunkSection = bitsPerBlock != GLOBAL_PALETTE ? new ChunkSectionImpl(true, paletteLength) : new ChunkSectionImpl(true);
|
||||
DataPalette blockPalette = chunkSection.palette(PaletteType.BLOCKS);
|
||||
for (int i = 0; i < paletteLength; i++) {
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
blockPalette.addId(Type.VAR_INT.readPrimitive(buffer));
|
||||
blockPalette.addId(Types.VAR_INT.readPrimitive(buffer));
|
||||
} else {
|
||||
Type.VAR_INT.readPrimitive(buffer);
|
||||
Types.VAR_INT.readPrimitive(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
// Read blocks
|
||||
long[] blockData = Type.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
long[] blockData = Types.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
if (blockData.length > 0) {
|
||||
int expectedLength = (int) Math.ceil(ChunkSection.SIZE * bitsPerBlock / 64.0);
|
||||
if (blockData.length == expectedLength) {
|
||||
@ -89,16 +90,16 @@ public class ChunkSectionType1_9 extends Type<ChunkSection> {
|
||||
|
||||
// Write palette
|
||||
if (bitsPerBlock != GLOBAL_PALETTE) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.size());
|
||||
for (int i = 0; i < blockPalette.size(); i++) {
|
||||
Type.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
Types.VAR_INT.writePrimitive(buffer, blockPalette.idByIndex(i));
|
||||
}
|
||||
} else {
|
||||
Type.VAR_INT.writePrimitive(buffer, 0);
|
||||
Types.VAR_INT.writePrimitive(buffer, 0);
|
||||
}
|
||||
|
||||
long[] data = CompactArrayUtil.createCompactArray(bitsPerBlock, ChunkSection.SIZE,
|
||||
bitsPerBlock == GLOBAL_PALETTE ? blockPalette::idAt : blockPalette::paletteIndexAt);
|
||||
Type.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
Types.LONG_ARRAY_PRIMITIVE.write(buffer, data);
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_13;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -57,8 +58,8 @@ public class ChunkType1_13 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
@ -84,7 +85,7 @@ public class ChunkType1_13 extends Type<Chunk> {
|
||||
}
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, false, primaryBitmask, sections, biomeData, nbtData);
|
||||
}
|
||||
|
||||
@ -94,7 +95,7 @@ public class ChunkType1_13 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
try {
|
||||
@ -109,7 +110,7 @@ public class ChunkType1_13 extends Type<Chunk> {
|
||||
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 1024 : 0));
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 1024 : 0));
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
@ -123,6 +124,6 @@ public class ChunkType1_13 extends Type<Chunk> {
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_13;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -48,9 +49,9 @@ public class ChunkType1_14 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(input);
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(input);
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
@ -70,7 +71,7 @@ public class ChunkType1_14 extends Type<Chunk> {
|
||||
}
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, false, primaryBitmask, sections, biomeData, heightMap, nbtData);
|
||||
}
|
||||
|
||||
@ -80,8 +81,8 @@ public class ChunkType1_14 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Type.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
try {
|
||||
@ -93,7 +94,7 @@ public class ChunkType1_14 extends Type<Chunk> {
|
||||
Types1_13.CHUNK_SECTION.write(buf, section);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 1024 : 0)); // 256 * 4
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 1024 : 0)); // 256 * 4
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
@ -107,6 +108,6 @@ public class ChunkType1_14 extends Type<Chunk> {
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_13;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -48,8 +49,8 @@ public class ChunkType1_15 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(input);
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(input);
|
||||
|
||||
int[] biomeData = fullChunk ? new int[1024] : null;
|
||||
if (fullChunk) {
|
||||
@ -58,7 +59,7 @@ public class ChunkType1_15 extends Type<Chunk> {
|
||||
}
|
||||
}
|
||||
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
@ -71,7 +72,7 @@ public class ChunkType1_15 extends Type<Chunk> {
|
||||
sections[i] = section;
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, false, primaryBitmask, sections, biomeData, heightMap, nbtData);
|
||||
}
|
||||
|
||||
@ -81,8 +82,8 @@ public class ChunkType1_15 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Type.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
|
||||
// Write biome data
|
||||
if (chunk.isBiomeData()) {
|
||||
@ -101,13 +102,13 @@ public class ChunkType1_15 extends Type<Chunk> {
|
||||
Types1_13.CHUNK_SECTION.write(buf, section);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_16;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -49,8 +50,8 @@ public class ChunkType1_16 extends Type<Chunk> {
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
boolean ignoreOldLightData = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(input);
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(input);
|
||||
|
||||
int[] biomeData = fullChunk ? new int[1024] : null;
|
||||
if (fullChunk) {
|
||||
@ -59,7 +60,7 @@ public class ChunkType1_16 extends Type<Chunk> {
|
||||
}
|
||||
}
|
||||
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
@ -72,7 +73,7 @@ public class ChunkType1_16 extends Type<Chunk> {
|
||||
sections[i] = section;
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, ignoreOldLightData, primaryBitmask, sections, biomeData, heightMap, nbtData);
|
||||
}
|
||||
|
||||
@ -83,8 +84,8 @@ public class ChunkType1_16 extends Type<Chunk> {
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
output.writeBoolean(chunk.isIgnoreOldLightData());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Type.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
|
||||
// Write biome data
|
||||
if (chunk.isBiomeData()) {
|
||||
@ -103,13 +104,13 @@ public class ChunkType1_16 extends Type<Chunk> {
|
||||
Types1_16.CHUNK_SECTION.write(buf, section);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_16;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -48,15 +49,15 @@ public class ChunkType1_16_2 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(input);
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(input);
|
||||
|
||||
int[] biomeData = null;
|
||||
if (fullChunk) {
|
||||
biomeData = Type.VAR_INT_ARRAY_PRIMITIVE.read(input);
|
||||
biomeData = Types.VAR_INT_ARRAY_PRIMITIVE.read(input);
|
||||
}
|
||||
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
@ -69,7 +70,7 @@ public class ChunkType1_16_2 extends Type<Chunk> {
|
||||
sections[i] = section;
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, false, primaryBitmask, sections, biomeData, heightMap, nbtData);
|
||||
}
|
||||
|
||||
@ -79,12 +80,12 @@ public class ChunkType1_16_2 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Type.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
|
||||
// Write biome data
|
||||
if (chunk.isBiomeData()) {
|
||||
Type.VAR_INT_ARRAY_PRIMITIVE.write(output, chunk.getBiomeData());
|
||||
Types.VAR_INT_ARRAY_PRIMITIVE.write(output, chunk.getBiomeData());
|
||||
}
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
@ -97,13 +98,13 @@ public class ChunkType1_16_2 extends Type<Chunk> {
|
||||
Types1_16.CHUNK_SECTION.write(buf, section);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_16;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
@ -51,12 +52,12 @@ public final class ChunkType1_17 extends Type<Chunk> {
|
||||
int chunkX = input.readInt();
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
BitSet sectionsMask = BitSet.valueOf(Type.LONG_ARRAY_PRIMITIVE.read(input));
|
||||
CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(input);
|
||||
BitSet sectionsMask = BitSet.valueOf(Types.LONG_ARRAY_PRIMITIVE.read(input));
|
||||
CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(input);
|
||||
|
||||
int[] biomeData = Type.VAR_INT_ARRAY_PRIMITIVE.read(input);
|
||||
int[] biomeData = Types.VAR_INT_ARRAY_PRIMITIVE.read(input);
|
||||
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
// Read sections
|
||||
ChunkSection[] sections = new ChunkSection[ySectionCount];
|
||||
@ -69,7 +70,7 @@ public final class ChunkType1_17 extends Type<Chunk> {
|
||||
sections[i] = section;
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, true, false, sectionsMask, sections, biomeData, heightMap, nbtData);
|
||||
}
|
||||
|
||||
@ -78,11 +79,11 @@ public final class ChunkType1_17 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getX());
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
Type.LONG_ARRAY_PRIMITIVE.write(output, chunk.getChunkMask().toLongArray());
|
||||
Type.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
Types.LONG_ARRAY_PRIMITIVE.write(output, chunk.getChunkMask().toLongArray());
|
||||
Types.NAMED_COMPOUND_TAG.write(output, chunk.getHeightMap());
|
||||
|
||||
// Write biome data
|
||||
Type.VAR_INT_ARRAY_PRIMITIVE.write(output, chunk.getBiomeData());
|
||||
Types.VAR_INT_ARRAY_PRIMITIVE.write(output, chunk.getBiomeData());
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
try {
|
||||
@ -94,13 +95,13 @@ public final class ChunkType1_17 extends Type<Chunk> {
|
||||
Types1_16.CHUNK_SECTION.write(buf, section);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes());
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(EMPTY_COMPOUNDS));
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk1_18;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -48,10 +49,10 @@ public final class ChunkType1_18 extends Type<Chunk> {
|
||||
public Chunk read(final ByteBuf buffer) {
|
||||
final int chunkX = buffer.readInt();
|
||||
final int chunkZ = buffer.readInt();
|
||||
final CompoundTag heightMap = Type.NAMED_COMPOUND_TAG.read(buffer);
|
||||
final CompoundTag heightMap = Types.NAMED_COMPOUND_TAG.read(buffer);
|
||||
|
||||
// Read sections
|
||||
final ByteBuf sectionsBuf = buffer.readBytes(Type.VAR_INT.readPrimitive(buffer));
|
||||
final ByteBuf sectionsBuf = buffer.readBytes(Types.VAR_INT.readPrimitive(buffer));
|
||||
final ChunkSection[] sections = new ChunkSection[ySectionCount];
|
||||
try {
|
||||
for (int i = 0; i < ySectionCount; i++) {
|
||||
@ -61,10 +62,10 @@ public final class ChunkType1_18 extends Type<Chunk> {
|
||||
sectionsBuf.release();
|
||||
}
|
||||
|
||||
final int blockEntitiesLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int blockEntitiesLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
final List<BlockEntity> blockEntities = new ArrayList<>(blockEntitiesLength);
|
||||
for (int i = 0; i < blockEntitiesLength; i++) {
|
||||
blockEntities.add(Type.BLOCK_ENTITY1_18.read(buffer));
|
||||
blockEntities.add(Types.BLOCK_ENTITY1_18.read(buffer));
|
||||
}
|
||||
|
||||
return new Chunk1_18(chunkX, chunkZ, sections, heightMap, blockEntities);
|
||||
@ -75,7 +76,7 @@ public final class ChunkType1_18 extends Type<Chunk> {
|
||||
buffer.writeInt(chunk.getX());
|
||||
buffer.writeInt(chunk.getZ());
|
||||
|
||||
Type.NAMED_COMPOUND_TAG.write(buffer, chunk.getHeightMap());
|
||||
Types.NAMED_COMPOUND_TAG.write(buffer, chunk.getHeightMap());
|
||||
|
||||
final ByteBuf sectionBuffer = buffer.alloc().buffer();
|
||||
try {
|
||||
@ -83,15 +84,15 @@ public final class ChunkType1_18 extends Type<Chunk> {
|
||||
sectionType.write(sectionBuffer, section);
|
||||
}
|
||||
sectionBuffer.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(buffer, sectionBuffer.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(buffer, sectionBuffer.readableBytes());
|
||||
buffer.writeBytes(sectionBuffer);
|
||||
} finally {
|
||||
sectionBuffer.release(); // release buffer
|
||||
}
|
||||
|
||||
Type.VAR_INT.writePrimitive(buffer, chunk.blockEntities().size());
|
||||
Types.VAR_INT.writePrimitive(buffer, chunk.blockEntities().size());
|
||||
for (final BlockEntity blockEntity : chunk.blockEntities()) {
|
||||
Type.BLOCK_ENTITY1_18.write(buffer, blockEntity);
|
||||
Types.BLOCK_ENTITY1_18.write(buffer, blockEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk1_18;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -48,10 +49,10 @@ public final class ChunkType1_20_2 extends Type<Chunk> {
|
||||
public Chunk read(final ByteBuf buffer) {
|
||||
final int chunkX = buffer.readInt();
|
||||
final int chunkZ = buffer.readInt();
|
||||
final CompoundTag heightMap = Type.COMPOUND_TAG.read(buffer);
|
||||
final CompoundTag heightMap = Types.COMPOUND_TAG.read(buffer);
|
||||
|
||||
// Read sections
|
||||
final ByteBuf sectionsBuf = buffer.readBytes(Type.VAR_INT.readPrimitive(buffer));
|
||||
final ByteBuf sectionsBuf = buffer.readBytes(Types.VAR_INT.readPrimitive(buffer));
|
||||
final ChunkSection[] sections = new ChunkSection[ySectionCount];
|
||||
try {
|
||||
for (int i = 0; i < ySectionCount; i++) {
|
||||
@ -61,10 +62,10 @@ public final class ChunkType1_20_2 extends Type<Chunk> {
|
||||
sectionsBuf.release();
|
||||
}
|
||||
|
||||
final int blockEntitiesLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int blockEntitiesLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
final List<BlockEntity> blockEntities = new ArrayList<>(blockEntitiesLength);
|
||||
for (int i = 0; i < blockEntitiesLength; i++) {
|
||||
blockEntities.add(Type.BLOCK_ENTITY1_20_2.read(buffer));
|
||||
blockEntities.add(Types.BLOCK_ENTITY1_20_2.read(buffer));
|
||||
}
|
||||
|
||||
return new Chunk1_18(chunkX, chunkZ, sections, heightMap, blockEntities);
|
||||
@ -75,7 +76,7 @@ public final class ChunkType1_20_2 extends Type<Chunk> {
|
||||
buffer.writeInt(chunk.getX());
|
||||
buffer.writeInt(chunk.getZ());
|
||||
|
||||
Type.COMPOUND_TAG.write(buffer, chunk.getHeightMap());
|
||||
Types.COMPOUND_TAG.write(buffer, chunk.getHeightMap());
|
||||
|
||||
final ByteBuf sectionBuffer = buffer.alloc().buffer();
|
||||
try {
|
||||
@ -83,15 +84,15 @@ public final class ChunkType1_20_2 extends Type<Chunk> {
|
||||
sectionType.write(sectionBuffer, section);
|
||||
}
|
||||
sectionBuffer.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(buffer, sectionBuffer.readableBytes());
|
||||
Types.VAR_INT.writePrimitive(buffer, sectionBuffer.readableBytes());
|
||||
buffer.writeBytes(sectionBuffer);
|
||||
} finally {
|
||||
sectionBuffer.release(); // release buffer
|
||||
}
|
||||
|
||||
Type.VAR_INT.writePrimitive(buffer, chunk.blockEntities().size());
|
||||
Types.VAR_INT.writePrimitive(buffer, chunk.blockEntities().size());
|
||||
for (final BlockEntity blockEntity : chunk.blockEntities()) {
|
||||
Type.BLOCK_ENTITY1_20_2.write(buffer, blockEntity);
|
||||
Types.BLOCK_ENTITY1_20_2.write(buffer, blockEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_8;
|
||||
import com.viaversion.viaversion.util.ChunkUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -57,7 +58,7 @@ public class ChunkType1_8 extends Type<Chunk> {
|
||||
final int chunkZ = input.readInt();
|
||||
final boolean fullChunk = input.readBoolean();
|
||||
final int bitmask = input.readUnsignedShort();
|
||||
final int dataLength = Type.VAR_INT.readPrimitive(input);
|
||||
final int dataLength = Types.VAR_INT.readPrimitive(input);
|
||||
final byte[] data = new byte[dataLength];
|
||||
input.readBytes(data);
|
||||
|
||||
@ -81,7 +82,7 @@ public class ChunkType1_8 extends Type<Chunk> {
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
output.writeShort(chunk.getBitmask());
|
||||
final byte[] data = serialize(chunk);
|
||||
Type.VAR_INT.writePrimitive(output, data.length);
|
||||
Types.VAR_INT.writePrimitive(output, data.length);
|
||||
output.writeBytes(data);
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_9;
|
||||
import com.viaversion.viaversion.util.ChunkUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -57,8 +58,8 @@ public class ChunkType1_9_1 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean groundUp = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
int[] biomeData = groundUp ? new int[256] : null;
|
||||
@ -101,7 +102,7 @@ public class ChunkType1_9_1 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
try {
|
||||
@ -116,7 +117,7 @@ public class ChunkType1_9_1 extends Type<Chunk> {
|
||||
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0));
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0));
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.BaseChunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_9;
|
||||
import com.viaversion.viaversion.util.ChunkUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -59,8 +60,8 @@ public class ChunkType1_9_3 extends Type<Chunk> {
|
||||
int chunkZ = input.readInt();
|
||||
|
||||
boolean fullChunk = input.readBoolean();
|
||||
int primaryBitmask = Type.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Type.VAR_INT.readPrimitive(input));
|
||||
int primaryBitmask = Types.VAR_INT.readPrimitive(input);
|
||||
ByteBuf data = input.readSlice(Types.VAR_INT.readPrimitive(input));
|
||||
|
||||
ChunkSection[] sections = new ChunkSection[16];
|
||||
int[] biomeData = fullChunk ? new int[256] : null;
|
||||
@ -87,7 +88,7 @@ public class ChunkType1_9_3 extends Type<Chunk> {
|
||||
return ChunkUtil.createEmptyChunk(chunkX, chunkZ);
|
||||
}
|
||||
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Type.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
List<CompoundTag> nbtData = new ArrayList<>(Arrays.asList(Types.NAMED_COMPOUND_TAG_ARRAY.read(input)));
|
||||
return new BaseChunk(chunkX, chunkZ, fullChunk, false, primaryBitmask, sections, biomeData, nbtData);
|
||||
}
|
||||
|
||||
@ -97,7 +98,7 @@ public class ChunkType1_9_3 extends Type<Chunk> {
|
||||
output.writeInt(chunk.getZ());
|
||||
|
||||
output.writeBoolean(chunk.isFullChunk());
|
||||
Type.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
Types.VAR_INT.writePrimitive(output, chunk.getBitmask());
|
||||
|
||||
ByteBuf buf = output.alloc().buffer();
|
||||
try {
|
||||
@ -111,7 +112,7 @@ public class ChunkType1_9_3 extends Type<Chunk> {
|
||||
section.getLight().writeSkyLight(buf);
|
||||
}
|
||||
buf.readerIndex(0);
|
||||
Type.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0));
|
||||
Types.VAR_INT.writePrimitive(output, buf.readableBytes() + (chunk.isBiomeData() ? 256 : 0));
|
||||
output.writeBytes(buf);
|
||||
} finally {
|
||||
buf.release(); // release buffer
|
||||
@ -125,6 +126,6 @@ public class ChunkType1_9_3 extends Type<Chunk> {
|
||||
}
|
||||
|
||||
// Write Block Entities
|
||||
Type.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
Types.NAMED_COMPOUND_TAG_ARRAY.write(output, chunk.getBlockEntities().toArray(new CompoundTag[0]));
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import com.viaversion.viaversion.api.minecraft.chunks.DataPalette;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.DataPaletteImpl;
|
||||
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.util.CompactArrayUtil;
|
||||
import com.viaversion.viaversion.util.MathUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -47,8 +48,8 @@ public final class PaletteType1_18 extends Type<DataPalette> {
|
||||
if (bitsPerValue == 0) {
|
||||
// Single value storage
|
||||
palette = new DataPaletteImpl(type.size(), 1);
|
||||
palette.addId(Type.VAR_INT.readPrimitive(buffer));
|
||||
Type.LONG_ARRAY_PRIMITIVE.read(buffer); // Just eat it if not empty - thanks, Hypixel
|
||||
palette.addId(Types.VAR_INT.readPrimitive(buffer));
|
||||
Types.LONG_ARRAY_PRIMITIVE.read(buffer); // Just eat it if not empty - thanks, Hypixel
|
||||
return palette;
|
||||
}
|
||||
|
||||
@ -60,17 +61,17 @@ public final class PaletteType1_18 extends Type<DataPalette> {
|
||||
|
||||
// Read palette
|
||||
if (bitsPerValue != globalPaletteBits) {
|
||||
final int paletteLength = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int paletteLength = Types.VAR_INT.readPrimitive(buffer);
|
||||
palette = new DataPaletteImpl(type.size(), paletteLength);
|
||||
for (int i = 0; i < paletteLength; i++) {
|
||||
palette.addId(Type.VAR_INT.readPrimitive(buffer));
|
||||
palette.addId(Types.VAR_INT.readPrimitive(buffer));
|
||||
}
|
||||
} else {
|
||||
palette = new DataPaletteImpl(type.size());
|
||||
}
|
||||
|
||||
// Read values
|
||||
final long[] values = Type.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
final long[] values = Types.LONG_ARRAY_PRIMITIVE.read(buffer);
|
||||
if (values.length > 0) {
|
||||
final int valuesPerLong = (char) (64 / bitsPerValue);
|
||||
final int expectedLength = (type.size() + valuesPerLong - 1) / valuesPerLong;
|
||||
@ -88,8 +89,8 @@ public final class PaletteType1_18 extends Type<DataPalette> {
|
||||
if (size == 1) {
|
||||
// Single value palette
|
||||
buffer.writeByte(0); // 0 bit storage
|
||||
Type.VAR_INT.writePrimitive(buffer, palette.idByIndex(0));
|
||||
Type.VAR_INT.writePrimitive(buffer, 0); // Empty values length
|
||||
Types.VAR_INT.writePrimitive(buffer, palette.idByIndex(0));
|
||||
Types.VAR_INT.writePrimitive(buffer, 0); // Empty values length
|
||||
return;
|
||||
}
|
||||
|
||||
@ -104,12 +105,12 @@ public final class PaletteType1_18 extends Type<DataPalette> {
|
||||
|
||||
if (bitsPerValue != globalPaletteBits) {
|
||||
// Write palette
|
||||
Type.VAR_INT.writePrimitive(buffer, size);
|
||||
Types.VAR_INT.writePrimitive(buffer, size);
|
||||
for (int i = 0; i < size; i++) {
|
||||
Type.VAR_INT.writePrimitive(buffer, palette.idByIndex(i));
|
||||
Types.VAR_INT.writePrimitive(buffer, palette.idByIndex(i));
|
||||
}
|
||||
}
|
||||
|
||||
Type.LONG_ARRAY_PRIMITIVE.write(buffer, CompactArrayUtil.createCompactArrayWithPadding(bitsPerValue, type.size(), bitsPerValue == globalPaletteBits ? palette::idAt : palette::paletteIndexAt));
|
||||
Types.LONG_ARRAY_PRIMITIVE.write(buffer, CompactArrayUtil.createCompactArrayWithPadding(bitsPerValue, type.size(), bitsPerValue == globalPaletteBits ? palette::idAt : palette::paletteIndexAt));
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.StructuredItem;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
// Very similar to normal items (and just results in an item), except it allows non-positive amounts and has id/amount swapped because ???
|
||||
@ -43,16 +44,16 @@ public final class ItemCostType1_20_5 extends Type<Item> {
|
||||
|
||||
@Override
|
||||
public Item read(final ByteBuf buffer) {
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int amount = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int amount = Types.VAR_INT.readPrimitive(buffer);
|
||||
final StructuredData<?>[] dataArray = dataArrayType.read(buffer);
|
||||
return new StructuredItem(id, amount, new StructuredDataContainer(dataArray));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Item object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
Type.VAR_INT.writePrimitive(buffer, object.amount());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.amount());
|
||||
dataArrayType.write(buffer, object.structuredData().data().values().toArray(EMPTY_DATA_ARRAY));
|
||||
}
|
||||
|
||||
|
@ -24,25 +24,26 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ItemShortArrayType1_13 extends BaseItemArrayType {
|
||||
|
||||
@Override
|
||||
public Item[] read(ByteBuf buffer) {
|
||||
int amount = Type.SHORT.readPrimitive(buffer);
|
||||
int amount = Types.SHORT.readPrimitive(buffer);
|
||||
Item[] array = new Item[amount];
|
||||
for (int i = 0; i < amount; i++) {
|
||||
array[i] = Type.ITEM1_13.read(buffer);
|
||||
array[i] = Types.ITEM1_13.read(buffer);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, Item[] object) {
|
||||
Type.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
Types.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
for (Item o : object) {
|
||||
Type.ITEM1_13.write(buffer, o);
|
||||
Types.ITEM1_13.write(buffer, o);
|
||||
}
|
||||
}
|
||||
}
|
@ -24,25 +24,26 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ItemShortArrayType1_13_2 extends BaseItemArrayType {
|
||||
|
||||
@Override
|
||||
public Item[] read(ByteBuf buffer) {
|
||||
int amount = Type.SHORT.readPrimitive(buffer);
|
||||
int amount = Types.SHORT.readPrimitive(buffer);
|
||||
Item[] array = new Item[amount];
|
||||
for (int i = 0; i < amount; i++) {
|
||||
array[i] = Type.ITEM1_13_2.read(buffer);
|
||||
array[i] = Types.ITEM1_13_2.read(buffer);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, Item[] object) {
|
||||
Type.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
Types.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
for (Item o : object) {
|
||||
Type.ITEM1_13_2.write(buffer, o);
|
||||
Types.ITEM1_13_2.write(buffer, o);
|
||||
}
|
||||
}
|
||||
}
|
@ -24,25 +24,26 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ItemShortArrayType1_8 extends BaseItemArrayType {
|
||||
|
||||
@Override
|
||||
public Item[] read(ByteBuf buffer) {
|
||||
int amount = Type.SHORT.readPrimitive(buffer);
|
||||
int amount = Types.SHORT.readPrimitive(buffer);
|
||||
Item[] array = new Item[amount];
|
||||
for (int i = 0; i < amount; i++) {
|
||||
array[i] = Type.ITEM1_8.read(buffer);
|
||||
array[i] = Types.ITEM1_8.read(buffer);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, Item[] object) {
|
||||
Type.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
Types.SHORT.writePrimitive(buffer, (short) object.length);
|
||||
for (Item o : object) {
|
||||
Type.ITEM1_8.write(buffer, o);
|
||||
Types.ITEM1_8.write(buffer, o);
|
||||
}
|
||||
}
|
||||
}
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.DataItem;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -42,7 +43,7 @@ public class ItemType1_13 extends Type<Item> {
|
||||
Item item = new DataItem();
|
||||
item.setIdentifier(id);
|
||||
item.setAmount(buffer.readByte());
|
||||
item.setTag(Type.NAMED_COMPOUND_TAG.read(buffer));
|
||||
item.setTag(Types.NAMED_COMPOUND_TAG.read(buffer));
|
||||
return item;
|
||||
}
|
||||
}
|
||||
@ -54,7 +55,7 @@ public class ItemType1_13 extends Type<Item> {
|
||||
} else {
|
||||
buffer.writeShort(object.identifier());
|
||||
buffer.writeByte(object.amount());
|
||||
Type.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
Types.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.DataItem;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -40,9 +41,9 @@ public class ItemType1_13_2 extends Type<Item> {
|
||||
return null;
|
||||
} else {
|
||||
Item item = new DataItem();
|
||||
item.setIdentifier(Type.VAR_INT.readPrimitive(buffer));
|
||||
item.setIdentifier(Types.VAR_INT.readPrimitive(buffer));
|
||||
item.setAmount(buffer.readByte());
|
||||
item.setTag(Type.NAMED_COMPOUND_TAG.read(buffer));
|
||||
item.setTag(Types.NAMED_COMPOUND_TAG.read(buffer));
|
||||
return item;
|
||||
}
|
||||
}
|
||||
@ -53,9 +54,9 @@ public class ItemType1_13_2 extends Type<Item> {
|
||||
buffer.writeBoolean(false);
|
||||
} else {
|
||||
buffer.writeBoolean(true);
|
||||
Type.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
buffer.writeByte(object.amount());
|
||||
Type.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
Types.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.DataItem;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -41,9 +42,9 @@ public class ItemType1_20_2 extends Type<Item> {
|
||||
}
|
||||
|
||||
final Item item = new DataItem();
|
||||
item.setIdentifier(Type.VAR_INT.readPrimitive(buffer));
|
||||
item.setIdentifier(Types.VAR_INT.readPrimitive(buffer));
|
||||
item.setAmount(buffer.readByte());
|
||||
item.setTag(Type.COMPOUND_TAG.read(buffer));
|
||||
item.setTag(Types.COMPOUND_TAG.read(buffer));
|
||||
return item;
|
||||
}
|
||||
|
||||
@ -53,9 +54,9 @@ public class ItemType1_20_2 extends Type<Item> {
|
||||
buffer.writeBoolean(false);
|
||||
} else {
|
||||
buffer.writeBoolean(true);
|
||||
Type.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
buffer.writeByte(object.amount());
|
||||
Type.COMPOUND_TAG.write(buffer, object.tag());
|
||||
Types.COMPOUND_TAG.write(buffer, object.tag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.StructuredItem;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import it.unimi.dsi.fastutil.objects.Reference2ObjectOpenHashMap;
|
||||
import java.util.Map;
|
||||
@ -45,19 +46,19 @@ public class ItemType1_20_5 extends Type<Item> {
|
||||
|
||||
@Override
|
||||
public @Nullable Item read(final ByteBuf buffer) {
|
||||
final int amount = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int amount = Types.VAR_INT.readPrimitive(buffer);
|
||||
if (amount <= 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer);
|
||||
final Map<StructuredDataKey<?>, StructuredData<?>> data = readData(buffer);
|
||||
return new StructuredItem(id, amount, new StructuredDataContainer(data));
|
||||
}
|
||||
|
||||
private Map<StructuredDataKey<?>, StructuredData<?>> readData(final ByteBuf buffer) {
|
||||
final int valuesSize = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int markersSize = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int valuesSize = Types.VAR_INT.readPrimitive(buffer);
|
||||
final int markersSize = Types.VAR_INT.readPrimitive(buffer);
|
||||
if (valuesSize == 0 && markersSize == 0) {
|
||||
return new Reference2ObjectOpenHashMap<>();
|
||||
}
|
||||
@ -71,7 +72,7 @@ public class ItemType1_20_5 extends Type<Item> {
|
||||
}
|
||||
|
||||
for (int i = 0; i < markersSize; i++) {
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer);
|
||||
final StructuredDataKey<?> key = dataType.key(id);
|
||||
Preconditions.checkNotNull(key, "No data component serializer found for empty id %s", id);
|
||||
map.put(key, StructuredData.empty(key, id));
|
||||
@ -82,12 +83,12 @@ public class ItemType1_20_5 extends Type<Item> {
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, @Nullable final Item object) {
|
||||
if (object == null) {
|
||||
Type.VAR_INT.writePrimitive(buffer, 0);
|
||||
Types.VAR_INT.writePrimitive(buffer, 0);
|
||||
return;
|
||||
}
|
||||
|
||||
Type.VAR_INT.writePrimitive(buffer, object.amount());
|
||||
Type.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.amount());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.identifier());
|
||||
|
||||
final Map<StructuredDataKey<?>, StructuredData<?>> data = object.structuredData().data();
|
||||
int valuesSize = 0;
|
||||
@ -100,8 +101,8 @@ public class ItemType1_20_5 extends Type<Item> {
|
||||
}
|
||||
}
|
||||
|
||||
Type.VAR_INT.writePrimitive(buffer, valuesSize);
|
||||
Type.VAR_INT.writePrimitive(buffer, markersSize);
|
||||
Types.VAR_INT.writePrimitive(buffer, valuesSize);
|
||||
Types.VAR_INT.writePrimitive(buffer, markersSize);
|
||||
|
||||
for (final StructuredData<?> value : data.values()) {
|
||||
if (value.isPresent()) {
|
||||
@ -110,7 +111,7 @@ public class ItemType1_20_5 extends Type<Item> {
|
||||
}
|
||||
for (final StructuredData<?> value : data.values()) {
|
||||
if (value.isEmpty()) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value.id());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.id());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.item;
|
||||
import com.viaversion.viaversion.api.minecraft.item.DataItem;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -44,7 +45,7 @@ public class ItemType1_8 extends Type<Item> {
|
||||
item.setIdentifier(id);
|
||||
item.setAmount(buffer.readByte());
|
||||
item.setData(buffer.readShort());
|
||||
item.setTag(Type.NAMED_COMPOUND_TAG.read(buffer));
|
||||
item.setTag(Types.NAMED_COMPOUND_TAG.read(buffer));
|
||||
return item;
|
||||
}
|
||||
}
|
||||
@ -57,7 +58,7 @@ public class ItemType1_8 extends Type<Item> {
|
||||
buffer.writeShort(object.identifier());
|
||||
buffer.writeByte(object.amount());
|
||||
buffer.writeShort(object.data());
|
||||
Type.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
Types.NAMED_COMPOUND_TAG.write(buffer, object.tag());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.data.StructuredData;
|
||||
import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey;
|
||||
import com.viaversion.viaversion.api.protocol.Protocol;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
|
||||
@ -41,14 +42,14 @@ public class StructuredDataType extends Type<StructuredData<?>> {
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final StructuredData<?> object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.id());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.id());
|
||||
object.write(buffer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StructuredData<?> read(final ByteBuf buffer) {
|
||||
Preconditions.checkNotNull(types, "StructuredDataType has not been initialized");
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer);
|
||||
final StructuredDataKey<?> key = this.types[id];
|
||||
if (key == null) {
|
||||
throw new IllegalArgumentException("No data component serializer found for id " + id);
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.ChunkPosition;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ChunkPositionType extends Type<ChunkPosition> {
|
||||
@ -34,12 +35,12 @@ public class ChunkPositionType extends Type<ChunkPosition> {
|
||||
|
||||
@Override
|
||||
public ChunkPosition read(ByteBuf buffer) {
|
||||
final long chunkKey = Type.LONG.readPrimitive(buffer);
|
||||
final long chunkKey = Types.LONG.readPrimitive(buffer);
|
||||
return new ChunkPosition(chunkKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, ChunkPosition chunkPosition) {
|
||||
Type.LONG.writePrimitive(buffer, chunkPosition.chunkKey());
|
||||
Types.LONG.writePrimitive(buffer, chunkPosition.chunkKey());
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.EulerAngle;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class EulerAngleType extends Type<EulerAngle> {
|
||||
@ -33,17 +34,17 @@ public class EulerAngleType extends Type<EulerAngle> {
|
||||
|
||||
@Override
|
||||
public EulerAngle read(ByteBuf buffer) {
|
||||
float x = Type.FLOAT.readPrimitive(buffer);
|
||||
float y = Type.FLOAT.readPrimitive(buffer);
|
||||
float z = Type.FLOAT.readPrimitive(buffer);
|
||||
float x = Types.FLOAT.readPrimitive(buffer);
|
||||
float y = Types.FLOAT.readPrimitive(buffer);
|
||||
float z = Types.FLOAT.readPrimitive(buffer);
|
||||
|
||||
return new EulerAngle(x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, EulerAngle object) {
|
||||
Type.FLOAT.writePrimitive(buffer, object.x());
|
||||
Type.FLOAT.writePrimitive(buffer, object.y());
|
||||
Type.FLOAT.writePrimitive(buffer, object.z());
|
||||
Types.FLOAT.writePrimitive(buffer, object.x());
|
||||
Types.FLOAT.writePrimitive(buffer, object.y());
|
||||
Types.FLOAT.writePrimitive(buffer, object.z());
|
||||
}
|
||||
}
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
import com.viaversion.viaversion.api.minecraft.GlobalPosition;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class GlobalPositionType extends Type<GlobalPosition> {
|
||||
@ -35,20 +36,20 @@ public class GlobalPositionType extends Type<GlobalPosition> {
|
||||
|
||||
@Override
|
||||
public GlobalPosition read(ByteBuf buffer) {
|
||||
final String dimension = Type.STRING.read(buffer);
|
||||
return Type.POSITION1_14.read(buffer).withDimension(dimension);
|
||||
final String dimension = Types.STRING.read(buffer);
|
||||
return Types.BLOCK_POSITION1_14.read(buffer).withDimension(dimension);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, GlobalPosition object) {
|
||||
Type.STRING.write(buffer, object.dimension());
|
||||
Type.POSITION1_14.write(buffer, object);
|
||||
Types.STRING.write(buffer, object.dimension());
|
||||
Types.BLOCK_POSITION1_14.write(buffer, object);
|
||||
}
|
||||
|
||||
public static final class OptionalGlobalPositionType extends OptionalType<GlobalPosition> {
|
||||
|
||||
public OptionalGlobalPositionType() {
|
||||
super(Type.GLOBAL_POSITION);
|
||||
super(Types.GLOBAL_POSITION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
import com.viaversion.viaversion.api.minecraft.Position;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class PositionType1_14 extends Type<Position> {
|
||||
@ -53,7 +54,7 @@ public class PositionType1_14 extends Type<Position> {
|
||||
public static final class OptionalPosition1_14Type extends OptionalType<Position> {
|
||||
|
||||
public OptionalPosition1_14Type() {
|
||||
super(Type.POSITION1_14);
|
||||
super(Types.BLOCK_POSITION1_14);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
import com.viaversion.viaversion.api.minecraft.Position;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class PositionType1_8 extends Type<Position> {
|
||||
@ -51,7 +52,7 @@ public class PositionType1_8 extends Type<Position> {
|
||||
public static final class OptionalPositionType extends OptionalType<Position> {
|
||||
|
||||
public OptionalPositionType() {
|
||||
super(Type.POSITION1_8);
|
||||
super(Types.BLOCK_POSITION1_8);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types.math;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.Vector;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class VectorType extends Type<Vector> {
|
||||
@ -33,17 +34,17 @@ public class VectorType extends Type<Vector> {
|
||||
|
||||
@Override
|
||||
public Vector read(ByteBuf buffer) {
|
||||
int x = Type.INT.read(buffer);
|
||||
int y = Type.INT.read(buffer);
|
||||
int z = Type.INT.read(buffer);
|
||||
int x = Types.INT.read(buffer);
|
||||
int y = Types.INT.read(buffer);
|
||||
int z = Types.INT.read(buffer);
|
||||
|
||||
return new Vector(x, y, z);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(ByteBuf buffer, Vector object) {
|
||||
Type.INT.write(buffer, object.blockX());
|
||||
Type.INT.write(buffer, object.blockY());
|
||||
Type.INT.write(buffer, object.blockZ());
|
||||
Types.INT.write(buffer, object.blockX());
|
||||
Types.INT.write(buffer, object.blockY());
|
||||
Types.INT.write(buffer, object.blockZ());
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ package com.viaversion.viaversion.api.type.types.metadata;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.MetaType;
|
||||
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public abstract class ModernMetaType extends MetaTypeTemplate {
|
||||
@ -34,7 +34,7 @@ public abstract class ModernMetaType extends MetaTypeTemplate {
|
||||
public Metadata read(final ByteBuf buffer) {
|
||||
final short index = buffer.readUnsignedByte();
|
||||
if (index == END) return null; // End of metadata
|
||||
final MetaType type = this.getType(Type.VAR_INT.readPrimitive(buffer));
|
||||
final MetaType type = this.getType(Types.VAR_INT.readPrimitive(buffer));
|
||||
return new Metadata(index, type, type.type().read(buffer));
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ public abstract class ModernMetaType extends MetaTypeTemplate {
|
||||
} else {
|
||||
buffer.writeByte(object.id());
|
||||
final MetaType type = object.metaType();
|
||||
Type.VAR_INT.writePrimitive(buffer, type.typeId());
|
||||
Types.VAR_INT.writePrimitive(buffer, type.typeId());
|
||||
type.type().write(buffer, object.getValue());
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
import com.viaversion.nbt.tag.CompoundTag;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import java.io.IOException;
|
||||
|
||||
@ -62,7 +63,7 @@ public class CompoundTagType extends Type<CompoundTag> {
|
||||
public static final class OptionalCompoundTagType extends OptionalType<CompoundTag> {
|
||||
|
||||
public OptionalCompoundTagType() {
|
||||
super(Type.COMPOUND_TAG);
|
||||
super(Types.COMPOUND_TAG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.GameProfile;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public final class GameProfileType extends Type<GameProfile> {
|
||||
@ -34,14 +35,14 @@ public final class GameProfileType extends Type<GameProfile> {
|
||||
|
||||
@Override
|
||||
public GameProfile read(final ByteBuf buffer) {
|
||||
final String name = Type.OPTIONAL_STRING.read(buffer);
|
||||
final java.util.UUID id = Type.OPTIONAL_UUID.read(buffer);
|
||||
final int propertyCount = Type.VAR_INT.readPrimitive(buffer);
|
||||
final String name = Types.OPTIONAL_STRING.read(buffer);
|
||||
final java.util.UUID id = Types.OPTIONAL_UUID.read(buffer);
|
||||
final int propertyCount = Types.VAR_INT.readPrimitive(buffer);
|
||||
final GameProfile.Property[] properties = new GameProfile.Property[propertyCount];
|
||||
for (int i = 0; i < propertyCount; i++) {
|
||||
final String propertyName = Type.STRING.read(buffer);
|
||||
final String propertyValue = Type.STRING.read(buffer);
|
||||
final String propertySignature = Type.OPTIONAL_STRING.read(buffer);
|
||||
final String propertyName = Types.STRING.read(buffer);
|
||||
final String propertyValue = Types.STRING.read(buffer);
|
||||
final String propertySignature = Types.OPTIONAL_STRING.read(buffer);
|
||||
properties[i] = new GameProfile.Property(propertyName, propertyValue, propertySignature);
|
||||
}
|
||||
return new GameProfile(name, id, properties);
|
||||
@ -49,13 +50,13 @@ public final class GameProfileType extends Type<GameProfile> {
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final GameProfile value) {
|
||||
Type.OPTIONAL_STRING.write(buffer, value.name());
|
||||
Type.OPTIONAL_UUID.write(buffer, value.id());
|
||||
Type.VAR_INT.writePrimitive(buffer, value.properties().length);
|
||||
Types.OPTIONAL_STRING.write(buffer, value.name());
|
||||
Types.OPTIONAL_UUID.write(buffer, value.id());
|
||||
Types.VAR_INT.writePrimitive(buffer, value.properties().length);
|
||||
for (final GameProfile.Property property : value.properties()) {
|
||||
Type.STRING.write(buffer, property.name());
|
||||
Type.STRING.write(buffer, property.value());
|
||||
Type.OPTIONAL_STRING.write(buffer, property.signature());
|
||||
Types.STRING.write(buffer, property.name());
|
||||
Types.STRING.write(buffer, property.value());
|
||||
Types.OPTIONAL_STRING.write(buffer, property.signature());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
import com.viaversion.viaversion.api.minecraft.HolderSet;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class HolderSetType extends Type<HolderSet> {
|
||||
@ -35,15 +36,15 @@ public class HolderSetType extends Type<HolderSet> {
|
||||
|
||||
@Override
|
||||
public HolderSet read(final ByteBuf buffer) {
|
||||
final int size = Type.VAR_INT.readPrimitive(buffer) - 1;
|
||||
final int size = Types.VAR_INT.readPrimitive(buffer) - 1;
|
||||
if (size == -1) {
|
||||
final String tag = Type.STRING.read(buffer);
|
||||
final String tag = Types.STRING.read(buffer);
|
||||
return HolderSet.of(tag);
|
||||
}
|
||||
|
||||
final int[] values = new int[size];
|
||||
for (int i = 0; i < size; i++) {
|
||||
values[i] = Type.VAR_INT.readPrimitive(buffer);
|
||||
values[i] = Types.VAR_INT.readPrimitive(buffer);
|
||||
}
|
||||
return HolderSet.of(values);
|
||||
}
|
||||
@ -51,13 +52,13 @@ public class HolderSetType extends Type<HolderSet> {
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final HolderSet object) {
|
||||
if (object.hasTagKey()) {
|
||||
Type.VAR_INT.writePrimitive(buffer, 0);
|
||||
Type.STRING.write(buffer, object.tagKey());
|
||||
Types.VAR_INT.writePrimitive(buffer, 0);
|
||||
Types.STRING.write(buffer, object.tagKey());
|
||||
} else {
|
||||
final int[] values = object.ids();
|
||||
Type.VAR_INT.writePrimitive(buffer, values.length + 1);
|
||||
Types.VAR_INT.writePrimitive(buffer, values.length + 1);
|
||||
for (final int value : values) {
|
||||
Type.VAR_INT.writePrimitive(buffer, value);
|
||||
Types.VAR_INT.writePrimitive(buffer, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -65,7 +66,7 @@ public class HolderSetType extends Type<HolderSet> {
|
||||
public static final class OptionalHolderSetType extends OptionalType<HolderSet> {
|
||||
|
||||
public OptionalHolderSetType() {
|
||||
super(Type.HOLDER_SET);
|
||||
super(Types.HOLDER_SET);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
|
||||
import com.viaversion.viaversion.api.minecraft.Holder;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public abstract class HolderType<T> extends Type<Holder<T>> {
|
||||
@ -34,7 +35,7 @@ public abstract class HolderType<T> extends Type<Holder<T>> {
|
||||
|
||||
@Override
|
||||
public Holder<T> read(final ByteBuf buffer) {
|
||||
final int id = Type.VAR_INT.readPrimitive(buffer) - 1; // Normalize id
|
||||
final int id = Types.VAR_INT.readPrimitive(buffer) - 1; // Normalize id
|
||||
if (id == -1) {
|
||||
return Holder.of(readDirect(buffer));
|
||||
}
|
||||
@ -44,9 +45,9 @@ public abstract class HolderType<T> extends Type<Holder<T>> {
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Holder<T> object) {
|
||||
if (object.hasId()) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.id() + 1); // Normalize id
|
||||
Types.VAR_INT.writePrimitive(buffer, object.id() + 1); // Normalize id
|
||||
} else {
|
||||
Type.VAR_INT.writePrimitive(buffer, 0);
|
||||
Types.VAR_INT.writePrimitive(buffer, 0);
|
||||
writeDirect(buffer, object.value());
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import com.viaversion.nbt.tag.Tag;
|
||||
import com.viaversion.nbt.limiter.TagLimiter;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.ByteBufInputStream;
|
||||
import io.netty.buffer.ByteBufOutputStream;
|
||||
@ -94,7 +95,7 @@ public class NamedCompoundTagType extends Type<CompoundTag> {
|
||||
public static final class OptionalNamedCompoundTagType extends OptionalType<CompoundTag> {
|
||||
|
||||
public OptionalNamedCompoundTagType() {
|
||||
super(Type.NAMED_COMPOUND_TAG);
|
||||
super(Types.NAMED_COMPOUND_TAG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ import com.viaversion.viaversion.api.minecraft.Particle;
|
||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||
import com.viaversion.viaversion.api.protocol.Protocol;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import com.viaversion.viaversion.api.type.types.version.Types1_20_5;
|
||||
import com.viaversion.viaversion.util.Key;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
@ -40,7 +41,7 @@ public class ParticleType extends DynamicType<Particle> {
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final Particle object) {
|
||||
Type.VAR_INT.writePrimitive(buffer, object.id());
|
||||
Types.VAR_INT.writePrimitive(buffer, object.id());
|
||||
for (final Particle.ParticleData<?> data : object.getArguments()) {
|
||||
data.write(buffer);
|
||||
}
|
||||
@ -48,7 +49,7 @@ public class ParticleType extends DynamicType<Particle> {
|
||||
|
||||
@Override
|
||||
public Particle read(final ByteBuf buffer) {
|
||||
final int type = Type.VAR_INT.readPrimitive(buffer);
|
||||
final int type = Types.VAR_INT.readPrimitive(buffer);
|
||||
final Particle particle = new Particle(type);
|
||||
readData(buffer, particle);
|
||||
return particle;
|
||||
@ -66,77 +67,77 @@ public class ParticleType extends DynamicType<Particle> {
|
||||
public static final class Readers {
|
||||
|
||||
public static final DataReader<Particle> BLOCK = (buf, particle) -> {
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Flat Block
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Flat Block
|
||||
};
|
||||
public static final DataReader<Particle> ITEM1_13 = itemHandler(Type.ITEM1_13);
|
||||
public static final DataReader<Particle> ITEM1_13_2 = itemHandler(Type.ITEM1_13_2);
|
||||
public static final DataReader<Particle> ITEM1_20_2 = itemHandler(Type.ITEM1_20_2);
|
||||
public static final DataReader<Particle> ITEM1_13 = itemHandler(Types.ITEM1_13);
|
||||
public static final DataReader<Particle> ITEM1_13_2 = itemHandler(Types.ITEM1_13_2);
|
||||
public static final DataReader<Particle> ITEM1_20_2 = itemHandler(Types.ITEM1_20_2);
|
||||
public static final DataReader<Particle> ITEM1_20_5 = itemHandler(Types1_20_5.ITEM);
|
||||
public static final DataReader<Particle> DUST = (buf, particle) -> {
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Red 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Green 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Blue 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Scale 0.01-4
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Red 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Green 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Blue 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Scale 0.01-4
|
||||
};
|
||||
public static final DataReader<Particle> DUST_TRANSITION = (buf, particle) -> {
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Red 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Green 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Blue 0-1
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Scale 0.01-4 (moved to the end as of 24w03a / 1.20.5)
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Red
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Green
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Blue
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Red 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Green 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Blue 0-1
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Scale 0.01-4 (moved to the end as of 24w03a / 1.20.5)
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Red
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Green
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Blue
|
||||
};
|
||||
public static final DataReader<Particle> VIBRATION = (buf, particle) -> {
|
||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // From block pos
|
||||
particle.add(Types.BLOCK_POSITION1_14, Types.BLOCK_POSITION1_14.read(buf)); // From block pos
|
||||
|
||||
String resourceLocation = Type.STRING.read(buf);
|
||||
particle.add(Type.STRING, resourceLocation);
|
||||
String resourceLocation = Types.STRING.read(buf);
|
||||
particle.add(Types.STRING, resourceLocation);
|
||||
|
||||
resourceLocation = Key.stripMinecraftNamespace(resourceLocation);
|
||||
if (resourceLocation.equals("block")) {
|
||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
||||
particle.add(Types.BLOCK_POSITION1_14, Types.BLOCK_POSITION1_14.read(buf)); // Target block pos
|
||||
} else if (resourceLocation.equals("entity")) {
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
} else {
|
||||
Via.getPlatform().getLogger().warning("Unknown vibration path position source type: " + resourceLocation);
|
||||
}
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
};
|
||||
public static final DataReader<Particle> VIBRATION1_19 = (buf, particle) -> {
|
||||
String resourceLocation = Type.STRING.read(buf);
|
||||
particle.add(Type.STRING, resourceLocation);
|
||||
String resourceLocation = Types.STRING.read(buf);
|
||||
particle.add(Types.STRING, resourceLocation);
|
||||
|
||||
resourceLocation = Key.stripMinecraftNamespace(resourceLocation);
|
||||
if (resourceLocation.equals("block")) {
|
||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
||||
particle.add(Types.BLOCK_POSITION1_14, Types.BLOCK_POSITION1_14.read(buf)); // Target block pos
|
||||
} else if (resourceLocation.equals("entity")) {
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Y offset
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Y offset
|
||||
} else {
|
||||
Via.getPlatform().getLogger().warning("Unknown vibration path position source type: " + resourceLocation);
|
||||
}
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
};
|
||||
public static final DataReader<Particle> VIBRATION1_20_3 = (buf, particle) -> {
|
||||
final int sourceTypeId = Type.VAR_INT.readPrimitive(buf);
|
||||
particle.add(Type.VAR_INT, sourceTypeId);
|
||||
final int sourceTypeId = Types.VAR_INT.readPrimitive(buf);
|
||||
particle.add(Types.VAR_INT, sourceTypeId);
|
||||
if (sourceTypeId == 0) { // Block
|
||||
particle.add(Type.POSITION1_14, Type.POSITION1_14.read(buf)); // Target block pos
|
||||
particle.add(Types.BLOCK_POSITION1_14, Types.BLOCK_POSITION1_14.read(buf)); // Target block pos
|
||||
} else if (sourceTypeId == 1) { // Entity
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Y offset
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Target entity
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Y offset
|
||||
} else {
|
||||
Via.getPlatform().getLogger().warning("Unknown vibration path position source type: " + sourceTypeId);
|
||||
}
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||
};
|
||||
public static final DataReader<Particle> SCULK_CHARGE = (buf, particle) -> {
|
||||
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Roll
|
||||
particle.add(Types.FLOAT, Types.FLOAT.readPrimitive(buf)); // Roll
|
||||
};
|
||||
public static final DataReader<Particle> SHRIEK = (buf, particle) -> {
|
||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Delay
|
||||
particle.add(Types.VAR_INT, Types.VAR_INT.readPrimitive(buf)); // Delay
|
||||
};
|
||||
public static final DataReader<Particle> COLOR = (buf, particle) -> particle.add(Type.INT, buf.readInt());
|
||||
public static final DataReader<Particle> COLOR = (buf, particle) -> particle.add(Types.INT, buf.readInt());
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
import com.viaversion.viaversion.api.minecraft.PlayerMessageSignature;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class PlayerMessageSignatureType extends Type<PlayerMessageSignature> {
|
||||
@ -35,19 +36,19 @@ public class PlayerMessageSignatureType extends Type<PlayerMessageSignature> {
|
||||
|
||||
@Override
|
||||
public PlayerMessageSignature read(final ByteBuf buffer) {
|
||||
return new PlayerMessageSignature(Type.UUID.read(buffer), Type.BYTE_ARRAY_PRIMITIVE.read(buffer));
|
||||
return new PlayerMessageSignature(Types.UUID.read(buffer), Types.BYTE_ARRAY_PRIMITIVE.read(buffer));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final PlayerMessageSignature value) {
|
||||
Type.UUID.write(buffer, value.uuid());
|
||||
Type.BYTE_ARRAY_PRIMITIVE.write(buffer, value.signatureBytes());
|
||||
Types.UUID.write(buffer, value.uuid());
|
||||
Types.BYTE_ARRAY_PRIMITIVE.write(buffer, value.signatureBytes());
|
||||
}
|
||||
|
||||
public static final class OptionalPlayerMessageSignatureType extends OptionalType<PlayerMessageSignature> {
|
||||
|
||||
public OptionalPlayerMessageSignatureType() {
|
||||
super(Type.PLAYER_MESSAGE_SIGNATURE);
|
||||
super(Types.PLAYER_MESSAGE_SIGNATURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ package com.viaversion.viaversion.api.type.types.misc;
|
||||
import com.viaversion.viaversion.api.minecraft.ProfileKey;
|
||||
import com.viaversion.viaversion.api.type.OptionalType;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.api.type.Types;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
public class ProfileKeyType extends Type<ProfileKey> {
|
||||
@ -35,20 +36,20 @@ public class ProfileKeyType extends Type<ProfileKey> {
|
||||
|
||||
@Override
|
||||
public ProfileKey read(final ByteBuf buffer) {
|
||||
return new ProfileKey(buffer.readLong(), Type.BYTE_ARRAY_PRIMITIVE.read(buffer), Type.BYTE_ARRAY_PRIMITIVE.read(buffer));
|
||||
return new ProfileKey(buffer.readLong(), Types.BYTE_ARRAY_PRIMITIVE.read(buffer), Types.BYTE_ARRAY_PRIMITIVE.read(buffer));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(final ByteBuf buffer, final ProfileKey object) {
|
||||
buffer.writeLong(object.expiresAt());
|
||||
Type.BYTE_ARRAY_PRIMITIVE.write(buffer, object.publicKey());
|
||||
Type.BYTE_ARRAY_PRIMITIVE.write(buffer, object.keySignature());
|
||||
Types.BYTE_ARRAY_PRIMITIVE.write(buffer, object.publicKey());
|
||||
Types.BYTE_ARRAY_PRIMITIVE.write(buffer, object.keySignature());
|
||||
}
|
||||
|
||||
public static final class OptionalProfileKeyType extends OptionalType<ProfileKey> {
|
||||
|
||||
public OptionalProfileKeyType() {
|
||||
super(Type.PROFILE_KEY);
|
||||
super(Types.PROFILE_KEY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user