package org.ultralogger.logger.sql; import org.bukkit.Location; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.vehicle.VehicleCreateEvent; import org.bukkit.event.vehicle.VehicleDestroyEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleExitEvent; public class VehicleLogger implements Listener,Runnable{ private SQL manager; public VehicleLogger(SQL sql){ manager=sql; Thread t = new Thread(this,"[UltraLogger] - SQL Vehicle Logger"); t.start(); } @EventHandler (priority = EventPriority.MONITOR) public void onCreated(VehicleCreateEvent e){ Location loc = e.getVehicle().getLocation(); manager.query("INSERT INTO `"+manager.getprefix()+"_vehicle`(`time`, `vehicle`, `event`, `x`, `y`, `z`) VALUES (NOW(),'"+e.getVehicle().toString()+"', 'place' ," + toSQLquery(loc)+")"); } @EventHandler (priority = EventPriority.MONITOR) public void onDestroyed(VehicleDestroyEvent e){ Location loc = e.getVehicle().getLocation(); String entity =""; if(e.getAttacker()!=null){ entity= e.getAttacker().getClass().getName(); } manager.query("INSERT INTO `"+manager.getprefix()+"_vehicle`(`time`, `vehicle`, `entity`, `event`, `x`, `y`, `z`) VALUES (NOW(),'"+e.getVehicle().toString()+"','"+ entity + "','destroy' ," + toSQLquery(loc)+")"); } @EventHandler (priority = EventPriority.MONITOR) public void onEnter(VehicleEnterEvent e){ Location loc = e.getVehicle().getLocation(); String entity =e.getEntered().getClass().getName(); manager.query("INSERT INTO `"+manager.getprefix()+"_vehicle`(`time`, `vehicle`, `entity`, `event`, `x`, `y`, `z`) VALUES (NOW(),'"+e.getVehicle().toString()+"','"+ entity + "','enter' ," + toSQLquery(loc)+")"); } @EventHandler (priority = EventPriority.MONITOR) public void onExit(VehicleExitEvent e){ Location loc = e.getVehicle().getLocation(); String entity =e.getExited().getClass().getName(); manager.query("INSERT INTO `"+manager.getprefix()+"_vehicle`(`time`, `vehicle`, `entity`, `event`, `x`, `y`, `z`) VALUES (NOW(),'"+e.getVehicle().toString()+"','"+ entity + "','exit' ," + toSQLquery(loc)+")"); } /* * TODO: Move to another file where it can be called from as it is used in multiple Loggers */ public String toSQLquery(Location loc){ String s =loc.getBlockX()+","+loc.getBlockY()+","+loc.getBlockZ(); return s; } @Override public void run() { manager.register(this); //Create the def vehicle table manager.query("CREATE TABLE IF NOT EXISTS `"+manager.getprefix()+"_vehicle`(`prim_key` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,`time` DATETIME NOT NULL," + "`vehicle` VARCHAR(255) NOT NULL,`entity` VARCHAR(255),`event` VARCHAR(255) NOT NULL,`x` INT NOT NULL,`y` INT NOT NULL, `z` INT NOT NULL,PRIMARY KEY (prim_key))"); } }