Call NPCVehicleExitEvent properly for all vehicle exits

This commit is contained in:
fullwall 2013-08-15 17:23:36 +08:00
parent bc5704128a
commit 9fc7c43ea5
32 changed files with 331 additions and 4 deletions

View File

@ -151,7 +151,8 @@ public class CitizensNPC extends AbstractNPC {
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));

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -134,5 +136,14 @@ public class BatController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -121,5 +123,14 @@ public class BlazeController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -129,5 +131,14 @@ public class CaveSpiderController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -118,5 +120,14 @@ public class ChickenController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -119,5 +121,14 @@ public class CowController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -16,6 +17,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -131,5 +133,14 @@ public class CreeperController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -142,5 +144,14 @@ public class EnderDragonController extends MobEntityController {
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);
}
}
}

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.craftbukkit.v1_6_R2.CraftServer;
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 {
@ -148,6 +150,15 @@ public class EndermanController extends MobEntityController {
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

View File

@ -6,6 +6,7 @@ import java.util.List;
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;
@ -41,6 +42,7 @@ import org.bukkit.Location;
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;
@ -226,6 +228,14 @@ public class EntityHumanNPC extends EntityPlayer implements NPCHolder {
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();
}

View File

@ -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;
@ -15,6 +16,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.CraftGhast;
import org.bukkit.entity.Ghast;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
public class GhastController extends MobEntityController {
@ -105,6 +107,15 @@ public class GhastController extends MobEntityController {
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 {

View File

@ -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;
@ -15,6 +16,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.CraftGiant;
import org.bukkit.entity.Giant;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
public class GiantController extends MobEntityController {
@ -107,6 +109,15 @@ public class GiantController extends MobEntityController {
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 {

View File

@ -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;
@ -17,6 +18,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.CraftHorse;
import org.bukkit.entity.Horse;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
public class HorseController extends MobEntityController {
@ -120,6 +122,15 @@ public class HorseController extends MobEntityController {
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

View File

@ -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;
@ -15,6 +16,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.CraftIronGolem;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.LivingEntity;
import org.bukkit.util.Vector;
public class IronGolemController extends MobEntityController {
@ -104,6 +106,15 @@ public class IronGolemController extends MobEntityController {
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 IronGolemNPC extends CraftIronGolem implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftMagmaCube;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.MagmaCube;
import org.bukkit.util.Vector;
@ -115,6 +117,15 @@ public class MagmaCubeController extends MobEntityController {
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 MagmaCubeNPC extends CraftMagmaCube implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftMushroomCow;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.MushroomCow;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class MushroomCowController extends MobEntityController {
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 MushroomCowNPC extends CraftMushroomCow implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftOcelot;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Ocelot;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class OcelotController extends MobEntityController {
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 OcelotNPC extends CraftOcelot implements NPCHolder {

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.Bukkit;
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.CraftPig;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Pig;
import org.bukkit.util.Vector;
@ -111,6 +113,15 @@ public class PigController extends MobEntityController {
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 PigNPC extends CraftPig implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftPigZombie;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.PigZombie;
import org.bukkit.util.Vector;
@ -115,6 +117,15 @@ public class PigZombieController extends MobEntityController {
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 PigZombieNPC extends CraftPigZombie implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSheep;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Sheep;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class SheepController extends MobEntityController {
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 SheepNPC extends CraftSheep implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSilverfish;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Silverfish;
import org.bukkit.util.Vector;
@ -114,6 +116,15 @@ public class SilverfishController extends MobEntityController {
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 SilverfishNPC extends CraftSilverfish implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSkeleton;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Skeleton;
import org.bukkit.util.Vector;
@ -104,6 +106,15 @@ public class SkeletonController extends MobEntityController {
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 SkeletonNPC extends CraftSkeleton implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSlime;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Slime;
import org.bukkit.util.Vector;
@ -116,6 +118,15 @@ public class SlimeController extends MobEntityController {
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 SlimeNPC extends CraftSlime implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSnowman;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Snowman;
import org.bukkit.util.Vector;
@ -104,6 +106,15 @@ public class SnowmanController extends MobEntityController {
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 SnowmanNPC extends CraftSnowman implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSpider;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Spider;
import org.bukkit.util.Vector;
@ -114,6 +116,15 @@ public class SpiderController extends MobEntityController {
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 SpiderNPC extends CraftSpider implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftSquid;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Squid;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class SquidController extends MobEntityController {
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 SquidNPC extends CraftSquid implements NPCHolder {

View File

@ -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;
@ -15,6 +16,7 @@ import org.bukkit.Bukkit;
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.CraftVillager;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Villager;
import org.bukkit.util.Vector;
@ -120,6 +122,15 @@ public class VillagerController extends MobEntityController {
public void setBlockTrades(boolean blocked) {
this.blockTrades = blocked;
}
@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 VillagerNPC extends CraftVillager implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftWitch;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Witch;
import org.bukkit.util.Vector;
@ -104,6 +106,15 @@ public class WitchController extends MobEntityController {
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 WitchNPC extends CraftWitch implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftWither;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Wither;
import org.bukkit.util.Vector;
@ -116,6 +118,15 @@ public class WitherController extends MobEntityController {
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

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftWolf;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Wolf;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class WolfController extends MobEntityController {
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 WolfNPC extends CraftWolf implements NPCHolder {

View File

@ -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;
@ -14,6 +15,7 @@ import org.bukkit.Bukkit;
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.CraftZombie;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Zombie;
import org.bukkit.util.Vector;
@ -105,6 +107,15 @@ public class ZombieController extends MobEntityController {
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 ZombieNPC extends CraftZombie implements NPCHolder {

View File

@ -7,7 +7,6 @@ import net.citizensnpcs.Settings.Setting;
import net.citizensnpcs.api.command.CommandConfigurable;
import net.citizensnpcs.api.command.CommandContext;
import net.citizensnpcs.api.event.NPCRightClickEvent;
import net.citizensnpcs.api.event.NPCVehicleExitEvent;
import net.citizensnpcs.api.exception.NPCLoadException;
import net.citizensnpcs.api.persistence.Persist;
import net.citizensnpcs.api.trait.Trait;
@ -19,7 +18,6 @@ import net.minecraft.server.v1_6_R2.EntityEnderDragon;
import net.minecraft.server.v1_6_R2.EntityLiving;
import net.minecraft.server.v1_6_R2.EntityPlayer;
import org.bukkit.Bukkit;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftLivingEntity;
import org.bukkit.craftbukkit.v1_6_R2.entity.CraftPlayer;
import org.bukkit.entity.Entity;
@ -69,7 +67,6 @@ public class Controllable extends Trait implements Toggleable, CommandConfigurab
if (getHandle().passenger != null) {
if (getHandle().passenger == handle) {
player.leaveVehicle();
Bukkit.getPluginManager().callEvent(new NPCVehicleExitEvent(npc, player));
}
return;
}