mirror of
https://github.com/ViaVersion/ViaVersion.git
synced 2024-11-22 18:15:39 +01:00
1.19 Experimental Snapshot 1
This commit is contained in:
parent
9798ec296a
commit
a12dfa405f
@ -0,0 +1,251 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 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.minecraft.entities;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.util.EntityTypeUtil;
|
||||||
|
|
||||||
|
public enum Entity1_19Types implements EntityType {
|
||||||
|
|
||||||
|
ENTITY(-1),
|
||||||
|
|
||||||
|
AREA_EFFECT_CLOUD(0, ENTITY),
|
||||||
|
END_CRYSTAL(19, ENTITY),
|
||||||
|
EVOKER_FANGS(24, ENTITY),
|
||||||
|
EXPERIENCE_ORB(25, ENTITY),
|
||||||
|
EYE_OF_ENDER(26, ENTITY),
|
||||||
|
FALLING_BLOCK(27, ENTITY),
|
||||||
|
FIREWORK_ROCKET(28, ENTITY),
|
||||||
|
ITEM(41, ENTITY),
|
||||||
|
LLAMA_SPIT(47, ENTITY),
|
||||||
|
TNT(69, ENTITY),
|
||||||
|
SHULKER_BULLET(76, ENTITY),
|
||||||
|
FISHING_BOBBER(113, ENTITY),
|
||||||
|
|
||||||
|
LIVINGENTITY(-1, ENTITY),
|
||||||
|
ARMOR_STAND(1, LIVINGENTITY),
|
||||||
|
MARKER(49, ENTITY),
|
||||||
|
PLAYER(112, LIVINGENTITY),
|
||||||
|
|
||||||
|
ABSTRACT_INSENTIENT(-1, LIVINGENTITY),
|
||||||
|
ENDER_DRAGON(20, ABSTRACT_INSENTIENT),
|
||||||
|
|
||||||
|
BEE(5, ABSTRACT_INSENTIENT),
|
||||||
|
|
||||||
|
ABSTRACT_CREATURE(-1, ABSTRACT_INSENTIENT),
|
||||||
|
|
||||||
|
ABSTRACT_AGEABLE(-1, ABSTRACT_CREATURE),
|
||||||
|
VILLAGER(98, ABSTRACT_AGEABLE),
|
||||||
|
WANDERING_TRADER(100, ABSTRACT_AGEABLE),
|
||||||
|
|
||||||
|
// Animals
|
||||||
|
ABSTRACT_ANIMAL(-1, ABSTRACT_AGEABLE),
|
||||||
|
AXOLOTL(3, ABSTRACT_ANIMAL),
|
||||||
|
DOLPHIN(14, ABSTRACT_INSENTIENT),
|
||||||
|
CHICKEN(10, ABSTRACT_ANIMAL),
|
||||||
|
COW(12, ABSTRACT_ANIMAL),
|
||||||
|
MOOSHROOM(58, COW),
|
||||||
|
PANDA(61, ABSTRACT_INSENTIENT),
|
||||||
|
PIG(64, ABSTRACT_ANIMAL),
|
||||||
|
POLAR_BEAR(68, ABSTRACT_ANIMAL),
|
||||||
|
RABBIT(71, ABSTRACT_ANIMAL),
|
||||||
|
SHEEP(74, ABSTRACT_ANIMAL),
|
||||||
|
TURTLE(96, ABSTRACT_ANIMAL),
|
||||||
|
FOX(29, ABSTRACT_ANIMAL),
|
||||||
|
GOAT(34, ABSTRACT_ANIMAL),
|
||||||
|
|
||||||
|
ABSTRACT_TAMEABLE_ANIMAL(-1, ABSTRACT_ANIMAL),
|
||||||
|
CAT(8, ABSTRACT_TAMEABLE_ANIMAL),
|
||||||
|
OCELOT(59, ABSTRACT_TAMEABLE_ANIMAL),
|
||||||
|
WOLF(106, ABSTRACT_TAMEABLE_ANIMAL),
|
||||||
|
|
||||||
|
ABSTRACT_PARROT(-1, ABSTRACT_TAMEABLE_ANIMAL),
|
||||||
|
PARROT(62, ABSTRACT_PARROT),
|
||||||
|
|
||||||
|
// Horses
|
||||||
|
ABSTRACT_HORSE(-1, ABSTRACT_ANIMAL),
|
||||||
|
CHESTED_HORSE(-1, ABSTRACT_HORSE),
|
||||||
|
DONKEY(15, CHESTED_HORSE),
|
||||||
|
MULE(57, CHESTED_HORSE),
|
||||||
|
LLAMA(46, CHESTED_HORSE),
|
||||||
|
TRADER_LLAMA(94, CHESTED_HORSE),
|
||||||
|
HORSE(37, ABSTRACT_HORSE),
|
||||||
|
SKELETON_HORSE(79, ABSTRACT_HORSE),
|
||||||
|
ZOMBIE_HORSE(109, ABSTRACT_HORSE),
|
||||||
|
|
||||||
|
// Golem
|
||||||
|
ABSTRACT_GOLEM(-1, ABSTRACT_CREATURE),
|
||||||
|
SNOW_GOLEM(82, ABSTRACT_GOLEM),
|
||||||
|
IRON_GOLEM(40, ABSTRACT_GOLEM),
|
||||||
|
SHULKER(75, ABSTRACT_GOLEM),
|
||||||
|
|
||||||
|
// Fish
|
||||||
|
ABSTRACT_FISHES(-1, ABSTRACT_CREATURE),
|
||||||
|
COD(11, ABSTRACT_FISHES),
|
||||||
|
PUFFERFISH(70, ABSTRACT_FISHES),
|
||||||
|
SALMON(73, ABSTRACT_FISHES),
|
||||||
|
TROPICAL_FISH(95, ABSTRACT_FISHES),
|
||||||
|
|
||||||
|
// Monsters
|
||||||
|
ABSTRACT_MONSTER(-1, ABSTRACT_CREATURE),
|
||||||
|
BLAZE(6, ABSTRACT_MONSTER),
|
||||||
|
CREEPER(13, ABSTRACT_MONSTER),
|
||||||
|
ENDERMITE(22, ABSTRACT_MONSTER),
|
||||||
|
ENDERMAN(21, ABSTRACT_MONSTER),
|
||||||
|
GIANT(31, ABSTRACT_MONSTER),
|
||||||
|
SILVERFISH(77, ABSTRACT_MONSTER),
|
||||||
|
VEX(97, ABSTRACT_MONSTER),
|
||||||
|
WITCH(102, ABSTRACT_MONSTER),
|
||||||
|
WITHER(103, ABSTRACT_MONSTER),
|
||||||
|
RAVAGER(72, ABSTRACT_MONSTER),
|
||||||
|
WARDEN(101, ABSTRACT_MONSTER),
|
||||||
|
|
||||||
|
ABSTRACT_PIGLIN(-1, ABSTRACT_MONSTER),
|
||||||
|
|
||||||
|
PIGLIN(65, ABSTRACT_PIGLIN),
|
||||||
|
PIGLIN_BRUTE(66, ABSTRACT_PIGLIN),
|
||||||
|
|
||||||
|
HOGLIN(36, ABSTRACT_ANIMAL),
|
||||||
|
STRIDER(88, ABSTRACT_ANIMAL),
|
||||||
|
ZOGLIN(107, ABSTRACT_MONSTER),
|
||||||
|
|
||||||
|
// Illagers
|
||||||
|
ABSTRACT_ILLAGER_BASE(-1, ABSTRACT_MONSTER),
|
||||||
|
ABSTRACT_EVO_ILLU_ILLAGER(-1, ABSTRACT_ILLAGER_BASE),
|
||||||
|
EVOKER(23, ABSTRACT_EVO_ILLU_ILLAGER),
|
||||||
|
ILLUSIONER(39, ABSTRACT_EVO_ILLU_ILLAGER),
|
||||||
|
VINDICATOR(99, ABSTRACT_ILLAGER_BASE),
|
||||||
|
PILLAGER(67, ABSTRACT_ILLAGER_BASE),
|
||||||
|
|
||||||
|
// Skeletons
|
||||||
|
ABSTRACT_SKELETON(-1, ABSTRACT_MONSTER),
|
||||||
|
SKELETON(78, ABSTRACT_SKELETON),
|
||||||
|
STRAY(87, ABSTRACT_SKELETON),
|
||||||
|
WITHER_SKELETON(104, ABSTRACT_SKELETON),
|
||||||
|
|
||||||
|
// Guardians
|
||||||
|
GUARDIAN(35, ABSTRACT_MONSTER),
|
||||||
|
ELDER_GUARDIAN(18, GUARDIAN),
|
||||||
|
|
||||||
|
// Spiders
|
||||||
|
SPIDER(85, ABSTRACT_MONSTER),
|
||||||
|
CAVE_SPIDER(9, SPIDER),
|
||||||
|
|
||||||
|
// Zombies
|
||||||
|
ZOMBIE(108, ABSTRACT_MONSTER),
|
||||||
|
DROWNED(17, ZOMBIE),
|
||||||
|
HUSK(38, ZOMBIE),
|
||||||
|
ZOMBIFIED_PIGLIN(111, ZOMBIE),
|
||||||
|
ZOMBIE_VILLAGER(110, ZOMBIE),
|
||||||
|
|
||||||
|
// Flying entities
|
||||||
|
ABSTRACT_FLYING(-1, ABSTRACT_INSENTIENT),
|
||||||
|
GHAST(30, ABSTRACT_FLYING),
|
||||||
|
PHANTOM(63, ABSTRACT_FLYING),
|
||||||
|
|
||||||
|
ABSTRACT_AMBIENT(-1, ABSTRACT_INSENTIENT),
|
||||||
|
BAT(4, ABSTRACT_AMBIENT),
|
||||||
|
|
||||||
|
ABSTRACT_WATERMOB(-1, ABSTRACT_INSENTIENT),
|
||||||
|
SQUID(86, ABSTRACT_WATERMOB),
|
||||||
|
GLOW_SQUID(33, SQUID),
|
||||||
|
|
||||||
|
// Slimes
|
||||||
|
SLIME(80, ABSTRACT_INSENTIENT),
|
||||||
|
MAGMA_CUBE(48, SLIME),
|
||||||
|
|
||||||
|
// Hangable objects
|
||||||
|
ABSTRACT_HANGING(-1, ENTITY),
|
||||||
|
LEASH_KNOT(44, ABSTRACT_HANGING),
|
||||||
|
ITEM_FRAME(42, ABSTRACT_HANGING),
|
||||||
|
GLOW_ITEM_FRAME(32, ITEM_FRAME),
|
||||||
|
PAINTING(60, ABSTRACT_HANGING),
|
||||||
|
|
||||||
|
ABSTRACT_LIGHTNING(-1, ENTITY),
|
||||||
|
LIGHTNING_BOLT(45, ABSTRACT_LIGHTNING),
|
||||||
|
|
||||||
|
// Arrows
|
||||||
|
ABSTRACT_ARROW(-1, ENTITY),
|
||||||
|
ARROW(2, ABSTRACT_ARROW),
|
||||||
|
SPECTRAL_ARROW(84, ABSTRACT_ARROW),
|
||||||
|
TRIDENT(93, ABSTRACT_ARROW),
|
||||||
|
|
||||||
|
// Fireballs
|
||||||
|
ABSTRACT_FIREBALL(-1, ENTITY),
|
||||||
|
DRAGON_FIREBALL(16, ABSTRACT_FIREBALL),
|
||||||
|
FIREBALL(43, ABSTRACT_FIREBALL),
|
||||||
|
SMALL_FIREBALL(81, ABSTRACT_FIREBALL),
|
||||||
|
WITHER_SKULL(105, ABSTRACT_FIREBALL),
|
||||||
|
|
||||||
|
// Projectiles
|
||||||
|
PROJECTILE_ABSTRACT(-1, ENTITY),
|
||||||
|
SNOWBALL(83, PROJECTILE_ABSTRACT),
|
||||||
|
ENDER_PEARL(90, PROJECTILE_ABSTRACT),
|
||||||
|
EGG(89, PROJECTILE_ABSTRACT),
|
||||||
|
POTION(92, PROJECTILE_ABSTRACT),
|
||||||
|
EXPERIENCE_BOTTLE(91, PROJECTILE_ABSTRACT),
|
||||||
|
|
||||||
|
// Vehicles
|
||||||
|
MINECART_ABSTRACT(-1, ENTITY),
|
||||||
|
CHESTED_MINECART_ABSTRACT(-1, MINECART_ABSTRACT),
|
||||||
|
CHEST_MINECART(51, CHESTED_MINECART_ABSTRACT),
|
||||||
|
HOPPER_MINECART(54, CHESTED_MINECART_ABSTRACT),
|
||||||
|
MINECART(50, MINECART_ABSTRACT),
|
||||||
|
FURNACE_MINECART(53, MINECART_ABSTRACT),
|
||||||
|
COMMAND_BLOCK_MINECART(52, MINECART_ABSTRACT),
|
||||||
|
TNT_MINECART(56, MINECART_ABSTRACT),
|
||||||
|
SPAWNER_MINECART(55, MINECART_ABSTRACT),
|
||||||
|
BOAT(7, ENTITY);
|
||||||
|
|
||||||
|
private static final EntityType[] TYPES;
|
||||||
|
|
||||||
|
private final int id;
|
||||||
|
private final EntityType parent;
|
||||||
|
|
||||||
|
Entity1_19Types(int id) {
|
||||||
|
this.id = id;
|
||||||
|
this.parent = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
Entity1_19Types(int id, EntityType parent) {
|
||||||
|
this.id = id;
|
||||||
|
this.parent = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityType getParent() {
|
||||||
|
return parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
TYPES = EntityTypeUtil.toOrderedArray(values());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static EntityType getTypeFromId(int typeId) {
|
||||||
|
return EntityTypeUtil.getTypeFromId(TYPES, typeId, ENTITY);
|
||||||
|
}
|
||||||
|
}
|
@ -80,6 +80,7 @@ public class ProtocolVersion {
|
|||||||
public static final ProtocolVersion v1_17_1 = register(756, "1.17.1");
|
public static final ProtocolVersion v1_17_1 = register(756, "1.17.1");
|
||||||
public static final ProtocolVersion v1_18 = register(757, "1.18/1.18.1", new VersionRange("1.18", 0, 1));
|
public static final ProtocolVersion v1_18 = register(757, "1.18/1.18.1", new VersionRange("1.18", 0, 1));
|
||||||
public static final ProtocolVersion v1_18_2 = register(758, "1.18.2");
|
public static final ProtocolVersion v1_18_2 = register(758, "1.18.2");
|
||||||
|
public static final ProtocolVersion v1_19 = register(759, 69, "1.19");
|
||||||
public static final ProtocolVersion unknown = register(-1, "UNKNOWN");
|
public static final ProtocolVersion unknown = register(-1, "UNKNOWN");
|
||||||
|
|
||||||
public static ProtocolVersion register(int version, String name) {
|
public static ProtocolVersion register(int version, String name) {
|
||||||
|
@ -117,6 +117,12 @@ public class ParticleType extends Type<Particle> {
|
|||||||
}
|
}
|
||||||
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Arrival in ticks
|
||||||
};
|
};
|
||||||
|
public static final ParticleReader SCULK_CHARGE = (buf, particle) -> {
|
||||||
|
particle.add(Type.FLOAT, Type.FLOAT.readPrimitive(buf)); // Roll
|
||||||
|
};
|
||||||
|
public static final ParticleReader SHRIEK = (buf, particle) -> {
|
||||||
|
particle.add(Type.VAR_INT, Type.VAR_INT.readPrimitive(buf)); // Delay
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class ParticleTypeFiller {
|
public final class ParticleTypeFiller {
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 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.types.version;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.minecraft.metadata.Metadata;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.metadata.types.MetaTypes1_14;
|
||||||
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
|
import com.viaversion.viaversion.api.type.types.minecraft.MetaListType;
|
||||||
|
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public final class Types1_19 {
|
||||||
|
|
||||||
|
public static final ParticleType PARTICLE = new ParticleType(); // Only safe to use after protocol loading
|
||||||
|
public static final MetaTypes1_14 META_TYPES = new MetaTypes1_14(PARTICLE);
|
||||||
|
public static final Type<Metadata> METADATA = new MetadataType(META_TYPES);
|
||||||
|
public static final Type<List<Metadata>> METADATA_LIST = new MetaListType(METADATA);
|
||||||
|
}
|
@ -66,6 +66,7 @@ import com.viaversion.viaversion.protocols.protocol1_17_1to1_17.Protocol1_17_1To
|
|||||||
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
|
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_18_2to1_18.Protocol1_18_2To1_18;
|
import com.viaversion.viaversion.protocols.protocol1_18_2to1_18.Protocol1_18_2To1_18;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.Protocol1_18To1_17_1;
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.Protocol1_18To1_17_1;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
|
import com.viaversion.viaversion.protocols.protocol1_9_1_2to1_9_3_4.Protocol1_9_1_2To1_9_3_4;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_1to1_9.Protocol1_9_1To1_9;
|
import com.viaversion.viaversion.protocols.protocol1_9_1to1_9.Protocol1_9_1To1_9;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.Protocol1_9_3To1_9_1_2;
|
import com.viaversion.viaversion.protocols.protocol1_9_3to1_9_1_2.Protocol1_9_3To1_9_1_2;
|
||||||
@ -170,7 +171,9 @@ public class ProtocolManagerImpl implements ProtocolManager {
|
|||||||
registerProtocol(new Protocol1_17To1_16_4(), ProtocolVersion.v1_17, ProtocolVersion.v1_16_4);
|
registerProtocol(new Protocol1_17To1_16_4(), ProtocolVersion.v1_17, ProtocolVersion.v1_16_4);
|
||||||
registerProtocol(new Protocol1_17_1To1_17(), ProtocolVersion.v1_17_1, ProtocolVersion.v1_17);
|
registerProtocol(new Protocol1_17_1To1_17(), ProtocolVersion.v1_17_1, ProtocolVersion.v1_17);
|
||||||
registerProtocol(new Protocol1_18To1_17_1(), ProtocolVersion.v1_18, ProtocolVersion.v1_17_1);
|
registerProtocol(new Protocol1_18To1_17_1(), ProtocolVersion.v1_18, ProtocolVersion.v1_17_1);
|
||||||
registerProtocol(new Protocol1_18_2To1_18(), ProtocolVersion.v1_18_2, ProtocolVersion.v1_18);
|
//registerProtocol(new Protocol1_18_2To1_18(), ProtocolVersion.v1_18_2, ProtocolVersion.v1_18); //TODO
|
||||||
|
|
||||||
|
registerProtocol(new Protocol1_19To1_18_2(), ProtocolVersion.v1_19, ProtocolVersion.v1_18);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,137 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 ViaVersion and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.viaversion.viaversion.protocols.protocol1_19to1_18_2;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.protocol.packet.ClientboundPacketType;
|
||||||
|
|
||||||
|
public enum ClientboundPackets1_19 implements ClientboundPacketType {
|
||||||
|
|
||||||
|
SPAWN_ENTITY, // 0x00
|
||||||
|
SPAWN_EXPERIENCE_ORB, // 0x01
|
||||||
|
SPAWN_MOB, // 0x02
|
||||||
|
SPAWN_PAINTING, // 0x03
|
||||||
|
SPAWN_PLAYER, // 0x04
|
||||||
|
ENTITY_ANIMATION, // 0x06
|
||||||
|
STATISTICS, // 0x07
|
||||||
|
ACKNOWLEDGE_PLAYER_DIGGING, // 0x08
|
||||||
|
BLOCK_BREAK_ANIMATION, // 0x09
|
||||||
|
BLOCK_ENTITY_DATA, // 0x0A
|
||||||
|
BLOCK_ACTION, // 0x0B
|
||||||
|
BLOCK_CHANGE, // 0x0C
|
||||||
|
BOSSBAR, // 0x0D
|
||||||
|
SERVER_DIFFICULTY, // 0x0E
|
||||||
|
CHAT_MESSAGE, // 0x0F
|
||||||
|
CLEAR_TITLES, // 0x10
|
||||||
|
TAB_COMPLETE, // 0x11
|
||||||
|
DECLARE_COMMANDS, // 0x12
|
||||||
|
CLOSE_WINDOW, // 0x13
|
||||||
|
WINDOW_ITEMS, // 0x14
|
||||||
|
WINDOW_PROPERTY, // 0x15
|
||||||
|
SET_SLOT, // 0x16
|
||||||
|
COOLDOWN, // 0x17
|
||||||
|
PLUGIN_MESSAGE, // 0x18
|
||||||
|
NAMED_SOUND, // 0x19
|
||||||
|
DISCONNECT, // 0x1A
|
||||||
|
ENTITY_STATUS, // 0x1B
|
||||||
|
EXPLOSION, // 0x1C
|
||||||
|
UNLOAD_CHUNK, // 0x1D
|
||||||
|
GAME_EVENT, // 0x1E
|
||||||
|
OPEN_HORSE_WINDOW, // 0x1F
|
||||||
|
WORLD_BORDER_INIT, // 0x20
|
||||||
|
KEEP_ALIVE, // 0x21
|
||||||
|
CHUNK_DATA, // 0x22
|
||||||
|
EFFECT, // 0x23
|
||||||
|
SPAWN_PARTICLE, // 0x24
|
||||||
|
UPDATE_LIGHT, // 0x25
|
||||||
|
JOIN_GAME, // 0x26
|
||||||
|
MAP_DATA, // 0x27
|
||||||
|
TRADE_LIST, // 0x28
|
||||||
|
ENTITY_POSITION, // 0x29
|
||||||
|
ENTITY_POSITION_AND_ROTATION, // 0x2A
|
||||||
|
ENTITY_ROTATION, // 0x2B
|
||||||
|
VEHICLE_MOVE, // 0x2C
|
||||||
|
OPEN_BOOK, // 0x2D
|
||||||
|
OPEN_WINDOW, // 0x2E
|
||||||
|
OPEN_SIGN_EDITOR, // 0x2F
|
||||||
|
PING, // 0x30
|
||||||
|
CRAFT_RECIPE_RESPONSE, // 0x31
|
||||||
|
PLAYER_ABILITIES, // 0x32
|
||||||
|
COMBAT_END, // 0x33
|
||||||
|
COMBAT_ENTER, // 0x34
|
||||||
|
COMBAT_KILL, // 0x35
|
||||||
|
PLAYER_INFO, // 0x36
|
||||||
|
FACE_PLAYER, // 0x37
|
||||||
|
PLAYER_POSITION, // 0x38
|
||||||
|
UNLOCK_RECIPES, // 0x39
|
||||||
|
REMOVE_ENTITIES, // 0x3A
|
||||||
|
REMOVE_ENTITY_EFFECT, // 0x3B
|
||||||
|
RESOURCE_PACK, // 0x3C
|
||||||
|
RESPAWN, // 0x3D
|
||||||
|
ENTITY_HEAD_LOOK, // 0x3E
|
||||||
|
MULTI_BLOCK_CHANGE, // 0x3F
|
||||||
|
SELECT_ADVANCEMENTS_TAB, // 0x40
|
||||||
|
ACTIONBAR, // 0x41
|
||||||
|
WORLD_BORDER_CENTER, // 0x42
|
||||||
|
WORLD_BORDER_LERP_SIZE, // 0x43
|
||||||
|
WORLD_BORDER_SIZE, // 0x44
|
||||||
|
WORLD_BORDER_WARNING_DELAY, // 0x45
|
||||||
|
WORLD_BORDER_WARNING_DISTANCE, // 0x46
|
||||||
|
CAMERA, // 0x47
|
||||||
|
HELD_ITEM_CHANGE, // 0x48
|
||||||
|
UPDATE_VIEW_POSITION, // 0x49
|
||||||
|
UPDATE_VIEW_DISTANCE, // 0x4A
|
||||||
|
SPAWN_POSITION, // 0x4B
|
||||||
|
DISPLAY_SCOREBOARD, // 0x4C
|
||||||
|
ENTITY_METADATA, // 0x4D
|
||||||
|
ATTACH_ENTITY, // 0x4E
|
||||||
|
ENTITY_VELOCITY, // 0x4F
|
||||||
|
ENTITY_EQUIPMENT, // 0x50
|
||||||
|
SET_EXPERIENCE, // 0x51
|
||||||
|
UPDATE_HEALTH, // 0x52
|
||||||
|
SCOREBOARD_OBJECTIVE, // 0x53
|
||||||
|
SET_PASSENGERS, // 0x54
|
||||||
|
TEAMS, // 0x55
|
||||||
|
UPDATE_SCORE, // 0x56
|
||||||
|
SET_SIMULATION_DISTANCE, // 0x57
|
||||||
|
TITLE_SUBTITLE, // 0x58
|
||||||
|
TIME_UPDATE, // 0x59
|
||||||
|
TITLE_TEXT, // 0x5A
|
||||||
|
TITLE_TIMES, // 0x5B
|
||||||
|
ENTITY_SOUND, // 0x5C
|
||||||
|
SOUND, // 0x5D
|
||||||
|
STOP_SOUND, // 0x5E
|
||||||
|
TAB_LIST, // 0x5F
|
||||||
|
NBT_QUERY, // 0x60
|
||||||
|
COLLECT_ITEM, // 0x61
|
||||||
|
ENTITY_TELEPORT, // 0x62
|
||||||
|
ADVANCEMENTS, // 0x63
|
||||||
|
ENTITY_PROPERTIES, // 0x64
|
||||||
|
ENTITY_EFFECT, // 0x65
|
||||||
|
DECLARE_RECIPES, // 0x66
|
||||||
|
TAGS; // 0x67
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return name();
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,102 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 ViaVersion and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.viaversion.viaversion.protocols.protocol1_19to1_18_2;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||||
|
import com.viaversion.viaversion.api.data.MappingData;
|
||||||
|
import com.viaversion.viaversion.api.data.MappingDataBase;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.RegistryType;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.entities.Entity1_19Types;
|
||||||
|
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
|
||||||
|
import com.viaversion.viaversion.api.rewriter.EntityRewriter;
|
||||||
|
import com.viaversion.viaversion.api.rewriter.ItemRewriter;
|
||||||
|
import com.viaversion.viaversion.api.type.types.minecraft.ParticleType;
|
||||||
|
import com.viaversion.viaversion.api.type.types.version.Types1_19;
|
||||||
|
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets.EntityPackets;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets.InventoryPackets;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets.WorldPackets;
|
||||||
|
import com.viaversion.viaversion.rewriter.SoundRewriter;
|
||||||
|
import com.viaversion.viaversion.rewriter.TagRewriter;
|
||||||
|
|
||||||
|
public final class Protocol1_19To1_18_2 extends AbstractProtocol<ClientboundPackets1_18, ClientboundPackets1_19, ServerboundPackets1_17, ServerboundPackets1_17> {
|
||||||
|
|
||||||
|
public static final MappingData MAPPINGS = new MappingDataBase("1.18", "1.19");
|
||||||
|
private final EntityPackets entityRewriter = new EntityPackets(this);
|
||||||
|
private final InventoryPackets itemRewriter = new InventoryPackets(this);
|
||||||
|
|
||||||
|
public Protocol1_19To1_18_2() {
|
||||||
|
super(ClientboundPackets1_18.class, ClientboundPackets1_19.class, ServerboundPackets1_17.class, ServerboundPackets1_17.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void registerPackets() {
|
||||||
|
final TagRewriter tagRewriter = new TagRewriter(this);
|
||||||
|
tagRewriter.addEmptyTag(RegistryType.BLOCK, "minecraft:fall_damage_resetting"); //TODO
|
||||||
|
tagRewriter.addEmptyTags(RegistryType.BLOCK, "minecraft:fall_damage_resetting", "minecraft:sculk_replaceable",
|
||||||
|
"minecraft:ancient_city_replaceables", "minecraft:deepslate_blocks", "minecraft:sculk_replaceable_world_gen", "minecraft:skip_occlude_vibration_when_above");
|
||||||
|
tagRewriter.addEmptyTag(RegistryType.GAME_EVENT, "minecraft:warden_events_can_listen");
|
||||||
|
tagRewriter.registerGeneric(ClientboundPackets1_18.TAGS);
|
||||||
|
|
||||||
|
entityRewriter.register();
|
||||||
|
itemRewriter.register();
|
||||||
|
WorldPackets.register(this);
|
||||||
|
|
||||||
|
cancelClientbound(ClientboundPackets1_18.ADD_VIBRATION_SIGNAL);
|
||||||
|
|
||||||
|
final SoundRewriter soundRewriter = new SoundRewriter(this);
|
||||||
|
soundRewriter.registerSound(ClientboundPackets1_18.SOUND);
|
||||||
|
soundRewriter.registerSound(ClientboundPackets1_18.ENTITY_SOUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onMappingDataLoaded() {
|
||||||
|
Types1_19.PARTICLE.filler(this)
|
||||||
|
.reader("block", ParticleType.Readers.BLOCK)
|
||||||
|
.reader("block_marker", ParticleType.Readers.BLOCK)
|
||||||
|
.reader("dust", ParticleType.Readers.DUST)
|
||||||
|
.reader("falling_dust", ParticleType.Readers.BLOCK)
|
||||||
|
.reader("dust_color_transition", ParticleType.Readers.DUST_TRANSITION)
|
||||||
|
.reader("item", ParticleType.Readers.VAR_INT_ITEM)
|
||||||
|
.reader("vibration", ParticleType.Readers.VIBRATION)
|
||||||
|
.reader("sculk_charge", ParticleType.Readers.SCULK_CHARGE)
|
||||||
|
.reader("shriek", ParticleType.Readers.SHRIEK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init(final UserConnection user) {
|
||||||
|
addEntityTracker(user, new EntityTrackerBase(user, Entity1_19Types.PLAYER));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MappingData getMappingData() {
|
||||||
|
return MAPPINGS;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityRewriter getEntityRewriter() {
|
||||||
|
return entityRewriter;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemRewriter getItemRewriter() {
|
||||||
|
return itemRewriter;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,104 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 ViaVersion and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.minecraft.entities.Entity1_17Types;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.entities.Entity1_19Types;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.entities.EntityType;
|
||||||
|
import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
||||||
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
|
import com.viaversion.viaversion.api.type.types.version.Types1_18;
|
||||||
|
import com.viaversion.viaversion.api.type.types.version.Types1_19;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
||||||
|
import com.viaversion.viaversion.rewriter.EntityRewriter;
|
||||||
|
|
||||||
|
public final class EntityPackets extends EntityRewriter<Protocol1_19To1_18_2> {
|
||||||
|
|
||||||
|
public EntityPackets(final Protocol1_19To1_18_2 protocol) {
|
||||||
|
super(protocol);
|
||||||
|
mapTypes(Entity1_17Types.values(), Entity1_19Types.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerPackets() {
|
||||||
|
registerTrackerWithData(ClientboundPackets1_18.SPAWN_ENTITY, Entity1_19Types.FALLING_BLOCK);
|
||||||
|
registerTracker(ClientboundPackets1_18.SPAWN_MOB);
|
||||||
|
registerTracker(ClientboundPackets1_18.SPAWN_PLAYER, Entity1_19Types.PLAYER);
|
||||||
|
registerMetadataRewriter(ClientboundPackets1_18.ENTITY_METADATA, Types1_18.METADATA_LIST, Types1_19.METADATA_LIST);
|
||||||
|
registerRemoveEntities(ClientboundPackets1_18.REMOVE_ENTITIES);
|
||||||
|
|
||||||
|
protocol.registerClientbound(ClientboundPackets1_18.ENTITY_EFFECT, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.VAR_INT); // Entity id
|
||||||
|
map(Type.BYTE); // Effect id
|
||||||
|
map(Type.BYTE); // Amplifier
|
||||||
|
map(Type.VAR_INT); // Duration
|
||||||
|
map(Type.BYTE); // Flags
|
||||||
|
create(Type.BOOLEAN, false); // No factor data
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
protocol.registerClientbound(ClientboundPackets1_18.JOIN_GAME, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.INT); // Entity ID
|
||||||
|
map(Type.BOOLEAN); // Hardcore
|
||||||
|
map(Type.UNSIGNED_BYTE); // Gamemode
|
||||||
|
map(Type.BYTE); // Previous Gamemode
|
||||||
|
map(Type.STRING_ARRAY); // World List
|
||||||
|
map(Type.NBT); // Registry
|
||||||
|
map(Type.NBT); // Current dimension data
|
||||||
|
map(Type.STRING); // World
|
||||||
|
map(Type.LONG); // Seed
|
||||||
|
map(Type.VAR_INT); // Max players
|
||||||
|
map(Type.VAR_INT); // Chunk radius
|
||||||
|
map(Type.VAR_INT); // Simulation distance
|
||||||
|
handler(worldDataTrackerHandler(1));
|
||||||
|
handler(biomeSizeTracker());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
protocol.registerClientbound(ClientboundPackets1_18.RESPAWN, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
map(Type.NBT); // Current dimension data
|
||||||
|
map(Type.STRING); // World
|
||||||
|
handler(worldDataTrackerHandler(0));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void registerRewrites() {
|
||||||
|
filter().handler((event, meta) -> meta.setMetaType(Types1_19.META_TYPES.byId(meta.metaType().typeId())));
|
||||||
|
|
||||||
|
registerMetaTypeHandler(Types1_19.META_TYPES.itemType, Types1_19.META_TYPES.blockStateType, Types1_19.META_TYPES.particleType);
|
||||||
|
|
||||||
|
filter().filterFamily(Entity1_17Types.MINECART_ABSTRACT).index(11).handler((event, meta) -> {
|
||||||
|
// Convert to new block id
|
||||||
|
final int data = (int) meta.getValue();
|
||||||
|
meta.setValue(protocol.getMappingData().getNewBlockStateId(data));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public EntityType typeFromId(final int type) {
|
||||||
|
return Entity1_19Types.getTypeFromId(type);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 ViaVersion and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.data.RecipeRewriter1_16;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.ServerboundPackets1_17;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
||||||
|
import com.viaversion.viaversion.rewriter.ItemRewriter;
|
||||||
|
|
||||||
|
public final class InventoryPackets extends ItemRewriter<Protocol1_19To1_18_2> {
|
||||||
|
|
||||||
|
public InventoryPackets(Protocol1_19To1_18_2 protocol) {
|
||||||
|
super(protocol);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerPackets() {
|
||||||
|
registerSetCooldown(ClientboundPackets1_18.COOLDOWN);
|
||||||
|
registerWindowItems1_17_1(ClientboundPackets1_18.WINDOW_ITEMS, Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerTradeList(ClientboundPackets1_18.TRADE_LIST, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerSetSlot1_17_1(ClientboundPackets1_18.SET_SLOT, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerAdvancements(ClientboundPackets1_18.ADVANCEMENTS, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerEntityEquipmentArray(ClientboundPackets1_18.ENTITY_EQUIPMENT, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerSpawnParticle(ClientboundPackets1_18.SPAWN_PARTICLE, Type.FLAT_VAR_INT_ITEM, Type.DOUBLE);
|
||||||
|
|
||||||
|
registerClickWindow1_17_1(ServerboundPackets1_17.CLICK_WINDOW, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
registerCreativeInvAction(ServerboundPackets1_17.CREATIVE_INVENTORY_ACTION, Type.FLAT_VAR_INT_ITEM);
|
||||||
|
|
||||||
|
new RecipeRewriter1_16(protocol).registerDefaultHandler(ClientboundPackets1_18.DECLARE_RECIPES);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
|
||||||
|
* Copyright (C) 2016-2022 ViaVersion and contributors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.viaversion.viaversion.protocols.protocol1_19to1_18_2.packets;
|
||||||
|
|
||||||
|
import com.viaversion.viaversion.api.data.entity.EntityTracker;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.chunks.ChunkSection;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.chunks.DataPalette;
|
||||||
|
import com.viaversion.viaversion.api.minecraft.chunks.PaletteType;
|
||||||
|
import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
||||||
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.ClientboundPackets1_18;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_18to1_17_1.types.Chunk1_18Type;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
||||||
|
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
||||||
|
import com.viaversion.viaversion.util.MathUtil;
|
||||||
|
|
||||||
|
public final class WorldPackets {
|
||||||
|
|
||||||
|
public static void register(final Protocol1_19To1_18_2 protocol) {
|
||||||
|
final BlockRewriter blockRewriter = new BlockRewriter(protocol, Type.POSITION1_14);
|
||||||
|
blockRewriter.registerBlockAction(ClientboundPackets1_18.BLOCK_ACTION);
|
||||||
|
blockRewriter.registerBlockChange(ClientboundPackets1_18.BLOCK_CHANGE);
|
||||||
|
blockRewriter.registerVarLongMultiBlockChange(ClientboundPackets1_18.MULTI_BLOCK_CHANGE);
|
||||||
|
blockRewriter.registerAcknowledgePlayerDigging(ClientboundPackets1_18.ACKNOWLEDGE_PLAYER_DIGGING);
|
||||||
|
blockRewriter.registerEffect(ClientboundPackets1_18.EFFECT, 1010, 2001);
|
||||||
|
|
||||||
|
protocol.registerClientbound(ClientboundPackets1_18.CHUNK_DATA, new PacketRemapper() {
|
||||||
|
@Override
|
||||||
|
public void registerMap() {
|
||||||
|
handler(wrapper -> {
|
||||||
|
final EntityTracker tracker = protocol.getEntityRewriter().tracker(wrapper.user());
|
||||||
|
final Chunk1_18Type chunkType = new Chunk1_18Type(tracker.currentWorldSectionHeight(),
|
||||||
|
MathUtil.ceilLog2(protocol.getMappingData().getBlockStateMappings().size()),
|
||||||
|
MathUtil.ceilLog2(tracker.biomesSent()));
|
||||||
|
final Chunk chunk = wrapper.passthrough(chunkType);
|
||||||
|
for (final ChunkSection section : chunk.getSections()) {
|
||||||
|
final DataPalette blockPalette = section.palette(PaletteType.BLOCKS);
|
||||||
|
for (int i = 0; i < blockPalette.size(); i++) {
|
||||||
|
final int id = blockPalette.idByIndex(i);
|
||||||
|
blockPalette.setIdByIndex(i, protocol.getMappingData().getNewBlockStateId(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -171,30 +171,6 @@ public abstract class ItemRewriter<T extends Protocol> extends RewriterBase<T> i
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerClickWindow1_17(ServerboundPacketType packetType, Type<Item> type) {
|
|
||||||
protocol.registerServerbound(packetType, new PacketRemapper() {
|
|
||||||
@Override
|
|
||||||
public void registerMap() {
|
|
||||||
map(Type.UNSIGNED_BYTE); // Window Id
|
|
||||||
map(Type.SHORT); // Slot
|
|
||||||
map(Type.BYTE); // Button
|
|
||||||
map(Type.VAR_INT); // Mode
|
|
||||||
|
|
||||||
handler(wrapper -> {
|
|
||||||
// Affected items
|
|
||||||
int length = wrapper.passthrough(Type.VAR_INT);
|
|
||||||
for (int i = 0; i < length; i++) {
|
|
||||||
wrapper.passthrough(Type.SHORT); // Slot
|
|
||||||
handleItemToServer(wrapper.passthrough(type));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Carried item
|
|
||||||
handleItemToServer(wrapper.passthrough(type));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public void registerClickWindow1_17_1(ServerboundPacketType packetType, Type<Item> type) {
|
public void registerClickWindow1_17_1(ServerboundPacketType packetType, Type<Item> type) {
|
||||||
protocol.registerServerbound(packetType, new PacketRemapper() {
|
protocol.registerServerbound(packetType, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
|
23875
common/src/main/resources/assets/viaversion/data/mapping-1.19.json
Normal file
23875
common/src/main/resources/assets/viaversion/data/mapping-1.19.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
# Project properties - we put these here so they can be modified without causing a recompile of the build scripts
|
# Project properties - we put these here so they can be modified without causing a recompile of the build scripts
|
||||||
projectVersion=4.2.2-SNAPSHOT
|
projectVersion=4.3.0-22w11a-SNAPSHOT
|
||||||
|
|
||||||
# Gradle properties
|
# Gradle properties
|
||||||
org.gradle.daemon=true
|
org.gradle.daemon=true
|
||||||
|
Loading…
Reference in New Issue
Block a user