diff --git a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java index 73d96a08b..3342919ae 100644 --- a/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java +++ b/main/src/main/java/net/citizensnpcs/trait/ScoreboardTrait.java @@ -72,7 +72,7 @@ public void apply(Team team, boolean nameVisibility) { if (SUPPORT_COLLIDABLE_SETOPTION && npc.data().has(NPC.COLLIDABLE_METADATA)) { try { team.setOption(Option.COLLISION_RULE, - (boolean) npc.data().get(NPC.COLLIDABLE_METADATA) ? OptionStatus.ALWAYS : OptionStatus.NEVER); + npc.data(). get(NPC.COLLIDABLE_METADATA) ? OptionStatus.ALWAYS : OptionStatus.NEVER); } catch (NoSuchMethodError e) { SUPPORT_COLLIDABLE_SETOPTION = false; } catch (NoClassDefFoundError e) { diff --git a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java index 861aa016f..839f43007 100644 --- a/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java +++ b/v1_10_R1/src/main/java/net/citizensnpcs/nms/v1_10_R1/entity/EntityHumanNPC.java @@ -302,6 +302,9 @@ public void k_() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + cs(); + } tickPotionEffects(); this.ba = this.aZ; this.aP = this.aO; diff --git a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java index 5b9511af2..d2e2703dd 100644 --- a/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java +++ b/v1_11_R1/src/main/java/net/citizensnpcs/nms/v1_11_R1/entity/EntityHumanNPC.java @@ -367,6 +367,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + ct(); + } tickPotionEffects(); this.aZ = this.aY; this.aO = this.aN; diff --git a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java index 56fb261a1..4c8cba03a 100644 --- a/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java +++ b/v1_12_R1/src/main/java/net/citizensnpcs/nms/v1_12_R1/entity/EntityHumanNPC.java @@ -393,6 +393,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + cB(); + } tickPotionEffects(); this.aZ = this.aY; this.aO = this.aN; diff --git a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java index f7dd9df13..5b4d24c6f 100644 --- a/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java +++ b/v1_13_R2/src/main/java/net/citizensnpcs/nms/v1_13_R2/entity/EntityHumanNPC.java @@ -368,6 +368,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + cN(); + } tickPotionEffects(); this.bc = this.bb; this.aR = this.aQ; diff --git a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java index 5aac70ae5..4391e629c 100644 --- a/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java +++ b/v1_14_R1/src/main/java/net/citizensnpcs/nms/v1_14_R1/entity/EntityHumanNPC.java @@ -372,6 +372,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + collideNearby(); + } tickPotionEffects(); this.aW = this.aV; this.aL = this.aK; diff --git a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java index 68ea7cc46..cb9185a17 100644 --- a/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java +++ b/v1_15_R1/src/main/java/net/citizensnpcs/nms/v1_15_R1/entity/EntityHumanNPC.java @@ -373,6 +373,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + collideNearby(); + } tickPotionEffects(); this.aU = this.aT; this.aJ = this.aI; diff --git a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java index 002f246da..9211c13ce 100644 --- a/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java +++ b/v1_16_R3/src/main/java/net/citizensnpcs/nms/v1_16_R3/entity/EntityHumanNPC.java @@ -403,6 +403,9 @@ public void playerTick() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + collideNearby(); + } tickPotionEffects(); this.aM = this.aL; this.aB = this.aA; diff --git a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java index ad32ab34a..cb32a1c5b 100644 --- a/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java +++ b/v1_17_R1/src/main/java/net/citizensnpcs/nms/v1_17_R1/entity/EntityHumanNPC.java @@ -214,6 +214,9 @@ public void doTick() { setLastHurtByMob((LivingEntity) null); } } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + pushEntities(); + } tickEffects(); this.animStepO = this.animStep; this.yBodyRotO = this.yBodyRot; diff --git a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/entity/EntityHumanNPC.java b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/entity/EntityHumanNPC.java index ed8db6798..915039862 100644 --- a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/entity/EntityHumanNPC.java +++ b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/entity/EntityHumanNPC.java @@ -218,6 +218,10 @@ public void doTick() { } } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + pushEntities(); + } + tickEffects(); this.animStepO = this.animStep; this.yBodyRotO = this.yBodyRot; @@ -375,9 +379,7 @@ public boolean isNavigating() { @Override public boolean isPushable() { - return npc == null ? super.isPushable() - : npc.data().has(NPC.COLLIDABLE_METADATA) ? npc.data(). get(NPC.COLLIDABLE_METADATA) - : !npc.isProtected(); + return npc == null ? super.isPushable() : npc.data(). get(NPC.COLLIDABLE_METADATA, !npc.isProtected()); } private void moveOnCurrentHeading() { @@ -509,8 +511,8 @@ public void travel(Vec3 vec3d) { public void updateAI() { controllerMove.tick(); - controllerLook.a(); - controllerJump.b(); + controllerLook.tick(); + controllerJump.tick(); } private void updatePackets(boolean navigating) { diff --git a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerControllerJump.java b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerControllerJump.java index 7409cb0e5..9c3c4570d 100644 --- a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerControllerJump.java +++ b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerControllerJump.java @@ -10,7 +10,7 @@ public PlayerControllerJump(EntityHumanNPC entityinsentient) { this.b = entityinsentient; } - public void b() { + public void tick() { this.b.setJumping(this.a); this.a = false; } diff --git a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerLookControl.java b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerLookControl.java index 0752dc760..d27fba485 100644 --- a/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerLookControl.java +++ b/v1_18_R1/src/main/java/net/citizensnpcs/nms/v1_18_R1/util/PlayerLookControl.java @@ -21,7 +21,7 @@ public PlayerLookControl(EntityHumanNPC entityinsentient) { this.control = new PlayerBodyControl(this.a); } - public void a() { + public void tick() { if (!this.a.getNavigation().isDone()) { // TODO: use Citizens AI? // this.a.yHeadRot = Mth.rotateIfNecessary(this.a.yHeadRot, this.a.yBodyRot, 75); diff --git a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java index 1e236d5a5..3cedb10a2 100644 --- a/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java +++ b/v1_8_R3/src/main/java/net/citizensnpcs/nms/v1_8_R3/entity/EntityHumanNPC.java @@ -311,6 +311,9 @@ public void l() { if (this.hurtTicks > 0) { this.hurtTicks -= 1; } + if (npc.data().get(NPC.Metadata.COLLIDABLE, !npc.isProtected())) { + bL(); + } bi(); this.aU = this.aT; this.aJ = this.aI;