Skip to content

Commit

Permalink
Be more aggressive in blocking achievement earning
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Apr 1, 2018
1 parent fc1d7ea commit a8ec654
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 7 deletions.
@@ -1,6 +1,8 @@
package net.citizensnpcs.nms.v1_12_R1.entity;

import java.io.IOException;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.net.Socket;
import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -30,6 +32,7 @@
import net.citizensnpcs.nms.v1_12_R1.network.EmptyNetHandler;
import net.citizensnpcs.nms.v1_12_R1.network.EmptyNetworkManager;
import net.citizensnpcs.nms.v1_12_R1.network.EmptySocket;
import net.citizensnpcs.nms.v1_12_R1.util.EmptyAdvancementDataPlayer;
import net.citizensnpcs.nms.v1_12_R1.util.NMSImpl;
import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerJump;
import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerLook;
Expand All @@ -42,7 +45,6 @@
import net.citizensnpcs.trait.Gravity;
import net.citizensnpcs.util.NMS;
import net.citizensnpcs.util.Util;
import net.minecraft.server.v1_12_R1.AdvancementProgress;
import net.minecraft.server.v1_12_R1.AttributeInstance;
import net.minecraft.server.v1_12_R1.BlockPosition;
import net.minecraft.server.v1_12_R1.ChatComponentText;
Expand Down Expand Up @@ -123,11 +125,6 @@ public void B_() {
super.B_();
if (npc == null)
return;
if (this.getAdvancementData().data != null) {
for (AdvancementProgress progress : this.getAdvancementData().data.values()) {
progress.a(EMPTY_PROGRESS_MAP, EMPTY_PROGRESS);
}
}
this.noclip = isSpectator();
if (updateCounter + 1 > Setting.PACKET_UPDATE_DELAY.asInt()) {
updateEffects = true;
Expand Down Expand Up @@ -325,6 +322,14 @@ private void initialise(MinecraftServer minecraftServer) {
navigation = new PlayerNavigation(this, world);
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
setSkinFlags((byte) 0xFF);
try {
ADVANCEMENT_DATA_PLAYER.set(this,
new EmptyAdvancementDataPlayer(minecraftServer, CitizensAPI.getDataFolder().getParentFile(), this));
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}

@Override
Expand Down Expand Up @@ -533,8 +538,16 @@ 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 {
Field modifiersField = NMS.getField(Field.class, "modifiers");
try {
modifiersField.setInt(ADVANCEMENT_DATA_PLAYER, ADVANCEMENT_DATA_PLAYER.getModifiers() & ~Modifier.FINAL);
} catch (Exception e) {
}
}
}
@@ -0,0 +1,54 @@
package net.citizensnpcs.nms.v1_12_R1.util;

import java.io.File;

import net.minecraft.server.v1_12_R1.Advancement;
import net.minecraft.server.v1_12_R1.AdvancementDataPlayer;
import net.minecraft.server.v1_12_R1.AdvancementProgress;
import net.minecraft.server.v1_12_R1.EntityPlayer;
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);
}

@Override
public void a() {
}

@Override
public void a(Advancement advancement) {
}

@Override
public void a(EntityPlayer entityplayer) {
}

@Override
public void b() {
}

@Override
public void b(EntityPlayer entityplayer) {
}

@Override
public void c() {
}

@Override
public AdvancementProgress getProgress(Advancement advancement) {
return new AdvancementProgress();
}

@Override
public boolean grantCriteria(Advancement advancement, String s) {
return false;
}

@Override
public boolean revokeCritera(Advancement advancement, String s) {
return false;
}
}
Expand Up @@ -1019,7 +1019,6 @@ public void shutdown() {
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, ENTITY_REGISTRY.getWrapped());
} catch (Exception e) {

}
}

Expand Down

0 comments on commit a8ec654

Please sign in to comment.