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); } }