package org.ultralogger.logger.sql;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.enchantment.EnchantItemEvent;
public class EnchantmentLogger implements Listener,Runnable{
private SQL manager;
public EnchantmentLogger(SQL sql){
manager=sql;
Thread t = new Thread(this,"[UltraLogger] - SQL Enchantment Logger");
t.start();
}
@EventHandler (priority = EventPriority.MONITOR)
public void onEnchant(EnchantItemEvent e){
Player p =e.getEnchanter();
String enchants = e.getEnchantsToAdd().toString();
enchants = enchants.replace("Enchantment","");
enchants = enchants.replace("]","");
enchants = enchants.replace(",","");
enchants = enchants.replaceAll("\\[\\d\\d","");
/*
* TODO: Change enchantment String to something better readable for scripts
*/
int cost = e.getExpLevelCost();
manager.query("INSERT INTO `"+manager.getprefix()+"_enchantment`(`time`, `playername`, `id`, `enchantment`, `lvlused`,`x`,`y`,`z`) VALUES (NOW(), '"+ p +"','"+e.getItem()+"','"+enchants+"',"
+cost+","+toSQLquery(e.getEnchantBlock().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 enchantment table
manager.query("CREATE TABLE IF NOT EXISTS `"+manager.getprefix()+"_enchantment`(`prim_key` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,`time` DATETIME NOT NULL,`playername` VARCHAR(255) NOT NULL," +
" `id` VARCHAR(255) NOT NULL ,`enchantment` VARCHAR(255) NOT NULL, `lvlused` BIGINT NOT NULL,`x` INT NOT NULL,`y` INT NOT NULL, `z` INT NOT NULL,PRIMARY KEY (prim_key)) COLLATE='utf8_general_ci'");
}
}