package me.km.snuviscript; import me.km.api.Module; import me.km.databank.SimpleDataBank; import java.sql.Connection; import me.hammerle.code.Code; import me.km.table.Table; public class ScriptBank extends SimpleDataBank { public ScriptBank(Module m, Connection c) { super(m, c); } @Override protected void init() { // Globale Variablen if(!this.doesTableExist("questdata")) { this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde nicht gefunden, erstelle ..."); if(this.update("CREATE TABLE IF NOT EXISTS questdata (" + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, " + "player_id INT NOT NULL, " + "var VARCHAR(20) NOT NULL, " + "value VARCHAR(256) NOT NULL, " + "UNIQUE INDEX (player_id,var), " + "FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);", false)) { this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde erstellt."); } } else { this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde gefunden."); } // Globale Maps if(!this.doesTableExist("questmaps")) { this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde nicht gefunden, erstelle ..."); if(this.update("CREATE TABLE IF NOT EXISTS questmaps (" + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, " + "map VARCHAR(255) NOT NULL, " + "keyname VARCHAR(255) NOT NULL, " + "value VARCHAR(255) NOT NULL, " + "INDEX (map), " + "UNIQUE INDEX (map,keyname));", false)) { this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde erstellt."); } } else { this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde gefunden."); } // Doppelte Globale Maps if(!this.doesTableExist("questdualmaps")) { this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde nicht gefunden, erstelle ..."); if(this.update("CREATE TABLE IF NOT EXISTS questdualmaps (" + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, " + "map VARCHAR(255) NOT NULL, " + "keyname VARCHAR(255) NOT NULL, " + "seckeyname VARCHAR(255) NOT NULL, " + "value VARCHAR(255) NOT NULL, " + "INDEX (map), " + "UNIQUE INDEX (map,keyname,seckeyname));", false)) { this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde erstellt."); } } else { this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde gefunden."); } } public void setVar(String value, String var, String uuid) { this.update("INSERT INTO questdata (player_id,var,value) " + "SELECT id, '" + var + "', '" + value + "' " + "FROM players WHERE uuid='" + uuid + "' " + "ON DUPLICATE KEY UPDATE questdata.value='" + value + "';", false); } public Object getVar(String var, String uuid) { return Code.convertInput(this.getFirst("SELECT value from questdata " + "LEFT JOIN players ON players.id = questdata.player_id " + "WHERE players.uuid = '" + uuid + "' AND " + "questdata.var='" + var + "';", String.class), false); } public void addMapElement(String map, String key, String value) { this.update("INSERT INTO questmaps (map,keyname,value) " + "SELECT '" + map + "', '" + key + "', '" + value + "' " + "ON DUPLICATE KEY UPDATE value='" + value + "';", false); } public void removeMapElement(String map, String key) { this.update("DELETE FROM questmaps WHERE " + "map = '" + map + "' AND " + "keyname = '" + key + "';", false); } public void removeMap(String map) { this.update("DELETE FROM questmaps WHERE map = '" + map + "';", false); } public Table getGlobalMapAsTable(String map) { return this.getTable("SELECT keyname,value from questmaps WHERE map = '" + map + "'"); } public Object getMapValue(String map, String key) { return Code.convertInput(this.getFirst("SELECT value from questmaps " + "WHERE map = '" + map + "' AND " + "keyname='" + key + "';", String.class), false); } public void addDualMapElement(String map, String key, String key2, String value) { this.update("INSERT INTO questdualmaps (map,keyname,seckeyname,value) " + "SELECT '" + map + "', '" + key + "', '" + key2 + "', '" + value + "' " + "ON DUPLICATE KEY UPDATE value='" + value + "';", false); } public void removeDualMapElement(String map, String key, String key2) { this.update("DELETE FROM questdualmaps WHERE " + "map = '" + map + "' AND " + "seckeyname= '" + key + "' AND " + "keyname = '" + key2 + "';", false); } public void removeDualMap(String map) { this.update("DELETE FROM questdualmaps WHERE map = '" + map + "';", false); } public Table getGlobalDualMapAsTable(String map, String key) { return this.getTable("SELECT seckeyname,value from questdualmaps WHERE map = '" + map + "' AND keyname = '" + key + "';"); } public Object getDualMapValue(String map, String key, String key2) { return Code.convertInput(this.getFirst("SELECT value from questdualmaps " + "WHERE map = '" + map + "' AND " + "keyname = '" + key + "' AND " + "seckeyname='" + key2 + "';", String.class), false); } }