Advertisement
Guest User

Untitled

a guest
Oct 20th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.51 KB | None | 0 0
  1. package eu.twicegames.skypvp.player;
  2.  
  3. import java.util.concurrent.TimeUnit;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Sound;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.inventory.ItemStack;
  9. import org.bukkit.potion.PotionEffect;
  10. import org.bukkit.potion.PotionEffectType;
  11.  
  12. import eu.twicegames.cloud.api.CloudAPI;
  13. import eu.twicegames.cloud.api.util.PlayerRankData;
  14. import eu.twicegames.cloud.spigotplugin.permissions.util.PacketScoreboard;
  15. import eu.twicegames.skypvp.Main;
  16. import lombok.Getter;
  17. import lombok.Setter;
  18.  
  19. public class PlayerData {
  20. @Getter
  21. public Player player;
  22. @Getter
  23. private PacketScoreboard packetScoreboard;
  24. private Player lastHitted;
  25. @Getter
  26. @Setter
  27. private long hittedTime, kitTime;
  28. @Getter
  29. @Setter
  30. private int kills, deaths, points, combat, killStreak, rank;
  31.  
  32. public PlayerData( Player player ) {
  33. this.player = player;
  34. this.packetScoreboard = new PacketScoreboard(player);
  35. this.createScoreboard();;
  36. this.resetKillStreak();
  37. this.resetStats();
  38. if(Main.getPlayerManager().getOfflinePlayerData(player) != null) {
  39. OfflinePlayerData offlinePlayerData = Main.getPlayerManager().getOfflinePlayerData(player);
  40. this.setKitTime(offlinePlayerData.getLastKitTime());
  41. Main.getPlayerManager().removePlayerFromOfflineCache(player);
  42. }
  43. }
  44.  
  45. public void receiveKit() {
  46. this.kitTime = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(5);
  47. }
  48. public boolean canReceiveKit() {
  49. if( kitTime >= System.currentTimeMillis() ) {
  50. return true;
  51. }
  52. return false;
  53. }
  54.  
  55. public void receiveDamageFrom( Player player ) {
  56. if(player.equals(this.player)) return;
  57. this.lastHitted = player;
  58. this.hittedTime = System.currentTimeMillis() + 30000;
  59. }
  60. public Player getLastHitted() {
  61. if( lastHitted != null ) {
  62. if( hittedTime > System.currentTimeMillis() ) {
  63. return lastHitted;
  64. }
  65. }
  66. return null;
  67. }
  68.  
  69. public void addKill() {
  70. player.playSound(player.getLocation(), Sound.LEVEL_UP, 20, 20);
  71. player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 100, 2));
  72. this.killStreak();
  73. this.giveKillReward(Main.getKitManager().getKillReward(), 1);
  74. kills++;
  75. this.createScoreboard();
  76. }
  77.  
  78. public void addDeath() {
  79. deaths++;
  80. this.createScoreboard();
  81. this.resetKillStreak();
  82. }
  83.  
  84. public void addPoints(int points) {
  85. this.points = Integer.valueOf(this.points + points);
  86. }
  87.  
  88. public void removePoints(int points) {
  89. if(this.points <= 0) return;
  90. this.points = Integer.valueOf(this.points - points);
  91. }
  92.  
  93. public void sendMessage(String message) {
  94. player.sendMessage(message);
  95. }
  96.  
  97.  
  98. public void giveKillReward(ItemStack reward, int amount) {
  99. if(amount > 1) {
  100. player.getInventory().addItem(reward);
  101. } else {
  102. for(int i = 0;amount>i;i++) {
  103. player.getInventory().addItem(reward);
  104. }
  105. }
  106. }
  107.  
  108. public void killStreak() {
  109. killStreak++;
  110. switch (this.killStreak) {
  111. case 3:
  112. this.sendStreakMessage();
  113. this.giveKillReward(Main.getKitManager().getKillReward(), 3);
  114. break;
  115. case 5:
  116. this.sendStreakMessage();
  117. this.giveKillReward(Main.getKitManager().getKillReward(), 5);
  118. break;
  119. case 10:
  120. this.sendStreakMessage();
  121. this.giveKillReward(Main.getKitManager().getKillReward(), 10);
  122. this.addPoints(5);
  123. break;
  124. case 15:
  125. this.sendStreakMessage();
  126. this.giveKillReward(Main.getKitManager().getKillReward(), 15);
  127. this.addPoints(5);
  128. break;
  129. case 25:
  130. this.sendStreakMessage();
  131. this.giveKillReward(Main.getKitManager().getKillReward(), 25);
  132. this.addPoints(10);
  133. break;
  134. case 50:
  135. this.sendStreakMessage();
  136. this.giveKillReward(Main.getKitManager().getKillReward(), 50);
  137. this.addPoints(20);
  138. break;
  139. case 75:
  140. this.sendStreakMessage();
  141. this.giveKillReward(Main.getKitManager().getKillReward(), 75);
  142. this.addPoints(40);
  143. break;
  144. case 100:
  145. this.sendStreakMessage();
  146. this.giveKillReward(Main.getKitManager().getKillReward(), 100);
  147. this.addPoints(100);
  148. break;
  149. case 150:
  150. this.sendStreakMessage();
  151. this.giveKillReward(Main.getKitManager().getKillReward(), 150);
  152. this.addPoints(150);
  153. this.playMegaStreakSound();
  154. break;
  155. case 200:
  156. this.sendStreakMessage();
  157. this.giveKillReward(Main.getKitManager().getKillReward(), 200);
  158. this.addPoints(200);
  159. this.playMegaStreakSound();
  160. break;
  161. default:
  162. break;
  163. }
  164.  
  165. }
  166.  
  167. public void sendStreakMessage() {
  168. PlayerRankData cloudPlayer = CloudAPI.getRankAPI().getPlayerRankData(player.getName());
  169. if(CloudAPI.getNickAPI().isNicked(this.player)) {
  170. Bukkit.broadcastMessage(Main.getPrefix() + "§7" + CloudAPI.getNickAPI().getNickName(this.player) + " §3hat einen §c" + killStreak + "er KillStreak §3erreicht!");
  171. } else {
  172. Bukkit.broadcastMessage(Main.getPrefix() + cloudPlayer.getRankColor() + player.getName() + " §3hat einen §c" + killStreak + "er KillStreak §3erreicht!");
  173. }
  174. }
  175.  
  176. public void playMegaStreakSound() {
  177. for(Player all : Bukkit.getServer().getOnlinePlayers()) {
  178. all.playSound(all.getLocation(), Sound.WITHER_IDLE, 20, 20);
  179. }
  180. }
  181.  
  182. public void resetKillStreak() {
  183. this.killStreak = 0;
  184. }
  185.  
  186. public void saveStats() {
  187. Bukkit.getScheduler().runTask(Main.getInstance(), () -> {
  188. if(this.kills != 0) {
  189. CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_kills", this.kills);
  190. }
  191. if(this.deaths != 0) {
  192. CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_deaths", this.deaths);
  193. }
  194. if(this.points != 0) {
  195. CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_points", this.points);
  196. }
  197. this.resetStats();
  198. });
  199. }
  200.  
  201. public void resetStats() {
  202. this.kills = 0;
  203. this.deaths = 0;
  204. this.points = 0;
  205. }
  206.  
  207. public void removeScoreboard() {
  208. Bukkit.getServer().getScheduler().runTask(Main.getInstance(), () -> {
  209. this.getPacketScoreboard().remove();
  210. });
  211. }
  212.  
  213. public void createScoreboard() {
  214. Bukkit.getServer().getScheduler().runTask(Main.getInstance(), () -> {
  215. int online = Bukkit.getOnlinePlayers().size();
  216.  
  217. if(this.getPacketScoreboard().getLine(7) != null) {
  218. this.getPacketScoreboard().removeLine(7);
  219. this.getPacketScoreboard().removeLine(4);
  220. }
  221.  
  222. this.getPacketScoreboard().sendSidebar("§a§lSkyPvP");
  223. //this.getPacketScoreboard().setLine(10, "§6");
  224. this.getPacketScoreboard().setLine(9, "§4");
  225. this.getPacketScoreboard().setLine(8, "§3Killstreak:");
  226. this.getPacketScoreboard().setLine(7, " §8➥ §7" + this.killStreak + " §7Kills");
  227. this.getPacketScoreboard().setLine(6, "§c");
  228. this.getPacketScoreboard().setLine(5, "§3Online:");
  229. this.getPacketScoreboard().setLine(4, " §8➥ §7" + online + " §7Spieler");
  230. this.getPacketScoreboard().setLine(3, "§2");
  231. this.getPacketScoreboard().setLine(2, "§3TeamSpeak:");
  232. this.getPacketScoreboard().setLine(1, " §8➥ §7ts.TwiceGames.eu");
  233.  
  234. });
  235. }
  236.  
  237. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement