diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java deleted file mode 100644 index 23ac226..0000000 --- a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattle.java +++ /dev/null @@ -1,173 +0,0 @@ -package de.fanta.challenges.challenges.ChallengeEvents; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.events.TimerChangedEvent; -import de.fanta.challenges.scoreboard.ChallengePlayer; -import de.fanta.challenges.scoreboard.Scorable; -import de.fanta.challenges.teams.ChallengeTeam; -import de.fanta.challenges.teams.TeamUtils; -import de.fanta.challenges.utils.ChatSkullAPI.ChatSkull; -import de.fanta.challenges.utils.ChatUtil; -import de.fanta.challenges.utils.Config; -import org.bukkit.Bukkit; -import org.bukkit.GameMode; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.event.block.BlockPlaceEvent; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.ItemMeta; - -import java.util.HashMap; -import java.util.Objects; - -public class OreBattle implements Listener { - private static final HashMap blocklist = new HashMap<>(); - private static boolean running; - private final Challenges plugin = Challenges.getPlugin(); - - public static boolean isRunning() { - return running; - } - - public void setRunning(boolean run) { - running = run; - } - - @EventHandler - public void onActivation(TimerChangedEvent event) { - if (Objects.equals(Config.getString("event.type"), "orebattle")) { - if (event.isRunning()) { - blocklist.put(Material.EMERALD_ORE, 100); - blocklist.put(Material.DEEPSLATE_EMERALD_ORE, 100); - blocklist.put(Material.DIAMOND_ORE, 72); - blocklist.put(Material.DEEPSLATE_DIAMOND_ORE, 45); - blocklist.put(Material.GOLD_ORE, 2); - blocklist.put(Material.DEEPSLATE_GOLD_ORE, 11); - blocklist.put(Material.IRON_ORE, 4); - blocklist.put(Material.DEEPSLATE_IRON_ORE, 15); - blocklist.put(Material.COPPER_ORE, 1); - blocklist.put(Material.DEEPSLATE_COPPER_ORE, 36); - blocklist.put(Material.REDSTONE_ORE, 43); - blocklist.put(Material.DEEPSLATE_REDSTONE_ORE, 7); - blocklist.put(Material.COAL_ORE, 1); - blocklist.put(Material.DEEPSLATE_COAL_ORE, 93); - blocklist.put(Material.LAPIS_ORE, 33); - blocklist.put(Material.DEEPSLATE_LAPIS_ORE, 22); - - for (Player pp : Bukkit.getOnlinePlayers()) { - ItemStack pickaxe = new ItemStack(Material.NETHERITE_PICKAXE, 1); - ItemMeta pickaxeMeta = pickaxe.getItemMeta(); - - pickaxeMeta.addEnchant(Enchantment.DIG_SPEED, 2, true); - pickaxeMeta.setUnbreakable(true); - - pickaxe.setItemMeta(pickaxeMeta); - if (!Config.getBoolean("event.teams")) { - for (Player player : Bukkit.getOnlinePlayers()) { - plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); - } - - if (TeamUtils.getPlayerTeam(pp) != null) { - pp.getInventory().addItem(new ItemStack(Material.NETHERITE_SWORD)); - pp.getInventory().addItem(pickaxe); - pp.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 32)); - } - } else { - for (ChallengeTeam team : TeamUtils.getTeams()) { - if (team != null && !TeamUtils.getPlayersInTeam(team).isEmpty()) { - plugin.getScoreManager().join(team); - } - } - - if (pp.getGameMode() == GameMode.SURVIVAL) { - pp.getInventory().addItem(new ItemStack(Material.NETHERITE_SWORD)); - pp.getInventory().addItem(pickaxe); - pp.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 32)); - } - } - } - - - setRunning(true); - } else { - setRunning(false); - if (!Config.getBoolean("event.teams")) { - for (Scorable scorable : plugin.getScoreManager().getByPositon(1)) { - OfflinePlayer p = (Bukkit.getServer().getOfflinePlayer(scorable.getName())); - if (p.isOnline()) { - String[] lines = {"", "", "", " " + ChatUtil.BLUE + p.getName(), ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und", ChatUtil.GREEN + " hat damit gewonnen!", "", ""}; - ChatSkull.sendAll((Player) p, lines); - } else { - ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + scorable.getName() + ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und hat damit gewonnen!", ChatUtil.BLUE); - } - ChatUtil.sendTitleToAll("Event", ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " gewinnt mit " + ChatUtil.BLUE + plugin.getScoreManager().getScore(scorable) + ChatUtil.GREEN + " Punkten", ChatUtil.GREEN); - } - - - } else { - for (Scorable scorable : plugin.getScoreManager().getByPositon(1)) { - ChallengeTeam team = TeamUtils.getTeam(scorable.getName()); - if (team != null) { - ChatUtil.sendTitleToAll("Event", "Team " + team.getChatColor() + team.getName() + ChatUtil.GREEN + " gewinnt mit " + ChatUtil.BLUE + plugin.getScoreManager().getScore(scorable) + ChatUtil.GREEN + " Punkten", ChatUtil.GREEN); - String[] lines = {"", "", "", " " + ChatUtil.BLUE + "Team " + team.getChatColor() + team.getName(), ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und", ChatUtil.GREEN + " hat damit gewonnen!", "", ""}; - for (OfflinePlayer pp : TeamUtils.getPlayersInTeam(team)) - if (pp.isOnline()) { - ChatSkull.sendAll((Player) pp, lines); - } - } - } - - - } - } - } - } - - @EventHandler - public void onBreakBlock(BlockBreakEvent e) { - if (isRunning()) { - if (blocklist.containsKey(e.getBlock().getType())) { - if (!Config.getBoolean("event.teams")) { - 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())); - } - ChatUtil.sendTitleToPlayer(e.getPlayer(), "", ChatUtil.BLUE + new ItemStack(e.getBlock().getType()).getI18NDisplayName() + ChatUtil.GREEN + " +" + blocklist.get(e.getBlock().getType()), ChatUtil.GREEN, 3, 20, 3, false); - } - } - } - - @EventHandler - public void onPlaceBlock(BlockPlaceEvent e) { - if (isRunning()) { - if (blocklist.containsKey(e.getBlock().getType())) { - if (!Config.getBoolean("event.teams")) { - 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())); - } - ChatUtil.sendTitleToPlayer(e.getPlayer(), "", ChatUtil.BLUE + new ItemStack(e.getBlock().getType()).getI18NDisplayName() + ChatUtil.RED + " -" + blocklist.get(e.getBlock().getType()), ChatUtil.GREEN, 3, 20, 3, false); - } - } - } - - @EventHandler - public void onJoin(PlayerJoinEvent e) { - if (isRunning()) { - if (Config.getBoolean("event.teams")) { - ChallengeTeam team = TeamUtils.getPlayerTeam(e.getPlayer()); - if (team != null) { - plugin.getScoreManager().join(team); - } - } else { - plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer().getUniqueId())); - } - } - } -} diff --git a/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattleChallengeEvent.java b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattleChallengeEvent.java new file mode 100644 index 0000000..499e931 --- /dev/null +++ b/src/main/java/de/fanta/challenges/challenges/ChallengeEvents/OreBattleChallengeEvent.java @@ -0,0 +1,173 @@ +package de.fanta.challenges.challenges.ChallengeEvents; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.events.TimerChangedEvent; +import de.fanta.challenges.scoreboard.ChallengePlayer; +import de.fanta.challenges.scoreboard.Scorable; +import de.fanta.challenges.teams.ChallengeTeam; +import de.fanta.challenges.teams.TeamUtils; +import de.fanta.challenges.utils.ChatSkullAPI.ChatSkull; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.utils.Config; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Material; +import org.bukkit.OfflinePlayer; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockBreakEvent; +import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.HashMap; +import java.util.Objects; + +public class OreBattleChallengeEvent implements Listener { + private static final HashMap blocklist = new HashMap<>(); + private static boolean running; + private final Challenges plugin = Challenges.getPlugin(); + + public static boolean isRunning() { + return running; + } + + public void setRunning(boolean run) { + running = run; + } + + @EventHandler + public void onActivation(TimerChangedEvent event) { + if (Objects.equals(Config.getString("event.type"), "orebattle")) { + if (event.isRunning()) { + blocklist.put(Material.EMERALD_ORE, 100); + blocklist.put(Material.DEEPSLATE_EMERALD_ORE, 100); + blocklist.put(Material.DIAMOND_ORE, 72); + blocklist.put(Material.DEEPSLATE_DIAMOND_ORE, 45); + blocklist.put(Material.GOLD_ORE, 2); + blocklist.put(Material.DEEPSLATE_GOLD_ORE, 11); + blocklist.put(Material.IRON_ORE, 4); + blocklist.put(Material.DEEPSLATE_IRON_ORE, 15); + blocklist.put(Material.COPPER_ORE, 1); + blocklist.put(Material.DEEPSLATE_COPPER_ORE, 36); + blocklist.put(Material.REDSTONE_ORE, 43); + blocklist.put(Material.DEEPSLATE_REDSTONE_ORE, 7); + blocklist.put(Material.COAL_ORE, 1); + blocklist.put(Material.DEEPSLATE_COAL_ORE, 93); + blocklist.put(Material.LAPIS_ORE, 33); + blocklist.put(Material.DEEPSLATE_LAPIS_ORE, 22); + + for (Player pp : Bukkit.getOnlinePlayers()) { + ItemStack pickaxe = new ItemStack(Material.NETHERITE_PICKAXE, 1); + ItemMeta pickaxeMeta = pickaxe.getItemMeta(); + + pickaxeMeta.addEnchant(Enchantment.DIG_SPEED, 2, true); + pickaxeMeta.setUnbreakable(true); + + pickaxe.setItemMeta(pickaxeMeta); + if (!Config.getBoolean("event.teams")) { + for (Player player : Bukkit.getOnlinePlayers()) { + plugin.getScoreManager().join(new ChallengePlayer(player.getUniqueId())); + } + + if (TeamUtils.getPlayerTeam(pp) != null) { + pp.getInventory().addItem(new ItemStack(Material.NETHERITE_SWORD)); + pp.getInventory().addItem(pickaxe); + pp.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 32)); + } + } else { + for (ChallengeTeam team : TeamUtils.getTeams()) { + if (team != null && !TeamUtils.getPlayersInTeam(team).isEmpty()) { + plugin.getScoreManager().join(team); + } + } + + if (pp.getGameMode() == GameMode.SURVIVAL) { + pp.getInventory().addItem(new ItemStack(Material.NETHERITE_SWORD)); + pp.getInventory().addItem(pickaxe); + pp.getInventory().addItem(new ItemStack(Material.COOKED_BEEF, 32)); + } + } + } + + + setRunning(true); + } else { + setRunning(false); + if (!Config.getBoolean("event.teams")) { + for (Scorable scorable : plugin.getScoreManager().getByPositon(1)) { + OfflinePlayer p = (Bukkit.getServer().getOfflinePlayer(scorable.getName())); + if (p.isOnline()) { + String[] lines = {"", "", "", " " + ChatUtil.BLUE + p.getName(), ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und", ChatUtil.GREEN + " hat damit gewonnen!", "", ""}; + ChatSkull.sendAll((Player) p, lines); + } else { + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + scorable.getName() + ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und hat damit gewonnen!", ChatUtil.BLUE); + } + ChatUtil.sendTitleToAll("Event", ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " gewinnt mit " + ChatUtil.BLUE + plugin.getScoreManager().getScore(scorable) + ChatUtil.GREEN + " Punkten", ChatUtil.GREEN); + } + + + } else { + for (Scorable scorable : plugin.getScoreManager().getByPositon(1)) { + ChallengeTeam team = TeamUtils.getTeam(scorable.getName()); + if (team != null) { + ChatUtil.sendTitleToAll("Event", "Team " + team.getChatColor() + team.getName() + ChatUtil.GREEN + " gewinnt mit " + ChatUtil.BLUE + plugin.getScoreManager().getScore(scorable) + ChatUtil.GREEN + " Punkten", ChatUtil.GREEN); + String[] lines = {"", "", "", " " + ChatUtil.BLUE + "Team " + team.getChatColor() + team.getName(), ChatUtil.GREEN + " hat " + plugin.getScoreManager().getScore(scorable) + " Punkte und", ChatUtil.GREEN + " hat damit gewonnen!", "", ""}; + for (OfflinePlayer pp : TeamUtils.getPlayersInTeam(team)) + if (pp.isOnline()) { + ChatSkull.sendAll((Player) pp, lines); + } + } + } + + + } + } + } + } + + @EventHandler + public void onBreakBlock(BlockBreakEvent e) { + if (isRunning()) { + if (blocklist.containsKey(e.getBlock().getType())) { + if (!Config.getBoolean("event.teams")) { + 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())); + } + ChatUtil.sendTitleToPlayer(e.getPlayer(), "", ChatUtil.BLUE + new ItemStack(e.getBlock().getType()).getI18NDisplayName() + ChatUtil.GREEN + " +" + blocklist.get(e.getBlock().getType()), ChatUtil.GREEN, 3, 20, 3, false); + } + } + } + + @EventHandler + public void onPlaceBlock(BlockPlaceEvent e) { + if (isRunning()) { + if (blocklist.containsKey(e.getBlock().getType())) { + if (!Config.getBoolean("event.teams")) { + 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())); + } + ChatUtil.sendTitleToPlayer(e.getPlayer(), "", ChatUtil.BLUE + new ItemStack(e.getBlock().getType()).getI18NDisplayName() + ChatUtil.RED + " -" + blocklist.get(e.getBlock().getType()), ChatUtil.GREEN, 3, 20, 3, false); + } + } + } + + @EventHandler + public void onJoin(PlayerJoinEvent e) { + if (isRunning()) { + if (Config.getBoolean("event.teams")) { + ChallengeTeam team = TeamUtils.getPlayerTeam(e.getPlayer()); + if (team != null) { + plugin.getScoreManager().join(team); + } + } else { + plugin.getScoreManager().join(new ChallengePlayer(e.getPlayer().getUniqueId())); + } + } + } +} diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index 791bd29..bc95488 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -7,7 +7,7 @@ import de.fanta.challenges.challenges.ChallengeEvents.BingoChallengeEvent; import de.fanta.challenges.challenges.ChallengeEvents.DeathrunChallengeEvent; import de.fanta.challenges.challenges.ChallengeEvents.ForceItemChallengeEvent; -import de.fanta.challenges.challenges.ChallengeEvents.OreBattle; +import de.fanta.challenges.challenges.ChallengeEvents.OreBattleChallengeEvent; import de.fanta.challenges.challenges.ChallengeEvents.SammelFieberChallengeEvent; import de.fanta.challenges.challenges.ChallengeGoals; import de.fanta.challenges.challenges.ClearInventoryByDamageChallenge; @@ -94,7 +94,7 @@ pM.registerEvents(new RandomMobChallenge(), plugin); pM.registerEvents(new BedrockWallChallenge(), plugin); pM.registerEvents(new SammelFieberChallengeEvent(), plugin); - pM.registerEvents(new OreBattle(), plugin); + pM.registerEvents(new OreBattleChallengeEvent(), plugin); pM.registerEvents(new ForceItemChallengeEvent(), plugin); pM.registerEvents(new AllAdvancementsChallenge(), plugin); pM.registerEvents(new MobRemoveWorldChallenge(), plugin);