mirror of
https://github.com/CitizensDev/Citizens2.git
synced 2024-09-28 07:07:39 +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;
|
package net.citizensnpcs.nms.v1_12_R1.entity;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Modifier;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
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.EmptyNetHandler;
|
||||||
import net.citizensnpcs.nms.v1_12_R1.network.EmptyNetworkManager;
|
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.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.NMSImpl;
|
||||||
import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerJump;
|
import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerJump;
|
||||||
import net.citizensnpcs.nms.v1_12_R1.util.PlayerControllerLook;
|
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.trait.Gravity;
|
||||||
import net.citizensnpcs.util.NMS;
|
import net.citizensnpcs.util.NMS;
|
||||||
import net.citizensnpcs.util.Util;
|
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.AttributeInstance;
|
||||||
import net.minecraft.server.v1_12_R1.BlockPosition;
|
import net.minecraft.server.v1_12_R1.BlockPosition;
|
||||||
import net.minecraft.server.v1_12_R1.ChatComponentText;
|
import net.minecraft.server.v1_12_R1.ChatComponentText;
|
||||||
@ -123,11 +125,6 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
|
|||||||
super.B_();
|
super.B_();
|
||||||
if (npc == null)
|
if (npc == null)
|
||||||
return;
|
return;
|
||||||
if (this.getAdvancementData().data != null) {
|
|
||||||
for (AdvancementProgress progress : this.getAdvancementData().data.values()) {
|
|
||||||
progress.a(EMPTY_PROGRESS_MAP, EMPTY_PROGRESS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.noclip = isSpectator();
|
this.noclip = isSpectator();
|
||||||
if (updateCounter + 1 > Setting.PACKET_UPDATE_DELAY.asInt()) {
|
if (updateCounter + 1 > Setting.PACKET_UPDATE_DELAY.asInt()) {
|
||||||
updateEffects = true;
|
updateEffects = true;
|
||||||
@ -325,6 +322,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder, Skinnable
|
|||||||
navigation = new PlayerNavigation(this, world);
|
navigation = new PlayerNavigation(this, world);
|
||||||
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
|
NMS.setStepHeight(getBukkitEntity(), 1); // the default (0) breaks step climbing
|
||||||
setSkinFlags((byte) 0xFF);
|
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
|
@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 String[][] EMPTY_PROGRESS = new String[0][0];
|
||||||
private static final Map<String, Criterion> EMPTY_PROGRESS_MAP = Collections.emptyMap();
|
private static final Map<String, Criterion> EMPTY_PROGRESS_MAP = Collections.emptyMap();
|
||||||
private static final float EPSILON = 0.005F;
|
private static final float EPSILON = 0.005F;
|
||||||
private static final Location LOADED_LOCATION = new Location(null, 0, 0, 0);
|
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);
|
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
|
||||||
field.set(null, ENTITY_REGISTRY.getWrapped());
|
field.set(null, ENTITY_REGISTRY.getWrapped());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user