Danielshe 5 年之前
父节点
当前提交
2cf4e4b45b

+ 5 - 1
.github/workflows/gradle.yml

@@ -13,10 +13,14 @@ jobs:
       uses: actions/setup-java@v1
       with:
         java-version: 1.8
-    - name: Build with Gradle & Upload
+    - name: Build with Gradle & Upload to Bintray
       run: ./gradlew clean bintrayUpload
       env:
         BINTRAY_USER: shedaniel
         OSS_TOKEN: shedaniel
         BINTRAY_KEY: ${{ secrets.BINTRAY_KEY }}
         OSS_PASS: ${{ secrets.OSS_PASS }}
+    - name: Build with Gradle & Upload to CurseForge
+      run: ./gradlew clean bintrayUpload
+      env:
+        CF_API_KEY: ${{ secrets.CF_API_KEY }}

+ 32 - 0
build.gradle

@@ -4,6 +4,7 @@ plugins {
     id 'maven'
     id 'signing'
     id 'com.jfrog.bintray' version '1.8.4'
+    id 'com.matthewprenger.cursegradle' version '1.4.0'
 }
 
 sourceCompatibility = 1.8
@@ -125,3 +126,34 @@ publishing {
         // mavenLocal()
     }
 }
+
+curseforge {
+    apiKey = project.hasProperty('apiKey') ? project.property('apiKey') : System.getenv('CF_API_KEY')
+    project {
+        id = '319057'
+        releaseType = 'release'
+        addGameVersion '1.14'
+        addGameVersion '1.14.1'
+        addGameVersion '1.14.2'
+        addGameVersion '1.14.3'
+        addGameVersion '1.14.4'
+        addGameVersion '1.14-Snapshot'
+        addGameVersion '1.15-Snapshot'
+        addGameVersion 'Java 8'
+        relations {
+            requiredDependency 'fabric-api'
+        }
+        mainArtifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}.jar")) {
+            displayName = "[Fabric 1.14.x, 19w34a - 19w37a] ClothConfig2-$project.version"
+        }
+        addArtifact(file("${project.buildDir}/libs/${project.archivesBaseName}-${project.version}-sources.jar"))
+        afterEvaluate {
+            uploadTask.dependsOn("remapJar")
+            uploadTask.dependsOn("remapSourcesJar")
+        }
+    }
+    options {
+        forgeGradleIntegration = false
+        javaVersionAutoDetect = false
+    }
+}

+ 1 - 1
gradle.properties

@@ -2,5 +2,5 @@ minecraft_version=1.14.4
 yarn_version=1.14.4+build.8
 fabric_loader_version=0.4.8+build.159
 fabric_version=0.3.0+build.207
-mod_version=1.1.1
+mod_version=1.1.2
 modmenu_version=1.7.6+build.115

+ 17 - 4
src/main/java/me/shedaniel/math/compat/RenderHelper.java

@@ -5,6 +5,10 @@
 
 package me.shedaniel.math.compat;
 
