diff --git a/src/me/stevemmmmm/thepitremake/core/Main.java b/src/me/stevemmmmm/thepitremake/core/Main.java index 9655ca5..71475a8 100644 --- a/src/me/stevemmmmm/thepitremake/core/Main.java +++ b/src/me/stevemmmmm/thepitremake/core/Main.java @@ -45,7 +45,7 @@ import me.stevemmmmm.thepitremake.game.WorldSelection; import me.stevemmmmm.thepitremake.game.duels.DuelingManager; import me.stevemmmmm.thepitremake.game.duels.GameUtility; -import me.stevemmmmm.thepitremake.game.killstreaks.Death; +import me.stevemmmmm.thepitremake.game.killstreaks.Killstreak; import me.stevemmmmm.thepitremake.managers.enchants.LivesSystem; import me.stevemmmmm.thepitremake.managers.enchants.BowManager; import me.stevemmmmm.thepitremake.managers.enchants.CustomEnchant; @@ -184,7 +184,7 @@ public void onPacketSending(PacketEvent event) { getServer().getPluginManager().registerEvents(new ChatManagement(), this); getServer().getPluginManager().registerEvents(new TogglePvPCommand(), this); getServer().getPluginManager().registerEvents(new AntiFire(), this); - getServer().getPluginManager().registerEvents(new Death(), this); + getServer().getPluginManager().registerEvents(new Killstreak(), this); getServer().getPluginManager().registerEvents(new LivesSystem(), this); getServer().getPluginManager().registerEvents(new KillAnnouncementCommand(), this); diff --git a/src/me/stevemmmmm/thepitremake/game/duels/GameUtility.java b/src/me/stevemmmmm/thepitremake/game/duels/GameUtility.java index d74c586..b563579 100644 --- a/src/me/stevemmmmm/thepitremake/game/duels/GameUtility.java +++ b/src/me/stevemmmmm/thepitremake/game/duels/GameUtility.java @@ -5,9 +5,11 @@ package me.stevemmmmm.thepitremake.game.duels; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.FoodLevelChangeEvent; +import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; public class GameUtility implements Listener { @@ -16,12 +18,21 @@ public GameUtility() { @EventHandler public void onJoin(PlayerJoinEvent event) { - event.getPlayer().setMaxHealth(24.0); - event.getPlayer().setFoodLevel(19); + Player player = event.getPlayer(); + + player.setMaxHealth(24.0); + player.setFoodLevel(19); + player.performCommand("setgold 10000000"); + } - @EventHandler public void onHunger(FoodLevelChangeEvent event) { event.setCancelled(true); } + + @EventHandler + public void onDeath(PlayerDeathEvent event) { + Player player = event.getEntity(); + player.performCommand("setgold 10000000"); + } } diff --git a/src/me/stevemmmmm/thepitremake/game/killstreaks/Death.java b/src/me/stevemmmmm/thepitremake/game/killstreaks/Death.java deleted file mode 100644 index 1e905aa..0000000 --- a/src/me/stevemmmmm/thepitremake/game/killstreaks/Death.java +++ /dev/null @@ -1,25 +0,0 @@ -package me.stevemmmmm.thepitremake.game.killstreaks; - -import org.bukkit.Bukkit; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.PlayerDeathEvent; - -public class Death implements Listener{ - - @EventHandler - public void onDeath(final PlayerDeathEvent event){ - final Player player = event.getEntity(); - - Killstreak.getInstance().resetKills(player.getUniqueId()); - - - if(player.getKiller() != null) { - - Killstreak.getInstance().addKill(player.getKiller().getUniqueId()); - - } - } -} - diff --git a/src/me/stevemmmmm/thepitremake/game/killstreaks/Killstreak.java b/src/me/stevemmmmm/thepitremake/game/killstreaks/Killstreak.java index 9d493bb..8c028f1 100644 --- a/src/me/stevemmmmm/thepitremake/game/killstreaks/Killstreak.java +++ b/src/me/stevemmmmm/thepitremake/game/killstreaks/Killstreak.java @@ -1,61 +1,51 @@ package me.stevemmmmm.thepitremake.game.killstreaks; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; + import java.util.HashMap; import java.util.Map; import java.util.UUID; -public class Killstreak { - private static Killstreak instance; - private final Map killStreakMap = new HashMap<>(); +public class Killstreak implements Listener { + + private Map killCounts; - // static initialization block - static { - instance = new Killstreak(); + public Killstreak() { + this.killCounts = new HashMap<>(); } - // private constructor to prevent external instantiation - private Killstreak() {} + public void incrementKillCount(Player player) { + UUID playerId = player.getUniqueId(); + int currentKills = killCounts.getOrDefault(playerId, 0); + killCounts.put(playerId, currentKills + 1); - /** - * Returns the instance of this class - * @return the singleton instance of Killstreak - */ - public static Killstreak getInstance() { - return instance; - } - /** - * Get kills from hashmap with key 'UUID' - * @param uuid - * @return - */ - - public int getKills(final UUID uuid){ - if(!killStreakMap.containsKey(uuid)) return 0; - return killStreakMap.get(uuid); + checkStreak(player); } - - /** - * Add kill into hashmap with key 'uuid' - * @param uuid - */ - - public void addKill(final UUID uuid) { - if (killStreakMap.containsKey(uuid)) { - killStreakMap.put(uuid, getKills(uuid) + 1); - } else { - killStreakMap.put(uuid, 1); + + private void checkStreak(Player player) { + UUID playerId = player.getUniqueId(); + int currentKills = killCounts.getOrDefault(playerId, 0); + + if (currentKills % 5 == 0) { + String message = ChatColor.translateAlternateColorCodes('&', + "&c&lSTREAK! &r&7of &c" + currentKills + "&r&7 kills by " + player.getName()); + + Bukkit.broadcastMessage(message); } } - - /** - * Reset kills under key 'UUID' - * @param uuid - */ - - public void resetKills(final UUID uuid){ - if(!killStreakMap.containsKey(uuid)) return; - killStreakMap.remove(uuid); + + @EventHandler + public void onPlayerDeath(PlayerDeathEvent event) { + Player player = event.getEntity(); + UUID playerId = player.getUniqueId(); + + if (killCounts.containsKey(playerId)) { + killCounts.remove(playerId); + } } - - } diff --git a/src/me/stevemmmmm/thepitremake/world/AutoRespawn.java b/src/me/stevemmmmm/thepitremake/world/AutoRespawn.java index dd2bc24..6fcdbbd 100644 --- a/src/me/stevemmmmm/thepitremake/world/AutoRespawn.java +++ b/src/me/stevemmmmm/thepitremake/world/AutoRespawn.java @@ -1,8 +1,15 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + package me.stevemmmmm.thepitremake.world; +import java.util.Iterator; import me.stevemmmmm.thepitremake.core.Main; import me.stevemmmmm.thepitremake.game.RegionManager; import org.bukkit.Bukkit; +import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -13,40 +20,37 @@ import org.bukkit.util.Vector; public class AutoRespawn implements Listener { + public AutoRespawn() { + } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - Player player = event.getPlayer(); - player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0)); + event.getPlayer().addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0)); } @EventHandler public void onDeath(PlayerDeathEvent event) { event.setDeathMessage(""); - - Player player = event.getEntity(); - triggerRespawnSequence(player); + triggerRespawnSequence(event.getEntity()); } public static void triggerRespawnSequence(Player player) { - Bukkit.getScheduler().runTaskLater(Main.INSTANCE, () -> { - player.spigot().respawn(); - resetPlayerState(player); - }, 1L); - } - - public static void resetPlayerState(Player player) { player.setHealth(player.getMaxHealth()); player.teleport(RegionManager.getInstance().getSpawnLocation(player)); - player.setFoodLevel(19); - player.setFireTicks(0); - player.setVelocity(new Vector(0, 0, 0)); - - for (PotionEffect effect : player.getActivePotionEffects()) { - player.removePotionEffect(effect.getType()); - } - - player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0)); + Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(Main.INSTANCE, () -> { + Iterator var1 = player.getActivePotionEffects().iterator(); + + while(var1.hasNext()) { + PotionEffect effect = (PotionEffect)var1.next(); + player.removePotionEffect(effect.getType()); + } + + player.setFoodLevel(19); + player.setHealth(player.getMaxHealth()); + ((CraftPlayer)player).getHandle().setAbsorptionHearts(0.0F); + player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, Integer.MAX_VALUE, 0)); + player.setVelocity(new Vector(0, 0, 0)); + player.setFireTicks(0); + }, 1L); } - -} +} \ No newline at end of file