Skip to content

Commit

Permalink
Add "on entity damages vehicle" and "on entity destroys vehicle" worl…
Browse files Browse the repository at this point in the history
…d events.
  • Loading branch information
davidcernat committed Jul 10, 2013
1 parent 25f4133 commit fced8ab
Showing 1 changed file with 84 additions and 14 deletions.
Expand Up @@ -46,6 +46,8 @@
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.*;
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.event.vehicle.VehicleDamageEvent;
import org.bukkit.event.vehicle.VehicleDestroyEvent;
import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleExitEvent;
import org.bukkit.event.weather.LightningStrikeEvent;
Expand Down Expand Up @@ -1168,18 +1170,21 @@ public void serverCommandEvent(ServerCommandEvent event) {
/////////////////

@EventHandler
public void vehicleEnter(VehicleEnterEvent event) {
public void vehicleDamage(VehicleDamageEvent event) {

Map<String, Object> context = new HashMap<String, Object>();

Entity entity = event.getEntered();
Entity entity = event.getAttacker();
Vehicle vehicle = event.getVehicle();

String entityType = entity.getType().name();
String vehicleType = vehicle.getType().name();

Player player = null;

context.put("damage", new Element(event.getDamage()));
context.put("vehicle", new dEntity(vehicle));

if (entity instanceof Player) {
context.put("entity", new dPlayer((Player) entity));
player = (Player) entity;
Expand All @@ -1188,19 +1193,86 @@ public void vehicleEnter(VehicleEnterEvent event) {
context.put("entity", new dEntity(entity));
}

if (vehicle instanceof Player) {
context.put("vehicle", new dPlayer((Player) vehicle));
String determination = doEvents(Arrays.asList
("entity damages vehicle",
entityType + " damages vehicle",
"entity damages " + vehicleType,
entityType + " damages " + vehicleType),
null, player, context);

if (determination.toUpperCase().startsWith("CANCELLED"))
event.setCancelled(true);

if (aH.matchesValueArg("DAMAGE", determination, aH.ArgumentType.Double))
event.setDamage(aH.getDoubleFrom(determination));
}

@EventHandler
public void vehicleDestroy(VehicleDestroyEvent event) {

Map<String, Object> context = new HashMap<String, Object>();

Entity entity = event.getAttacker();
Vehicle vehicle = event.getVehicle();

String entityType = entity.getType().name();
String vehicleType = vehicle.getType().name();

Player player = null;

context.put("vehicle", new dEntity(vehicle));

if (entity instanceof Player) {
context.put("entity", new dPlayer((Player) entity));
player = (Player) entity;
}
else {
context.put("vehicle", new dEntity(vehicle));
context.put("entity", new dEntity(entity));
}

doEvents(Arrays.asList
String determination = doEvents(Arrays.asList
("entity destroys vehicle",
entityType + " destroys vehicle",
"entity destroys " + vehicleType,
entityType + " destroys " + vehicleType),
null, player, context);

if (determination.toUpperCase().startsWith("CANCELLED"))
event.setCancelled(true);
}

@EventHandler
public void vehicleEnter(VehicleEnterEvent event) {

Map<String, Object> context = new HashMap<String, Object>();

Entity entity = event.getEntered();
Vehicle vehicle = event.getVehicle();

String entityType = entity.getType().name();
String vehicleType = vehicle.getType().name();

Player player = null;

context.put("vehicle", new dEntity(vehicle));

if (entity instanceof Player) {
context.put("entity", new dPlayer((Player) entity));
player = (Player) entity;
}
else {
context.put("entity", new dEntity(entity));
}

String determination = doEvents(Arrays.asList
("entity enters vehicle",
entityType + " enters vehicle",
"entity enters " + vehicleType,
entityType + " enters " + vehicleType),
null, player, context);

if (determination.toUpperCase().startsWith("CANCELLED"))
event.setCancelled(true);
}

@EventHandler
Expand All @@ -1216,6 +1288,8 @@ public void vehicleExit(VehicleExitEvent event) {

Player player = null;

context.put("vehicle", new dEntity(vehicle));

if (entity instanceof Player) {
context.put("entity", new dPlayer((Player) entity));
player = (Player) entity;
Expand All @@ -1224,19 +1298,15 @@ public void vehicleExit(VehicleExitEvent event) {
context.put("entity", new dEntity(entity));
}

if (vehicle instanceof Player) {
context.put("vehicle", new dPlayer((Player) vehicle));
}
else {
context.put("vehicle", new dEntity(vehicle));
}

doEvents(Arrays.asList
String determination = doEvents(Arrays.asList
("entity exits vehicle",
entityType + " exits vehicle",
"entity exits " + vehicleType,
entityType + " exits " + vehicleType),
null, player, context);

if (determination.toUpperCase().startsWith("CANCELLED"))
event.setCancelled(true);
}


Expand Down

0 comments on commit fced8ab

Please sign in to comment.