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.inventory.BrewEvent; import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.inventory.FurnaceSmeltEvent; import org.bukkit.inventory.BrewerInventory; public class CraftLogger implements Listener,Runnable{ private SQL manager; public CraftLogger(SQL sql){ manager=sql; Thread t = new Thread(this,"[UltraLogger] - SQL Craft Logger"); t.start(); } @EventHandler (priority = EventPriority.MONITOR) public void onBrew(BrewEvent e){ BrewerInventory i =e.getContents(); String potion = i.getItem(0).getData()+","+ i.getItem(1).getData() +","+ i.getItem(2).getData(); manager.query("INSERT INTO `"+manager.getprefix()+"_craft`(`time`,`event`,`recipe` ,`x` ,`y` ,`z`) VALUES(NOW(),'Brew','"+i.getIngredient().getType().name() +"+"+potion+"',"+toSQLquery(e.getBlock().getLocation())+")"); } @EventHandler (priority = EventPriority.MONITOR) public void onCraft(CraftItemEvent e){ manager.query("INSERT INTO `"+manager.getprefix()+"_craft`(`time`,`playername`,`result`,`event`,`x`,`y`,`z`) VALUES(NOW(),'"+e.getWhoClicked().getName()+"','"+e.getRecipe().getResult()+"','Craft',"+ toSQLquery(e.getView().getPlayer().getLocation())+ ")"); } @EventHandler (priority = EventPriority.MONITOR) public void onSmelt(FurnaceSmeltEvent e){ manager.query("INSERT INTO `"+manager.getprefix()+"_craft`(`time`,`result`,`event`,`recipe`,`x`,`y`,`z`) VALUES(NOW(),'"+e.getResult()+"','Smelt','"+ e.getSource().toString()+"',"+toSQLquery(e.getBlock().getLocation())+ ")"); } /* * 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 craft table manager.query("CREATE TABLE IF NOT EXISTS `"+manager.getprefix()+"_craft` (`prim_key` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,`time` DATETIME NOT NULL,`playername` VARCHAR(255)," + "`result` VARCHAR(255) ,`event` VARCHAR(255) NOT NULL,`recipe` VARCHAR(255),`x` INT NOT NULL,`y` INT NOT NULL, `z` INT NOT NULL,PRIMARY KEY (prim_key)) COLLATE='utf8_general_ci'"); } }