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]