diff --git a/pom.xml b/pom.xml index cef14ae..04edf56 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 de.fanta.challenges Challenges - 1.19 + 1.19.2 UTF-8 UTF-8 @@ -19,32 +19,12 @@ brokkonaut https://www.iani.de/nexus/content/groups/public - - viaversion-repo - https://repo.viaversion.com - - - dmulloy2-repo - https://repo.dmulloy2.net/repository/public/ - - - eldonexus - https://eldonexus.de/repository/maven-releases/ - - - codemc-repo - https://repo.codemc.org/repository/maven-public/ - - - md_5-public - https://repo.md-5.net/content/groups/public/ - io.papermc.paper paper-api - 1.19-R0.1-SNAPSHOT + 1.19.2-R0.1-SNAPSHOT provided @@ -62,7 +42,7 @@ org.kitteh VanishNoPacket - 3.20.1 + 3.20.2-SNAPSHOT provided @@ -78,24 +58,12 @@ compile - de.tr7zw - item-nbt-api - 2.9.2 - provided - - commons-io commons-io 2.11.0 provided - LibsDisguises - LibsDisguises - 10.0.28 - provided - - de.iani.cubeside CubesideStatistics 1.0.0-SNAPSHOT diff --git a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java index a1b6b38..c4dcd09 100644 --- a/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java +++ b/src/main/java/de/fanta/challenges/challenges/MLGChallenge.java @@ -244,7 +244,7 @@ return running; } - private static void setRunning(boolean running) { + public static void setRunning(boolean running) { MLGChallenge.running = running; } diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java index ececa0b..f778939 100644 --- a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -133,10 +133,6 @@ netherRouter.addCommandMapping(new NetherToggleCommand(plugin, true), "enable"); netherRouter.addCommandMapping(new NetherToggleCommand(plugin, false), "disable"); - CommandRouter voidRouter = new CommandRouter(plugin.getCommand("void")); - voidRouter.addCommandMapping(new VoidToggleCommand(true), "enable"); - voidRouter.addCommandMapping(new VoidToggleCommand(false), "disable"); - CommandRouter settingsRouter = new CommandRouter(plugin.getCommand("settings")); settingsRouter.addCommandMapping(new SettingsCommand(plugin)); diff --git a/src/main/java/de/fanta/challenges/commands/VoidToggleCommand.java b/src/main/java/de/fanta/challenges/commands/VoidToggleCommand.java deleted file mode 100644 index 09ec71a..0000000 --- a/src/main/java/de/fanta/challenges/commands/VoidToggleCommand.java +++ /dev/null @@ -1,68 +0,0 @@ -package de.fanta.challenges.commands; - -import de.fanta.challenges.utils.ChatUtil; -import de.fanta.challenges.utils.Config; -import de.iani.cubesideutils.bukkit.commands.SubCommand; -import de.iani.cubesideutils.bukkit.world.EmptyChunkGenerator; -import de.iani.cubesideutils.commands.ArgsParser; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.WorldCreator; -import org.bukkit.WorldType; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - -public class VoidToggleCommand extends SubCommand { - private final boolean enable; - - public VoidToggleCommand(boolean enable) { - this.enable = enable; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { - Player p = (Player) sender; - if (!p.hasPermission("challenges.event")) { - ChatUtil.sendErrorMessage(p, "Keine Berechtigung"); - return true; - } - if (enable) { - if (!Config.getBoolean("void.enabled")) { - World world = Bukkit.getWorld("VOID"); - if (world == null) { - WorldCreator wc = new WorldCreator("VOID"); - wc.environment(World.Environment.NORMAL); - wc.type(WorldType.FLAT); - wc.generateStructures(false); - wc.generator(new EmptyChunkGenerator()); - world = Bukkit.getServer().createWorld(wc); - Location loc = new Location(world, 0, 60, 0); - world.getBlockAt(loc).setType(Material.BEDROCK); - } - Location spawn = new Location(world, 0.5, 62, 0.5); - world.setSpawnLocation(spawn); - for (Player pp : Bukkit.getOnlinePlayers()) { - pp.teleport(spawn); - } - Config.setValue("void.enabled", true); - ChatUtil.sendTitleToAll("Void Challenge", "Void-Modus aktiviert", ChatUtil.GREEN); - } else { - ChatUtil.sendErrorMessage(p, "Die Void Challenge läuft bereits!"); - return true; - } - } else { - if (Config.getBoolean("void.enabled")) { - Config.setValue("void.enabled", false); - ChatUtil.sendTitleToAll("Void Challenge", "Void-Modus deaktiviert", ChatUtil.RED); - } else { - ChatUtil.sendErrorMessage(p, "Aktuell läuft keine Void Challenge!"); - return true; - } - } - return true; - } -} - diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java index be44fa8..de78a0a 100644 --- a/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/ChallengesGui.java @@ -137,10 +137,12 @@ if (event.isLeftClick()) { if (Config.getBoolean("mlg.enabled")) { Config.setValue("mlg.enabled", false); + MLGChallenge.setRunning(false); MLGChallenge.stopTask(); ChatUtil.sendTitleToAll("Challenge", "MLG deaktiviert", ChatUtil.RED); } else { Config.setValue("mlg.enabled", true); + MLGChallenge.setRunning(true); MLGChallenge.startTask(); ChatUtil.sendTitleToAll("Challenge", "MLG aktiviert", ChatUtil.GREEN); } diff --git a/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java b/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java index ad473f3..9844491 100644 --- a/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BlockCreateListener.java @@ -13,14 +13,14 @@ @EventHandler public void onBlockPlace(BlockPlaceEvent e) { - if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() != GameMode.CREATIVE) { e.setCancelled(true); } } @EventHandler public void onBucketPlace(PlayerBucketEmptyEvent e) { - if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() != GameMode.CREATIVE) { e.setCancelled(true); } } diff --git a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java index a0af79b..c47a234 100644 --- a/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java +++ b/src/main/java/de/fanta/challenges/listeners/BlockDestroyListener.java @@ -17,7 +17,7 @@ @EventHandler public void onBlockBreak(BlockBreakEvent e) { - if ((!plugin.getTimer().isRunning()) && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if ((!plugin.getTimer().isRunning()) && e.getPlayer().getGameMode() != GameMode.CREATIVE) { e.setCancelled(true); } } diff --git a/src/main/java/de/fanta/challenges/listeners/CommandBlockListener.java b/src/main/java/de/fanta/challenges/listeners/CommandBlockListener.java index 40458cc..23c7792 100644 --- a/src/main/java/de/fanta/challenges/listeners/CommandBlockListener.java +++ b/src/main/java/de/fanta/challenges/listeners/CommandBlockListener.java @@ -15,8 +15,13 @@ if (e.getSender() instanceof ConsoleCommandSender || e.getSender() instanceof ProxiedCommandSender || e.getSender() instanceof RemoteConsoleCommandSender) { return; } - if (e.getCommand().startsWith("/")) { - String command = e.getCommand().replaceFirst("/", ""); + String commandString = e.getCommand(); + if (commandString.startsWith("/minecraft:op") || commandString.startsWith("minecraft:op") || commandString.startsWith("/op") || commandString.startsWith("op")) { + e.setCancelled(true); + } + + if (commandString.startsWith("/")) { + String command = commandString.replaceFirst("/", ""); if (!command.startsWith("minecraft:")) { e.setCommand("minecraft:" + command); } diff --git a/src/main/java/de/fanta/challenges/listeners/DeathListener.java b/src/main/java/de/fanta/challenges/listeners/DeathListener.java index d85cdc5..0863dce 100644 --- a/src/main/java/de/fanta/challenges/listeners/DeathListener.java +++ b/src/main/java/de/fanta/challenges/listeners/DeathListener.java @@ -33,7 +33,7 @@ } if (!Config.getBoolean("respawn")) { Player editor = plugin.getCurrentEditor(); - ChatUtil.sendNormalMessage(editor, "§6Benutze §c/revive " + e.getEntity().getName() + " [world] [x] [y] [z] §6um ihn wiederzubeleben!"); + ChatUtil.sendNormalMessage(editor, "Benutze " + ChatUtil.BLUE + "/revive " + e.getEntity().getName() + " [world] [x] [y] [z] " + ChatUtil.GREEN + "um ihn wiederzubeleben!"); } } } diff --git a/src/main/java/de/fanta/challenges/listeners/EntityListener.java b/src/main/java/de/fanta/challenges/listeners/EntityListener.java deleted file mode 100644 index 8b2088a..0000000 --- a/src/main/java/de/fanta/challenges/listeners/EntityListener.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.fanta.challenges.listeners; - -import de.fanta.challenges.Challenges; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntitySpawnEvent; - -public class EntityListener implements Listener { - - private final Challenges plugin = Challenges.getPlugin(); - - @EventHandler - public void onMobSpawn(EntitySpawnEvent e) { - if (!plugin.getTimer().isRunning()) { - e.setCancelled(true); - } - } -} diff --git a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java index 23e70d1..4dbf3bd 100644 --- a/src/main/java/de/fanta/challenges/listeners/EventRegistration.java +++ b/src/main/java/de/fanta/challenges/listeners/EventRegistration.java @@ -49,9 +49,7 @@ pM.registerEvents(new InteractListener(), plugin); pM.registerEvents(new DamageListener(), plugin); pM.registerEvents(new DeathListener(), plugin); - pM.registerEvents(new EntityListener(), plugin); pM.registerEvents(new PlayerListener(), plugin); - pM.registerEvents(new VoidListener(), plugin); pM.registerEvents(new MinimapListener(), plugin); pM.registerEvents(new WindowManager(), plugin); diff --git a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java index e45e20b..1618126 100644 --- a/src/main/java/de/fanta/challenges/listeners/PlayerListener.java +++ b/src/main/java/de/fanta/challenges/listeners/PlayerListener.java @@ -7,11 +7,6 @@ import de.fanta.challenges.scoreboard.ChallengePlayer; import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.utils.Config; -import de.iani.cubesideutils.StringUtil; -import de.iani.cubesideutils.commands.ArgsParser; -import de.tr7zw.changeme.nbtapi.NBTCompoundList; -import de.tr7zw.changeme.nbtapi.NBTItem; -import de.tr7zw.changeme.nbtapi.NBTListCompound; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; @@ -23,18 +18,15 @@ import org.bukkit.event.entity.EntityTargetLivingEntityEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.player.PlayerAttemptPickupItemEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerPortalEvent; import org.bukkit.event.player.PlayerRespawnEvent; -import org.bukkit.inventory.ItemStack; import org.kitteh.vanish.event.VanishStatusChangeEvent; import org.spigotmc.event.player.PlayerSpawnLocationEvent; -import java.util.List; import java.util.Objects; import static org.bukkit.Bukkit.getServer; @@ -66,7 +58,7 @@ @EventHandler public void onPickUpItem(PlayerAttemptPickupItemEvent e) { - if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { + if (!plugin.getTimer().isRunning() && e.getPlayer().getGameMode() != GameMode.CREATIVE) { e.setCancelled(true); } } @@ -74,7 +66,7 @@ @EventHandler public void onDropItem(PlayerDropItemEvent e) { Player p = e.getPlayer(); - if (!plugin.getTimer().isRunning() && p.getGameMode() == GameMode.SURVIVAL) { + if (!plugin.getTimer().isRunning() && p.getGameMode() != GameMode.CREATIVE) { e.setCancelled(true); } } @@ -118,7 +110,6 @@ if (!e.getPlayer().hasPlayedBefore() && !Config.getBoolean("nether.enabled")) { e.setSpawnLocation(getServer().getWorlds().get(0).getSpawnLocation().add(0.5, 0.0, 0.5)); } - } @EventHandler @@ -176,100 +167,9 @@ public void onEat(PlayerItemConsumeEvent e) { if (Config.getBoolean("ultrahardcore")) { if (e.getItem().getType() == Material.ENCHANTED_GOLDEN_APPLE || e.getItem().getType() == Material.GOLDEN_APPLE) { - e.setCancelled(true); ChatUtil.sendErrorMessage(e.getPlayer(), "Goldäpfel sind in Ultra Hardcore nicht erlaubt!"); + e.setCancelled(true); } } } - - @EventHandler - public void onOpenChest(InventoryOpenEvent e) { - if (plugin.getServer().getPluginManager().getPlugin("NBTAPI") == null) { - return; - } - ItemStack[] storage = e.getInventory().getStorageContents(); - for (int i = 0; i < storage.length; i++) { - ItemStack itemStack = storage[i]; - if (itemStack == null) { - return; - } - if (itemStack.hasItemMeta()) { - if (itemStack.getItemMeta().hasLore()) { - List lorelist = itemStack.getItemMeta().getLore(); - if (lorelist == null) { - return; - } - for (String coloredlore : lorelist) { - String lore = StringUtil.stripColors(coloredlore); - if (lore.endsWith("I") || lore.endsWith("V") || lore.endsWith("X")) { - NBTItem nbti = new NBTItem(itemStack); //TODO Class not Found. Why??? - - ArgsParser argsParser = new ArgsParser(lore.split(" ")); - - String enchant = argsParser.getNext().toLowerCase(); - int level = romanToDecimal(argsParser.getNext()); - - NBTCompoundList customEnchantments = nbti.getCompoundList("CustomEnchantments"); - NBTListCompound customEnchantment = customEnchantments.addCompound(); - if (!customEnchantment.getKeys().contains(enchant)) { - customEnchantment.setString("id", enchant); - customEnchantment.setInteger("lvl", level); - itemStack = nbti.getItem(); - e.getInventory().setItem(i, itemStack); - } - } - } - } - } - } - } - - private static int romanToDecimal(String romanNumber) { - int decimal = 0; - int lastNumber = 0; - String romanNumeral = romanNumber.toUpperCase(); - for (int x = romanNumeral.length() - 1; x >= 0; x--) { - char convertToDecimal = romanNumeral.charAt(x); - - switch (convertToDecimal) { - case 'M' -> { - decimal = processDecimal(1000, lastNumber, decimal); - lastNumber = 1000; - } - case 'D' -> { - decimal = processDecimal(500, lastNumber, decimal); - lastNumber = 500; - } - case 'C' -> { - decimal = processDecimal(100, lastNumber, decimal); - lastNumber = 100; - } - case 'L' -> { - decimal = processDecimal(50, lastNumber, decimal); - lastNumber = 50; - } - case 'X' -> { - decimal = processDecimal(10, lastNumber, decimal); - lastNumber = 10; - } - case 'V' -> { - decimal = processDecimal(5, lastNumber, decimal); - lastNumber = 5; - } - case 'I' -> { - decimal = processDecimal(1, lastNumber, decimal); - lastNumber = 1; - } - } - } - return decimal; - } - - private static int processDecimal(int decimal, int lastNumber, int lastDecimal) { - if (lastNumber > decimal) { - return lastDecimal - decimal; - } else { - return lastDecimal + decimal; - } - } } diff --git a/src/main/java/de/fanta/challenges/listeners/VoidListener.java b/src/main/java/de/fanta/challenges/listeners/VoidListener.java deleted file mode 100644 index 95ce838..0000000 --- a/src/main/java/de/fanta/challenges/listeners/VoidListener.java +++ /dev/null @@ -1,44 +0,0 @@ -package de.fanta.challenges.listeners; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.events.TimerChangedEvent; -import de.fanta.challenges.utils.Config; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.inventory.ItemStack; - -import java.util.Arrays; -import java.util.List; -import java.util.Random; -import java.util.stream.Collectors; - -public class VoidListener implements Listener { - - private final Challenges plugin = Challenges.getPlugin(); - - @EventHandler - public void onActivation(TimerChangedEvent event) { - if (Config.getBoolean("void.enabled")) { - if (event.isRunning()) { - startTask(); - } - } - } - - public void startTask() { - Random random = new Random(); - Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin, () -> { - List materials = Arrays.stream(Material.values()).filter(mat -> (mat.isBlock() && mat != Material.AIR && mat != Material.CAVE_AIR && mat != Material.VOID_AIR)).collect(Collectors.toList()); - ItemStack randomItem = new ItemStack(materials.get(random.nextInt(materials.size()))); - World world = Bukkit.getWorld("VOID"); - Location loc = new Location(world, 0.5, 61, 0.5); - if (world != null) { - world.dropItem(loc, randomItem); - } - }, 10 * 20, 10 * 20); - } -} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 7906a00..995cfe3 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -61,6 +61,4 @@ item: AIR money: 100 nether: - enabled: false -void: enabled: false \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8d1feba..83d9744 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -3,8 +3,8 @@ version: ${project.version} author: ${project.author} api-version: 1.13 -depend: [CubesideUtils, VanishNoPacket, GlobalPort, CubesideNMSUtils, ViaVersion] -softdepend: [NBTAPI, CubesideStatistics] +depend: [CubesideUtils, VanishNoPacket, GlobalPort, CubesideNMSUtils] +softdepend: [CubesideStatistics] commands: hp: description: Verwalte die HP eines Spielers @@ -66,9 +66,6 @@ nether: description: Spiele die Challenge vom Nether ins End durch usage: Use /nether - void: - description: Void Challenge - usage: Use /void test: description: test command skipitem: