From b1828ba16886fe482a3445c7a8c65323922d9d36 Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Fri, 3 Mar 2023 22:21:58 +0100 Subject: [PATCH] updated VLB usage, fixed cpe implementation --- gradle.properties | 4 +-- .../viafabricplus/ViaFabricPlus.java | 20 ++++++------ .../c0_30/ClassicItemSelectionScreen.java | 32 ++++++++----------- .../fixes/screen/MixinConnectScreen_1.java | 2 +- 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/gradle.properties b/gradle.properties index 736d134e..7a529739 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,12 +8,12 @@ yarn_mappings=1.19.3+build.5 loader_version=0.14.14 # viafabricplus -mod_version=1.6.0 +mod_version=1.6.1 maven_group=de.florianmichael archives_base_name=viafabricplus # base lib -vialoadingbase_version=db24c2279c +vialoadingbase_version=9d1d77d16e # viaversion (and required) libs viaversion_version=4.6.0-1.19.4-pre3-SNAPSHOT diff --git a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java index c5f3d10a..5ba199b9 100644 --- a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java +++ b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java @@ -51,19 +51,16 @@ public class ViaFabricPlus { private final SubPlatform SUB_PLATFORM_VIA_LEGACY = new SubPlatform("ViaLegacy", () -> true, ViaLegacyPlatformImpl::new, protocolVersions -> { final List legacyProtocols = new ArrayList<>(LegacyProtocolVersion.PROTOCOLS); Collections.reverse(legacyProtocols); + legacyProtocols.remove(LegacyProtocolVersion.c0_30cpe); - final int c0_28toc0_30Index = legacyProtocols.indexOf(LegacyProtocolVersion.c0_28toc0_30); - legacyProtocols.add(c0_28toc0_30Index + 1, LegacyProtocolVersion.c0_30cpe); + legacyProtocols.add(legacyProtocols.indexOf(LegacyProtocolVersion.c0_28toc0_30) + 1, LegacyProtocolVersion.c0_30cpe); + protocolVersions.addAll(legacyProtocols); }); private final SubPlatform SUB_PLATFORM_VIA_APRIL_FOOLS = new SubPlatform("ViaAprilFools", () -> true, ViaAprilFoolsPlatformImpl::new, protocolVersions -> { - final int v1_14Index = protocolVersions.indexOf(ProtocolVersion.v1_14); - final int v1_16Index = protocolVersions.indexOf(ProtocolVersion.v1_16); - final int v1_16_2Index = protocolVersions.indexOf(ProtocolVersion.v1_16_2); - - protocolVersions.add(v1_14Index + 1,AprilFoolsProtocolVersion.s3d_shareware); - protocolVersions.add(v1_16Index + 1, AprilFoolsProtocolVersion.s20w14infinite); - protocolVersions.add(v1_16_2Index + 1, AprilFoolsProtocolVersion.sCombatTest8c); + protocolVersions.add(protocolVersions.indexOf(ProtocolVersion.v1_14) + 1,AprilFoolsProtocolVersion.s3d_shareware); + protocolVersions.add(protocolVersions.indexOf(ProtocolVersion.v1_16) + 1, AprilFoolsProtocolVersion.s20w14infinite); + protocolVersions.add(protocolVersions.indexOf(ProtocolVersion.v1_16_2) + 1, AprilFoolsProtocolVersion.sCombatTest8c); }); public void preLoad() { @@ -96,6 +93,9 @@ public class ViaFabricPlus { FabricLoader.getInstance().getEntrypoints("viafabricplus", ViaFabricPlusAddon.class).forEach(viaFabricPlusAddon -> viaFabricPlusAddon.onChangeVersion(protocolVersion)); ItemReleaseVersionDefinition.reload(protocolVersion); ChatLengthDefinition.reload(protocolVersion); + if (protocolVersion.isOlderThanOrEqualTo(LegacyProtocolVersion.c0_28toc0_30)) { + ClassicItemSelectionScreen.INSTANCE.reload(protocolVersion); + } }); builder.build(); } @@ -117,8 +117,6 @@ public class ViaFabricPlus { ItemReleaseVersionDefinition.load(); ArmorPointsDefinition.load(); - ClassicItemSelectionScreen.create(InternalProtocolList.fromProtocolVersion(LegacyProtocolVersion.c0_28toc0_30)); - Runtime.getRuntime().addShutdownHook(new Thread(() -> { try { SettingsSave.save(this); diff --git a/src/main/java/de/florianmichael/viafabricplus/definition/c0_30/ClassicItemSelectionScreen.java b/src/main/java/de/florianmichael/viafabricplus/definition/c0_30/ClassicItemSelectionScreen.java index fd37eaf5..3c420dbf 100644 --- a/src/main/java/de/florianmichael/viafabricplus/definition/c0_30/ClassicItemSelectionScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/definition/c0_30/ClassicItemSelectionScreen.java @@ -1,6 +1,7 @@ package de.florianmichael.viafabricplus.definition.c0_30; import de.florianmichael.vialoadingbase.platform.ComparableProtocolVersion; +import de.florianmichael.vialoadingbase.platform.InternalProtocolList; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.sound.PositionedSoundInstance; @@ -19,7 +20,7 @@ import java.util.List; @SuppressWarnings("DataFlowIssue") public class ClassicItemSelectionScreen extends Screen { - public static ClassicItemSelectionScreen INSTANCE; + public static ClassicItemSelectionScreen INSTANCE = new ClassicItemSelectionScreen(); private final static int MAX_ROW_DIVIDER = 9; private final static int ITEM_XY_BOX_DIMENSION_CLASSIC = 25; @@ -29,11 +30,6 @@ public class ClassicItemSelectionScreen extends Screen { public Item[][] itemGrid = null; public ItemStack selectedItem = null; - public static void create(final ComparableProtocolVersion version) { - ClassicItemSelectionScreen.INSTANCE = new ClassicItemSelectionScreen(); - ClassicItemSelectionScreen.INSTANCE.reload(version); - } - public ClassicItemSelectionScreen() { super(Text.literal("Classic item selection")); } @@ -84,20 +80,20 @@ public class ClassicItemSelectionScreen extends Screen { allowedItems.add(Items.POPPY); allowedItems.add(Items.DANDELION); allowedItems.add(Items.RED_MUSHROOM); - if (version == LegacyProtocolVersion.c0_30cpe) { - allowedItems.add(Items.MAGMA_BLOCK); - allowedItems.add(Items.QUARTZ_PILLAR); - allowedItems.add(Items.SANDSTONE_STAIRS); - allowedItems.add(Items.STONE_BRICKS); - allowedItems.add(Items.COBBLESTONE_SLAB); - allowedItems.add(Items.ICE); - allowedItems.add(Items.SNOW); - allowedItems.add(Items.BEDROCK); - allowedItems.add(Items.WATER_BUCKET); - allowedItems.add(Items.LAVA_BUCKET); - } } } + if (version.isEqualTo(LegacyProtocolVersion.c0_30cpe)) { + allowedItems.add(Items.MAGMA_BLOCK); + allowedItems.add(Items.QUARTZ_PILLAR); + allowedItems.add(Items.SANDSTONE_STAIRS); + allowedItems.add(Items.STONE_BRICKS); + allowedItems.add(Items.COBBLESTONE_SLAB); + allowedItems.add(Items.ICE); + allowedItems.add(Items.SNOW); + allowedItems.add(Items.BEDROCK); + allowedItems.add(Items.WATER_BUCKET); + allowedItems.add(Items.LAVA_BUCKET); + } itemGrid = new Item[MathHelper.ceil(allowedItems.size() / (double) MAX_ROW_DIVIDER)][MAX_ROW_DIVIDER]; int x = 0; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/screen/MixinConnectScreen_1.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/screen/MixinConnectScreen_1.java index 3f5654b8..338003df 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/screen/MixinConnectScreen_1.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/screen/MixinConnectScreen_1.java @@ -72,7 +72,7 @@ public class MixinConnectScreen_1 { userConnection.put(new ChatSession1_19_2(userConnection, profileKey, playerKeyPair.privateKey())); - if (ViaLoadingBase.getClassWrapper().getTargetVersion() == ProtocolVersion.v1_19) { + if (ViaLoadingBase.getClassWrapper().getTargetVersion().isEqualTo(ProtocolVersion.v1_19)) { final byte[] legacyKey = ((IPublicKeyData) (Object) publicKeyData).viafabricplus_get1_19_0Key().array(); if (legacyKey != null) { userConnection.put(new ChatSession1_19_0(userConnection, profileKey, playerKeyPair.privateKey(), legacyKey));