diff --git a/deps/bukkit.jar b/deps/bukkit.jar
deleted file mode 100644
index fe85f9c..0000000
Binary files a/deps/bukkit.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
index 6e84e53..f24a08d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,21 +22,18 @@
Minecraft Libraries
https://libraries.minecraft.net
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
- junit
- junit
- 4.11
- test
-
-
- spigot
- api
- 1.0
- system
- ${basedir}/deps/bukkit.jar
+ org.spigotmc
+ spigot-api
+ 1.18.1-R0.1-SNAPSHOT
+ provided
spigot
diff --git a/src/main/java/me/topchetoeu/bedwars/Commands.java b/src/main/java/me/topchetoeu/bedwars/Commands.java
index da1b7f7..d6e9fc9 100644
--- a/src/main/java/me/topchetoeu/bedwars/Commands.java
+++ b/src/main/java/me/topchetoeu/bedwars/Commands.java
@@ -11,7 +11,7 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
-import me.topchetoeu.bedwars.commandUtility.Command;
+import me.topchetoeu.bedwars.commands.Command;
import me.topchetoeu.bedwars.engine.BedwarsPlayer;
import me.topchetoeu.bedwars.engine.Config;
import me.topchetoeu.bedwars.engine.Game;
diff --git a/src/main/java/me/topchetoeu/bedwars/Main.java b/src/main/java/me/topchetoeu/bedwars/Main.java
index ece6c56..667c2b3 100644
--- a/src/main/java/me/topchetoeu/bedwars/Main.java
+++ b/src/main/java/me/topchetoeu/bedwars/Main.java
@@ -17,8 +17,8 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
-import me.topchetoeu.bedwars.commandUtility.Command;
-import me.topchetoeu.bedwars.commandUtility.CommandExecutors;
+import me.topchetoeu.bedwars.commands.Command;
+import me.topchetoeu.bedwars.commands.CommandExecutors;
import me.topchetoeu.bedwars.engine.AttackCooldownEradicator;
import me.topchetoeu.bedwars.engine.Config;
import me.topchetoeu.bedwars.engine.Game;
@@ -38,8 +38,6 @@ import me.topchetoeu.bedwars.engine.trader.upgrades.ProtectionTeamUpgrade;
import me.topchetoeu.bedwars.engine.trader.upgrades.SharpnessTeamUpgrade;
import me.topchetoeu.bedwars.messaging.MessageUtility;
-// TODO add permissions
-
public class Main extends JavaPlugin implements Listener {
@@ -145,12 +143,12 @@ public class Main extends JavaPlugin implements Listener {
if (!conf.exists())
conf.createNewFile();
Config.load(conf);
- File defaultFavs = new File(getDataFolder(), "default-favourites.yml");
+ File defaultFavourites = new File(getDataFolder(), "default-favourites.yml");
MessageUtility.load(new File(getDataFolder(), "messages.yml"));
- if (!defaultFavs.exists())
- defaultFavs.createNewFile();
+ if (!defaultFavourites.exists())
+ defaultFavourites.createNewFile();
File favsDir = new File(getDataFolder(), "favourites");
@@ -177,7 +175,7 @@ public class Main extends JavaPlugin implements Listener {
EnforcedRankedDealType.init();
RankedUpgradeDealType.init();
Sections.init(new File(getDataFolder(), "sections.yml"));
- Favourites.instance = new Favourites(favsDir, defaultFavs);
+ Favourites.instance = new Favourites(favsDir, defaultFavourites);
updateTimer();
@@ -185,33 +183,34 @@ public class Main extends JavaPlugin implements Listener {
v.setAI(false);
});
- Command cmd = Command.createLiteral("bedwars", "bw");
+ Command cmd = Command.createLiteral("bedwars", "bw").permission("bedwars");
- cmd.literal("help").setExecutor(CommandExecutors.help()).string("args", false).setRecursive(true).setExecutor(CommandExecutors.help());
- Commands.start(cmd.literal("start"));
- Commands.stop(cmd.literal("stop"));
+ cmd.literal("help").permission("bedwars.help").setExecutor(CommandExecutors.help()).string("args", false).setRecursive(true).setExecutor(CommandExecutors.help());
+ Commands.start(cmd.literal("start")).permission("bedwars.control.start");
+ Commands.stop(cmd.literal("stop")).permission("bedwars.control.stop");
- Commands.kill(cmd.literal("kill"));
- Commands.revive(cmd.literal("revive"));
+ Commands.kill(cmd.literal("kill")).permission("bedwars.cheat.kill");
+ Commands.revive(cmd.literal("revive")).permission("bedwars.cheat.revive");
- Command config = cmd.literal("configuration", "config", "conf");
- Command base = config.literal("base");
- Command generator = config.literal("generator", "gen");
+ Command config = cmd.literal("configuration", "config", "conf").permission("bedwars.conf");
+ Command base = config.literal("base").permission("bedwars.conf.bases");
+ Command generator = config.literal("generator", "gen").permission("bedwars.conf.generators");
- Commands.baseAdd(base.literal("add"));
- Commands.baseRemove(base.literal("remove"));
- Commands.baseSetSpawn(base.literal("setspawn", "spawn"));
- Commands.baseSetGenerator(base.literal("setgenerator", "generator", "gen"));
- Commands.baseSetBed(base.literal("setbed", "bed"));
- Commands.baseList(base.literal("list", "l"));
+ Commands.baseAdd(base.literal("add")).permission("bedwars.config.bases.add");
+ Commands.baseRemove(base.literal("remove")).permission("bedwars.config.bases.remove");
+ Commands.baseSetSpawn(base.literal("setspawn", "spawn")).permission("bedwars.config.bases.setspawn");
+ Commands.baseSetGenerator(base.literal("setgenerator", "generator", "gen")).permission("bedwars.config.bases.setgenerator");
+ Commands.baseSetBed(base.literal("setbed", "bed")).permission("bedwars.config.bases.setbed");
+ Commands.baseList(base.literal("list", "l")).permission("bedwars.config.bases.list");
- Commands.createDiamondGen(generator.literal("diamond"));
- Commands.createEmeraldGen(generator.literal("emerald", "em"));
- Commands.clearGens(generator.literal("clear"));
+ Commands.createDiamondGen(generator.literal("diamond")).permission("bedwars.config.generators.diamond");
+ Commands.createEmeraldGen(generator.literal("emerald", "em")).permission("bedwars.config.generators.emerald");
+ Commands.clearGens(generator.literal("clear")).permission("bedwars.config.generators.clear");
- Commands.breakBed(cmd.literal("breakbed", "cheat", "bedishonest", "abusepowers"));
+ Commands.breakBed(cmd.literal("breakbed", "cheat", "bedishonest", "abusepowers")).permission("bedwars.config.cheat.breakbed");
cmd.literal("villagertools", "villagers", "traders")
.setHelpMessage("Gives you tools to manage traders")
+ .permission("bedwars.villagertools")
.setExecutor((sender, _cmd, args) -> {
if (sender instanceof Player) {
Player p = (Player)sender;
@@ -225,10 +224,10 @@ public class Main extends JavaPlugin implements Listener {
// .attachCommand(new Command("respawn", "revive")
// .setExecutor(Commands.revive)
- // .setHelpMessage("Respawns a spectator, if he has a bed, he is immediatly respawned"))
+ // .setHelpMessage("Respawns a spectator, if he has a bed, he is immediately respawned"))
// .attachCommand(new Command("breakbed", "eliminateteam")
// .setExecutor(Commands.breakBed)
- // .setHelpMessage("Destoys the bed of a team")
+ // .setHelpMessage("Destroys the bed of a team")
// )
// .attachCommand(new Command("eliminate")
// .setHelpMessage("Eliminates a player")
diff --git a/src/main/java/me/topchetoeu/bedwars/commandUtility/Command.java b/src/main/java/me/topchetoeu/bedwars/commandUtility/Command.java
deleted file mode 100644
index 3a6cd2f..0000000
--- a/src/main/java/me/topchetoeu/bedwars/commandUtility/Command.java
+++ /dev/null
@@ -1,323 +0,0 @@
-package me.topchetoeu.bedwars.commandUtility;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-import org.bukkit.command.CommandSender;
-import org.bukkit.plugin.java.JavaPlugin;
-
-import me.topchetoeu.bedwars.commandUtility.args.ArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.ArgParserRes;
-import me.topchetoeu.bedwars.commandUtility.args.CollectionArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.CollectionProvider;
-import me.topchetoeu.bedwars.commandUtility.args.EnumArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.IntArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.LiteralArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.LocationArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.PlayerArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.StringArgParser;
-import me.topchetoeu.bedwars.commandUtility.args.Suggestions;
-import net.md_5.bungee.api.ChatColor;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.ComponentBuilder;
-
-public class Command {
- private String name;
- private String helpMessage;
- private CommandExecutor executor;
- private HashSet children = new HashSet<>();
- private ArgParser parser;
- private boolean recursive = false;
-
- private Set parents = new HashSet<>();
-
- public String getName() {
- return name;
- }
-
- public boolean attachedToAnyPlugin() {
- return parents.size() > 0;
- }
- public Set getParentPlugins() {
- return Collections.unmodifiableSet(parents);
- }
-
- public ArgParser getParser() {
- return parser;
- }
-
- public String getHelpMessage() {
- return helpMessage;
- }
- public Command setHelpMessage(String val) {
- helpMessage = val;
- return this;
- }
-
- public CommandExecutor getExecutor() {
- return executor;
- }
- public Command setExecutor(CommandExecutor val) {
- executor = val;
- return this;
- }
-
- public Command addChild(Command cmd) {
- if (cmd == null) throw new RuntimeException("cmd is null");
- children.add(cmd);
- return cmd;
- }
- public Command removeChild(Command cmd) {
- if (cmd == null) throw new RuntimeException("cmd is null");
- children.remove(cmd);
- return this;
- }
- public boolean hasChild(Command cmd) {
- if (cmd == null) return false;
- return children.contains(cmd);
- }
- public Set getChildren() {
- return Collections.unmodifiableSet(children);
- }
-
- public Command setRecursive(boolean val) {
- recursive = val;
- return this;
- }
- public boolean isRecursive() {
- return recursive;
- }
-
- @SuppressWarnings("unchecked")
- public void execute(CommandSender sender, String[] _args) {
- Command toExecute = this;
-
- Hashtable newArgs = new Hashtable<>();
-
- List args = new ArrayList<>();
- Collections.addAll(args, _args);
-
- String err = null;
-
- while (args.size() > 0) {
- Command newCmd = null;
- Set children = toExecute.getChildren();
- if (toExecute.isRecursive()) children = Collections.singleton(toExecute);
- for (Command cmd : children) {
- ArgParser parser = cmd.getParser();
- ArgParserRes res = parser.parse(sender, args);
-
- if (res.hasError()) err = res.getError();
- else if (res.hasSucceeded()) {
- for (int i = 0; i < res.getTakenCount(); i++) {
- if (args.size() == 0) break;
- args.remove(0);
- }
-
- if (res.hasResult()) {
- if (cmd.recursive) {
- if (!newArgs.containsKey(cmd.name)) newArgs.put(cmd.name, new ArrayList<>());
- ((List