diff --git a/build.gradle b/build.gradle index 8a70955..ec04e65 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'sh.okx' -version '3.2-beta.1' +version '3.2' repositories { mavenCentral() @@ -33,7 +33,7 @@ dependencies { compile('net.milkbowl.vault:VaultAPI:1.6') { exclude group: 'org.bukkit' } - compile 'me.clip:placeholderapi:2.9.+' + compile 'me.clip:placeholderapi:2.9.2' // if compiling this you will have to download and install mcMMO locally compile 'com.gmail.nossr50.mcMMO:mcMMO:1.6.0-SNAPSHOT' } diff --git a/src/main/java/sh/okx/rankup/Rankup.java b/src/main/java/sh/okx/rankup/Rankup.java index d78326c..dbe79bf 100644 --- a/src/main/java/sh/okx/rankup/Rankup.java +++ b/src/main/java/sh/okx/rankup/Rankup.java @@ -152,11 +152,13 @@ public class Rankup extends JavaPlugin { private void loadConfigs() { messages = loadConfig("messages.yml"); config = loadConfig("config.yml"); - refreshRanks(); + Bukkit.getScheduler().scheduleSyncDelayedTask(this, this::refreshRanks); } public void refreshRanks() { registerRequirements(); + Bukkit.getPluginManager().callEvent(new RankupRegisterEvent(this)); + rankups = new Rankups(this, loadConfig("rankups.yml")); if(config.getBoolean("prestige")) { prestiges = new Prestiges(this, loadConfig("prestiges.yml")); @@ -191,8 +193,6 @@ public class Rankup extends JavaPlugin { operationRegistry.addOperation("none", new NoneOperation()); operationRegistry.addOperation("one", new OneOperation()); operationRegistry.addOperation("any", new AnyOperation()); - - Bukkit.getPluginManager().callEvent(new RankupRegisterEvent(this)); } private void setupPermissions() { diff --git a/src/main/java/sh/okx/rankup/RankupRegisterEvent.java b/src/main/java/sh/okx/rankup/RankupRegisterEvent.java index b6edf06..ab874e1 100644 --- a/src/main/java/sh/okx/rankup/RankupRegisterEvent.java +++ b/src/main/java/sh/okx/rankup/RankupRegisterEvent.java @@ -4,7 +4,9 @@ import lombok.Getter; import lombok.RequiredArgsConstructor; import org.bukkit.event.Event; import org.bukkit.event.HandlerList; +import sh.okx.rankup.requirements.Operation; import sh.okx.rankup.requirements.OperationRegistry; +import sh.okx.rankup.requirements.Requirement; import sh.okx.rankup.requirements.RequirementRegistry; /** @@ -27,6 +29,14 @@ public class RankupRegisterEvent extends Event { return plugin.getOperationRegistry(); } + public void addRequirement(Requirement requirement) { + plugin.getRequirementRegistry().addRequirement(requirement); + } + + public void addOperation(String name, Operation operation) { + plugin.getOperationRegistry().addOperation(name, operation); + } + @Override public HandlerList getHandlers() { return handlers; diff --git a/src/main/java/sh/okx/rankup/requirements/Operation.java b/src/main/java/sh/okx/rankup/requirements/Operation.java index 29dcdd7..0e1b9bf 100644 --- a/src/main/java/sh/okx/rankup/requirements/Operation.java +++ b/src/main/java/sh/okx/rankup/requirements/Operation.java @@ -2,6 +2,6 @@ package sh.okx.rankup.requirements; import java.util.List; -public abstract class Operation { - public abstract boolean check(List booleans); +public interface Operation { + boolean check(List booleans); } diff --git a/src/main/java/sh/okx/rankup/requirements/ReducerOperation.java b/src/main/java/sh/okx/rankup/requirements/ReducerOperation.java index f045d75..447e192 100644 --- a/src/main/java/sh/okx/rankup/requirements/ReducerOperation.java +++ b/src/main/java/sh/okx/rankup/requirements/ReducerOperation.java @@ -2,7 +2,7 @@ package sh.okx.rankup.requirements; import java.util.List; -public abstract class ReducerOperation extends Operation { +public abstract class ReducerOperation implements Operation { public abstract boolean check(boolean a, boolean b); @Override diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 77ac68b..e46a07f 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: Rankup -version: 3.2-beta.1 +version: 3.2 main: sh.okx.rankup.Rankup author: Okx depend: [Vault]