Skip to content

Commit 9b6603e

Browse files
committed
Use fuzzy reflection for effect types
1 parent 4fc476a commit 9b6603e

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

src/main/java/com/comphenix/protocol/wrappers/BukkitConverters.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,7 +1208,12 @@ public Class<PotionEffectType> getSpecificType() {
12081208
public Object getGeneric(PotionEffectType specific) {
12091209
Class<?> clazz = MinecraftReflection.getMobEffectListClass();
12101210
if (getMobEffect == null) {
1211-
getMobEffect = Accessors.getMethodAccessor(clazz, "fromId", int.class);
1211+
FuzzyReflection fuzzy = FuzzyReflection.fromClass(clazz, false);
1212+
getMobEffect = Accessors.getMethodAccessor(fuzzy.getMethod(FuzzyMethodContract.newBuilder()
1213+
.parameterExactArray(int.class)
1214+
.returnTypeExact(clazz)
1215+
.requireModifier(Modifier.STATIC)
1216+
.build()));
12121217
}
12131218

12141219
int id = specific.getId();
@@ -1219,7 +1224,12 @@ public Object getGeneric(PotionEffectType specific) {
12191224
public PotionEffectType getSpecific(Object generic) {
12201225
Class<?> clazz = MinecraftReflection.getMobEffectListClass();
12211226
if (getMobEffectId == null) {
1222-
getMobEffectId = Accessors.getMethodAccessor(clazz, "getId", clazz);
1227+
FuzzyReflection fuzzy = FuzzyReflection.fromClass(clazz, false);
1228+
getMobEffectId = Accessors.getMethodAccessor(fuzzy.getMethod(FuzzyMethodContract.newBuilder()
1229+
.parameterExactArray(clazz)
1230+
.returnTypeExact(int.class)
1231+
.requireModifier(Modifier.STATIC)
1232+
.build()));
12231233
}
12241234

12251235
int id = (int) getMobEffectId.invoke(null, generic);

0 commit comments

Comments
 (0)