diff --git a/.gitignore b/.gitignore index 02ec840..0343c2a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ .gitignore .classpath .project -.idea +.idea/ diff --git a/pom.xml b/pom.xml index 31ec7b3..559c098 100644 --- a/pom.xml +++ b/pom.xml @@ -19,6 +19,10 @@ brokkonaut https://www.iani.de/nexus/content/groups/public + + viaversion-repo + https://repo.viaversion.com + @@ -52,6 +56,12 @@ provided + com.viaversion + viaversion-api + LATEST + provided + + org.jetbrains annotations RELEASE diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index b9d2971..e17f6db 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -33,7 +33,6 @@ import de.fanta.challenges.utils.VanishUtils; import de.fanta.challenges.utils.guiutils.GUIUtils; import net.md_5.bungee.api.ChatColor; -import org.apache.commons.io.FileUtils; import org.bukkit.BanList; import org.bukkit.Bukkit; import org.bukkit.GameRule; @@ -60,6 +59,8 @@ import java.util.stream.Collectors; public class Challenges extends JavaPlugin { + public Boolean CavesAndCliffs; + public static Logger LOGGER; private static Challenges plugin; @@ -102,60 +103,11 @@ private boolean waitingForShutdown; @Override - public void onLoad() { - LOGGER = getLogger(); - - saveDefaultConfig(); - if (getConfig().getBoolean("World_Reset")) { - File world = new File(Bukkit.getWorldContainer(), "world"); - File nether = new File(Bukkit.getWorldContainer(), "world_nether"); - File end = new File(Bukkit.getWorldContainer(), "world_the_end"); - File void_world = new File(Bukkit.getWorldContainer(), "VOID"); - File mlg_world = new File(Bukkit.getWorldContainer(), "mlg_challenge"); - - File mlg_new = new File("plugins/Challenges/mlg_challenge"); - File mlg_dir = new File("mlg_challenge"); - try { - FileUtils.deleteDirectory(world); - FileUtils.deleteDirectory(nether); - FileUtils.deleteDirectory(end); - FileUtils.deleteDirectory(void_world); - FileUtils.deleteDirectory(mlg_world); - - FileUtils.copyDirectory(mlg_new, mlg_dir); - } catch (IOException e) { - e.printStackTrace(); - } - - world.mkdirs(); - new File(world, "data").mkdirs(); - new File(world, "datapacks").mkdirs(); - new File(world, "playerdata").mkdirs(); - new File(world, "poi").mkdirs(); - new File(world, "region").mkdirs(); - - new File(nether, "data").mkdirs(); - new File(nether, "datapacks").mkdirs(); - new File(nether, "playerdata").mkdirs(); - new File(nether, "poi").mkdirs(); - new File(nether, "region").mkdirs(); - - new File(end, "data").mkdirs(); - new File(end, "datapacks").mkdirs(); - new File(end, "playerdata").mkdirs(); - new File(end, "poi").mkdirs(); - new File(end, "region").mkdirs(); - System.out.println("Welten Erfolgreich zurückgesetzte!"); - } - } - - @Override public void onEnable() { + LOGGER = getLogger(); plugin = this; nmsUtils = getServer().getServicesManager().load(NMSUtils.class); - //getCommand("gamemode").setExecutor(new GamemodeCommand()); - this.timer = new Timer(this); this.rndDrops = new RandomDrops(); this.bingo = new Bingo(); @@ -206,6 +158,8 @@ plugin.getSBManager().initScoreboard(); }, 1L); + CavesAndCliffs = getConfig().getBoolean("1-18-datapack"); + if (getConfig().getBoolean("World_Reset")) { File config = new File(plugin.getDataFolder(), "config.yml"); config.delete(); diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java index 27d8c10..31b621b 100644 --- a/src/main/java/de/fanta/challenges/Timer.java +++ b/src/main/java/de/fanta/challenges/Timer.java @@ -62,8 +62,8 @@ p.setGameMode(GameMode.SPECTATOR); p.sendTitle(ChatColor.DARK_RED + "ZEIT ABGELAUFEN!", ChatColor.RED + "Challenge fehgeschlagen", 10, 60, 10); } - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.DARK_RED + " Die Zeit ist abgelaufen und die Challenge somit fehlgeschlagen!"); - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + " Seed: " + ChatColor.AQUA + Bukkit.getWorlds().get(0).getSeed()); + ChatUtil.sendBrodcastMessage(ChatColor.DARK_RED + "Die Zeit ist abgelaufen und die Challenge somit fehlgeschlagen!"); + ChatUtil.sendBrodcastMessage("Seed: " + ChatColor.AQUA + Bukkit.getWorlds().get(0).getSeed()); } else { for (Player p : Bukkit.getOnlinePlayers()) { @@ -121,7 +121,7 @@ public boolean triggerMLG() { if (plugin.getConfig().getBoolean("mlg.enabled") && !mlgActive && Bukkit.getOnlinePlayers().size() >= 1) { mlgActive = true; - Bukkit.broadcastMessage(Challenges.PREFIX + " §bZeit für einen MLG! §6Viel Glück!"); + ChatUtil.sendBrodcastMessage("Zeit für einen MLG! Viel Glück!"); timeSinceMLG = 0; for (Player p : Bukkit.getOnlinePlayers()) { if (p.getGameMode() == GameMode.SURVIVAL && !p.isDead()) { diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java index 31d4cb3..60d745c 100644 --- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -4,6 +4,8 @@ import de.fanta.challenges.commands.challenges.ChallengesCommand; import de.fanta.challenges.commands.challenges.ChallengesHelpCommand; import de.fanta.challenges.commands.challenges.ChallengesKickCommand; +import de.fanta.challenges.commands.challenges.ChallengesMemoryCommand; +import de.fanta.challenges.commands.challenges.ChallengesPingCommand; import de.fanta.challenges.commands.challenges.ChallengesSaveCommand; import de.fanta.challenges.commands.coords.CoordsCommand; import de.fanta.challenges.commands.coords.CoordsDeleteCommand; @@ -48,6 +50,8 @@ challengesRouter.addCommandMapping(new ChallengesHelpCommand(plugin), "help"); challengesRouter.addCommandMapping(new ChallengesKickCommand(plugin), "kick"); challengesRouter.addCommandMapping(new ChallengesSaveCommand(plugin), "save"); + challengesRouter.addCommandMapping(new ChallengesPingCommand(), "ping"); + challengesRouter.addCommandMapping(new ChallengesMemoryCommand(plugin), "mem"); CommandRouter resetRouter = new CommandRouter(plugin.getCommand("reset")); resetRouter.addCommandMapping(new ResetCommand(plugin)); diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java new file mode 100644 index 0000000..44e8bd3 --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesMemoryCommand.java @@ -0,0 +1,35 @@ +package de.fanta.challenges.commands.challenges; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.commands.ArgsParser; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ChallengesMemoryCommand extends SubCommand { + + private final Challenges plugin; + + private static final long MB = 1024L * 1024L; + + public ChallengesMemoryCommand(Challenges plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { + if (sender.hasPermission("Challenges.editor.override")) { + ChatUtil.sendNormalMessage(sender, "Speichernutzung: " + KBToMB(Runtime.getRuntime().totalMemory()) + " MB / " + KBToMB(Runtime.getRuntime().maxMemory()) + " MB (Freier Speicher: " + KBToMB(Runtime.getRuntime().freeMemory()) + "MB)"); + } else { + ChatUtil.sendErrorMessage(sender, "Keine Rechte!"); + } + return true; + } + + public static long KBToMB(long KB) + { + return KB / MB; + } +} diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java new file mode 100644 index 0000000..02e34d3 --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesPingCommand.java @@ -0,0 +1,37 @@ +package de.fanta.challenges.commands.challenges; + +import de.fanta.challenges.utils.ChatUtil; +import de.iani.cubesideutils.bukkit.commands.SubCommand; +import de.iani.cubesideutils.commands.ArgsParser; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ChallengesPingCommand extends SubCommand { + + public ChallengesPingCommand() { + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { + if (!(sender instanceof Player p)) { + ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); + return true; + } + + if (args.hasNext()) { + String playerName = args.getNext(); + Player player = Bukkit.getPlayer(playerName); + + if (player == null) { + ChatUtil.sendErrorMessage(sender, "Dieser Spieler ist nicht online!"); + return true; + } + ChatUtil.sendNormalMessage(sender, "Ping von " + player.getName() + ": " + player.getPing()); + } else { + ChatUtil.sendNormalMessage(sender, "Ping: " + ((Player) sender).getPing()); + } + return true; + } +} diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java index a2c3d73..191d67b 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java @@ -27,7 +27,7 @@ int x = player.getLocation().getBlockX(); int y = player.getLocation().getBlockY(); int z = player.getLocation().getBlockZ(); - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + sender.getName() + ChatUtil.GREEN + " ist bei " + ChatUtil.ORANGE + x + "/" + y + "/" + z + " " + ChatUtil.ORANGE + w); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + sender.getName() + ChatUtil.GREEN + " ist bei " + ChatUtil.ORANGE + x + "/" + y + "/" + z + " " + ChatUtil.ORANGE + w); return true; } } diff --git a/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java b/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java index 1cfc619..ba64bf7 100644 --- a/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java @@ -34,7 +34,7 @@ return true; } else if (!plugin.isEditor(player)){ plugin.setCurrentEditor(player); - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.GREEN + player.getName() + " wurde von " + sender.getName() + " zum Editor ernannt"); + ChatUtil.sendBrodcastMessage(player.getName() + " wurde von " + sender.getName() + " zum Editor ernannt"); ChatUtil.sendNormalMessage(player, "Du bist jetzt Editor und kannst diese Lobby bearbeiten. (/challenges)"); return true; } else { diff --git a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java index 15dda89..0c3de31 100644 --- a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java +++ b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java @@ -9,12 +9,16 @@ import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; +import java.util.List; import java.util.Properties; public class ResetConfirmCommand extends SubCommand { @@ -28,6 +32,17 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { if ((sender instanceof Player && plugin.isEditor((Player) sender)) || sender.hasPermission("Challenges.editor.override")) { + String datapack = ""; + if (args.hasNext()) { + datapack = args.getNext(); + if (datapack.equals("true")) { + plugin.getConfig().set("1-18-datapack", true); + ConsoleCommandSender console = Bukkit.getServer().getConsoleSender(); + String consolen_command = "/datapack enable \"file/CavesAndCliffsPreview.zip\""; + Bukkit.dispatchCommand(console, consolen_command); + } + } + try { BufferedReader in = new BufferedReader(new FileReader("server.properties")); Properties props = new Properties(); @@ -72,4 +87,14 @@ } return true; } + + @Override + public Collection onTabComplete(CommandSender sender, Command command, String alias, ArgsParser args) { + args.next(); + if (!args.hasNext()) { + return List.of("true", "false"); + } + + return Collections.emptyList(); + } } diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java index c5a0d92..3809fc3 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java @@ -26,7 +26,7 @@ } if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { plugin.getTimer().setTime(0); - Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.GREEN + " Der Timer wurde zurückgesetzt!"); + ChatUtil.sendBrodcastMessage("Der Timer wurde zurückgesetzt!"); } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); return true; diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java index f145059..e182b32 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java @@ -26,9 +26,9 @@ if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { plugin.getTimer().reverseTimer(); if (plugin.getTimer().isReverse()) { - Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.BLUE + " Der Timer läuft nun rückwärts!"); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + "Der Timer läuft nun rückwärts!"); } else { - Bukkit.broadcastMessage(Challenges.PREFIX + ChatUtil.GREEN + " Der Timer läuft nun vorwärts!"); + ChatUtil.sendBrodcastMessage("Der Timer läuft nun vorwärts!"); } } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java index 88c6b2e..6256044 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java @@ -29,7 +29,7 @@ if (time >= 0) { if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { plugin.getTimer().setTime(time); - Bukkit.broadcastMessage(Challenges.PREFIX + " §bDer Timer wurde auf " + plugin.getTimer().formatTime(ChatColor.GREEN) + " §bgesetzt!"); + ChatUtil.sendBrodcastMessage("Der Timer wurde auf " + plugin.getTimer().formatTime(ChatColor.GREEN) + " gesetzt!"); } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); return true; diff --git a/src/main/java/de/fanta/challenges/guis/BackpackGui.java b/src/main/java/de/fanta/challenges/guis/BackpackGui.java index e7e030b..02b6084 100644 --- a/src/main/java/de/fanta/challenges/guis/BackpackGui.java +++ b/src/main/java/de/fanta/challenges/guis/BackpackGui.java @@ -1,6 +1,7 @@ package de.fanta.challenges.guis; import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -42,7 +43,7 @@ ItemStack item = backpack.getItem(i); if (item != null && item.getType() != Material.AIR) { if (!newBackpack.addItem(item).isEmpty()) { - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.DARK_RED + " Backpack kann nicht verkleinert werden. Zu wenig Platz!"); // TODO COLOR + ChatUtil.sendBrodcastMessage(ChatColor.DARK_RED + "Backpack kann nicht verkleinert werden. Zu wenig Platz!"); return; } } diff --git a/src/main/java/de/fanta/challenges/listeners/DamageListener.java b/src/main/java/de/fanta/challenges/listeners/DamageListener.java index 5191657..7d3671d 100644 --- a/src/main/java/de/fanta/challenges/listeners/DamageListener.java +++ b/src/main/java/de/fanta/challenges/listeners/DamageListener.java @@ -41,19 +41,19 @@ if (e.getFinalDamage() > 0) { if (e.getCause() == DamageCause.FALL) { if (plugin.getConfig().getBoolean("deathonfall")) { - if (plugin.getConfig().getBoolean("dmginchat")) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); + if (plugin.getConfig().getBoolean("dmginchat")) { ; + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); } Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> p.setHealth(0), 1); } else if (plugin.getConfig().getBoolean("dmginchat")) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); } } else if (e.getCause() == DamageCause.CUSTOM) { if (!p.isSneaking() && (plugin.getConfig().getBoolean("dmginchat"))) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + plugin.getConfig().getDouble("sneakdmg") + ChatUtil.GREEN + " HP Schaden genommen durch" + ChatUtil.ORANGE + " Server"); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + plugin.getConfig().getDouble("sneakdmg") + ChatUtil.GREEN + " HP Schaden genommen durch" + ChatUtil.ORANGE + " Server"); } } else if (plugin.getConfig().getBoolean("dmginchat")) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getCause()); } if (plugin.getConfig().getBoolean("sharedmg")) { for (Player pp : Bukkit.getOnlinePlayers()) { @@ -95,7 +95,7 @@ if ((e.getEntity() instanceof Player p) && (e.getFinalDamage() > 0) && (plugin.getTimer().isRunning())) { String dmg = new DecimalFormat("#.##").format(e.getFinalDamage()); if ((e.getCause() == DamageCause.ENTITY_ATTACK || e.getCause() == DamageCause.ENTITY_EXPLOSION) && plugin.getConfig().getBoolean("dmginchat")) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getDamager().getName()); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat " + ChatUtil.ORANGE + dmg + ChatUtil.GREEN + " HP Schaden genommen durch " + ChatUtil.ORANGE + e.getDamager().getName()); } } } diff --git a/src/main/java/de/fanta/challenges/listeners/DeathListener.java b/src/main/java/de/fanta/challenges/listeners/DeathListener.java index c421eba..7172a48 100644 --- a/src/main/java/de/fanta/challenges/listeners/DeathListener.java +++ b/src/main/java/de/fanta/challenges/listeners/DeathListener.java @@ -59,17 +59,17 @@ if (Objects.equals(plugin.getConfig().getString("event.type"), "nix")) { if ((e.getEntity() instanceof EnderDragon && plugin.getConfig().getBoolean("target")) || (e.getEntity() instanceof Wither && !plugin.getConfig().getBoolean("target"))) { plugin.getTimer().stopTimer(); - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt."); - Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Benötigte Zeit: §2§l" + plugin.getTimer().formatTime(ChatColor.GREEN) + "§7!"); - Bukkit.broadcastMessage(Challenges.PREFIX + " §8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed()); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX); - Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + ChatUtil.sendBrodcastMessage("" + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage(" §8>> §7Der §2§l" + e.getEntity().getName().toLowerCase() + " §7wurde besiegt."); + ChatUtil.sendBrodcastMessage(" §8>> §7Benötigte Zeit: §2§l" + plugin.getTimer().formatTime(ChatColor.GREEN) + "§7!"); + ChatUtil.sendBrodcastMessage(" §8>> §7Seed: §2§l" + Bukkit.getWorlds().get(0).getSeed()); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage(""); + ChatUtil.sendBrodcastMessage("" + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); } } } diff --git a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java index be13ce2..6d04640 100644 --- a/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/listeners/QuitJoinListener.java @@ -1,13 +1,19 @@ package de.fanta.challenges.listeners; +import com.viaversion.viaversion.api.Via; import de.fanta.challenges.Challenges; import de.fanta.challenges.events.PlayerCountChangedEvent; import de.fanta.challenges.events.ServerStatusChangedEvent; import de.fanta.challenges.utils.ChatUtil; +import de.speedy64.globalport.GlobalApi; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; +import org.bukkit.GameRule; import org.bukkit.Location; +import org.bukkit.Server; +import org.bukkit.World; import org.bukkit.entity.Player; +import org.bukkit.entity.Spider; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; @@ -24,6 +30,19 @@ @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { Player p = e.getPlayer(); + + //Wenn CavesandCliffs Aktiv dürfen nur Spieler ab 1.17 Joinen + System.out.println(Via.getAPI().getPlayerVersion(e.getPlayer().getUniqueId())); + System.out.println(plugin.CavesAndCliffs); + + if (plugin.CavesAndCliffs) { + if (Via.getAPI().getPlayerVersion(p.getUniqueId()) < 755) { + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + p.kickPlayer("Du musst mit Minecraft 1.17 Joinen"); + }, 3L); + } + } + if (resetTaskId > 0) { Bukkit.getScheduler().cancelTask(resetTaskId); resetTaskId = -1; @@ -36,8 +55,7 @@ ChatUtil.sendNormalMessage(p, "Du bist im Vanish, niemand weiß, dass du in der Lobby bist."); return; } - Bukkit.broadcastMessage( - Challenges.PREFIX + " " + ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers()) + "/" + Bukkit.getServer().getMaxPlayers() + "]"); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + p.getName() + ChatUtil.GREEN + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers()) + "/" + Bukkit.getServer().getMaxPlayers() + "]"); e.setJoinMessage(null); if (plugin.getConfig().getBoolean("sharedmg")) { int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size()); @@ -81,7 +99,8 @@ } if (!plugin.getVanish().isVanish(player)) { - e.setQuitMessage(Challenges.PREFIX + " " + ChatColor.of("#3D98DC") + player.getName() + ChatColor.of("#C45B3D") + " hat die Lobby verlassen! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers() - 1) + "/" + Bukkit.getServer().getMaxPlayers() + "]"); + e.setQuitMessage(null); + ChatUtil.sendBrodcastMessage(ChatUtil.BLUE + player.getName() + ChatColor.of("#C45B3D") + " hat die Lobby verlassen! " + ChatColor.of("#E4E737") + "[" + (Bukkit.getServer().getOnlinePlayers().size() - plugin.getVanish().countVanishPlayers() - 1) + "/" + Bukkit.getServer().getMaxPlayers() + "]"); this.plugin.getSBManager().removeScoreboard(player); if (Bukkit.getServer().getOnlinePlayers().size() - 1 == 0) { diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java index 5ce7940..f6c36d9 100644 --- a/src/main/java/de/fanta/challenges/utils/ChatUtil.java +++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java @@ -5,6 +5,7 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; public class ChatUtil { @@ -33,7 +34,9 @@ sendMessage(sender, RED.toString(), messageParts); } - public static void sendBrodcastMessage(String message) { - Bukkit.broadcastMessage(Challenges.PREFIX + " " + GREEN + message); + public static void sendBrodcastMessage(Object... messageParts) { + for (Player player : Bukkit.getOnlinePlayers()) { + sendMessage(player, GREEN.toString(), messageParts); + } } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9c3e79e..ecffdd6 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -29,6 +29,7 @@ Saved_Locations: {} World_Name: world World_Reset: false +1-18-datapack: false event: enabled: false type: nix