ScriptBank.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. package me.km.snuviscript;
  2. import me.km.api.Module;
  3. import me.km.databank.SimpleDataBank;
  4. import me.km.databank.DataBank;
  5. import me.km.table.Table;
  6. import me.hammerle.snuviscript.code.Compiler;
  7. public class ScriptBank extends SimpleDataBank
  8. {
  9. public ScriptBank(Module m, DataBank c)
  10. {
  11. super(m, c);
  12. // Globale Variablen
  13. if(!this.doesTableExist("questdata"))
  14. {
  15. this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde nicht gefunden, erstelle ...");
  16. if(this.update("CREATE TABLE IF NOT EXISTS questdata ("
  17. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  18. + "player_id INT NOT NULL, "
  19. + "var VARCHAR(20) NOT NULL, "
  20. + "value VARCHAR(256) NOT NULL, "
  21. + "UNIQUE INDEX (player_id,var), "
  22. + "FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);", false))
  23. {
  24. this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde erstellt.");
  25. }
  26. }
  27. else
  28. {
  29. this.getModule().sendToConsole("Die Quest-Var-Datenbank wurde gefunden.");
  30. }
  31. // Globale Maps
  32. if(!this.doesTableExist("questmaps"))
  33. {
  34. this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde nicht gefunden, erstelle ...");
  35. if(this.update("CREATE TABLE IF NOT EXISTS questmaps ("
  36. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  37. + "map VARCHAR(255) NOT NULL, "
  38. + "keyname VARCHAR(255) NOT NULL, "
  39. + "value VARCHAR(255) NOT NULL, "
  40. + "INDEX (map), "
  41. + "UNIQUE INDEX (map,keyname));", false))
  42. {
  43. this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde erstellt.");
  44. }
  45. }
  46. else
  47. {
  48. this.getModule().sendToConsole("Die Quest-Map-Datenbank wurde gefunden.");
  49. }
  50. // Doppelte Globale Maps
  51. if(!this.doesTableExist("questdualmaps"))
  52. {
  53. this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde nicht gefunden, erstelle ...");
  54. if(this.update("CREATE TABLE IF NOT EXISTS questdualmaps ("
  55. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  56. + "map VARCHAR(255) NOT NULL, "
  57. + "keyname VARCHAR(255) NOT NULL, "
  58. + "seckeyname VARCHAR(255) NOT NULL, "
  59. + "value VARCHAR(255) NOT NULL, "
  60. + "INDEX (map), "
  61. + "UNIQUE INDEX (map,keyname,seckeyname));", false))
  62. {
  63. this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde erstellt.");
  64. }
  65. }
  66. else
  67. {
  68. this.getModule().sendToConsole("Die Quest-Dual-Map-Datenbank wurde gefunden.");
  69. }
  70. }
  71. public void setVar(String value, String var, String uuid)
  72. {
  73. this.update("INSERT INTO questdata (player_id,var,value) "
  74. + "SELECT id, '" + var + "', '" + value + "' "
  75. + "FROM players WHERE uuid='" + uuid + "' "
  76. + "ON DUPLICATE KEY UPDATE questdata.value='" + value + "';", false);
  77. }
  78. public void deleteVar(String var, String uuid)
  79. {
  80. this.update("DELETE FROM questdata LEFT JOIN players ON players.id = questdata.player_id " +
  81. "WHERE players.uuid = '" + uuid + "' AND " +
  82. "questdata.var='" + var + "';", false);
  83. }
  84. public Object getVar(String var, String uuid, Object error)
  85. {
  86. Object o = Compiler.convert(this.getFirst("SELECT value from questdata "
  87. + "LEFT JOIN players ON players.id = questdata.player_id "
  88. + "WHERE players.uuid = '" + uuid + "' AND "
  89. + "questdata.var='" + var + "';", String.class));
  90. if(o == null)
  91. {
  92. return error;
  93. }
  94. return o;
  95. }
  96. public Object getVar(String var, String uuid)
  97. {
  98. return getVar(var, uuid, null);
  99. }
  100. public void addMapElement(String map, String key, String value)
  101. {
  102. this.update("INSERT INTO questmaps (map,keyname,value) "
  103. + "SELECT '" + map + "', '" + key + "', '" + value + "' "
  104. + "ON DUPLICATE KEY UPDATE value='" + value + "';", false);
  105. }
  106. public void removeMapElement(String map, String key)
  107. {
  108. this.update("DELETE FROM questmaps WHERE "
  109. + "map = '" + map + "' AND "
  110. + "keyname = '" + key + "';", false);
  111. }
  112. public void removeMap(String map)
  113. {
  114. this.update("DELETE FROM questmaps WHERE map = '" + map + "';", false);
  115. }
  116. public Table getGlobalMapAsTable(String map)
  117. {
  118. return this.getTable("SELECT keyname,value from questmaps WHERE map = '" + map + "'");
  119. }
  120. public Object getMapValue(String map, String key)
  121. {
  122. return Compiler.convert(this.getFirst("SELECT value from questmaps "
  123. + "WHERE map = '" + map + "' AND "
  124. + "keyname='" + key + "';", String.class));
  125. }
  126. public void addDualMapElement(String map, String key, String key2, String value)
  127. {
  128. this.update("INSERT INTO questdualmaps (map,keyname,seckeyname,value) "
  129. + "SELECT '" + map + "', '" + key + "', '" + key2 + "', '" + value + "' "
  130. + "ON DUPLICATE KEY UPDATE value='" + value + "';", false);
  131. }
  132. public void removeDualMapElement(String map, String key, String key2)
  133. {
  134. this.update("DELETE FROM questdualmaps WHERE "
  135. + "map = '" + map + "' AND "
  136. + "seckeyname= '" + key + "' AND "
  137. + "keyname = '" + key2 + "';", false);
  138. }
  139. public void removeDualMap(String map)
  140. {
  141. this.update("DELETE FROM questdualmaps WHERE map = '" + map + "';", false);
  142. }
  143. public Table getGlobalDualMapAsTable(String map, String key)
  144. {
  145. return this.getTable("SELECT seckeyname,value from questdualmaps WHERE map = '" + map + "' AND keyname = '" + key + "';");
  146. }
  147. public Object getDualMapValue(String map, String key, String key2)
  148. {
  149. return Compiler.convert(this.getFirst("SELECT value from questdualmaps "
  150. + "WHERE map = '" + map + "' AND "
  151. + "keyname = '" + key + "' AND "
  152. + "seckeyname='" + key2 + "';", String.class));
  153. }
  154. }