Skip to content

Commit c387e91

Browse files
committed
Merge 1.18 into 1.19.2
2 parents 4090a91 + 9c02b2c commit c387e91

File tree

3 files changed

+31
-13
lines changed

3 files changed

+31
-13
lines changed

forge/src/main/java/org/embeddedt/modernfix/forge/mixin/bugfix/recipe_book_type_desync/RecipeBookSettingsMixin.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package org.embeddedt.modernfix.forge.mixin.bugfix.recipe_book_type_desync;
22

33
import com.llamalad7.mixinextras.sugar.Local;
4-
import net.minecraft.client.Minecraft;
5-
import net.minecraft.client.multiplayer.ClientPacketListener;
6-
import net.minecraft.network.Connection;
74
import net.minecraft.network.FriendlyByteBuf;
85
import net.minecraft.stats.RecipeBookSettings;
96
import net.minecraft.world.inventory.RecipeBookType;
10-
import net.minecraftforge.fml.network.NetworkHooks;
117
import org.embeddedt.modernfix.ModernFix;
128
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
9+
import org.embeddedt.modernfix.forge.packet.NetworkUtils;
1310
import org.spongepowered.asm.mixin.Mixin;
1411
import org.spongepowered.asm.mixin.injection.At;
1512
import org.spongepowered.asm.mixin.injection.Redirect;
@@ -41,15 +38,9 @@ public class RecipeBookSettingsMixin {
4138
}
4239
@Redirect(method = "read(Lnet/minecraft/network/FriendlyByteBuf;)Lnet/minecraft/stats/RecipeBookSettings;", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/FriendlyByteBuf;readBoolean()Z"))
4340
private static boolean useDefaultBooleanIfVanilla(FriendlyByteBuf buf, @Local(ordinal = 0) RecipeBookType type) {
44-
if(type.ordinal() >= (mfix$maxVanillaOrdinal + 1)) {
45-
ClientPacketListener listener = Minecraft.getInstance().getConnection();
46-
if(listener != null) {
47-
Connection connection = listener.getConnection();
48-
if(NetworkHooks.isVanillaConnection(connection)) {
49-
ModernFix.LOGGER.warn("Not reading recipe book data for type '{}' as we are using vanilla connection", type.name());
50-
return false; // skip actually reading buffer
51-
}
52-
}
41+
if(type.ordinal() >= (mfix$maxVanillaOrdinal + 1) && NetworkUtils.isCurrentlyVanilla) {
42+
ModernFix.LOGGER.warn("Not reading recipe book data for type '{}' as we are using vanilla connection", type.name());
43+
return false; // skip actually reading buffer
5344
}
5445
return buf.readBoolean();
5546
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.embeddedt.modernfix.forge.mixin.core;
2+
3+
import net.minecraft.network.Connection;
4+
import net.minecraftforge.network.NetworkHooks;
5+
import org.embeddedt.modernfix.forge.packet.NetworkUtils;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.Shadow;
8+
import org.spongepowered.asm.mixin.injection.At;
9+
import org.spongepowered.asm.mixin.injection.Inject;
10+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
11+
12+
@Mixin(NetworkHooks.class)
13+
public abstract class NetworkHooksMixin {
14+
@Shadow public static boolean isVanillaConnection(Connection manager) {
15+
throw new AssertionError();
16+
}
17+
18+
@Inject(method = "handleClientLoginSuccess", at = @At("RETURN"), remap = false)
19+
private static void setVanillaGlobalFlag(Connection manager, CallbackInfo ci) {
20+
NetworkUtils.isCurrentlyVanilla = isVanillaConnection(manager);
21+
}
22+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.embeddedt.modernfix.forge.packet;
2+
3+
public class NetworkUtils {
4+
public static boolean isCurrentlyVanilla;
5+
}

0 commit comments

Comments
 (0)