1.19 fixes

This commit is contained in:
Fernando Pettinelli 2022-06-25 17:59:06 -04:00
parent 2272fe7b97
commit b110a69285
4 changed files with 131 additions and 1 deletions

View File

@ -31,6 +31,7 @@ public enum ClassMapping {
PERSISTENT_ENTITY_SECTION_MANAGER("world.level.entity", "PersistentEntitySectionManager"),
PACKET("network.protocol", "Packet"),
PACKET_PLAY_OUT_CHAT("network.protocol.game", "PacketPlayOutChat"),
/* 1.19 Packet */ CLIENTBOUND_SYSTEM_CHAT("network.protocol.game", "ClientboundSystemChatPacket"),
PACKET_PLAY_OUT_WORLD_BORDER("PacketPlayOutWorldBorder"), // Removed in 1.17
PLAYER_CONNECTION("server.network", "PlayerConnection"),
WORLD("world.level", "World"),
@ -46,6 +47,7 @@ public enum ClassMapping {
CRAFT_PLAYER("entity", "CraftPlayer"),
CRAFT_WORLD("CraftWorld"),
RANDOM_SOURCE("util", "RandomSource"),
MOJANGSON_PARSER("nbt", "MojangsonParser");
private final String packageName;

View File

@ -21,6 +21,10 @@ import java.util.Set;
* Biomes that are compatible with server versions 1.7+
*/
public enum CompatibleBiome {
/* 1.19 */
MANGROVE_SWAMP(ServerVersion.V1_19),
DEEP_DARK(ServerVersion.V1_19),
/* 1.17 */
DRIPSTONE_CAVES(ServerVersion.V1_17),
LUSH_CAVES(ServerVersion.V1_17),

View File

@ -22,6 +22,127 @@ public enum CompatibleSound {
// 1.8 list:
// https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/mapping-and-modding-tutorials/2213619-1-8-all-playsound-sound-arguments
/* 1.19 */
BLOCK_FROGLIGHT_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_HATCH(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_BLOOM(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CHARGE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_SHRIEK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SPREAD(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_AMBIENT_WITHOUT_ITEM(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_AMBIENT_WITH_ITEM(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_GIVEN(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_TAKEN(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_THROWN(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_AMBIENT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_EAT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_LAY_SPAWN(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_LONG_JUMP(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_TONGUE(ServerVersion.V1_19, v(null, true)),
ENTITY_GOAT_HORN_BREAK(ServerVersion.V1_19, v(null, true)),
ENTITY_GOAT_SCREAMING_HORN_BREAK(ServerVersion.V1_19, v(null, true)),
ENTITY_PARROT_IMITATE_WARDEN(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_FLOP(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_GROW_UP(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_AGITATED(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_AMBIENT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ANGRY(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ATTACK_IMPACT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_DIG(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_EMERGE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_HEARTBEAT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_LISTENING(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_LISTENING_ANGRY(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSER(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSEST(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ROAR(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SNIFF(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SONIC_BOOM(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SONIC_CHARGE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_TENDRIL_CLICKS(ServerVersion.V1_19, v(null, true)),
ITEM_BUCKET_EMPTY_TADPOLE(ServerVersion.V1_19, v(null, true)),
ITEM_BUCKET_FILL_TADPOLE(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_PLAY(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_0(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_1(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_2(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_3(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_4(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_5(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_6(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_7(ServerVersion.V1_19, v(null, true)),
MUSIC_DISC_5(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_DEEP_DARK(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_JUNGLE_AND_FOREST(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_OLD_GROWTH_TAIGA(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_SWAMP(ServerVersion.V1_19, v(null, true)),
/* 1.17 */
// TODO: add similar sounds for older versions
BLOCK_AMETHYST_BLOCK_BREAK(ServerVersion.V1_17, v(null, true)),

View File

@ -92,7 +92,10 @@ public class ItemUtils {
methodAsBukkitCopy = clazzCraftItemStack.getMethod("asBukkitCopy", clazzItemStack);
methodAsNMSCopy = clazzCraftItemStack.getMethod("asNMSCopy", ItemStack.class);
if (ServerVersion.isServerVersion(ServerVersion.V1_8)) {
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_19)) {
Class<?> clazzRandomSource = ClassMapping.RANDOM_SOURCE.getClazz();
methodA = clazzEnchantmentManager.getMethod("a", clazzRandomSource.getMethod("c").getReturnType(), clazzItemStack, int.class, boolean.class);
}else if (ServerVersion.isServerVersion(ServerVersion.V1_8)) {
methodA = clazzEnchantmentManager.getMethod("a", Random.class, clazzItemStack, int.class);
} else {
methodA = clazzEnchantmentManager.getMethod("a", Random.class, clazzItemStack, int.class, boolean.class);