Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eu.twicegames.skypvp.player;
- import java.util.concurrent.TimeUnit;
- import org.bukkit.Bukkit;
- import org.bukkit.Sound;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.potion.PotionEffect;
- import org.bukkit.potion.PotionEffectType;
- import eu.twicegames.cloud.api.CloudAPI;
- import eu.twicegames.cloud.api.util.PlayerRankData;
- import eu.twicegames.cloud.spigotplugin.permissions.util.PacketScoreboard;
- import eu.twicegames.skypvp.Main;
- import lombok.Getter;
- import lombok.Setter;
- public class PlayerData {
- @Getter
- public Player player;
- @Getter
- private PacketScoreboard packetScoreboard;
- private Player lastHitted;
- @Getter
- @Setter
- private long hittedTime, kitTime;
- @Getter
- @Setter
- private int kills, deaths, points, combat, killStreak, rank;
- public PlayerData( Player player ) {
- this.player = player;
- this.packetScoreboard = new PacketScoreboard(player);
- this.createScoreboard();;
- this.resetKillStreak();
- this.resetStats();
- if(Main.getPlayerManager().getOfflinePlayerData(player) != null) {
- OfflinePlayerData offlinePlayerData = Main.getPlayerManager().getOfflinePlayerData(player);
- this.setKitTime(offlinePlayerData.getLastKitTime());
- Main.getPlayerManager().removePlayerFromOfflineCache(player);
- }
- }
- public void receiveKit() {
- this.kitTime = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(5);
- }
- public boolean canReceiveKit() {
- if( kitTime >= System.currentTimeMillis() ) {
- return true;
- }
- return false;
- }
- public void receiveDamageFrom( Player player ) {
- if(player.equals(this.player)) return;
- this.lastHitted = player;
- this.hittedTime = System.currentTimeMillis() + 30000;
- }
- public Player getLastHitted() {
- if( lastHitted != null ) {
- if( hittedTime > System.currentTimeMillis() ) {
- return lastHitted;
- }
- }
- return null;
- }
- public void addKill() {
- player.playSound(player.getLocation(), Sound.LEVEL_UP, 20, 20);
- player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, 100, 2));
- this.killStreak();
- this.giveKillReward(Main.getKitManager().getKillReward(), 1);
- kills++;
- this.createScoreboard();
- }
- public void addDeath() {
- deaths++;
- this.createScoreboard();
- this.resetKillStreak();
- }
- public void addPoints(int points) {
- this.points = Integer.valueOf(this.points + points);
- }
- public void removePoints(int points) {
- if(this.points <= 0) return;
- this.points = Integer.valueOf(this.points - points);
- }
- public void sendMessage(String message) {
- player.sendMessage(message);
- }
- public void giveKillReward(ItemStack reward, int amount) {
- if(amount > 1) {
- player.getInventory().addItem(reward);
- } else {
- for(int i = 0;amount>i;i++) {
- player.getInventory().addItem(reward);
- }
- }
- }
- public void killStreak() {
- killStreak++;
- switch (this.killStreak) {
- case 3:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 3);
- break;
- case 5:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 5);
- break;
- case 10:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 10);
- this.addPoints(5);
- break;
- case 15:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 15);
- this.addPoints(5);
- break;
- case 25:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 25);
- this.addPoints(10);
- break;
- case 50:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 50);
- this.addPoints(20);
- break;
- case 75:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 75);
- this.addPoints(40);
- break;
- case 100:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 100);
- this.addPoints(100);
- break;
- case 150:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 150);
- this.addPoints(150);
- this.playMegaStreakSound();
- break;
- case 200:
- this.sendStreakMessage();
- this.giveKillReward(Main.getKitManager().getKillReward(), 200);
- this.addPoints(200);
- this.playMegaStreakSound();
- break;
- default:
- break;
- }
- }
- public void sendStreakMessage() {
- PlayerRankData cloudPlayer = CloudAPI.getRankAPI().getPlayerRankData(player.getName());
- if(CloudAPI.getNickAPI().isNicked(this.player)) {
- Bukkit.broadcastMessage(Main.getPrefix() + "§7" + CloudAPI.getNickAPI().getNickName(this.player) + " §3hat einen §c" + killStreak + "er KillStreak §3erreicht!");
- } else {
- Bukkit.broadcastMessage(Main.getPrefix() + cloudPlayer.getRankColor() + player.getName() + " §3hat einen §c" + killStreak + "er KillStreak §3erreicht!");
- }
- }
- public void playMegaStreakSound() {
- for(Player all : Bukkit.getServer().getOnlinePlayers()) {
- all.playSound(all.getLocation(), Sound.WITHER_IDLE, 20, 20);
- }
- }
- public void resetKillStreak() {
- this.killStreak = 0;
- }
- public void saveStats() {
- Bukkit.getScheduler().runTask(Main.getInstance(), () -> {
- if(this.kills != 0) {
- CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_kills", this.kills);
- }
- if(this.deaths != 0) {
- CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_deaths", this.deaths);
- }
- if(this.points != 0) {
- CloudAPI.getStatsAPI().addPlayerStat(player.getName(), "skypvp_points", this.points);
- }
- this.resetStats();
- });
- }
- public void resetStats() {
- this.kills = 0;
- this.deaths = 0;
- this.points = 0;
- }
- public void removeScoreboard() {
- Bukkit.getServer().getScheduler().runTask(Main.getInstance(), () -> {
- this.getPacketScoreboard().remove();
- });
- }
- public void createScoreboard() {
- Bukkit.getServer().getScheduler().runTask(Main.getInstance(), () -> {
- int online = Bukkit.getOnlinePlayers().size();
- if(this.getPacketScoreboard().getLine(7) != null) {
- this.getPacketScoreboard().removeLine(7);
- this.getPacketScoreboard().removeLine(4);
- }
- this.getPacketScoreboard().sendSidebar("§a§lSkyPvP");
- //this.getPacketScoreboard().setLine(10, "§6");
- this.getPacketScoreboard().setLine(9, "§4");
- this.getPacketScoreboard().setLine(8, "§3Killstreak:");
- this.getPacketScoreboard().setLine(7, " §8➥ §7" + this.killStreak + " §7Kills");
- this.getPacketScoreboard().setLine(6, "§c");
- this.getPacketScoreboard().setLine(5, "§3Online:");
- this.getPacketScoreboard().setLine(4, " §8➥ §7" + online + " §7Spieler");
- this.getPacketScoreboard().setLine(3, "§2");
- this.getPacketScoreboard().setLine(2, "§3TeamSpeak:");
- this.getPacketScoreboard().setLine(1, " §8➥ §7ts.TwiceGames.eu");
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement