Block ignition for protected creepers

This commit is contained in:
fullwall 2023-03-02 22:52:31 +08:00
parent c22916bb70
commit 98e95b6ffb
11 changed files with 78 additions and 0 deletions

View File

@ -111,6 +111,13 @@ public class CreeperController extends MobEntityController {
return npc == null ? super.d(save) : false;
}
@Override
public void dh() {
if (npc == null || !npc.isProtected()) {
super.dh();
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {

View File

@ -103,6 +103,13 @@ public class CreeperController extends MobEntityController {
return npc == null ? super.d(save) : false;
}
@Override
public void dk() {
if (npc == null || !npc.isProtected()) {
super.dk();
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {

View File

@ -113,6 +113,13 @@ public class CreeperController extends MobEntityController {
return npc == null ? super.d(save) : false;
}
@Override
public void do_() {
if (npc == null || !npc.isProtected()) {
super.do_();
}
}
@Override
public void e(float f, float f1) {
if (npc == null || !npc.isFlyable()) {

View File

@ -134,6 +134,13 @@ public class CreeperController extends MobEntityController {
return NMSImpl.getSoundEffect(npc, super.D(), NPC.Metadata.AMBIENT_SOUND);
}
@Override
public void dB() {
if (npc == null || !npc.isProtected()) {
super.dB();
}
}
@Override
public void enderTeleportTo(double d0, double d1, double d2) {
NMS.enderTeleportTo(npc, () -> super.enderTeleportTo(d0, d1, d2));

View File

@ -169,6 +169,13 @@ public class CreeperController extends MobEntityController {
return NMSImpl.getSoundEffect(npc, super.getSoundHurt(damagesource), NPC.Metadata.HURT_SOUND);
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isClimbing() {
if (npc == null || !npc.isFlyable()) {

View File

@ -163,6 +163,13 @@ public class CreeperController extends MobEntityController {
}
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isClimbing() {
if (npc == null || !npc.isFlyable()) {

View File

@ -164,6 +164,13 @@ public class CreeperController extends MobEntityController {
}
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isClimbing() {
if (npc == null || !npc.isFlyable()) {

View File

@ -133,6 +133,13 @@ public class CreeperController extends MobEntityController {
return npc;
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isLeashed() {
return NMSImpl.isLeashed(npc, super::isLeashed, this);

View File

@ -133,6 +133,13 @@ public class CreeperController extends MobEntityController {
return npc;
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isLeashed() {
return NMSImpl.isLeashed(npc, super::isLeashed, this);

View File

@ -134,6 +134,13 @@ public class CreeperController extends MobEntityController {
return npc;
}
@Override
public void ignite() {
if (npc == null || !npc.isProtected()) {
super.ignite();
}
}
@Override
public boolean isLeashed() {
return NMSImpl.isLeashed(npc, super::isLeashed, this);

View File

@ -6,6 +6,7 @@ import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
import org.bukkit.entity.Creeper;
import org.bukkit.util.Vector;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.nms.v1_8_R3.util.NMSBoundingBox;
import net.citizensnpcs.nms.v1_8_R3.util.NMSImpl;
@ -98,6 +99,13 @@ public class CreeperController extends MobEntityController {
return NMSImpl.isLeashed(npc, super::cc, this);
}
@Override
public void co() {
if (npc == null || !npc.isProtected()) {
super.co();
}
}
@Override
public void collide(net.minecraft.server.v1_8_R3.Entity entity) {
// this method is called by both the entities involved - cancelling