Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. package me.kgaz.exp;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. import java.util.Locale;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.configuration.file.YamlConfiguration;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.scheduler.BukkitRunnable;
  13.  
  14. import me.kgaz.Main;
  15. import net.md_5.bungee.api.ChatMessageType;
  16. import net.md_5.bungee.api.chat.TextComponent;
  17.  
  18. public class PlayerData {
  19.  
  20. public static final float LEVELUPMULTIPLIER = 1.5f;
  21. public static final List<Integer> levelsToShow = Arrays.asList(1,3);
  22.  
  23. private Player owner;
  24. private String playerName;
  25. private YamlConfiguration yml;
  26. private String path;
  27. private File file;
  28.  
  29. public void init() {
  30. owner = Bukkit.getPlayer(playerName);
  31. }
  32.  
  33.  
  34. public PlayerData(YamlConfiguration yml, String path, String playerName, File file) {
  35. this.yml = yml;
  36. this.path = path;
  37. this.playerName = playerName;
  38. init();
  39.  
  40. }
  41.  
  42. public void clearData() {
  43. yml.set(path+".level", 0);
  44. yml.set(path+".exp", 0.0f);
  45. yml.set(path+".needExp", 0);
  46. saveFile();
  47. }
  48.  
  49. private void saveFile() {
  50. try {
  51. yml.save(file);
  52. } catch (IOException e) {
  53. e.printStackTrace();
  54. }
  55. }
  56.  
  57. public void setLevel(Integer level) {
  58. init();
  59. yml.set(path+".level", level);
  60. saveFile();
  61. }
  62.  
  63. public void removeExp(Float amount) {
  64. init();
  65. Float exp = (float) yml.getDouble(path+".exp");
  66. exp-=amount;
  67. if(exp<0) exp=0.0f;
  68. yml.set(path+".exp", exp);
  69. saveFile();
  70. checkLevel();
  71. }
  72.  
  73.  
  74. public void setExp(Float amount) {
  75. init();
  76. yml.set(path+".exp", amount);
  77. saveFile();
  78. checkLevel();
  79. }
  80.  
  81. public void addExp(Float amount) {
  82. init();
  83. yml.set(path+".exp", Float.parseFloat(String.format(Locale.US, "%.1f", yml.getDouble(path+".exp")+amount)));
  84. // int gainedLevels = 0;
  85. // while(exp>needExp) {
  86. // exp-=needExp;
  87. // needExp=(int) Math.ceil(needExp*LEVELUPMULTIPLIER);
  88. // gainedLevels++;
  89. // }
  90. // if(gainedLevels==1) {
  91. // levelUp();
  92. // owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §6§oNowy Poziom!"));
  93. // } else if (gainedLevels>1) {
  94. // levelUp();
  95. // owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §6§oNowy Poziom!"));
  96. // } else {
  97. // owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §f§o"+String.format(Locale.US, "%.1f", exp)+"§6§o/§e§o"+needExp));
  98. // }
  99. saveFile();
  100. checkLevel();
  101. }
  102.  
  103.  
  104. public void checkLevel() {
  105. init();
  106. Float exp = (float) yml.getDouble(path+".exp");
  107. Integer needExp = yml.getInt(path+".needExp");;
  108. Integer level = yml.getInt(path+".level");;
  109.  
  110. int gainedLevels = 0;
  111. while(exp>needExp) {
  112. exp-=needExp;
  113. needExp=(int) Math.ceil(needExp*LEVELUPMULTIPLIER);
  114. gainedLevels++;
  115. }
  116. if(gainedLevels==1) {
  117. levelUp(level);
  118. owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §6§oNowy Poziom!"));
  119. } else if (gainedLevels>1) {
  120. levelUp(level);
  121. owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §6§oNowy Poziom!"));
  122. } else {
  123. owner.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("§e§oZdobyles exp! §f§o"+String.format(Locale.US, "%.1f", exp)+"§6§o/§e§o"+needExp));
  124. }
  125.  
  126. yml.set(path+".exp", exp);
  127. yml.set(path+".needExp", needExp);
  128. yml.set(path+".level", level);
  129. }
  130.  
  131. public void levelUp(Integer level) {
  132. {
  133. {//LEVELUP STUFF
  134. if(levelsToShow.contains(level) || level % 5 == 0) {
  135. Bukkit.broadcastMessage("§8[§4§lLVL§8] §7Gracz §c"+owner.getName()+" §7osiagnal poziom §4"+level+"§7! Gratulacje!");
  136. }
  137. {
  138. new BukkitRunnable() {
  139. public void run() {
  140. owner.getWorld().strikeLightningEffect(owner.getLocation());
  141. }
  142. }.runTaskLater(Main.getInst(), 1);
  143. new BukkitRunnable() {
  144. public void run() {
  145. owner.getWorld().strikeLightningEffect(owner.getLocation());
  146. }
  147. }.runTaskLater(Main.getInst(), 8);
  148. new BukkitRunnable() {
  149. public void run() {
  150. owner.getWorld().strikeLightningEffect(owner.getLocation());
  151. }
  152. }.runTaskLater(Main.getInst(), 20);
  153. }
  154.  
  155.  
  156. }
  157. }
  158. }
  159.  
  160. public Integer getLevel() {
  161. return level;
  162. }
  163. public Float getExp() {
  164. return exp;
  165. }
  166. public Integer getNeedExp() {
  167. return needExp;
  168. }
  169. public Player getOwner() {
  170. return owner;
  171. }
  172.  
  173.  
  174.  
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement