PlayerBank.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package me.km.playerbank;
  2. import com.mojang.authlib.GameProfile;
  3. import me.km.KajetansMod;
  4. import me.km.api.Module;
  5. import me.km.databank.DataBank;
  6. import me.km.databank.SimpleDataBank;
  7. import net.minecraft.entity.player.EntityPlayer;
  8. public class PlayerBank extends SimpleDataBank
  9. {
  10. public PlayerBank(Module m, DataBank c)
  11. {
  12. super(m, c);
  13. }
  14. @Override
  15. protected void init()
  16. {
  17. // Player-Databank
  18. if(!this.doesTableExist("players"))
  19. {
  20. this.getModule().sendToConsole("Die Spielerdatenbank wurde nicht gefunden, erstelle ...");
  21. if(this.update("CREATE TABLE IF NOT EXISTS players ("
  22. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  23. + "uuid VARCHAR(40) NOT NULL, "
  24. + "name VARCHAR(20) NOT NULL, "
  25. + "quest INT NOT NULL, "
  26. + "UNIQUE INDEX (uuid));", false))
  27. {
  28. this.getModule().sendToConsole("Die Spielerdatenbank wurde erstellt.");
  29. }
  30. }
  31. else
  32. {
  33. this.getModule().sendToConsole("Die Spielerdatenbank wurde gefunden.");
  34. }
  35. // Player-Tags-Databank
  36. if(!this.doesTableExist("playertags"))
  37. {
  38. this.getModule().sendToConsole("Die Player-Tags-Datenbank wurde nicht gefunden, erstelle ...");
  39. if(this.update("CREATE TABLE IF NOT EXISTS playertags ("
  40. + "id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, "
  41. + "player_id INT NOT NULL, "
  42. + "tag VARCHAR(10) NOT NULL, "
  43. + "amount INT NOT NULL, "
  44. + "INDEX (player_id), "
  45. + "UNIQUE INDEX (player_id,tag), "
  46. + "FOREIGN KEY (player_id) REFERENCES minecraft.players(id) ON DELETE RESTRICT);", false))
  47. {
  48. this.getModule().sendToConsole("Die Player-Tags-Datenbank wurde erstellt.");
  49. }
  50. }
  51. else
  52. {
  53. this.getModule().sendToConsole("Die Player-Tags-Datenbank wurde gefunden.");
  54. }
  55. }
  56. public boolean add(GameProfile p)
  57. {
  58. return this.update("INSERT INTO players (uuid,name,quest) VALUES ('" + p.getId()+ "','" + p.getName() + "',0);", false);
  59. }
  60. public void changeName(EntityPlayer p)
  61. {
  62. this.update("UPDATE players SET name='" + p.getName() + "' WHERE uuid='" + p.getUniqueID()+ "';", false);
  63. }
  64. public void setTag(String uuid, String tag, int amount)
  65. {
  66. this.update("INSERT INTO playertags (player_id,tag,amount) "
  67. + "SELECT id, '" + tag + "', " + amount + " "
  68. + "FROM players WHERE uuid='" + uuid + "' "
  69. + "ON DUPLICATE KEY UPDATE amount=" + amount + ";", false);
  70. }
  71. public void setTag(EntityPlayer p, String tag, int amount)
  72. {
  73. setTag(p.getUniqueID().toString(), tag, amount);
  74. }
  75. public int getTag(String uuid, String tag)
  76. {
  77. Integer level = this.getFirst("SELECT amount from playertags "
  78. + "LEFT JOIN players ON players.id = playertags.player_id "
  79. + "WHERE players.uuid = '" + uuid + "' AND "
  80. + "playertags.tag='" + tag + "';", Integer.class);
  81. return level == null ? 0 : level;
  82. }
  83. public int getTag(EntityPlayer p, String tag)
  84. {
  85. return getTag(p.getUniqueID().toString(), tag);
  86. }
  87. public boolean contains(EntityPlayer p)
  88. {
  89. return this.getFirst("SELECT uuid FROM players WHERE uuid='" + p.getUniqueID() + "';", String.class) != null;
  90. }
  91. public String getName(String uuid)
  92. {
  93. return this.getFirst("SELECT name FROM players WHERE uuid='" + uuid + "';", String.class);
  94. }
  95. public GameProfile getOfflinePlayer(String name)
  96. {
  97. return KajetansMod.server.getPlayerProfileCache().getGameProfileForUsername(name);
  98. }
  99. public String getUUID(String name)
  100. {
  101. return this.getFirst("SELECT uuid FROM players WHERE name='" + name + "';", String.class);
  102. }
  103. public Integer getIdByUUID(String uuid)
  104. {
  105. return this.getFirst("SELECT id FROM players WHERE uuid='" + uuid + "';", Integer.class);
  106. }
  107. public Integer getIdByName(String name)
  108. {
  109. return this.getFirst("SELECT id FROM players WHERE name='" + name + "';", Integer.class);
  110. }
  111. public String getNameById(Integer id)
  112. {
  113. if(id == null)
  114. {
  115. return null;
  116. }
  117. return this.getFirst("SELECT name FROM players WHERE id=" + id + ";", String.class);
  118. }
  119. }