More advancement clearing

This commit is contained in:
fullwall 2018-05-19 10:27:33 +08:00
parent 2ea94aedc9
commit fd413fadb8
1 changed files with 19 additions and 0 deletions

View File

@ -1,7 +1,10 @@
package net.citizensnpcs.nms.v1_12_R1.util;
import java.io.File;
import java.lang.reflect.Field;
import java.util.Set;
import net.citizensnpcs.util.NMS;
import net.minecraft.server.v1_12_R1.Advancement;
import net.minecraft.server.v1_12_R1.AdvancementDataPlayer;
import net.minecraft.server.v1_12_R1.AdvancementProgress;
@ -11,6 +14,7 @@ import net.minecraft.server.v1_12_R1.MinecraftServer;
public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer {
public EmptyAdvancementDataPlayer(MinecraftServer minecraftserver, File file, EntityPlayer entityplayer) {
super(minecraftserver, file, entityplayer);
this.b();
}
@Override
@ -27,6 +31,17 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer {
@Override
public void b() {
this.a();
this.data.clear();
try {
((Set) G.get(this)).clear();
((Set) H.get(this)).clear();
((Set) I.get(this)).clear();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
@Override
@ -51,4 +66,8 @@ public class EmptyAdvancementDataPlayer extends AdvancementDataPlayer {
public boolean revokeCritera(Advancement advancement, String s) {
return false;
}
private static final Field G = NMS.getField(AdvancementDataPlayer.class, "g");
private static final Field H = NMS.getField(AdvancementDataPlayer.class, "h");
private static final Field I = NMS.getField(AdvancementDataPlayer.class, "i");
}