Skip to content

Commit 86f99ac

Browse files
committed
Version 0.1.7
Make Public annotation more useful
1 parent 30db669 commit 86f99ac

3 files changed

Lines changed: 18 additions & 1 deletion

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repositories {
1313
mavenCentral()
1414
}
1515

16-
version = "0.1.6"
16+
version = "0.1.7"
1717
group = "org.kettingpowered"
1818

1919
dependencies {

src/main/java/org/kettingpowered/mixinextras/KettingMixinPlugin.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,21 @@ private void addTransformers() {
8181
return 0;
8282
}, null);
8383

84+
preTransformerRegistry.add(Public.class,
85+
(info, method) -> {
86+
method.access |= ~Opcodes.ACC_PRIVATE;
87+
method.access &= ~Opcodes.ACC_PROTECTED;
88+
method.access &= ~Opcodes.ACC_PUBLIC;
89+
return 0;
90+
},
91+
(info, field) -> {
92+
field.access |= Opcodes.ACC_PRIVATE;
93+
field.access &= ~Opcodes.ACC_PROTECTED;
94+
field.access &= ~Opcodes.ACC_PUBLIC;
95+
return 0;
96+
}
97+
);
98+
8499
postTransformerRegistry.add(Public.class,
85100
(info, method) -> {
86101
method.access &= ~Opcodes.ACC_PRIVATE;

src/main/java/org/kettingpowered/mixinextras/annotations/Public.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import java.lang.annotation.RetentionPolicy;
55

66
/// Marks a Method or Field as Public, regardless of what it actually is.
7+
///
8+
/// Also allows you to bypass rules about statics ín mixins not being able to be public.
79
@Retention(RetentionPolicy.CLASS)
810
public @interface Public {
911
}

0 commit comments

Comments
 (0)