+import net.minecraft.util.crash.CrashException;
+import net.minecraft.util.crash.CrashReport;
+import net.minecraft.util.crash.CrashReportSection;
+
 public class RenderHelper {
     
     static RenderSystem instance;
@@ -16,13 +20,22 @@ public class RenderHelper {
             is1_15 = true;
         } catch (ClassNotFoundException ignored) {
         }
+        if (!is1_15)
+            try {
+                instance = (RenderSystem) Class.forName("me.shedaniel.math.compat.RenderSystem1_14").newInstance();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
         try {
             if (is1_15)
-                instance = (RenderSystem) Class.forName("me.shedaniel.math.compat.RenderSystem1_15").newInstance();
-            else instance = (RenderSystem) Class.forName("me.shedaniel.math.compat.RenderSystem1_14").newInstance();
+                instance = new RenderSystemClassInvoker("com.mojang.blaze3d.systems.RenderSystem");
+            else instance = new RenderSystemClassInvoker("com.mojang.blaze3d.platform.GlStateManager");
         } catch (Exception e) {
-            e.printStackTrace();
-            System.exit(0);
+            CrashReport crashReport = CrashReport.create(e, "Creating Blaze3D Classes Compat");
+            CrashReportSection section = crashReport.addElement("Found Render System");
+            boolean finalIs1_15 = is1_15;
+            section.add("Is 1.15", () -> finalIs1_15 + "");
+            throw new CrashException(crashReport);
         }
     }
     

+ 2 - 0
src/main/java/me/shedaniel/math/compat/RenderSystem.java

@@ -7,6 +7,8 @@ package me.shedaniel.math.compat;
 
 public interface RenderSystem {
     
+    void invokeMethod(Class[] classes, Object[] objects);
+    
     void color4f(float float_1, float float_2, float float_3, float float_4);
     
     void enableBlend();

+ 43 - 125
src/main/java/me/shedaniel/math/compat/RenderSystem1_14.java

@@ -5,232 +5,150 @@
 
 package me.shedaniel.math.compat;
 
+import com.mojang.blaze3d.platform.GlStateManager;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
 public class RenderSystem1_14 implements RenderSystem {
     
-    public Class<?> glStateManagerClass;
+    private Map<String, Method> simpleMethods = new HashMap<>();
     
-    public RenderSystem1_14() {
-        try {
-            this.glStateManagerClass = Class.forName("com.mojang.blaze3d.platform.GlStateManager");
-        } catch (ClassNotFoundException e) {
-            e.printStackTrace();
-            System.exit(0);
-        }
+    private Method getSimpleMethod(String name, Class... classes) throws NoSuchMethodException {
+        if (simpleMethods.containsKey(name))
+            return simpleMethods.get(name);
+        Method method = GlStateManager.class.getDeclaredMethod(name, classes);
+        simpleMethods.put(name, method);
+        return simpleMethods.get(name);
     }
     
     @Override
-    public void color4f(float float_1, float float_2, float float_3, float float_4) {
+    public void invokeMethod(Class[] classes, Object[] objects) {
         try {
-            glStateManagerClass.getDeclaredMethod("color4f", float.class, float.class, float.class, float.class).invoke(null, float_1, float_2, float_3, float_4);
+            getSimpleMethod("color4f", classes).invoke(null, objects);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
     
+    @Override
+    public void color4f(float float_1, float float_2, float float_3, float float_4) {
+        GlStateManager.color4f(float_1, float_2, float_3, float_4);
+    }
+    
     @Override
     public void enableBlend() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableBlend").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableTexture() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableTexture").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableTexture() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableTexture").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableColorLogicOp() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableColorLogicOp").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableColorLogicOp() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableColorLogicOp").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableRescaleNormal() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableRescaleNormal").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableFog() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableFog").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void logicOp(int int_1) {
-        try {
-            glStateManagerClass.getDeclaredMethod("logicOp", int.class).invoke(null, int_1);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void pushMatrix() {
-        try {
-            glStateManagerClass.getDeclaredMethod("pushMatrix").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void popMatrix() {
-        try {
-            glStateManagerClass.getDeclaredMethod("popMatrix").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableLighting() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableLighting").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableLighting() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableLighting").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableRescaleNormal() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableRescaleNormal").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableDepthTest() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableDepthTest").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableDepthTest() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableDepthTest").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableAlphaTest() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableAlphaTest").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void enableAlphaTest() {
-        try {
-            glStateManagerClass.getDeclaredMethod("enableAlphaTest").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void disableBlend() {
-        try {
-            glStateManagerClass.getDeclaredMethod("disableBlend").invoke(null);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void shadeModel(int i) {
-        try {
-            glStateManagerClass.getDeclaredMethod("shadeModel", int.class).invoke(null, i);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void colorMask(boolean boolean_1, boolean boolean_2, boolean boolean_3, boolean boolean_4) {
-        try {
-            glStateManagerClass.getDeclaredMethod("colorMask", boolean.class, boolean.class, boolean.class, boolean.class).invoke(null, boolean_1, boolean_2, boolean_3, boolean_4);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void translatef(float float_1, float float_2, float float_3) {
-        try {
-            glStateManagerClass.getDeclaredMethod("translatef", float.class, float.class, float.class).invoke(null, float_1, float_2, float_3);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void blendFuncSeparate(int int_1, int int_2, int int_3, int int_4) {
-        try {
-            glStateManagerClass.getDeclaredMethod("blendFuncSeparate", int.class, int.class, int.class, int.class).invoke(null, int_1, int_2, int_3, int_4);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
     
     @Override
     public void blendFunc(int int_1, int int_2) {
-        try {
-            glStateManagerClass.getDeclaredMethod("blendFunc", int.class, int.class).invoke(null, int_1, int_2);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        GlStateManager.enableBlend();
     }
 }

+ 50 - 27
src/main/java/me/shedaniel/math/compat/RenderSystem1_15.java → src/main/java/me/shedaniel/math/compat/RenderSystemClassInvoker.java

@@ -5,22 +5,45 @@
 
 package me.shedaniel.math.compat;
 
-public class RenderSystem1_15 implements RenderSystem {
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+public class RenderSystemClassInvoker implements RenderSystem {
     public Class<?> renderSystemClass;
     
-    public RenderSystem1_15() {
+    private Map<String, Method> simpleMethods = new HashMap<>();
+    
+    public RenderSystemClassInvoker(String className) {
         try {
-            this.renderSystemClass = Class.forName("com.mojang.blaze3d.systems.RenderSystem");
+            this.renderSystemClass = Class.forName(className);
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
             System.exit(0);
         }
     }
     
+    private Method getSimpleMethod(String name, Class... classes) throws NoSuchMethodException {
+        if (simpleMethods.containsKey(name))
+            return simpleMethods.get(name);
+        Method method = renderSystemClass.getDeclaredMethod(name, classes);
+        simpleMethods.put(name, method);
+        return simpleMethods.get(name);
+    }
+    
+    @Override
+    public void invokeMethod(Class[] classes, Object[] objects) {
+        try {
+            getSimpleMethod("color4f", classes).invoke(null, objects);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+    
     @Override
     public void color4f(float float_1, float float_2, float float_3, float float_4) {
         try {
-            renderSystemClass.getDeclaredMethod("color4f", float.class, float.class, float.class, float.class).invoke(null, float_1, float_2, float_3, float_4);
+            getSimpleMethod("color4f", float.class, float.class, float.class, float.class).invoke(null, float_1, float_2, float_3, float_4);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -29,7 +52,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableFog() {
         try {
-            renderSystemClass.getDeclaredMethod("disableFog").invoke(null);
+            getSimpleMethod("disableFog").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -38,7 +61,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableBlend() {
         try {
-            renderSystemClass.getDeclaredMethod("enableBlend").invoke(null);
+            getSimpleMethod("enableBlend").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -47,7 +70,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableTexture() {
         try {
-            renderSystemClass.getDeclaredMethod("disableTexture").invoke(null);
+            getSimpleMethod("disableTexture").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -56,7 +79,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableTexture() {
         try {
-            renderSystemClass.getDeclaredMethod("enableTexture").invoke(null);
+            getSimpleMethod("enableTexture").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -65,7 +88,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableColorLogicOp() {
         try {
-            renderSystemClass.getDeclaredMethod("enableColorLogicOp").invoke(null);
+            getSimpleMethod("enableColorLogicOp").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -74,7 +97,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableColorLogicOp() {
         try {
-            renderSystemClass.getDeclaredMethod("disableColorLogicOp").invoke(null);
+            getSimpleMethod("disableColorLogicOp").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -83,7 +106,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableRescaleNormal() {
         try {
-            renderSystemClass.getDeclaredMethod("disableRescaleNormal").invoke(null);
+            getSimpleMethod("disableRescaleNormal").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -92,7 +115,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void logicOp(int int_1) {
         try {
-            renderSystemClass.getDeclaredMethod("logicOp", int.class).invoke(null, int_1);
+            getSimpleMethod("logicOp", int.class).invoke(null, int_1);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -101,7 +124,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void pushMatrix() {
         try {
-            renderSystemClass.getDeclaredMethod("pushMatrix").invoke(null);
+            getSimpleMethod("pushMatrix").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -110,7 +133,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void popMatrix() {
         try {
-            renderSystemClass.getDeclaredMethod("popMatrix").invoke(null);
+            getSimpleMethod("popMatrix").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -119,7 +142,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableLighting() {
         try {
-            renderSystemClass.getDeclaredMethod("disableLighting").invoke(null);
+            getSimpleMethod("disableLighting").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -128,7 +151,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableLighting() {
         try {
-            renderSystemClass.getDeclaredMethod("enableLighting").invoke(null);
+            getSimpleMethod("enableLighting").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -137,7 +160,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableRescaleNormal() {
         try {
-            renderSystemClass.getDeclaredMethod("enableRescaleNormal").invoke(null);
+            getSimpleMethod("enableRescaleNormal").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -146,7 +169,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableDepthTest() {
         try {
-            renderSystemClass.getDeclaredMethod("disableDepthTest").invoke(null);
+            getSimpleMethod("disableDepthTest").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -155,7 +178,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableDepthTest() {
         try {
-            renderSystemClass.getDeclaredMethod("enableDepthTest").invoke(null);
+            getSimpleMethod("enableDepthTest").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -164,7 +187,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableAlphaTest() {
         try {
-            renderSystemClass.getDeclaredMethod("disableAlphaTest").invoke(null);
+            getSimpleMethod("disableAlphaTest").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -173,7 +196,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void enableAlphaTest() {
         try {
-            renderSystemClass.getDeclaredMethod("enableAlphaTest").invoke(null);
+            getSimpleMethod("enableAlphaTest").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -182,7 +205,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void disableBlend() {
         try {
-            renderSystemClass.getDeclaredMethod("disableBlend").invoke(null);
+            getSimpleMethod("disableBlend").invoke(null);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -191,7 +214,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void shadeModel(int i) {
         try {
-            renderSystemClass.getDeclaredMethod("shadeModel", int.class).invoke(null, i);
+            getSimpleMethod("shadeModel", int.class).invoke(null, i);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -200,7 +223,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void colorMask(boolean boolean_1, boolean boolean_2, boolean boolean_3, boolean boolean_4) {
         try {
-            renderSystemClass.getDeclaredMethod("colorMask", boolean.class, boolean.class, boolean.class, boolean.class).invoke(null, boolean_1, boolean_2, boolean_3, boolean_4);
+            getSimpleMethod("colorMask", boolean.class, boolean.class, boolean.class, boolean.class).invoke(null, boolean_1, boolean_2, boolean_3, boolean_4);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -209,7 +232,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void translatef(float float_1, float float_2, float float_3) {
         try {
-            renderSystemClass.getDeclaredMethod("translatef", float.class, float.class, float.class).invoke(null, float_1, float_2, float_3);
+            getSimpleMethod("translatef", float.class, float.class, float.class).invoke(null, float_1, float_2, float_3);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -218,7 +241,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void blendFuncSeparate(int int_1, int int_2, int int_3, int int_4) {
         try {
-            renderSystemClass.getDeclaredMethod("blendFuncSeparate", int.class, int.class, int.class, int.class).invoke(null, int_1, int_2, int_3, int_4);
+            getSimpleMethod("blendFuncSeparate", int.class, int.class, int.class, int.class).invoke(null, int_1, int_2, int_3, int_4);
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -227,7 +250,7 @@ public class RenderSystem1_15 implements RenderSystem {
     @Override
     public void blendFunc(int int_1, int int_2) {
         try {
-            renderSystemClass.getDeclaredMethod("blendFunc", int.class, int.class).invoke(null, int_1, int_2);
+            getSimpleMethod("blendFunc", int.class, int.class).invoke(null, int_1, int_2);
         } catch (Exception e) {
             e.printStackTrace();
         }