diff --git a/pom.xml b/pom.xml index 66808c7..a7d5e80 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ UTF-8 UTF-8 - de.fanta.challenges.Challenges + ${project.groupId}.Challenges fanta, vollkorntomate @@ -47,7 +47,7 @@ maven-jar-plugin 3.2.0 - ${project.artifactId} ${project.version} + ${project.artifactId}-${project.version} diff --git a/src/main/java/de/fanta/challenges/Challenges.java b/src/main/java/de/fanta/challenges/Challenges.java index b8ec3e1..0134080 100644 --- a/src/main/java/de/fanta/challenges/Challenges.java +++ b/src/main/java/de/fanta/challenges/Challenges.java @@ -1,53 +1,33 @@ /*TODO -Backpack -MLG-Challenges machen*/ +Backpack Reset +Gamerule Buttons +*/ package de.fanta.challenges; import de.fanta.challenges.commands.BackpackCommand; import de.fanta.challenges.challenges.RandomDrops; import de.fanta.challenges.challenges.SBManager; -import de.fanta.challenges.commands.RegisterCommands; -import de.fanta.challenges.commands.challenges.ChallengesCommand; -import de.fanta.challenges.commands.ForceMLGCommand; -import de.fanta.challenges.commands.LeaveCommand; -import de.fanta.challenges.commands.challenges.ChallengesHelpCommand; -import de.fanta.challenges.commands.coords.CoordsCommand; -import de.fanta.challenges.commands.coords.CoordsDeleteCommand; -import de.fanta.challenges.commands.coords.CoordsGetCommand; -import de.fanta.challenges.commands.coords.CoordsSaveCommand; -import de.fanta.challenges.commands.coords.CoordsShareCommand; -import de.fanta.challenges.commands.editor.EditorSetCommand; -import de.fanta.challenges.commands.reset.ResetCommand; -import de.fanta.challenges.commands.reset.ResetConfirmCommand; -import de.fanta.challenges.commands.editor.EditorCommand; -import de.fanta.challenges.commands.revive.ReviveCommandTODO; -import de.fanta.challenges.commands.settings.SettingsCommandTODO; -import de.fanta.challenges.commands.timer.TimerPauseCommand; -import de.fanta.challenges.commands.timer.TimerResetCommand; -import de.fanta.challenges.commands.timer.TimerReverseCommand; -import de.fanta.challenges.commands.timer.TimerSetCommand; -import de.fanta.challenges.commands.timer.TimerStartCommand; -import de.fanta.challenges.commands.hp.HPAddCommand; -import de.fanta.challenges.commands.hp.HPGetCommand; -import de.fanta.challenges.commands.hp.HPMaxCommand; -import de.fanta.challenges.commands.hp.HPRemoveCommand; -import de.fanta.challenges.commands.hp.HPSetCommand; +import de.fanta.challenges.commands.CommandRegistration; import de.fanta.challenges.events.BlockCreateListener; import de.fanta.challenges.events.BlockDestroyListener; import de.fanta.challenges.events.DamageListener; import de.fanta.challenges.events.DeathListener; import de.fanta.challenges.events.InteractListener; import de.fanta.challenges.events.InventoryClickListener; +import de.fanta.challenges.events.PlayerListener; import de.fanta.challenges.events.QuitJoinListener; -import de.fanta.challenges.gui.InventoryHandler; +import de.fanta.challenges.guis.ResetGui; +import de.fanta.challenges.guis.TimerGui; +import de.fanta.challenges.guis.settingsgui.MainGui; +import de.fanta.challenges.guis.settingsgui.SettingsGui; +import de.fanta.challenges.utils.guiutils.InventoryHandler; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import de.iani.cubesideutils.bukkit.commands.CommandRouter; import me.wolfyscript.utilities.api.WolfyUtilities; import org.bukkit.Bukkit; import org.bukkit.GameRule; @@ -88,11 +68,12 @@ public static String GUIName = "§6Settings"; - public static Challenges getplugin() { + public static Challenges getPlugin() { return plugin; } public static final String PREFIX = ChatColor.of("#455aad") + "[" + ChatColor.of("#1FFF00") + "Challenge" + ChatColor.of("#455aad") + "]"; + public static final String GUIPREFIX = ChatColor.of("#2d8745") + "Challenge"; private Player currentEditor; @@ -111,7 +92,7 @@ this.backpack = new BackpackCommand(this); - registerCommands(); + new CommandRegistration(this).registerCommands(); Bukkit.getPluginManager().registerEvents(new InventoryClickListener(), this); Bukkit.getPluginManager().registerEvents(new QuitJoinListener(), this); @@ -120,6 +101,11 @@ Bukkit.getPluginManager().registerEvents(new InteractListener(), this); Bukkit.getPluginManager().registerEvents(new DamageListener(), this); Bukkit.getPluginManager().registerEvents(new DeathListener(), this); + Bukkit.getPluginManager().registerEvents(new PlayerListener(), this); + Bukkit.getPluginManager().registerEvents(new TimerGui(), this); + Bukkit.getPluginManager().registerEvents(new ResetGui(), this); + Bukkit.getPluginManager().registerEvents(new MainGui(), this); + Bukkit.getPluginManager().registerEvents(new SettingsGui(), this); saveDefaultConfig(); reloadConfig(); @@ -132,6 +118,12 @@ timer.setTime(getConfig().getInt("timertime")); + Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> { + World world = Bukkit.getWorld("world"); + world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); + checkMLGWorld(); + }, 1L); + if (getConfig().getBoolean("World_Reset")) { getConfig().set("World_Reset", false); saveConfig(); @@ -145,54 +137,6 @@ } } - private void registerCommands() { - getCommand("settings").setExecutor(new SettingsCommandTODO(this)); - getCommand("revive").setExecutor(new ReviveCommandTODO(this)); - - CommandRouter challengesRouter = new CommandRouter(getCommand("challenges")); - challengesRouter.addCommandMapping(new ChallengesCommand(this)); - challengesRouter.addCommandMapping(new ChallengesHelpCommand(this), "help"); - - - CommandRouter resetRouter = new CommandRouter(getCommand("reset")); - resetRouter.addCommandMapping(new ResetCommand(this)); - resetRouter.addCommandMapping(new ResetConfirmCommand(this), "confirm"); - - CommandRouter backpackRouter = new CommandRouter(getCommand("backpack")); - backpackRouter.addCommandMapping(backpack); - - CommandRouter coordsRouter = new CommandRouter(getCommand("coords")); - coordsRouter.addCommandMapping(new CoordsCommand(this)); - coordsRouter.addCommandMapping(new CoordsShareCommand(this), "share"); - coordsRouter.addCommandMapping(new CoordsGetCommand(this), "get"); - coordsRouter.addCommandMapping(new CoordsSaveCommand(this), "save"); - coordsRouter.addCommandMapping(new CoordsDeleteCommand(this), "delete"); - - CommandRouter hpRouter = new CommandRouter(getCommand("hp")); - hpRouter.addCommandMapping(new HPAddCommand(this), "add"); - hpRouter.addCommandMapping(new HPGetCommand(this), "get"); - hpRouter.addCommandMapping(new HPMaxCommand(this), "max"); - hpRouter.addCommandMapping(new HPRemoveCommand(this), "remove"); - hpRouter.addCommandMapping(new HPSetCommand(this), "set"); - - CommandRouter timerRouter = new CommandRouter(getCommand("timer")); - timerRouter.addCommandMapping(new TimerPauseCommand(this), "pause"); - timerRouter.addCommandMapping(new TimerResetCommand(this), "reset"); - timerRouter.addCommandMapping(new TimerReverseCommand(this), "reverse"); - timerRouter.addCommandMapping(new TimerSetCommand(this), "set"); - timerRouter.addCommandMapping(new TimerStartCommand(this), "start"); - - CommandRouter forcemlgRouter = new CommandRouter(getCommand("forcemlg")); - forcemlgRouter.addCommandMapping(new ForceMLGCommand(this)); - - CommandRouter editorRouter = new CommandRouter(getCommand("editor")); - editorRouter.addCommandMapping(new EditorCommand(this)); - editorRouter.addCommandMapping(new EditorSetCommand(this), "set"); - - CommandRouter leaveRouter = new CommandRouter(getCommand("leave")); - leaveRouter.addCommandMapping(new LeaveCommand()); - } - @Override public void onDisable() { this.backpack.saveInventoryToConfig(); diff --git a/src/main/java/de/fanta/challenges/ChatUtil.java b/src/main/java/de/fanta/challenges/ChatUtil.java deleted file mode 100644 index 5aa53db..0000000 --- a/src/main/java/de/fanta/challenges/ChatUtil.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.fanta.challenges; - -import de.iani.cubesideutils.bukkit.ChatUtilBukkit; -import net.md_5.bungee.api.ChatColor; -import org.bukkit.command.CommandSender; - -public class ChatUtil { - - private ChatUtil() { - // prevent instances - } - - public static void sendMessage(CommandSender sender, String colors, Object message, Object... messageParts) { - ChatUtilBukkit.sendMessage(sender, Challenges.PREFIX, colors, message, messageParts); - } - - public static void sendNormalMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#1FFF00").toString(), message, messageParts); - } - - public static void sendWarningMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#ffe100").toString(), message, messageParts); - } - - public static void sendErrorMessage(CommandSender sender, Object message, Object... messageParts) { - sendMessage(sender, ChatColor.of("#a30202").toString(), message, messageParts); - } -} diff --git a/src/main/java/de/fanta/challenges/Timer.java b/src/main/java/de/fanta/challenges/Timer.java index 2c2a2f5..b442489 100644 --- a/src/main/java/de/fanta/challenges/Timer.java +++ b/src/main/java/de/fanta/challenges/Timer.java @@ -1,5 +1,6 @@ package de.fanta.challenges; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.StringUtil; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; @@ -75,9 +76,8 @@ if (actionBarTaskId > 0) { Bukkit.getScheduler().cancelTask(actionBarTaskId); actionBarTaskId = -1; + sendIdleActionBar(); } - - sendIdleActionBar(); } private void sendIdleActionBar() { @@ -88,7 +88,7 @@ p.getWorld().playEffect(p.getLocation(), Effect.ENDER_SIGNAL, 2); } } - }, 0L, 20L); + }, 20L, 20L); } public boolean triggerMLG() { @@ -113,7 +113,7 @@ } public String formatTime(ChatColor color) { - return color + StringUtil.formatTimespan((long) time * 1000L, ChatColor.GOLD + " Day/s", "", "", "", color + ":", ":", false, true); + return color + StringUtil.formatTimespan((long) time * 1000L, " Tag/e ", "", "", "", color + ":", ":", false, true); } public void reverseTimer() { diff --git a/src/main/java/de/fanta/challenges/challenges/RandomDrops.java b/src/main/java/de/fanta/challenges/challenges/RandomDrops.java index ac2c8e5..0293e67 100644 --- a/src/main/java/de/fanta/challenges/challenges/RandomDrops.java +++ b/src/main/java/de/fanta/challenges/challenges/RandomDrops.java @@ -37,13 +37,13 @@ } public void saveItems() { - FileConfiguration config = Challenges.getplugin().getRndDropsConfig(); + FileConfiguration config = Challenges.getPlugin().getRndDropsConfig(); config.set("drops", this.drops.entrySet().stream().map(entry -> (new StringBuilder()).append(entry.getKey()).append(":").append(entry.getValue()).toString()).collect(Collectors.toList())); } public void loadItems() { this.drops.clear(); - FileConfiguration config = Challenges.getplugin().getRndDropsConfig(); + FileConfiguration config = Challenges.getPlugin().getRndDropsConfig(); if (config.isList("drops")) { config.getStringList("drops").forEach(str -> { String[] materialSplitted = str.split(":"); diff --git a/src/main/java/de/fanta/challenges/commands/BackpackCommand.java b/src/main/java/de/fanta/challenges/commands/BackpackCommand.java index 269e8c2..c3e33e2 100644 --- a/src/main/java/de/fanta/challenges/commands/BackpackCommand.java +++ b/src/main/java/de/fanta/challenges/commands/BackpackCommand.java @@ -1,22 +1,19 @@ package de.fanta.challenges.commands; -import java.util.Iterator; import java.util.Map; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +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.Material; import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.configuration.MemorySection; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.Plugin; public class BackpackCommand extends SubCommand { private final Challenges plugin; @@ -25,7 +22,7 @@ this.plugin = plugin; } - static int size = Challenges.getplugin().getConfig().getInt("backpack_size"); + static int size = Challenges.getPlugin().getConfig().getInt("backpack_size") * 9; public static Inventory Backpack = Bukkit.createInventory(null, size, "§6Backpack"); @Override @@ -34,8 +31,8 @@ ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); return true; } - Player p = (Player) sender; - p.openInventory(Backpack); + Player p = (Player) sender; + p.openInventory(Backpack); return true; } @@ -47,11 +44,11 @@ public void saveInventoryToConfig() { clearConfig(); - int slot = 0; - for (; slot < Backpack.getSize(); slot++) { + for (int slot = 0; slot < Backpack.getSize(); slot++) { ItemStack stack = Backpack.getItem(slot); - if (stack != null && stack.getType() != Material.AIR) + if (stack != null && stack.getType() != Material.AIR) { this.plugin.getBackpackConfig().set(String.valueOf(slot), stack.serialize()); + } } } diff --git a/src/main/java/de/fanta/challenges/commands/CommandRegistration.java b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java new file mode 100644 index 0000000..0a90cc2 --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/CommandRegistration.java @@ -0,0 +1,85 @@ +package de.fanta.challenges.commands; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.commands.challenges.ChallengesCommand; +import de.fanta.challenges.commands.challenges.ChallengesHelpCommand; +import de.fanta.challenges.commands.coords.CoordsCommand; +import de.fanta.challenges.commands.coords.CoordsDeleteCommand; +import de.fanta.challenges.commands.coords.CoordsGetCommand; +import de.fanta.challenges.commands.coords.CoordsSaveCommand; +import de.fanta.challenges.commands.coords.CoordsShareCommand; +import de.fanta.challenges.commands.editor.EditorCommand; +import de.fanta.challenges.commands.editor.EditorSetCommand; +import de.fanta.challenges.commands.hp.HPAddCommand; +import de.fanta.challenges.commands.hp.HPGetCommand; +import de.fanta.challenges.commands.hp.HPMaxCommand; +import de.fanta.challenges.commands.hp.HPRemoveCommand; +import de.fanta.challenges.commands.hp.HPSetCommand; +import de.fanta.challenges.commands.reset.ResetCommand; +import de.fanta.challenges.commands.reset.ResetConfirmCommand; +import de.fanta.challenges.commands.revive.ReviveCommandTODO; +import de.fanta.challenges.commands.settings.SettingsCommandTODO; +import de.fanta.challenges.commands.timer.TimerCommand; +import de.fanta.challenges.commands.timer.TimerPauseCommand; +import de.fanta.challenges.commands.timer.TimerResetCommand; +import de.fanta.challenges.commands.timer.TimerReverseCommand; +import de.fanta.challenges.commands.timer.TimerSetCommand; +import de.fanta.challenges.commands.timer.TimerStartCommand; +import de.iani.cubesideutils.bukkit.commands.CommandRouter; + +public class CommandRegistration { + private final Challenges plugin; + + public CommandRegistration(Challenges plugin) { + this.plugin = plugin; + } + + public void registerCommands() { + plugin.getCommand("settings").setExecutor(new SettingsCommandTODO(plugin)); + plugin.getCommand("revive").setExecutor(new ReviveCommandTODO(plugin)); + + CommandRouter challengesRouter = new CommandRouter(plugin.getCommand("challenges")); + challengesRouter.addCommandMapping(new ChallengesCommand(plugin)); + challengesRouter.addCommandMapping(new ChallengesHelpCommand(plugin), "help"); + + + CommandRouter resetRouter = new CommandRouter(plugin.getCommand("reset")); + resetRouter.addCommandMapping(new ResetCommand(plugin)); + resetRouter.addCommandMapping(new ResetConfirmCommand(plugin), "confirm"); + + CommandRouter backpackRouter = new CommandRouter(plugin.getCommand("backpack")); + backpackRouter.addCommandMapping(plugin.backpack); + + CommandRouter coordsRouter = new CommandRouter(plugin.getCommand("coords")); + coordsRouter.addCommandMapping(new CoordsCommand(plugin)); + coordsRouter.addCommandMapping(new CoordsShareCommand(plugin), "share"); + coordsRouter.addCommandMapping(new CoordsGetCommand(plugin), "get"); + coordsRouter.addCommandMapping(new CoordsSaveCommand(plugin), "save"); + coordsRouter.addCommandMapping(new CoordsDeleteCommand(plugin), "delete"); + + CommandRouter hpRouter = new CommandRouter(plugin.getCommand("hp")); + hpRouter.addCommandMapping(new HPAddCommand(plugin), "add"); + hpRouter.addCommandMapping(new HPGetCommand(plugin), "get"); + hpRouter.addCommandMapping(new HPMaxCommand(plugin), "max"); + hpRouter.addCommandMapping(new HPRemoveCommand(plugin), "remove"); + hpRouter.addCommandMapping(new HPSetCommand(plugin), "set"); + + CommandRouter timerRouter = new CommandRouter(plugin.getCommand("timer")); + timerRouter.addCommandMapping(new TimerCommand(plugin)); + timerRouter.addCommandMapping(new TimerPauseCommand(plugin), "pause"); + timerRouter.addCommandMapping(new TimerResetCommand(plugin), "reset"); + timerRouter.addCommandMapping(new TimerReverseCommand(plugin), "reverse"); + timerRouter.addCommandMapping(new TimerSetCommand(plugin), "set"); + timerRouter.addCommandMapping(new TimerStartCommand(plugin), "start"); + + CommandRouter forcemlgRouter = new CommandRouter(plugin.getCommand("forcemlg")); + forcemlgRouter.addCommandMapping(new ForceMLGCommand(plugin)); + + CommandRouter editorRouter = new CommandRouter(plugin.getCommand("editor")); + editorRouter.addCommandMapping(new EditorCommand(plugin)); + editorRouter.addCommandMapping(new EditorSetCommand(plugin), "set"); + + CommandRouter leaveRouter = new CommandRouter(plugin.getCommand("leave")); + leaveRouter.addCommandMapping(new LeaveCommand()); + } +} diff --git a/src/main/java/de/fanta/challenges/commands/ForceMLGCommand.java b/src/main/java/de/fanta/challenges/commands/ForceMLGCommand.java index 29ea036..b6f1501 100644 --- a/src/main/java/de/fanta/challenges/commands/ForceMLGCommand.java +++ b/src/main/java/de/fanta/challenges/commands/ForceMLGCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.command.Command; diff --git a/src/main/java/de/fanta/challenges/commands/LeaveCommand.java b/src/main/java/de/fanta/challenges/commands/LeaveCommand.java index df82173..2f1e9d6 100644 --- a/src/main/java/de/fanta/challenges/commands/LeaveCommand.java +++ b/src/main/java/de/fanta/challenges/commands/LeaveCommand.java @@ -1,7 +1,6 @@ package de.fanta.challenges.commands; -import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.command.Command; diff --git a/src/main/java/de/fanta/challenges/commands/RegisterCommands.java b/src/main/java/de/fanta/challenges/commands/RegisterCommands.java deleted file mode 100644 index 0d002d6..0000000 --- a/src/main/java/de/fanta/challenges/commands/RegisterCommands.java +++ /dev/null @@ -1,76 +0,0 @@ -package de.fanta.challenges.commands; - -import de.fanta.challenges.Challenges; -import de.fanta.challenges.commands.challenges.ChallengesCommand; -import de.fanta.challenges.commands.coords.CoordsCommand; -import de.fanta.challenges.commands.coords.CoordsDeleteCommand; -import de.fanta.challenges.commands.coords.CoordsGetCommand; -import de.fanta.challenges.commands.coords.CoordsSaveCommand; -import de.fanta.challenges.commands.coords.CoordsShareCommand; -import de.fanta.challenges.commands.editor.EditorCommand; -import de.fanta.challenges.commands.editor.EditorSetCommand; -import de.fanta.challenges.commands.hp.HPAddCommand; -import de.fanta.challenges.commands.hp.HPGetCommand; -import de.fanta.challenges.commands.hp.HPMaxCommand; -import de.fanta.challenges.commands.hp.HPRemoveCommand; -import de.fanta.challenges.commands.hp.HPSetCommand; -import de.fanta.challenges.commands.reset.ResetCommand; -import de.fanta.challenges.commands.reset.ResetConfirmCommand; -import de.fanta.challenges.commands.revive.ReviveCommandTODO; -import de.fanta.challenges.commands.settings.SettingsCommandTODO; -import de.fanta.challenges.commands.timer.TimerPauseCommand; -import de.fanta.challenges.commands.timer.TimerResetCommand; -import de.fanta.challenges.commands.timer.TimerReverseCommand; -import de.fanta.challenges.commands.timer.TimerSetCommand; -import de.fanta.challenges.commands.timer.TimerStartCommand; -import de.iani.cubesideutils.bukkit.commands.CommandRouter; - -public class RegisterCommands { - private final Challenges plugin = Challenges.getplugin(); - - public void registerCommands() { - plugin.getCommand("settings").setExecutor(new SettingsCommandTODO(this.plugin)); - plugin.getCommand("revive").setExecutor(new ReviveCommandTODO(this.plugin)); - - CommandRouter challengesRouter = new CommandRouter(plugin.getCommand("challenges")); - challengesRouter.addCommandMapping(new ChallengesCommand(this.plugin)); - - CommandRouter resetRouter = new CommandRouter(plugin.getCommand("reset")); - resetRouter.addCommandMapping(new ResetCommand(this.plugin)); - resetRouter.addCommandMapping(new ResetConfirmCommand(this.plugin), "confirm"); - - CommandRouter backpackRouter = new CommandRouter(plugin.getCommand("backpack")); - backpackRouter.addCommandMapping(plugin.backpack); - - CommandRouter coordsRouter = new CommandRouter(plugin.getCommand("coords")); - coordsRouter.addCommandMapping(new CoordsCommand(this.plugin)); - coordsRouter.addCommandMapping(new CoordsShareCommand(this.plugin), "share"); - coordsRouter.addCommandMapping(new CoordsGetCommand(this.plugin), "get"); - coordsRouter.addCommandMapping(new CoordsSaveCommand(this.plugin), "save"); - coordsRouter.addCommandMapping(new CoordsDeleteCommand(this.plugin), "delete"); - - CommandRouter hpRouter = new CommandRouter(plugin.getCommand("hp")); - hpRouter.addCommandMapping(new HPAddCommand(this.plugin), "add"); - hpRouter.addCommandMapping(new HPGetCommand(this.plugin), "get"); - hpRouter.addCommandMapping(new HPMaxCommand(this.plugin), "max"); - hpRouter.addCommandMapping(new HPRemoveCommand(this.plugin), "remove"); - hpRouter.addCommandMapping(new HPSetCommand(this.plugin), "set"); - - CommandRouter timerRouter = new CommandRouter(plugin.getCommand("timer")); - timerRouter.addCommandMapping(new TimerPauseCommand(this.plugin), "pause"); - timerRouter.addCommandMapping(new TimerResetCommand(this.plugin), "reset"); - timerRouter.addCommandMapping(new TimerReverseCommand(this.plugin), "reverse"); - timerRouter.addCommandMapping(new TimerSetCommand(this.plugin), "set"); - timerRouter.addCommandMapping(new TimerStartCommand(this.plugin), "start"); - - CommandRouter forcemlgRouter = new CommandRouter(plugin.getCommand("forcemlg")); - forcemlgRouter.addCommandMapping(new ForceMLGCommand(this.plugin)); - - CommandRouter editorRouter = new CommandRouter(plugin.getCommand("editor")); - editorRouter.addCommandMapping(new EditorCommand(this.plugin)); - editorRouter.addCommandMapping(new EditorSetCommand(this.plugin), "set"); - - CommandRouter leaveRouter = new CommandRouter(plugin.getCommand("leave")); - leaveRouter.addCommandMapping(new LeaveCommand()); - } -} diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesCommand.java index df8da0f..fa2ef77 100644 --- a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesCommand.java +++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesCommand.java @@ -1,12 +1,11 @@ package de.fanta.challenges.commands.challenges; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +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 ChallengesCommand extends SubCommand { @@ -18,7 +17,7 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { - ChatUtil.sendNormalMessage(sender, "Challenges v" + Challenges.getplugin().getDescription().getVersion() + " by " + Challenges.getplugin().getDescription().getAuthors()); + ChatUtil.sendNormalMessage(sender, "Challenges v" + Challenges.getPlugin().getDescription().getVersion() + " by " + Challenges.getPlugin().getDescription().getAuthors()); ChatUtil.sendNormalMessage(sender, "Nutze /challenges help für Hilfe"); return true; } diff --git a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesHelpCommand.java b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesHelpCommand.java index 3cbbae9..08201a1 100644 --- a/src/main/java/de/fanta/challenges/commands/challenges/ChallengesHelpCommand.java +++ b/src/main/java/de/fanta/challenges/commands/challenges/ChallengesHelpCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.challenges; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.command.Command; diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsCommand.java index ac22551..705fc8d 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.coords; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; @@ -15,7 +15,7 @@ public class CoordsCommand extends SubCommand { - private Challenges plugin = Challenges.getplugin(); + private Challenges plugin = Challenges.getPlugin(); public static final Inventory CoordsGUI = Bukkit.createInventory(null, 45, "§6Koordinaten"); diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsDeleteCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsDeleteCommand.java index ef7a5b3..e8709e0 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsDeleteCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsDeleteCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.coords; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsGetCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsGetCommand.java index 019dfae..1926e5a 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsGetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsGetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.coords; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.command.Command; diff --git a/src/main/java/de/fanta/challenges/commands/coords/CoordsSaveCommand.java b/src/main/java/de/fanta/challenges/commands/coords/CoordsSaveCommand.java index e3f821a..f5f5deb 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsSaveCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsSaveCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.coords; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; 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 8e5c123..b9c02b8 100644 --- a/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java +++ b/src/main/java/de/fanta/challenges/commands/coords/CoordsShareCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.coords; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/editor/EditorCommand.java b/src/main/java/de/fanta/challenges/commands/editor/EditorCommand.java index b439309..9e30960 100644 --- a/src/main/java/de/fanta/challenges/commands/editor/EditorCommand.java +++ b/src/main/java/de/fanta/challenges/commands/editor/EditorCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.editor; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.command.Command; 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 fce860a..0b2529f 100644 --- a/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/editor/EditorSetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.editor; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/hp/HPAddCommand.java b/src/main/java/de/fanta/challenges/commands/hp/HPAddCommand.java index 1384a86..91a6b55 100644 --- a/src/main/java/de/fanta/challenges/commands/hp/HPAddCommand.java +++ b/src/main/java/de/fanta/challenges/commands/hp/HPAddCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.hp; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/hp/HPGetCommand.java b/src/main/java/de/fanta/challenges/commands/hp/HPGetCommand.java index 6bd7b51..9aea37f 100644 --- a/src/main/java/de/fanta/challenges/commands/hp/HPGetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/hp/HPGetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.hp; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/hp/HPMaxCommand.java b/src/main/java/de/fanta/challenges/commands/hp/HPMaxCommand.java index 65aef6a..a4cfc9e 100644 --- a/src/main/java/de/fanta/challenges/commands/hp/HPMaxCommand.java +++ b/src/main/java/de/fanta/challenges/commands/hp/HPMaxCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.hp; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/hp/HPRemoveCommand.java b/src/main/java/de/fanta/challenges/commands/hp/HPRemoveCommand.java index d4db2ad..9c189a0 100644 --- a/src/main/java/de/fanta/challenges/commands/hp/HPRemoveCommand.java +++ b/src/main/java/de/fanta/challenges/commands/hp/HPRemoveCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.hp; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/hp/HPSetCommand.java b/src/main/java/de/fanta/challenges/commands/hp/HPSetCommand.java index 91ef576..41c3475 100644 --- a/src/main/java/de/fanta/challenges/commands/hp/HPSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/hp/HPSetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.hp; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java b/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java index 2edb623..7458462 100644 --- a/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/reset/ResetCommand.java @@ -1,15 +1,13 @@ package de.fanta.challenges.commands.reset; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.guis.ResetGui; +import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.commands.BackpackCommand; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; -import net.md_5.bungee.api.ChatColor; -import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; public class ResetCommand extends SubCommand { @@ -24,8 +22,7 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - ChatUtil.sendWarningMessage(sender, "Wenn du die Welt zurücksetzt wird dein Fortschritt gelöscht und du musst von vorne beginnen!"); - ChatUtil.sendWarningMessage(sender, "Wenn du das Zurücksetzen bestätigen willst, gib bitte ''/reset confirm'' ein!"); + ResetGui.createResetGUI((Player) sender); } else if (plugin.getCurrentEditor() != null) { ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! Nur" + plugin.getCurrentEditor().getName() + " kann die Map zurücksetzen!"); return true; 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 d5e5fd2..edad079 100644 --- a/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java +++ b/src/main/java/de/fanta/challenges/commands/reset/ResetConfirmCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.reset; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.commands.BackpackCommand; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; @@ -9,7 +9,6 @@ import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Player; public class ResetConfirmCommand extends SubCommand { @@ -23,7 +22,7 @@ @Override public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { - if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { + if ((sender instanceof Player && plugin.isEditor((Player) sender)) || sender.hasPermission("Challenges.editor.override")) { plugin.getTimer().stopTimer(); plugin.getTimer().setTime(0); for (Player p : Bukkit.getOnlinePlayers()) { diff --git a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java index cca955a..d8000a5 100644 --- a/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java +++ b/src/main/java/de/fanta/challenges/commands/revive/ReviveCommandTODO.java @@ -1,8 +1,7 @@ package de.fanta.challenges.commands.revive; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; -import de.fanta.challenges.Timer; +import de.fanta.challenges.utils.ChatUtil; import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Location; diff --git a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java index 9da554e..2e2ecec 100644 --- a/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java +++ b/src/main/java/de/fanta/challenges/commands/settings/SettingsCommandTODO.java @@ -1,7 +1,8 @@ package de.fanta.challenges.commands.settings; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.guis.settingsgui.MainGui; +import de.fanta.challenges.utils.ChatUtil; import me.wolfyscript.utilities.api.WolfyUtilities; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; @@ -23,7 +24,9 @@ Player p = (Player) sender; if (args.length == 0) { if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { - WolfyUtilities.getAPI(plugin).getInventoryAPI().openCluster(p, "none"); + MainGui.createMainGUI(p); + //Todo REMOVE WOLFYUTILITIS + //WolfyUtilities.getAPI(plugin).getInventoryAPI().openCluster(p, "none"); return true; } else { 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/TimerCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java new file mode 100644 index 0000000..3ce5f00 --- /dev/null +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerCommand.java @@ -0,0 +1,40 @@ +package de.fanta.challenges.commands.timer; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.ChatUtil; +import de.fanta.challenges.guis.TimerGui; +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 TimerCommand extends SubCommand { + + private final Challenges plugin; + + public TimerCommand(Challenges plugin) { + this.plugin = plugin; + } + + @Override + public boolean onCommand(CommandSender sender, Command command, String alias, String commandString, ArgsParser args) { + if (!(sender instanceof Player)) { + ChatUtil.sendErrorMessage(sender, "You are not a Player :>"); + return true; + } + if (plugin.isEditor((Player) sender) || sender.hasPermission("Challenges.editor.override")) { + Player p = (Player) sender; + TimerGui.createTimerGUI(p); + } else if (plugin.getCurrentEditor() != null) { + ChatUtil.sendErrorMessage(sender, "Du bist kein Editor! " + plugin.getCurrentEditor().getName() + " muss die Map bearbeiten!"); + return true; + } else { + ChatUtil.sendErrorMessage(sender, "Aktuell gibt es keinen Editor!"); + ChatUtil.sendErrorMessage(sender, "Um selbst Editor zu werden musst du dir im Freebuild VIP Kaufen!"); + return true; + } + return true; + } + +} \ No newline at end of file diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java index b6f9980..d5870c2 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerPauseCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.timer; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import net.md_5.bungee.api.ChatColor; 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 09ad566..13d2350 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerResetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.timer; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; 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 959fda1..b33e9dc 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerReverseCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.timer; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import net.md_5.bungee.api.ChatColor; 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 4a0f78b..713b2fe 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerSetCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.timer; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import net.md_5.bungee.api.ChatColor; diff --git a/src/main/java/de/fanta/challenges/commands/timer/TimerStartCommand.java b/src/main/java/de/fanta/challenges/commands/timer/TimerStartCommand.java index e6e0e10..a435307 100644 --- a/src/main/java/de/fanta/challenges/commands/timer/TimerStartCommand.java +++ b/src/main/java/de/fanta/challenges/commands/timer/TimerStartCommand.java @@ -1,7 +1,7 @@ package de.fanta.challenges.commands.timer; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.iani.cubesideutils.bukkit.commands.SubCommand; import de.iani.cubesideutils.commands.ArgsParser; import org.bukkit.Bukkit; diff --git a/src/main/java/de/fanta/challenges/events/BlockCreateListener.java b/src/main/java/de/fanta/challenges/events/BlockCreateListener.java index 8cc2db3..6063bb0 100644 --- a/src/main/java/de/fanta/challenges/events/BlockCreateListener.java +++ b/src/main/java/de/fanta/challenges/events/BlockCreateListener.java @@ -9,7 +9,7 @@ public class BlockCreateListener implements Listener { - private Challenges plugin = Challenges.getplugin(); + private Challenges plugin = Challenges.getPlugin(); @EventHandler public void onBlockPlace(BlockPlaceEvent e) { diff --git a/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java b/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java index be611f4..77a8028 100644 --- a/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java +++ b/src/main/java/de/fanta/challenges/events/BlockDestroyListener.java @@ -14,7 +14,7 @@ public class BlockDestroyListener implements Listener { - private Challenges plugin = Challenges.getplugin(); + private Challenges plugin = Challenges.getPlugin(); @EventHandler public void onBlockBreak(BlockBreakEvent e) { diff --git a/src/main/java/de/fanta/challenges/events/DamageListener.java b/src/main/java/de/fanta/challenges/events/DamageListener.java index 402c87b..11bf83a 100644 --- a/src/main/java/de/fanta/challenges/events/DamageListener.java +++ b/src/main/java/de/fanta/challenges/events/DamageListener.java @@ -2,14 +2,10 @@ import com.destroystokyo.paper.event.player.PlayerJumpEvent; import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import java.text.DecimalFormat; -import net.md_5.bungee.api.ChatColor; -import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.ComponentBuilder; import org.bukkit.Bukkit; -import org.bukkit.Effect; import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Sound; @@ -21,15 +17,13 @@ import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDamageEvent.DamageCause; -import org.bukkit.event.entity.EntityTargetLivingEntityEvent; -import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.player.PlayerExpChangeEvent; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.event.player.PlayerToggleSprintEvent; public class DamageListener implements Listener { - private Challenges plugin = Challenges.getplugin(); + private Challenges plugin = Challenges.getPlugin(); @EventHandler public void onDamage(EntityDamageEvent e) { @@ -99,7 +93,7 @@ } @EventHandler - public void PlayerSneak(PlayerToggleSneakEvent e) { + public void onPlayerSneak(PlayerToggleSneakEvent e) { Player p = e.getPlayer(); if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { if (!p.isSneaking()) { @@ -124,7 +118,7 @@ } @EventHandler - public void PlayerSprint(PlayerToggleSprintEvent e) { + public void onPlayerSprint(PlayerToggleSprintEvent e) { Player p = e.getPlayer(); if (plugin.getTimer().isRunning() && e.getPlayer().getGameMode() == GameMode.SURVIVAL) { if (!p.isSprinting()) { @@ -211,18 +205,4 @@ } } } - - @EventHandler - public void onEntityTarget(EntityTargetLivingEntityEvent e) { - if (!plugin.getTimer().isRunning()) { - e.setCancelled(true); - } - } - - @EventHandler - public void onFoodChange(FoodLevelChangeEvent e) { - if (!plugin.getTimer().isRunning()) { - e.setCancelled(true); - } - } } diff --git a/src/main/java/de/fanta/challenges/events/DeathListener.java b/src/main/java/de/fanta/challenges/events/DeathListener.java index 98c33c6..2799e2f 100644 --- a/src/main/java/de/fanta/challenges/events/DeathListener.java +++ b/src/main/java/de/fanta/challenges/events/DeathListener.java @@ -3,7 +3,7 @@ import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.GameMode; @@ -18,7 +18,7 @@ public class DeathListener implements Listener { - private Challenges plugin = Challenges.getplugin(); + private Challenges plugin = Challenges.getPlugin(); @EventHandler public void onPlayerDeath(PlayerDeathEvent e) { @@ -55,7 +55,7 @@ @EventHandler public void DragonDeath(EntityDeathEvent e) { - if (e.getEntity() instanceof EnderDragon && (plugin.getConfig().getBoolean("dragon")) || (e.getEntity() instanceof Wither && plugin.getConfig().getBoolean("wither"))) { + if ((e.getEntity() instanceof EnderDragon && plugin.getConfig().getBoolean("dragon")) || (e.getEntity() instanceof Wither && plugin.getConfig().getBoolean("wither"))) { plugin.getTimer().stopTimer(); Bukkit.broadcastMessage(Challenges.PREFIX + ChatColor.GREEN + ChatColor.BOLD + ChatColor.MAGIC + "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); Bukkit.broadcastMessage(Challenges.PREFIX); diff --git a/src/main/java/de/fanta/challenges/events/InteractListener.java b/src/main/java/de/fanta/challenges/events/InteractListener.java index 2c9fb21..11156bf 100644 --- a/src/main/java/de/fanta/challenges/events/InteractListener.java +++ b/src/main/java/de/fanta/challenges/events/InteractListener.java @@ -14,7 +14,7 @@ public class InteractListener implements Listener { - private final Challenges plugin = Challenges.getplugin(); + private final Challenges plugin = Challenges.getPlugin(); @EventHandler public void onBlockClick(PlayerInteractEvent e) { diff --git a/src/main/java/de/fanta/challenges/events/InventoryClickListener.java b/src/main/java/de/fanta/challenges/events/InventoryClickListener.java index 5d529af..3fc8726 100644 --- a/src/main/java/de/fanta/challenges/events/InventoryClickListener.java +++ b/src/main/java/de/fanta/challenges/events/InventoryClickListener.java @@ -2,7 +2,7 @@ import de.fanta.challenges.Challenges; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import de.fanta.challenges.commands.coords.CoordsCommand; import de.fanta.challenges.commands.coords.CoordsDeleteCommand; import org.bukkit.entity.Player; @@ -12,7 +12,7 @@ public class InventoryClickListener implements Listener { - private final Challenges plugin = Challenges.getplugin(); + private final Challenges plugin = Challenges.getPlugin(); @EventHandler diff --git a/src/main/java/de/fanta/challenges/events/PlayerListener.java b/src/main/java/de/fanta/challenges/events/PlayerListener.java new file mode 100644 index 0000000..76cc55a --- /dev/null +++ b/src/main/java/de/fanta/challenges/events/PlayerListener.java @@ -0,0 +1,27 @@ +package de.fanta.challenges.events; + +import de.fanta.challenges.Challenges; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityTargetLivingEntityEvent; +import org.bukkit.event.entity.FoodLevelChangeEvent; + +public class PlayerListener implements Listener { + + private final Challenges plugin = Challenges.getPlugin(); + + + @EventHandler + public void onEntityTarget(EntityTargetLivingEntityEvent e) { + if (!plugin.getTimer().isRunning()) { + e.setCancelled(true); + } + } + + @EventHandler + public void onFoodChange(FoodLevelChangeEvent e) { + if (!plugin.getTimer().isRunning()) { + e.setCancelled(true); + } + } +} diff --git a/src/main/java/de/fanta/challenges/events/QuitJoinListener.java b/src/main/java/de/fanta/challenges/events/QuitJoinListener.java index 68b7b86..f7d97a9 100644 --- a/src/main/java/de/fanta/challenges/events/QuitJoinListener.java +++ b/src/main/java/de/fanta/challenges/events/QuitJoinListener.java @@ -7,7 +7,7 @@ import java.util.Random; import java.util.stream.Collectors; -import de.fanta.challenges.ChatUtil; +import de.fanta.challenges.utils.ChatUtil; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; import org.bukkit.entity.Player; @@ -18,14 +18,19 @@ public class QuitJoinListener implements Listener { - private final Challenges plugin = Challenges.getplugin(); + private final Challenges plugin = Challenges.getPlugin(); + private int resetTaskId = -1; @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { + if (resetTaskId > 0) { + Bukkit.getScheduler().cancelTask(resetTaskId); + resetTaskId = -1; + } + Player p = e.getPlayer(); Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.of("#3D98DC") + p.getName() + ChatColor.of("#1FFF00") + " hat die Lobby betreten! " + ChatColor.of("#E4E737") + "[" + Bukkit.getServer().getOnlinePlayers().size() + "/" + Bukkit.getServer().getMaxPlayers() + "]"); e.setJoinMessage(null); - Challenges.getplugin().checkMLGWorld(); if (plugin.getConfig().getBoolean("sharedmg")) { int rnd = new Random().nextInt(Bukkit.getOnlinePlayers().size()); Player rp = (Player) Bukkit.getServer().getOnlinePlayers().toArray()[rnd]; @@ -36,14 +41,15 @@ } if (plugin.getCurrentEditor() == null) { - if (p.hasPermission("Challenges.editor")) { - plugin.setCurrentEditor(p); - ChatUtil.sendNormalMessage(p, "Du bist nun der Editor dieser Lobby!"); - } else { - ChatUtil.sendWarningMessage(p, "Es ist aktuell kein Editor in dieser Lobby"); - ChatUtil.sendWarningMessage(p, "Um selbst Editor zu werden musst du VIP sein!"); - } - + Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + if (p.hasPermission("Challenges.editor")) { + plugin.setCurrentEditor(p); + ChatUtil.sendNormalMessage(p, "Du bist nun der Editor dieser Lobby!"); + } else { + ChatUtil.sendWarningMessage(p, "Es ist aktuell kein Editor in dieser Lobby"); + ChatUtil.sendWarningMessage(p, "Um selbst Editor zu werden musst du VIP sein!"); + } + }, 1L); } else { ChatUtil.sendNormalMessage(p, plugin.getCurrentEditor().getName() + " ist der Editor dieser Lobby!"); } @@ -65,8 +71,6 @@ Player randomPlayer; List onlinePlayersWithPermission = Bukkit.getOnlinePlayers().stream().filter(p -> p.hasPermission("Challenges.editor")).distinct().collect(Collectors.toList()); - //TODO CHECK - //List onlinePlayersWithPermission = new ArrayList<>(Bukkit.getOnlinePlayers().stream().filter(p -> p.hasPermission("Challenges.editor")).collect(Collectors.toSet())); onlinePlayersWithPermission.remove(player); if (onlinePlayersWithPermission.size() > 0) { int rnd = random.nextInt(onlinePlayersWithPermission.size()); @@ -82,6 +86,10 @@ Bukkit.broadcastMessage(Challenges.PREFIX + " " + ChatColor.GREEN + randomPlayer.getName() + " ist nun der Editor dieser Lobby!"); } else { plugin.setCurrentEditor(null); + + resetTaskId = Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, () -> { + Bukkit.dispatchCommand(Bukkit.getConsoleSender() ,"reset confirm"); + }, 10 * 60 * 20); } } } diff --git a/src/main/java/de/fanta/challenges/gui/InventoryHandler.java b/src/main/java/de/fanta/challenges/gui/InventoryHandler.java deleted file mode 100644 index e80f853..0000000 --- a/src/main/java/de/fanta/challenges/gui/InventoryHandler.java +++ /dev/null @@ -1,26 +0,0 @@ -package de.fanta.challenges.gui; - -import de.fanta.challenges.Challenges; -import me.wolfyscript.utilities.api.WolfyUtilities; -import me.wolfyscript.utilities.api.inventory.GuiCluster; -import me.wolfyscript.utilities.api.inventory.InventoryAPI; - -public class InventoryHandler { - - private Challenges challenges; - private WolfyUtilities wolfyUtilities; - private InventoryAPI inventoryAPI; - - public InventoryHandler(Challenges challenges){ - this.challenges = challenges; - this.wolfyUtilities = WolfyUtilities.getAPI(challenges); - this.inventoryAPI = wolfyUtilities.getInventoryAPI(); - } - - public void init(){ - GuiCluster mainCluster = inventoryAPI.getOrRegisterGuiCluster("none"); - mainCluster.registerGuiWindow(new SettingsGui(inventoryAPI)); - mainCluster.setMainmenu("settings"); - - } -} diff --git a/src/main/java/de/fanta/challenges/gui/SettingButton.java b/src/main/java/de/fanta/challenges/gui/SettingButton.java deleted file mode 100644 index b90425a..0000000 --- a/src/main/java/de/fanta/challenges/gui/SettingButton.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.fanta.challenges.gui; - -import de.fanta.challenges.Challenges; -import me.wolfyscript.utilities.api.inventory.GuiHandler; -import me.wolfyscript.utilities.api.inventory.button.ButtonActionRender; -import me.wolfyscript.utilities.api.inventory.button.ButtonState; -import me.wolfyscript.utilities.api.inventory.button.buttons.ActionButton; -import me.wolfyscript.utilities.api.utils.item_builder.ItemBuilder; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.event.inventory.InventoryClickEvent; -import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemFlag; -import org.bukkit.inventory.ItemStack; - -import java.util.Arrays; -import java.util.HashMap; - -public class SettingButton extends ActionButton { - - public SettingButton(String id, Material material, String displayName, String... lore) { - super(id, new ButtonState(material, displayName, new String[0], lore, new ButtonActionRender() { - @Override - public boolean run(GuiHandler guiHandler, Player player, Inventory inventory, int i, InventoryClickEvent inventoryClickEvent) { - Challenges challenges = Challenges.getplugin(); - challenges.getConfig().set(id, !(challenges.getConfig().getBoolean(id))); - return true; - } - - @Override - public ItemStack render(HashMap hashMap, GuiHandler guiHandler, Player player, ItemStack itemStack, int i, boolean b) { - ItemBuilder itemBuilder = new ItemBuilder(material).setDisplayName(ChatColor.GOLD + displayName).setLore(Arrays.asList(lore)); - return Challenges.getplugin().getConfig().getBoolean(id) ? itemBuilder.addUnsafeEnchantment(Enchantment.DURABILITY, 1).addItemFlags(ItemFlag.HIDE_ENCHANTS).create() : itemBuilder.create(); - } - })); - } -} diff --git a/src/main/java/de/fanta/challenges/gui/SettingsGui.java b/src/main/java/de/fanta/challenges/gui/SettingsGui.java deleted file mode 100644 index 8a77eda..0000000 --- a/src/main/java/de/fanta/challenges/gui/SettingsGui.java +++ /dev/null @@ -1,76 +0,0 @@ -package de.fanta.challenges.gui; - -import de.fanta.challenges.Challenges; -import java.util.ArrayList; -import java.util.List; -import me.wolfyscript.utilities.api.inventory.GuiUpdateEvent; -import me.wolfyscript.utilities.api.inventory.GuiWindow; -import me.wolfyscript.utilities.api.inventory.InventoryAPI; -import org.bukkit.ChatColor; -import org.bukkit.Material; -import org.bukkit.event.EventHandler; - -public class SettingsGui extends GuiWindow { - - private Challenges challenges = Challenges.getplugin(); - - public SettingsGui(InventoryAPI inventoryAPI) { - super("settings", inventoryAPI, 54); - } - - @Override - public void onInit() { - registerButton(new SettingButton("craftingtable", Material.CRAFTING_TABLE, "Erlaube Crafting")); - registerButton(new SettingButton("allowtrading", Material.EMERALD, "Erlaube Handeln")); - registerButton(new SettingButton("deathonfall", Material.BONE, "Tod bei Fallschaden", ChatColor.RED + "Spieler stirbt bei Fallschaden")); - registerButton(new SettingButton("damageonsneak", Material.MAGMA_BLOCK, "Schaden bei Schleichen",ChatColor.RED + "Spieler erhält " + challenges.getConfig().getInt("sneakdmg") + " Schaden bei Schleichen")); - registerButton(new SettingButton("rnddrops", Material.DIAMOND_PICKAXE, "Drops", ChatColor.RED + "Random Drops")); - registerButton(new SettingButton("sharedmg", Material.GLISTERING_MELON_SLICE, "Geteilter Schaden",ChatColor.RED + "Alle Spieler erhalten den gleichen Schaden")); - registerButton(new SettingButton("respawn", Material.TOTEM_OF_UNDYING, "Respawn")); - registerButton(new SettingButton("onelife", Material.POPPY, "Ein Leben für alle", ChatColor.RED + "Stirbt ein Spieler ist die", ChatColor.RED + "Challenge fehlgeschlagen")); - registerButton(new SettingButton("dmginchat", Material.BOOK, "Schaden in Chat", ChatColor.RED + "Zeigt Spielerschaden im Chat an")); - registerButton(new SettingButton("deathonsprint", Material.DIAMOND_BOOTS, "Tod bei Sprinten", ChatColor.RED + "Spieler Stirbt beim Sprinten")); - registerButton(new SettingButton("deathonjump", Material.LEATHER_BOOTS, "Tod bei Springen", ChatColor.RED + "Spieler Stirbt beim Springen")); - registerButton(new SettingButton("clinvdmg", Material.BARRIER, "Inv Löschen bei DMG",ChatColor.RED + "Löscht das Inventar von allen wenn ein Spieler schaden bekommt!")); - registerButton(new SettingButton("tntdeath", Material.TNT, "Sterben durch TnT",ChatColor.RED + "Tötet dich mit tnt bei der nicht Springen Schleichen und Jumpen Challenge")); - registerButton(new SettingButton("xpdeath", Material.ENCHANTING_TABLE, "Sterben durch XP", ChatColor.RED + "Tötet dich wenn du XP einsammelst")); - registerButton(new SettingButton("mlg.enabled", Material.WATER_BUCKET, "MLG", "an aus")); - registerButton(new SettingButton("mlg.killall", Material.WATER_BUCKET, "MLG killall", "an aus")); - registerButton(new SettingButton("wither", Material.NETHER_STAR, "Wither Töten", "Ziel: Töte denn Wither")); - registerButton(new SettingButton("dragon", Material.DRAGON_EGG, "Ender Dragon Töten", "Ziel: Töte denn Ender Dragon")); - - // TODO Gamerules xpdeath - } - - @EventHandler - public void onUpdate(GuiUpdateEvent event) { - event.setButton(0, "craftingtable"); - event.setButton(1, "allowtrading"); - event.setButton(3, "dragon"); - event.setButton(4, "wither"); - event.setButton(18, "deathonfall"); - event.setButton(19, "damageonsneak"); - event.setButton(8, "rnddrops"); - event.setButton(36, "sharedmg"); - event.setButton(38, "respawn"); - event.setButton(37, "onelife"); - event.setButton(39, "dmginchat"); - event.setButton(20, "deathonsprint"); - event.setButton(21, "deathonjump"); - event.setButton(40, "clinvdmg"); - event.setButton(26, "tntdeath"); - event.setButton(27, "xpdeath"); - event.setButton(45, "mlg.enabled"); - event.setButton(46, "mlg.killall"); - } - - @Override - protected String getInventoryName() { - return ChatColor.DARK_GREEN + "" + ChatColor.BOLD + "Settings"; - } - - @Override - public List getHelpInformation() { - return new ArrayList<>(); - } -} diff --git a/src/main/java/de/fanta/challenges/guis/ResetGui.java b/src/main/java/de/fanta/challenges/guis/ResetGui.java new file mode 100644 index 0000000..70b21b7 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/ResetGui.java @@ -0,0 +1,44 @@ +package de.fanta.challenges.guis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; + +public class ResetGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final int INVENTORY_SIZE = 9; + public static final Inventory RESET_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Reset"); + + public static void createResetGUI(Player p) { + RESET_GUI.setItem(4, GUIUtils.createGuiItem(Material.REPEATING_COMMAND_BLOCK, ChatColor.DARK_RED + "Server resetten", ChatColor.RED + "Wenn du denn Server resettest wird", ChatColor.RED + "der Server komplett zurückgesetzt", ChatColor.RED + "und du musst von vorne beginnen!")); + for (int i = 0; i < INVENTORY_SIZE; i++) { + if (RESET_GUI.getItem(i) == null || RESET_GUI.getItem(i).getType() == Material.AIR) { + RESET_GUI.setItem(i, GUIUtils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, "§1", true)); + } + } + p.openInventory(RESET_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + int slot = e.getRawSlot(); + Player p = (Player) e.getWhoClicked(); + if (e.getInventory() == RESET_GUI) { + if (slot == 4) { + Bukkit.dispatchCommand(Bukkit.getConsoleSender() ,"reset confirm"); + p.closeInventory(); + } + e.setCancelled(true); + } + } +} + diff --git a/src/main/java/de/fanta/challenges/guis/SettingsGui.java b/src/main/java/de/fanta/challenges/guis/SettingsGui.java new file mode 100644 index 0000000..e30fa32 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/SettingsGui.java @@ -0,0 +1,75 @@ +package de.fanta.challenges.guis; + +import de.fanta.challenges.Challenges; +import java.util.ArrayList; +import java.util.List; + +import de.fanta.challenges.utils.guiutils.SettingButton; +import me.wolfyscript.utilities.api.inventory.GuiUpdateEvent; +import me.wolfyscript.utilities.api.inventory.GuiWindow; +import me.wolfyscript.utilities.api.inventory.InventoryAPI; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; + +public class SettingsGui extends GuiWindow { + + private Challenges challenges = Challenges.getPlugin(); + + public SettingsGui(InventoryAPI inventoryAPI) { + super("settings", inventoryAPI, 54); + } + + @Override + public void onInit() { + registerButton(new SettingButton("craftingtable", Material.CRAFTING_TABLE, "Erlaube Crafting")); + registerButton(new SettingButton("allowtrading", Material.EMERALD, "Erlaube Handeln")); + registerButton(new SettingButton("deathonfall", Material.BONE, "Tod bei Fallschaden", ChatColor.RED + "Spieler stirbt bei Fallschaden")); + registerButton(new SettingButton("damageonsneak", Material.MAGMA_BLOCK, "Schaden bei Schleichen",ChatColor.RED + "Spieler erhält " + challenges.getConfig().getInt("sneakdmg") + " Schaden bei Schleichen")); + registerButton(new SettingButton("rnddrops", Material.DIAMOND_PICKAXE, "Drops", ChatColor.RED + "Random Drops")); + registerButton(new SettingButton("sharedmg", Material.GLISTERING_MELON_SLICE, "Geteilter Schaden",ChatColor.RED + "Alle Spieler erhalten den gleichen Schaden")); + registerButton(new SettingButton("respawn", Material.TOTEM_OF_UNDYING, "Respawn")); + registerButton(new SettingButton("onelife", Material.POPPY, "Ein Leben für alle", ChatColor.RED + "Stirbt ein Spieler ist die", ChatColor.RED + "Challenge fehlgeschlagen")); + registerButton(new SettingButton("dmginchat", Material.BOOK, "Schaden in Chat", ChatColor.RED + "Zeigt Spielerschaden im Chat an")); + registerButton(new SettingButton("deathonsprint", Material.DIAMOND_BOOTS, "Tod bei Sprinten", ChatColor.RED + "Spieler Stirbt beim Sprinten")); + registerButton(new SettingButton("deathonjump", Material.LEATHER_BOOTS, "Tod bei Springen", ChatColor.RED + "Spieler Stirbt beim Springen")); + registerButton(new SettingButton("clinvdmg", Material.BARRIER, "Inv Löschen bei DMG",ChatColor.RED + "Löscht das Inventar von allen wenn ein Spieler schaden bekommt!")); + registerButton(new SettingButton("tntdeath", Material.TNT, "Sterben durch TnT",ChatColor.RED + "Tötet dich mit tnt bei der nicht Springen Schleichen und Jumpen Challenge")); + registerButton(new SettingButton("xpdeath", Material.ENCHANTING_TABLE, "Sterben durch XP", ChatColor.RED + "Tötet dich wenn du XP einsammelst")); + registerButton(new SettingButton("mlg.enabled", Material.WATER_BUCKET, "MLG", "an aus")); + registerButton(new SettingButton("mlg.killall", Material.WATER_BUCKET, "MLG killall", "an aus")); + registerButton(new SettingButton("wither", Material.NETHER_STAR, "Wither Töten", "Ziel: Töte denn Wither")); + registerButton(new SettingButton("dragon", Material.DRAGON_EGG, "Ender Dragon Töten", "Ziel: Töte denn Ender Dragon")); + + // TODO Gamerules xpdeath + } + + @EventHandler + public void onUpdate(GuiUpdateEvent event) { + event.setButton(3, "dragon"); + event.setButton(4, "wither"); + event.setButton(18, "deathonfall"); + event.setButton(19, "damageonsneak"); + event.setButton(8, "rnddrops"); + event.setButton(36, "sharedmg"); + event.setButton(38, "respawn"); + event.setButton(37, "onelife"); + event.setButton(39, "dmginchat"); + event.setButton(20, "deathonsprint"); + event.setButton(21, "deathonjump"); + event.setButton(40, "clinvdmg"); + event.setButton(26, "tntdeath"); + event.setButton(45, "mlg.enabled"); + event.setButton(46, "mlg.killall"); + } + + @Override + protected String getInventoryName() { + return ChatColor.DARK_GREEN + "" + ChatColor.BOLD + "Settings"; + } + + @Override + public List getHelpInformation() { + return new ArrayList<>(); + } +} diff --git a/src/main/java/de/fanta/challenges/guis/TimerGui.java b/src/main/java/de/fanta/challenges/guis/TimerGui.java new file mode 100644 index 0000000..6a1ab0a --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/TimerGui.java @@ -0,0 +1,80 @@ +package de.fanta.challenges.guis; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.GameRule; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; + +public class TimerGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final int INVENTORY_SIZE = 27; + public static final Inventory TIMER_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Timer"); + + public static void createTimerGUI(Player p) { + + if (plugin.getTimer().isReverse()) { + TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatColor.AQUA + "Timer Richtung - rückwärts")); + } else { + TIMER_GUI.setItem(11, GUIUtils.createGuiItem(Material.MAGENTA_GLAZED_TERRACOTTA, ChatColor.GREEN + "Timer Richtung - vorwärts")); + } + if (plugin.getTimer().isRunning()) { + TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatColor.GREEN + "Timer gestartet", true)); + } else { + TIMER_GUI.setItem(15, GUIUtils.createGuiItem(Material.CLOCK, ChatColor.RED + "Timer pausiert")); + } + for (int i = 0; i < INVENTORY_SIZE; i++) { + if (TIMER_GUI.getItem(i) == null || TIMER_GUI.getItem(i).getType() == Material.AIR) { + TIMER_GUI.setItem(i, GUIUtils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, "§1", true)); + } + } + p.openInventory(TIMER_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + int slot = e.getRawSlot(); + World world = Bukkit.getWorld("world"); + Player p = (Player) e.getWhoClicked(); + if (e.getInventory() == TIMER_GUI) { + if (slot == 15) { + if (plugin.getTimer().isRunning()) { + plugin.getTimer().stopTimer(); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); + world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, false); + pp.sendTitle(ChatColor.of("#0ddead") + "Timer", ChatColor.RED + "Der Timer wurde pausiert.", 10, 40, 10); + } + } else { + plugin.getTimer().startTimer(); + for (Player pp : Bukkit.getOnlinePlayers()) { + pp.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); + world.setGameRule(GameRule.DO_DAYLIGHT_CYCLE, true); + pp.sendTitle(ChatColor.of("#0ddead") + "Timer", ChatColor.GREEN + "Der Timer wurde gestartet.", 10, 60, 10); + } + } + p.closeInventory(); + } else if (slot == 11) { + if (plugin.getTimer().isReverse()) { + plugin.getTimer().reverseTimer(); + GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt vorwärts.", ChatColor.GREEN); + } else { + plugin.getTimer().reverseTimer(); + GUIUtils.sendTitleToAll("Timer", "Der Timer läuft jetzt rückwärts.", ChatColor.AQUA); + } + p.closeInventory(); + } + e.setCancelled(true); + } + } +} diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java new file mode 100644 index 0000000..74c5ae1 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/MainGui.java @@ -0,0 +1,51 @@ +package de.fanta.challenges.guis.settingsgui; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; + +public class MainGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final int INVENTORY_SIZE = 27; + public static final Inventory MAIN_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Settings"); + + private static final int CHALLENGES_INDEX = 10; + private static final int CLOSE_IDEX = 26; + + public static void createMainGUI(Player p) { + MAIN_GUI.setItem(CHALLENGES_INDEX, GUIUtils.createGuiItem(Material.REPEATER, ChatColor.GREEN + "Challenges")); + MAIN_GUI.setItem(CLOSE_IDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED + "Menü Verlassen!")); + for (int i = 0; i < INVENTORY_SIZE; i++) { + if (MAIN_GUI.getItem(i) == null || MAIN_GUI.getItem(i).getType() == Material.AIR) { + MAIN_GUI.setItem(i, GUIUtils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, "§1", true)); + } + } + p.openInventory(MAIN_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + int slot = e.getRawSlot(); + Player p = (Player) e.getWhoClicked(); + if (e.getInventory() == MAIN_GUI) { + switch (slot) { + case CHALLENGES_INDEX: + SettingsGui.createSettingsGUI(p); + break; + case CLOSE_IDEX: + p.closeInventory(); + } + e.setCancelled(true); + } + } +} + diff --git a/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java new file mode 100644 index 0000000..917b3c2 --- /dev/null +++ b/src/main/java/de/fanta/challenges/guis/settingsgui/SettingsGui.java @@ -0,0 +1,101 @@ +package de.fanta.challenges.guis.settingsgui; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.utils.guiutils.GUIUtils; +import me.wolfyscript.utilities.api.WolfyUtilities; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; + +public class SettingsGui implements Listener { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static final int INVENTORY_SIZE = 54; + public static final Inventory SETTINGS_GUI = Bukkit.createInventory(null, INVENTORY_SIZE, Challenges.GUIPREFIX + " >> Settings"); + + private static final int CRAFTING_TABLE_INDEX = 0; + private static final int TRADING_INDEX = 9; + private static final int OLD_CONFIG_INDEX = 53; + private static final int XP_DEATH_INDEX =37; + + public static void createSettingsGUI(Player p) { + if (plugin.getConfig().getBoolean("craftingtable")) { + SETTINGS_GUI.setItem(CRAFTING_TABLE_INDEX, GUIUtils.createGuiItem(Material.CRAFTING_TABLE, ChatColor.GREEN + "Werkbank aktiviert", true)); + } else { + SETTINGS_GUI.setItem(CRAFTING_TABLE_INDEX, GUIUtils.createGuiItem(Material.CRAFTING_TABLE, ChatColor.RED+ "Werkbank deaktiviert")); + } + if (plugin.getConfig().getBoolean("allowtrading")) { + SETTINGS_GUI.setItem(TRADING_INDEX, GUIUtils.createGuiItem(Material.VILLAGER_SPAWN_EGG, ChatColor.GREEN + "Handeln aktiviert", true)); + } else { + SETTINGS_GUI.setItem(TRADING_INDEX, GUIUtils.createGuiItem(Material.VILLAGER_SPAWN_EGG, ChatColor.RED+ "Handeln deaktiviert")); + } + if (plugin.getConfig().getBoolean("xpdeath")) { + SETTINGS_GUI.setItem(XP_DEATH_INDEX, GUIUtils.createGuiItem(Material.ENCHANTING_TABLE, ChatColor.GREEN + "Sterben durch XP aktiviert", true, ChatColor.GREEN + "Wenn ein Spieler XP einsammelt wird er sterben")); + } else { + SETTINGS_GUI.setItem(XP_DEATH_INDEX, GUIUtils.createGuiItem(Material.ENCHANTING_TABLE, ChatColor.RED+ "Sterben durch XP deaktiviert", ChatColor.RED + "Wenn ein Spieler XP einsammelt wird er sterben")); + } + SETTINGS_GUI.setItem(OLD_CONFIG_INDEX, GUIUtils.createGuiItem(Material.BARRIER, ChatColor.RED+ "Old Settings")); + for (int i = 0; i < INVENTORY_SIZE; i++) { + if (SETTINGS_GUI.getItem(i) == null || SETTINGS_GUI.getItem(i).getType() == Material.AIR) { + SETTINGS_GUI.setItem(i, GUIUtils.createGuiItem(Material.GRAY_STAINED_GLASS_PANE, "§1", true)); + } + } + p.openInventory(SETTINGS_GUI); + } + + @EventHandler + public void onInventoryClick(InventoryClickEvent e) { + if (e.getInventory() != SETTINGS_GUI) { + return; + } + int slot = e.getRawSlot(); + Player p = (Player) e.getWhoClicked(); + switch (slot) { + case CRAFTING_TABLE_INDEX: + if (plugin.getConfig().getBoolean("craftingtable")) { + GUIUtils.setConfig("craftingtable", false); + GUIUtils.sendTitleToAll("Challenge","Werkbank deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("craftingtable", true); + GUIUtils.sendTitleToAll("Challenge","Werkbank aktiviert", ChatColor.GREEN); + } + break; + + case TRADING_INDEX: + if (plugin.getConfig().getBoolean("allowtrading")) { + GUIUtils.setConfig("allowtrading", false); + GUIUtils.sendTitleToAll("Challenge","Handeln deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("allowtrading", true); + GUIUtils.sendTitleToAll("Challenge","Handeln aktiviert", ChatColor.GREEN); + } + break; + case XP_DEATH_INDEX: + if (plugin.getConfig().getBoolean("xpdeath")) { + GUIUtils.setConfig("xpdeath", false); + GUIUtils.sendTitleToAll("Challenge","Sterben durch einsammeln von XP deaktiviert", ChatColor.RED); + } else { + GUIUtils.setConfig("xpdeath", true); + GUIUtils.sendTitleToAll("Challenge","Sterben durch einsammeln von XP aktiviert", ChatColor.GREEN); + } + break; + case OLD_CONFIG_INDEX: + WolfyUtilities.getAPI(plugin).getInventoryAPI().openCluster(p, "none"); + p.closeInventory(); + break; + + default: + break; + } + createSettingsGUI(p); + e.setCancelled(true); + } +} + + diff --git a/src/main/java/de/fanta/challenges/utils/ChatUtil.java b/src/main/java/de/fanta/challenges/utils/ChatUtil.java new file mode 100644 index 0000000..5eaeee7 --- /dev/null +++ b/src/main/java/de/fanta/challenges/utils/ChatUtil.java @@ -0,0 +1,31 @@ +package de.fanta.challenges.utils; + +import de.fanta.challenges.Challenges; +import de.iani.cubesideutils.bukkit.ChatUtilBukkit; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +public class ChatUtil { + + private ChatUtil() { + // prevent instances + } + + public static void sendMessage(CommandSender sender, String colors, Object message, Object... messageParts) { + ChatUtilBukkit.sendMessage(sender, Challenges.PREFIX, colors, message, messageParts); + } + + public static void sendNormalMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.of("#1FFF00").toString(), message, messageParts); + } + + public static void sendWarningMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.of("#ffe100").toString(), message, messageParts); + } + + public static void sendErrorMessage(CommandSender sender, Object message, Object... messageParts) { + sendMessage(sender, ChatColor.of("#a30202").toString(), message, messageParts); + } +} diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/GUIUtils.java b/src/main/java/de/fanta/challenges/utils/guiutils/GUIUtils.java new file mode 100644 index 0000000..934acb9 --- /dev/null +++ b/src/main/java/de/fanta/challenges/utils/guiutils/GUIUtils.java @@ -0,0 +1,48 @@ +package de.fanta.challenges.utils.guiutils; + +import de.fanta.challenges.Challenges; +import net.md_5.bungee.api.ChatColor; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import java.util.Arrays; + +public class GUIUtils { + + private static final Challenges plugin = Challenges.getPlugin(); + + public static ItemStack createGuiItem(Material material, String name, String... lore) { + return createGuiItem(material, name, false, lore); + } + + public static ItemStack createGuiItem(final Material material, final String name, boolean glowing, final String... lore) { + final ItemStack item = new ItemStack(material, 1); + final ItemMeta meta = item.getItemMeta(); + meta.setDisplayName(name); + meta.setLore(Arrays.asList(lore)); + if (glowing) { + meta.addEnchant(Enchantment.MENDING, 1, false); + meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + } + item.setItemMeta(meta); + return item; + } + + public static void sendTitleToAll(String headline, String text, ChatColor textColor) { + for (Player p : Bukkit.getOnlinePlayers()) { + p.playSound(p.getLocation(), Sound.BLOCK_NOTE_BLOCK_PLING, 1.0F, 2.0F); + p.sendTitle(net.md_5.bungee.api.ChatColor.of("#0ddead") + headline, textColor + text, 10, 60, 10); + } + } + + public static void setConfig(String path, Object value) { + plugin.getConfig().set(path, value); + plugin.saveConfig(); + } +} diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java b/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java new file mode 100644 index 0000000..a104731 --- /dev/null +++ b/src/main/java/de/fanta/challenges/utils/guiutils/InventoryHandler.java @@ -0,0 +1,27 @@ +package de.fanta.challenges.utils.guiutils; + +import de.fanta.challenges.Challenges; +import de.fanta.challenges.guis.SettingsGui; +import me.wolfyscript.utilities.api.WolfyUtilities; +import me.wolfyscript.utilities.api.inventory.GuiCluster; +import me.wolfyscript.utilities.api.inventory.InventoryAPI; + +public class InventoryHandler { + + private Challenges challenges; + private WolfyUtilities wolfyUtilities; + private InventoryAPI inventoryAPI; + + public InventoryHandler(Challenges challenges){ + this.challenges = challenges; + this.wolfyUtilities = WolfyUtilities.getAPI(challenges); + this.inventoryAPI = wolfyUtilities.getInventoryAPI(); + } + + public void init(){ + GuiCluster mainCluster = inventoryAPI.getOrRegisterGuiCluster("none"); + mainCluster.registerGuiWindow(new SettingsGui(inventoryAPI)); + mainCluster.setMainmenu("settings"); + + } +} diff --git a/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java b/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java new file mode 100644 index 0000000..e6b11db --- /dev/null +++ b/src/main/java/de/fanta/challenges/utils/guiutils/SettingButton.java @@ -0,0 +1,39 @@ +package de.fanta.challenges.utils.guiutils; + +import de.fanta.challenges.Challenges; +import me.wolfyscript.utilities.api.inventory.GuiHandler; +import me.wolfyscript.utilities.api.inventory.button.ButtonActionRender; +import me.wolfyscript.utilities.api.inventory.button.ButtonState; +import me.wolfyscript.utilities.api.inventory.button.buttons.ActionButton; +import me.wolfyscript.utilities.api.utils.item_builder.ItemBuilder; +import org.bukkit.ChatColor; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemFlag; +import org.bukkit.inventory.ItemStack; + +import java.util.Arrays; +import java.util.HashMap; + +public class SettingButton extends ActionButton { + + public SettingButton(String id, Material material, String displayName, String... lore) { + super(id, new ButtonState(material, displayName, new String[0], lore, new ButtonActionRender() { + @Override + public boolean run(GuiHandler guiHandler, Player player, Inventory inventory, int i, InventoryClickEvent inventoryClickEvent) { + Challenges challenges = Challenges.getPlugin(); + challenges.getConfig().set(id, !(challenges.getConfig().getBoolean(id))); + return true; + } + + @Override + public ItemStack render(HashMap hashMap, GuiHandler guiHandler, Player player, ItemStack itemStack, int i, boolean b) { + ItemBuilder itemBuilder = new ItemBuilder(material).setDisplayName(ChatColor.GOLD + displayName).setLore(Arrays.asList(lore)); + return Challenges.getPlugin().getConfig().getBoolean(id) ? itemBuilder.addUnsafeEnchantment(Enchantment.DURABILITY, 1).addItemFlags(ItemFlag.HIDE_ENCHANTS).create() : itemBuilder.create(); + } + })); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9edc2fd..9573146 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -16,8 +16,8 @@ tntdeath: false dragon: true wither: false -#Mögliche werte: 9 18 27 36 45 54 -backpack_size: 54 +#Mögliche werte: 1-6 +backpack_size: 3 mlg: enabled: false killall: false diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 9e703ff..7b8ed56 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,7 @@ name: Challenges main: ${mainClass} version: ${project.version} +load: STARTUP api-version: 1.16 author: ${project.author} depend: [CubesideUtils, WolfyUtilities]