Skip to content

Commit

Permalink
Clear old advancement data
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed May 27, 2018
1 parent fd413fa commit 3f035ad
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.Socket;
import java.util.Collections;
import java.util.List;
import java.util.Map;

Expand Down Expand Up @@ -48,7 +47,6 @@
import net.minecraft.server.v1_12_R1.AttributeInstance;
import net.minecraft.server.v1_12_R1.BlockPosition;
import net.minecraft.server.v1_12_R1.ChatComponentText;
import net.minecraft.server.v1_12_R1.Criterion;
import net.minecraft.server.v1_12_R1.DamageSource;
import net.minecraft.server.v1_12_R1.Entity;
import net.minecraft.server.v1_12_R1.EntityHuman;
Expand Down Expand Up @@ -322,6 +320,8 @@ private void initialise(MinecraftServer minecraftServer) {
navigation = new PlayerNavigation(this, world);
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
setSkinFlags((byte) 0xFF);

EmptyAdvancementDataPlayer.clear(this.getAdvancementData());
try {
ADVANCEMENT_DATA_PLAYER.set(this,
new EmptyAdvancementDataPlayer(minecraftServer, CitizensAPI.getDataFolder().getParentFile(), this));
Expand Down Expand Up @@ -539,8 +539,6 @@ public void setSkinPersistent(String skinName, String signature, String data) {
}

private static Field ADVANCEMENT_DATA_PLAYER = NMS.getField(EntityPlayer.class, "bY");
private static final String[][] EMPTY_PROGRESS = new String[0][0];
private static final Map<String, Criterion> EMPTY_PROGRESS_MAP = Collections.emptyMap();
private static final float EPSILON = 0.005F;
private static final Location LOADED_LOCATION = new Location(null, 0, 0, 0);
static {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ public EmptyAdvancementDataPlayer(MinecraftServer minecraftserver, File file, En
this.b();
}

@Override
public void a() {
}

@Override
public void a(Advancement advancement) {
}
Expand All @@ -31,17 +27,7 @@ public void a(EntityPlayer entityplayer) {

@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();
}
clear(this);
}

@Override
Expand All @@ -67,6 +53,20 @@ public boolean revokeCritera(Advancement advancement, String s) {
return false;
}

public static void clear(AdvancementDataPlayer data) {
data.a();
data.data.clear();
try {
((Set<?>) G.get(data)).clear();
((Set<?>) H.get(data)).clear();
((Set<?>) I.get(data)).clear();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}

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");
Expand Down

0 comments on commit 3f035ad

Please sign in to comment.