From cebf6d920f21ff37fb816de5d1cfa3cb40bdd4fb Mon Sep 17 00:00:00 2001 From: Lucwousin Date: Tue, 25 Jan 2022 21:15:17 +0100 Subject: [PATCH] Check mixins only for duplicate static fields --- .../openosrs/injector/injectors/MixinInjector.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java b/injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java index de042f5514..a66250674a 100644 --- a/injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java +++ b/injector/src/main/java/com/openosrs/injector/injectors/MixinInjector.java @@ -217,13 +217,21 @@ public class MixinInjector extends AbstractInjector } } - targetClass.addField(copy); - - if (injectedFields.containsKey(field.getName()) && !ASSERTION_FIELD.equals(field.getName())) + if (targetClass.findField(field.getName(), field.getType()) != null && !ASSERTION_FIELD.equals(field.getName())) { throw new InjectException("Duplicate field: " + field.getName()); } + targetClass.addField(copy); + + // We only need to save static fields in injected fields, cause only static fields can be shadowed + if (!field.isStatic()) + continue; + if (injectedFields.containsKey(field.getName()) && !ASSERTION_FIELD.equals(field.getName())) + { + throw new InjectException("Duplicate static field: " + field.getName()); + } + injectedFields.put(field.getName(), copy); } }