From 28d63e6c04a7d48d9e8170768d440e0ae7017d9c Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Tue, 22 Dec 2020 15:05:54 +0000 Subject: [PATCH 1/3] checkstyle: fix --- config/checkstyle/checkstyle.xml | 8 -------- .../src/main/java/com/openosrs/injector/Injection.java | 1 - .../src/main/java/net/runelite/api/widgets/Widget.java | 1 - .../main/java/net/runelite/client/config/FontType.java | 1 - .../src/main/java/net/runelite/mixins/RSClientMixin.java | 1 - .../src/main/java/net/runelite/mixins/RSWidgetMixin.java | 1 - 6 files changed, 13 deletions(-) diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index ec4798b4ab..9452be8d0d 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -44,9 +44,6 @@ - - - @@ -64,11 +61,6 @@ - - - - - diff --git a/openosrs-injector/src/main/java/com/openosrs/injector/Injection.java b/openosrs-injector/src/main/java/com/openosrs/injector/Injection.java index 9678681ba1..bf004f8b89 100644 --- a/openosrs-injector/src/main/java/com/openosrs/injector/Injection.java +++ b/openosrs-injector/src/main/java/com/openosrs/injector/Injection.java @@ -17,7 +17,6 @@ import com.openosrs.injector.injectors.MixinInjector; import com.openosrs.injector.injectors.RSApiInjector; import com.openosrs.injector.injectors.raw.AddPlayerToMenu; import com.openosrs.injector.injectors.raw.ClearColorBuffer; -import com.openosrs.injector.injectors.raw.DrawAfterWidgets; import com.openosrs.injector.injectors.raw.DrawMenu; import com.openosrs.injector.injectors.raw.Occluder; import com.openosrs.injector.injectors.raw.RasterizerAlpha; diff --git a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java index d521d67870..8df03376da 100644 --- a/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java +++ b/runelite-api/src/main/java/net/runelite/api/widgets/Widget.java @@ -25,7 +25,6 @@ package net.runelite.api.widgets; import java.awt.Rectangle; -import java.util.Collection; import java.util.List; import net.runelite.api.FontTypeFace; import net.runelite.api.Point; diff --git a/runelite-client/src/main/java/net/runelite/client/config/FontType.java b/runelite-client/src/main/java/net/runelite/client/config/FontType.java index 8ed57bd302..36e5363eb8 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/FontType.java +++ b/runelite-client/src/main/java/net/runelite/client/config/FontType.java @@ -27,7 +27,6 @@ package net.runelite.client.config; import lombok.RequiredArgsConstructor; import lombok.Getter; import net.runelite.client.ui.FontManager; - import java.awt.Font; @Getter diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java index 38e58e8e6f..0167441221 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSClientMixin.java @@ -29,7 +29,6 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import java.math.BigInteger; import java.util.ArrayList; -import java.util.Collection; import java.util.Collections; import java.util.EnumSet; import java.util.HashSet; diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java index 29a0755358..dbcd39e347 100644 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java +++ b/runelite-mixins/src/main/java/net/runelite/mixins/RSWidgetMixin.java @@ -48,7 +48,6 @@ import net.runelite.rs.api.RSWidget; import java.awt.Rectangle; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.List; import static net.runelite.api.widgets.WidgetInfo.TO_CHILD; import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; From 399549ec39ce9c37c32b0976bdb29e4d58ee46eb Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Tue, 22 Dec 2020 15:06:09 +0000 Subject: [PATCH 2/3] modernizer: remove --- build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 99776ab562..f5509e1798 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -45,7 +45,6 @@ plugins { id("com.github.ben-manes.versions") version "0.36.0" id("se.patrikerdes.use-latest-versions") version "0.2.15" id("org.ajoberstar.grgit") version "4.1.0" - id("com.simonharrer.modernizer") version "2.1.0-1" apply false application } @@ -140,9 +139,6 @@ subprojects { isIgnoreFailures = false } } - if (this.name == "runelite-client" || this.name == "runelite-api") { - apply(plugin = "com.simonharrer.modernizer") - } configure { repositories { From de0773d993e98fcb199ed7612ac88e0b8b58651e Mon Sep 17 00:00:00 2001 From: ThatGamerBlue Date: Tue, 22 Dec 2020 15:51:48 +0000 Subject: [PATCH 3/3] injector: add interfaces correctly --- build.gradle.kts | 2 +- .../java/net/runelite/asm/Interfaces.java | 7 +++-- .../openosrs-injector.gradle.kts | 4 +-- .../injector/injectors/MixinInjector.java | 31 +++++++++++++++++++ 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index f5509e1798..20fb97a251 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -36,7 +36,7 @@ buildscript { dependencies { classpath("org.ajoberstar.grgit:grgit-core:4.1.0") classpath("com.github.ben-manes:gradle-versions-plugin:0.36.0") - classpath("com.openosrs:openosrs-injector:1.0.1") + classpath("com.openosrs:openosrs-injector:1.0.2") } } diff --git a/deobfuscator/src/main/java/net/runelite/asm/Interfaces.java b/deobfuscator/src/main/java/net/runelite/asm/Interfaces.java index 180417b3f6..ce8925af10 100644 --- a/deobfuscator/src/main/java/net/runelite/asm/Interfaces.java +++ b/deobfuscator/src/main/java/net/runelite/asm/Interfaces.java @@ -43,12 +43,15 @@ public class Interfaces implements Iterable classFile = c; } - public void addInterface(Class clazz) + public boolean addInterface(Class clazz) { - if (!interfaces.contains(clazz)) + if (interfaces.stream().noneMatch((itf) -> itf.getName().equals(clazz.getName()))) { interfaces.add(clazz); + return true; } + + return false; } public List getInterfaces() diff --git a/openosrs-injector/openosrs-injector.gradle.kts b/openosrs-injector/openosrs-injector.gradle.kts index d4ea924fb9..050d9e0d0d 100644 --- a/openosrs-injector/openosrs-injector.gradle.kts +++ b/openosrs-injector/openosrs-injector.gradle.kts @@ -15,10 +15,8 @@ plugins { id("se.patrikerdes.use-latest-versions") } -val oprsver = "3.5.1" - group = "com.openosrs" -version = "1.0.1" +version = "1.0.2" repositories { mavenCentral() diff --git a/openosrs-injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java b/openosrs-injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java index 467a200ab3..8202be72a7 100644 --- a/openosrs-injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java +++ b/openosrs-injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java @@ -87,6 +87,7 @@ public class MixinInjector extends AbstractInjector private static final String ASSERTION_FIELD = "$assertionsDisabled"; private static final String MIXIN_BASE = "net/runelite/mixins/"; + private int injectedInterfaces = 0; private final Map injectedFields = new HashMap<>(); private final Map shadowFields = new HashMap<>(); private int copied = 0, replaced = 0, injected = 0; @@ -106,6 +107,13 @@ public class MixinInjector extends AbstractInjector @VisibleForTesting void inject(Map, List> mixinTargets) { + for (Map.Entry, List> entry : mixinTargets.entrySet()) + { + injectInterfaces(entry.getKey(), entry.getValue()); + } + + log.info("[INFO] Injected {} interfaces", injectedInterfaces); + for (Map.Entry, List> entry : mixinTargets.entrySet()) { System.out.println(entry.getKey().get().getName()); @@ -157,6 +165,29 @@ public class MixinInjector extends AbstractInjector return builder.build(); } + private void injectInterfaces(Provider mixinProvider, List targetClasses) + { + try + { + final ClassFile mixinClass = mixinProvider.get(); + + for (final ClassFile targetClass : targetClasses) + { + mixinClass.getInterfaces().getInterfaces().forEach((itf) -> + { + if (targetClass.getInterfaces().addInterface(itf)) + { + injectedInterfaces++; + } + }); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + private void injectFields(Provider mixinProvider, List targetClasses) { try