Skip to content

Commit

Permalink
Call NPCVehicleExitEvent properly for all vehicle exits
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Aug 15, 2013
1 parent 327d7f1 commit 9fb5771
Show file tree
Hide file tree
Showing 32 changed files with 331 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/main/java/net/citizensnpcs/npc/CitizensNPC.java
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ public boolean spawn(Location at) {
boolean couldSpawn = !Util.isLoaded(at) ? false : mcEntity.world.addEntity(mcEntity, SpawnReason.CUSTOM);
mcEntity.setPositionRotation(at.getX(), at.getY(), at.getZ(), at.getYaw(), at.getPitch());
if (!couldSpawn) {
Messaging.debug("Retrying spawn of", getId(), "later due to chunk being unloaded.");
Messaging.debug("Retrying spawn of", getId(), "later due to chunk being unloaded.",
Util.isLoaded(at) ? "Util.isLoaded true" : "Util.isLoaded false");
// we need to wait for a chunk load before trying to spawn
entityController.remove();
Bukkit.getPluginManager().callEvent(new NPCNeedsRespawnEvent(this, at));
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/BatController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftBat;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Bat;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class BatController extends MobEntityController {
Expand Down Expand Up @@ -134,5 +136,14 @@ public void l_() {
public void setFlying(boolean flying) {
a(flying);
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/BlazeController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftBlaze;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Blaze;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class BlazeController extends MobEntityController {
Expand Down Expand Up @@ -121,5 +123,14 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftCaveSpider;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.CaveSpider;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class CaveSpiderController extends MobEntityController {
Expand Down Expand Up @@ -129,5 +131,14 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/ChickenController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftChicken;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Chicken;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class ChickenController extends MobEntityController {
Expand Down Expand Up @@ -118,5 +120,14 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/CowController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftCow;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Cow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class CowController extends MobEntityController {
Expand Down Expand Up @@ -119,5 +121,14 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/CreeperController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -16,6 +17,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftCreeper;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class CreeperController extends MobEntityController {
Expand Down Expand Up @@ -131,5 +133,14 @@ public NPC getNPC() {
public void setAllowPowered(boolean allowPowered) {
this.allowPowered = allowPowered;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEnderDragon;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.EnderDragon;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class EnderDragonController extends MobEntityController {
Expand Down Expand Up @@ -142,5 +144,14 @@ private float getCorrectYaw(double tX, double tZ) {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}
}
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/EndermanController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEnderman;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.entity.Enderman;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class EndermanController extends MobEntityController {
Expand Down Expand Up @@ -148,6 +150,15 @@ protected boolean j(double d1, double d2, double d3) {
return false;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}

private void updateAIWithMovement() {
NMS.updateAI(this);
// taken from EntityLiving update method
Expand Down
10 changes: 10 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/EntityHumanNPC.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.ai.NPCHolder;
Expand Down Expand Up @@ -41,6 +42,7 @@
import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
import org.bukkit.entity.LivingEntity;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
import org.bukkit.util.Vector;
Expand Down Expand Up @@ -226,6 +228,14 @@ public void setMoveDestination(double x, double y, double z, float speed) {
controllerMove.a(x, y, z, speed);
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}

public void setShouldJump() {
controllerJump.a();
}
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/GhastController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftGhast;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class GhastController extends MobEntityController {
Expand Down Expand Up @@ -105,6 +107,15 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}

public static class GhastNPC extends CraftGhast implements NPCHolder {
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/GiantController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -15,6 +16,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftGiant;
import org.bukkit.entity.Giant;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class GiantController extends MobEntityController {
Expand Down Expand Up @@ -107,6 +109,15 @@ public CraftEntity getBukkitEntity() {
public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}
}

public static class GiantNPC extends CraftGiant implements NPCHolder {
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/net/citizensnpcs/npc/entity/HorseController.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package net.citizensnpcs.npc.entity;

import net.citizensnpcs.api.event.NPCPushEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.npc.CitizensNPC;
import net.citizensnpcs.npc.MobEntityController;
Expand All @@ -17,6 +18,7 @@
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftEntity;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftHorse;
import org.bukkit.entity.Horse;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;

public class HorseController extends MobEntityController {
Expand Down Expand Up @@ -120,6 +122,15 @@ public NPC getNPC() {
return npc;
}

@Override
public void setPassengerOf(net.minecraft.server.v1_6_R2.Entity entity) {
if (npc != null && entity == null && vehicle != null && vehicle.getBukkitEntity() instanceof LivingEntity) {
Bukkit.getPluginManager().callEvent(
new NPCVehicleExitEvent(npc, (LivingEntity) vehicle.getBukkitEntity()));
}
super.setPassengerOf(entity);
}

private void updateAIWithMovement() {
NMS.updateAI(this);
// taken from EntityLiving update method
Expand Down
Loading

0 comments on commit 9fb5771

Please sign in to comment.