diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java index 363a85c..380a031 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/BingoChallengeEvent.java @@ -144,7 +144,7 @@ if (!plugin.getConfig().getBoolean("event.teams")) { for (Player p : Bukkit.getOnlinePlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(p)); + plugin.getScoreManager().join(new ChallengePlayer(p.getUniqueId())); } } else { for (ChallengeTeam team : TeamUtils.getTeams()) { @@ -174,7 +174,7 @@ plugin.getScoreManager().join(team); } } else { - plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer())); + plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer().getUniqueId())); } } } @@ -192,11 +192,11 @@ items.add(material); playerMaterials.put(uuid, items); - plugin.getScoreManager().updateScore(new ChallengePlayer(player), 1); + plugin.getScoreManager().updateScore(new ChallengePlayer(player.getUniqueId()), 1); ChatUtil.sendNormalMessage(player, "Item: " + ChatUtil.BLUE + itemStack.getI18NDisplayName() + ChatUtil.GREEN + " wurde Registriert"); player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); - if (plugin.getScoreManager().getScore(new ChallengePlayer(player)) == materials.size()) { + if (plugin.getScoreManager().getScore(new ChallengePlayer(player.getUniqueId())) == materials.size()) { plugin.getTimer().stopTimer(); GUIUtils.sendTitleToAll("Event", ChatUtil.BLUE + player.getName() + ChatUtil.GREEN + " hat alle Items gefunden!", ChatUtil.BLUE); String[] lines = {"", "", "", " " + ChatUtil.BLUE + player.getName(), ChatUtil.GREEN + " hat alle Items gefunden!", "", "", ""}; diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java index a5a1ed1..794e4c9 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/DeathrunChallengeEvent.java @@ -139,7 +139,7 @@ World world = Bukkit.getWorld("world"); world.setGameRule(GameRule.MAX_ENTITY_CRAMMING, Bukkit.getServer().getMaxPlayers()); for (Player pp : Bukkit.getOnlinePlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(pp)); + plugin.getScoreManager().join(new ChallengePlayer(pp.getUniqueId())); Location spawn = world.getSpawnLocation(); spawn.setYaw(-90f); pp.teleport(spawn); @@ -232,18 +232,18 @@ if (!plugin.getVanish().isVanish(p) && p.getGameMode() != GameMode.SPECTATOR) { if (!deadPlayer.contains(p.getUniqueId())) { int distance = (int) p.getLocation().toVector().subtract(p.getWorld().getSpawnLocation().toVector()).length(); - scoreManager.setScore(new ChallengePlayer(p), distance); + scoreManager.setScore(new ChallengePlayer(p.getUniqueId()), distance); } BossBar bossBar = bossBarMap.computeIfAbsent(p, player -> { - BossBar newBossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke", BarColor.GREEN, BarStyle.SOLID); + BossBar newBossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p.getUniqueId())) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p.getUniqueId())) + " Blöcke", BarColor.GREEN, BarStyle.SOLID); newBossBar.setVisible(true); newBossBar.addPlayer(p); return newBossBar; }); if (!deadPlayer.contains(p.getUniqueId())) { - bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke"); + bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p.getUniqueId())) + ChatUtil.RED + " | " + ChatUtil.GREEN + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p.getUniqueId())) + " Blöcke"); } else { - bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p)) + ChatUtil.RED + " | " + ChatUtil.GREEN + ChatColor.BOLD + "†" + ChatUtil.RED + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p)) + " Blöcke"); + bossBar.setTitle(ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + scoreManager.getPosition(new ChallengePlayer(p.getUniqueId())) + ChatUtil.RED + " | " + ChatUtil.GREEN + ChatColor.BOLD + "†" + ChatUtil.RED + "Distanz zum Spawn: " + ChatUtil.BLUE + scoreManager.getScore(new ChallengePlayer(p.getUniqueId())) + " Blöcke"); } } } diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java index 085054d..407a33d 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/ForceItemChallengeEvent.java @@ -109,7 +109,7 @@ startUpdateTask(); for (Player pp : plugin.getVanish().getPlayerListWithoutVanishPlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(pp)); + plugin.getScoreManager().join(new ChallengePlayer(pp.getUniqueId())); addArmorStand(pp); pp.getInventory().setItem(8, skipItem); } @@ -156,14 +156,14 @@ if (e.isVanishing()) { removeArmorStand(player); } else { - if (plugin.getScoreManager().getScores().containsKey(new ChallengePlayer(player))) { - plugin.getScoreManager().join(new ChallengePlayer(player)); + if (plugin.getScoreManager().getScores().containsKey(new ChallengePlayer(player.getUniqueId()))) { + plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); } addArmorStand(player); if (itemByPlayerList.get(player.getUniqueId()) == null) { - plugin.getScoreManager().join(new ChallengePlayer(player)); + plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); updateBossBar(); player.getInventory().setItem(8, skipItem); } @@ -186,7 +186,7 @@ if (plugin.getVanish().isVanish(player)) { return; } - plugin.getScoreManager().join(new ChallengePlayer(player)); + plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); addArmorStand(player); @@ -477,7 +477,7 @@ ArrayList itemList = playerMaterials.get(player.getUniqueId()); itemList.remove(pickupItem); playerMaterials.put(player.getUniqueId(), itemList); - plugin.getScoreManager().updateScore(new ChallengePlayer(player), 1); + plugin.getScoreManager().updateScore(new ChallengePlayer(player.getUniqueId()), 1); ChatUtil.sendNormalMessage(player, "Item: " + ChatUtil.BLUE + new ItemStack(pickupItem).getI18NDisplayName() + ChatUtil.GREEN + " wurde Registriert"); player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 1.0F); updateItem(player); @@ -491,7 +491,7 @@ if (playerItem == null) { return; } - String bossBarTitle = ChatUtil.GREEN + ">> " + ChatUtil.BLUE + playerItem.toString().replace("_", " ") + ChatUtil.GREEN + " <<" + " | " + ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + (scoreManager.getPosition(new ChallengePlayer(player))); + String bossBarTitle = ChatUtil.GREEN + ">> " + ChatUtil.BLUE + playerItem.toString().replace("_", " ") + ChatUtil.GREEN + " <<" + " | " + ChatUtil.GREEN + "Position: " + ChatUtil.BLUE + (scoreManager.getPosition(new ChallengePlayer(player.getUniqueId()))); BossBar bossBar = bossBarMap.computeIfAbsent(player.getUniqueId(), bossbarPlayer -> { BossBar newBossBar = Bukkit.createBossBar(bossBarTitle, BarColor.GREEN, BarStyle.SOLID); newBossBar.setVisible(true); diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java index 7764986..11c66c4 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java @@ -70,7 +70,7 @@ pickaxe.setItemMeta(pickaxeMeta); if (!plugin.getConfig().getBoolean("event.teams")) { for (Player player : Bukkit.getOnlinePlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(player)); + plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); } if (TeamUtils.getPlayerTeam(pp) != null) { @@ -134,7 +134,7 @@ if (isRunning()) { if (blocklist.containsKey(e.getBlock().getType())) { if (!plugin.getConfig().getBoolean("event.teams")) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), blocklist.get(e.getBlock().getType())); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), blocklist.get(e.getBlock().getType())); } else { plugin.getScoreManager().updateScore(TeamUtils.getPlayerTeam(e.getPlayer()), blocklist.get(e.getBlock().getType())); } @@ -148,7 +148,7 @@ if (isRunning()) { if (blocklist.containsKey(e.getBlock().getType())) { if (!plugin.getConfig().getBoolean("event.teams")) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), -blocklist.get(e.getBlock().getType())); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), -blocklist.get(e.getBlock().getType())); } else { plugin.getScoreManager().updateScore(TeamUtils.getPlayerTeam(e.getPlayer()), -blocklist.get(e.getBlock().getType())); } @@ -166,7 +166,7 @@ plugin.getScoreManager().join(team); } } else { - plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer())); + plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer().getUniqueId())); } } } diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java index 46bb1eb..00e6a04 100644 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/SammelFieberChallengeEvent.java @@ -74,9 +74,9 @@ setMaterial(stack.getType()); bossBar = Bukkit.createBossBar(ChatUtil.GREEN + "Es wurden " + ChatUtil.BLUE + count + " " + new ItemStack(getMaterial()).getI18NDisplayName() + ChatUtil.GREEN + " abgegeben. Das sind " + ChatUtil.BLUE + count * SammelFieberSettingsGui.MONEY + " Cubes", BarColor.GREEN, BarStyle.SOLID); bossBar.setVisible(true); - for (Player pl : Bukkit.getOnlinePlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(pl)); - bossBar.addPlayer(pl); + for (Player pp : Bukkit.getOnlinePlayers()) { + plugin.getScoreManager().join(new ChallengePlayer(pp.getUniqueId())); + bossBar.addPlayer(pp); } } else { ChatUtil.sendErrorMessage(plugin.getCurrentEditor(), "Du musst erst ein Item und Hopper festlegen."); @@ -114,7 +114,7 @@ if (meta != null && meta.hasDisplayName()) { Player player = Bukkit.getPlayer(meta.getDisplayName()); count = count + stack.getAmount(); - plugin.getScoreManager().updateScore(new ChallengePlayer(player), stack.getAmount()); + plugin.getScoreManager().updateScore(new ChallengePlayer(player.getUniqueId()), stack.getAmount()); player.playSound(player.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); bossBar.setTitle(ChatUtil.GREEN + "Es wurden " + ChatUtil.BLUE + count + " " + new ItemStack(getMaterial()).getI18NDisplayName() + ChatUtil.GREEN + " abgegeben. Das sind " + ChatUtil.BLUE + count * SammelFieberSettingsGui.MONEY + " Cubes"); } @@ -203,7 +203,7 @@ if (!isRunning()) { return; } - plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer())); + plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer().getUniqueId())); bossBar.addPlayer(e.getPlayer()); } diff --git a/src/main/java/de/fanta/challenges/commands/event/EventGetScoreCommand.java b/src/main/java/de/fanta/challenges/commands/event/EventGetScoreCommand.java index 3aec8ce..e620574 100644 --- a/src/main/java/de/fanta/challenges/commands/event/EventGetScoreCommand.java +++ b/src/main/java/de/fanta/challenges/commands/event/EventGetScoreCommand.java @@ -37,7 +37,7 @@ return true; } - ChatUtil.sendNormalMessage(sender, player.getName() + ": " + plugin.getScoreManager().getScore(new ChallengePlayer(player))); + ChatUtil.sendNormalMessage(sender, player.getName() + ": " + plugin.getScoreManager().getScore(new ChallengePlayer(player.getUniqueId()))); return true; } else { ChatUtil.sendNormalMessage(sender, "Kapput");//plugin.getScoreManager().getScores().entrySet().stream().sorted((o1, o2) -> o1.getValue().compareTo(o2.getValue()) * -1).collect(Collectors.toCollection(LinkedHashSet::new))); //TODO GANZ MACHEN diff --git a/src/main/java/de/fanta/challenges/commands/event/EventStartCommand.java b/src/main/java/de/fanta/challenges/commands/event/EventStartCommand.java index 3cc5825..6b12f4b 100644 --- a/src/main/java/de/fanta/challenges/commands/event/EventStartCommand.java +++ b/src/main/java/de/fanta/challenges/commands/event/EventStartCommand.java @@ -52,7 +52,7 @@ plugin.getTimer().startTimer(); if (!plugin.getConfig().getBoolean("event.teams")) { - Bukkit.getOnlinePlayers().forEach(p -> plugin.getScoreManager().updateScore(new ChallengePlayer(p), 0)); + Bukkit.getOnlinePlayers().forEach(p -> plugin.getScoreManager().updateScore(new ChallengePlayer(p.getUniqueId()), 0)); } else { TeamUtils.setAllPlayerWithoutTeamToTeam(); Bukkit.getOnlinePlayers().forEach(p -> plugin.getScoreManager().updateScore(TeamUtils.getPlayerTeam(p), 0)); diff --git a/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java b/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java index 9981ea9..3effe12 100644 --- a/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java @@ -18,7 +18,7 @@ e.setCancelled(true); } if (plugin.getConfig().getString("event.type").equals("build")) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), -1); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), -1); } } diff --git a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java index 3e94b8c..51e10fd 100644 --- a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java @@ -26,7 +26,7 @@ if (plugin.getConfig().getString("event.type").equals("build") && plugin.getTimer().isRunning()) { Material blockType = e.getBlock().getType(); if (!ItemTypeListUtil.isInstaBreakBlock(blockType) && !ItemGroups.isDoubleBlockPlant(blockType) && !ItemGroups.isSingleBlockPlant(blockType)) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), 1); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), 1); } } } diff --git a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java index 62d77a4..2d92d7f 100644 --- a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java +++ b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java @@ -101,7 +101,7 @@ @EventHandler public void onPlayerDeath(PlayerDeathEvent e) { if (Objects.equals(plugin.getConfig().getString("event.type"), "deathcounter") && plugin.getTimer().isRunning()) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getEntity()), 1); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getEntity().getUniqueId()), 1); } } @@ -115,7 +115,7 @@ @EventHandler public void onExpChangeEvent(PlayerLevelChangeEvent e) { if (Objects.equals(plugin.getConfig().getString("event.type"), "xp") && plugin.getTimer().isRunning()) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), e.getNewLevel() - e.getOldLevel()); + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), e.getNewLevel() - e.getOldLevel()); } } diff --git a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java index 7617522..ed22994 100644 --- a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java @@ -44,11 +44,11 @@ e.setJoinMessage(null); if (plugin.getServerType() != ServerType.ADVENTURE) { if (!DeathrunChallengeEvent.getDeadPlayer().contains(p.getUniqueId())) { - plugin.getScoreManager().join(new ChallengePlayer(p)); + plugin.getScoreManager().join(new ChallengePlayer(p.getUniqueId())); plugin.getSBManager().setScoreboardtoPlayer(p); plugin.getSBManager().updateEventScoreboard(); - if (!plugin.getConfig().getBoolean("event.teams") && plugin.getScoreManager().getScores() != null && plugin.getScoreManager().getScore(new ChallengePlayer(p)) == 0) { - plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer()), 0); + if (!plugin.getConfig().getBoolean("event.teams") && plugin.getScoreManager().getScores() != null && plugin.getScoreManager().getScore(new ChallengePlayer(p.getUniqueId())) == 0) { + plugin.getScoreManager().updateScore(new ChallengePlayer(e.getPlayer().getUniqueId()), 0); } } } diff --git a/src/main/java/de/fanta/challenges/scoreboard/ChallengePlayer.java b/src/main/java/de/fanta/challenges/scoreboard/ChallengePlayer.java index 66a4438..5547476 100644 --- a/src/main/java/de/fanta/challenges/scoreboard/ChallengePlayer.java +++ b/src/main/java/de/fanta/challenges/scoreboard/ChallengePlayer.java @@ -1,39 +1,48 @@ package de.fanta.challenges.scoreboard; +import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.entity.Player; import org.bukkit.scoreboard.Scoreboard; +import java.util.UUID; + public class ChallengePlayer implements Scorable { - private Player player; + private final UUID uuid; - public ChallengePlayer(Player player) { - this.player = player; + public ChallengePlayer(UUID uuid) { + this.uuid = uuid; } public int hashCode() { - return player.hashCode(); + return uuid.hashCode(); } public boolean equals(Object other) { if (!(other instanceof ChallengePlayer cp)) { return false; } - return this.player.equals(cp.player); + return this.uuid.equals(cp.uuid); } @Override public void setScoreboard(Scoreboard scoreboard) { - player.setScoreboard(scoreboard); + Player player = Bukkit.getPlayer(uuid); + if (player != null) { + player.setScoreboard(scoreboard); + } } @Override public String getIdentifier() { + OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); return player.getName(); } @Override public String getName() { + OfflinePlayer player = Bukkit.getOfflinePlayer(uuid); return player.getName(); } } diff --git a/src/main/java/de/fanta/challenges/scoreboard/ScoreBoardManager.java b/src/main/java/de/fanta/challenges/scoreboard/ScoreBoardManager.java index 22fdd17..13d05ba 100644 --- a/src/main/java/de/fanta/challenges/scoreboard/ScoreBoardManager.java +++ b/src/main/java/de/fanta/challenges/scoreboard/ScoreBoardManager.java @@ -154,7 +154,7 @@ } if (this.event != null) { Score score = event.getScore(s.getIdentifier()); - score.setScore(score.getScore()); + score.setScore(plugin.getScoreManager().getScore(s)); } } diff --git a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java index 0049470..8ca2eb5 100644 --- a/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java +++ b/src/main/java/de/fanta/challenges/scoreboard/ScoreManager.java @@ -7,6 +7,7 @@ import de.fanta.challenges.teams.TeamUtils; import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.HastebinUtil; +import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.scoreboard.Team; @@ -94,11 +95,6 @@ } } - public void leave(Scorable s) { - ScoreData data = scores.remove(s); - positions.remove(data.getIndex()); - } - public void updateScore(Scorable s, int difference) { if (difference == 0) { return;