Unknown %!s(int64=6) %!d(string=hai) anos
pai
achega
56ab71e1be

+ 3 - 1
CHANGELOG.md

@@ -1,4 +1,6 @@
-## v2.5.2.80
+## v2.6.2.81
+- Fix [#53](https://github.com/shedaniel/RoughlyEnoughItems/issues/53): Crash on keyPressed
+## v2.6.2.80
 - Updated to 19w14b
 ## v2.6.1.79
 - 75% less mixins

+ 31 - 0
src/main/java/me/shedaniel/rei/mixin/MixinClientPlayerNetworkHandler.java

@@ -0,0 +1,31 @@
+package me.shedaniel.rei.mixin;
+
+import net.minecraft.client.network.ClientPlayNetworkHandler;
+import net.minecraft.client.network.packet.GameStateChangeS2CPacket;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(ClientPlayNetworkHandler.class)
+public class MixinClientPlayerNetworkHandler {
+    
+    @Inject(method = "onGameStateChange", at = @At("RETURN"))
+    public void onGameStateChange(GameStateChangeS2CPacket packet, CallbackInfo callbackInfo) {
+        switch (packet.getReason()) {
+            case 1:
+                System.out.println("End Raining");
+                break;
+            case 2:
+                System.out.println("Start Raining");
+                break;
+            case 7:
+                System.out.println("Change rain color to " + packet.getValue());
+                break;
+            case 8:
+                System.out.println("Change thunder color to " + packet.getValue());
+                break;
+        }
+    }
+    
+}

+ 23 - 0
src/main/java/me/shedaniel/rei/utils/ClientWeatherUtils.java

@@ -0,0 +1,23 @@
+package me.shedaniel.rei.utils;
+
+public class ClientWeatherUtils {
+    
+    private float rain = 0f, thunder = 0f;
+    
+    public float getRain() {
+        return rain;
+    }
+    
+    public void setRain(float rain) {
+        this.rain = rain;
+    }
+    
+    public float getThunder() {
+        return thunder;
+    }
+    
+    public void setThunder(float thunder) {
+        this.thunder = thunder;
+    }
+    
+}

+ 1 - 7
src/main/java/me/shedaniel/rei/utils/ClothRegistry.java

@@ -15,7 +15,6 @@ import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.gui.ContainerScreenOverlay;
 import me.shedaniel.rei.gui.config.ItemListOrderingEntry;
 import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
-import net.fabricmc.fabric.api.event.client.ClientTickCallback;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.ContainerScreen;
 import net.minecraft.client.gui.Element;
@@ -46,6 +45,7 @@ public class ClothRegistry {
                         return;
                 if (screen instanceof PlayerInventoryScreen && minecraftClient.interactionManager.hasCreativeInventory())
                     return;
+                ScreenHelper.setLastContainerScreen((ContainerScreen) screen);
                 boolean alreadyAdded = false;
                 for(Element element : Lists.newArrayList(screenHooks.cloth_getInputListeners()))
                     if (ContainerScreenOverlay.class.isAssignableFrom(element.getClass()))
@@ -118,12 +118,6 @@ public class ClothRegistry {
                     return ActionResult.SUCCESS;
             return ActionResult.PASS;
         });
-        ClientTickCallback.EVENT.register(client -> {
-            if (client.currentScreen instanceof ContainerScreen) {
-                if (ScreenHelper.getLastContainerScreen() == null || !ScreenHelper.getLastContainerScreen().equals(client.currentScreen))
-                    ScreenHelper.setLastContainerScreen((ContainerScreen) client.currentScreen);
-            }
-        });
     }
     
     public static void openConfigScreen(Screen parent) {