Skip to main content

Events

VehiclesPlus fires standard Bukkit events, so you listen to them exactly like any other event — a class implementing Listener with @EventHandler methods, registered via getServer().getPluginManager().registerEvents(...).

  • Every vehicle event exposes getVehicle(), typed to the most specific vehicle it can be (SpawnedVehicle, DrivableVehicle, VehicleModel, …).
  • Cancellable events implement Cancellable, so event.setCancelled(true) stops the action.
public class MyListener implements Listener {

@EventHandler
public void onSpawn(VehicleSpawnedEvent event) {
SpawnedVehicle vehicle = event.getVehicle();
Bukkit.getLogger().info("A " + vehicle.getVehicleModel().getId() + " was spawned!");
}
}
getServer().getPluginManager().registerEvents(new MyListener(), this);

All events

EventgetVehicle() typeCancellableFires when…
VehiclePreSpawnEventStorageVehicleJust before a vehicle is spawned. Cancel to prevent it.
VehicleSpawnedEventSpawnedVehicleAfter a vehicle has spawned into the world.
VehicleDespawnEventSpawnedVehicleA vehicle despawns. getReason()PLAYER, CHUNK_UNLOAD, API, SHUTDOWN or DESTROY.
VehicleGiveEventVehicleModelA vehicle is given to someone. Exposes getSource() (e.g. command or voucher), getGarage() and getCommandSender().
VehicleBuyEventVehicleModelA player buys a vehicle from the shop.
VehicleDeleteEventVehicleA vehicle is permanently removed (remove()).
VehicleDestroyEventSpawnedVehicleA vehicle is destroyed (health hits zero / crash).
VehicleCollisionEventSpawnedVehicleA vehicle collides with a block, entity or vehicle.
VehicleEnterEventSpawnedVehicleA player enters a seat.
VehicleLeaveEventDrivableVehicleA player leaves a vehicle.
VehicleClickEventDrivableVehicleA player right-clicks a vehicle part.
VehicleLockStateChangeEventDrivableVehicleA vehicle is locked or unlocked.
VehicleUpgradeEventDrivableVehicleA stat is upgraded. getType()SPEED, TANK, ACCELERATION or TURNING.
VehicleRefuelEventSpawnedVehicleA vehicle is refueled.
KeyPressEventA driver sends movement input (each tick). Exposes getPlayer() and getInput().
GarageOpenEventA garage menu is opened.

Examples

Stop a specific model from being bought:

@EventHandler
public void onBuy(VehicleBuyEvent event) {
if (event.getVehicle().getId().equals("ExampleTank")) {
event.setCancelled(true);
}
}

Don't let players despawn vehicles by hand (but allow chunk unloads, shutdown, etc.):

@EventHandler
public void onDespawn(VehicleDespawnEvent event) {
if (event.getReason() == VehicleDespawnEvent.DespawnReason.PLAYER) {
event.setCancelled(true);
}
}

React when a vehicle is given via a voucher:

@EventHandler
public void onGive(VehicleGiveEvent event) {
if (event.getSource() == VehicleGiveEvent.Source.VOUCHER) {
Bukkit.getLogger().info("Voucher redeemed for " + event.getVehicle().getId());
}
}
note

Cancelling a *PreSpawn*, *Give*, *Buy* or *Delete* event is the clean way to gate VehiclesPlus actions behind your own plugin's logic (regions, claims, custom economy, cooldowns, …).