ScriptBank.java 6.0 KB

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