mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-06-27 15:05:22 +02:00
Be more aggressive in blocking achievement earning
This commit is contained in:
parent
fc1d7eab58
commit
a8ec654753
|
@ -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;
|
||||
|
@ -30,6 +32,7 @@ import net.citizensnpcs.api.trait.trait.Inventory;
|
|||
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;
|
||||
|
@ -42,7 +45,6 @@ import net.citizensnpcs.npc.skin.SkinnableEntity;
|
|||
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;
|
||||
|
@ -123,11 +125,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
|
|||
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;
|
||||
|
@ -325,6 +322,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
|
|||
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
|
||||
|
@ -533,8 +538,16 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
|
|||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
|
@ -1019,7 +1019,6 @@ public class NMSImpl implements NMSBridge {
|
|||
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
|
||||
field.set(null, ENTITY_REGISTRY.getWrapped());
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user