Sfoglia il codice sorgente

Properly use the NEC API (#16)

* readme

* spaces?

* spaces again?

* Update gradle.properties

Co-authored-by: shedaniel <daniel@shedaniel.me>
Fudge 5 anni fa
parent
commit
8470d697dc

+ 3 - 0
build.gradle

@@ -39,6 +39,9 @@ dependencies {
     modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
     modImplementation "io.github.prospector:modmenu:${modmenu_version}"
     compileOnly "com.google.code.findbugs:jsr305:3.0.2"
+    //https://github.com/natanfudge/Not-Enough-Crashes/blob/master/README.md
+    modImplementation "com.lettuce.fudge:notenoughcrashes-api:$nec_api_version"
+    include "com.lettuce.fudge:notenoughcrashes-api:$nec_api_version"
 }
 
 bintray {

+ 3 - 2
gradle.properties

@@ -2,5 +2,6 @@ minecraft_version=1.15
 yarn_version=1.15+build.1
 fabric_loader_version=0.7.2+build.174
 fabric_version=0.4.20+build.273-1.15
-mod_version=2.5.3
-modmenu_version=1.7.14-unstable.19w42a+build.10
+mod_version=2.5.4
+modmenu_version=1.7.14-unstable.19w42a+build.10
+nec_api_version=1.0.0

+ 0 - 15
src/main/java/me/shedaniel/clothconfig2/ClothConfigInitializer.java

@@ -149,21 +149,6 @@ public class ClothConfigInitializer implements ClientModInitializer {
                 ClothConfigInitializer.LOGGER.error("[ClothConfig] Failed to add test config override for ModMenu!", e);
             }
         }
-        if (FabricLoader.getInstance().isModLoaded("notenoughcrashes")) {
-            try {
-                Class<?> clazz = Class.forName("fudge.notenoughcrashes.api.NotEnoughCrashesApi");
-                Method method = clazz.getMethod("onEveryCrash", Runnable.class);
-                method.invoke(null, (Runnable) () -> {
-                    try {
-                        ScissorsHandler.INSTANCE.clearScissors();
-                    } catch (Throwable throwable) {
-                        throwable.printStackTrace();
-                    }
-                });
-            } catch (Exception e) {
-                ClothConfigInitializer.LOGGER.error("[ClothConfig] Failed to apply reset state to Not Enough Crashes!", e);
-            }
-        }
     }
     
 }

+ 20 - 7
src/main/java/me/shedaniel/clothconfig2/impl/ScissorsHandlerImpl.java

@@ -1,6 +1,8 @@
 package me.shedaniel.clothconfig2.impl;
 
 import com.google.common.collect.Lists;
+import fudge.notenoughcrashes.api.MinecraftCrashes;
+import me.shedaniel.clothconfig2.ClothConfigInitializer;
 import me.shedaniel.clothconfig2.api.ScissorsHandler;
 import me.shedaniel.math.api.Rectangle;
 import net.minecraft.client.MinecraftClient;
@@ -11,38 +13,49 @@ import java.util.Collections;
 import java.util.List;
 
 public final class ScissorsHandlerImpl implements ScissorsHandler {
-    
+
     @Deprecated public static final ScissorsHandler INSTANCE = new ScissorsHandlerImpl();
+
+    static {
+        MinecraftCrashes.onEveryCrash(() -> {
+            try {
+                ScissorsHandler.INSTANCE.clearScissors();
+            } catch (Throwable t) {
+                ClothConfigInitializer.LOGGER.error("[ClothConfig] Failed clear scissors on game crash!", t);
+            }
+        });
+    }
+
     private List<Rectangle> scissorsAreas;
-    
+
     public ScissorsHandlerImpl() {
         this.scissorsAreas = Lists.newArrayList();
     }
-    
+
     @Override
     public void clearScissors() {
         scissorsAreas.clear();
         applyScissors();
     }
-    
+
     @Override
     public List<Rectangle> getScissorsAreas() {
         return Collections.unmodifiableList(scissorsAreas);
     }
-    
+
     @Override
     public void scissor(Rectangle rectangle) {
         scissorsAreas.add(rectangle);
         applyScissors();
     }
-    
+
     @Override
     public void removeLastScissor() {
         if (!scissorsAreas.isEmpty())
             scissorsAreas.remove(scissorsAreas.size() - 1);
         applyScissors();
     }
-    
+
     @Override
     public void applyScissors() {
         if (!scissorsAreas.isEmpty()) {