diff --git a/build.gradle b/build.gradle index fff1e4f..efc04d6 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'sh.okx' -version '3.10-alpha.1' +version '3.10' repositories { mavenCentral() diff --git a/src/main/java/sh/okx/rankup/RankupPlugin.java b/src/main/java/sh/okx/rankup/RankupPlugin.java index 451be47..1c13095 100644 --- a/src/main/java/sh/okx/rankup/RankupPlugin.java +++ b/src/main/java/sh/okx/rankup/RankupPlugin.java @@ -151,7 +151,13 @@ public class RankupPlugin extends JavaPlugin { } if (config.getBoolean("ranks")) { - getCommand("ranks").setExecutor(new RanksCommand(this)); + if (config.getBoolean("ranks-gui")) { + RanksGuiListener listener = new RanksGuiListener(); + getCommand("ranks").setExecutor(new RanksGuiCommand(this, listener)); + getServer().getPluginManager().registerEvents(listener, this); + } else { + getCommand("ranks").setExecutor(new RanksCommand(this)); + } } if (config.getBoolean("prestige")) { getCommand("prestige").setExecutor(new PrestigeCommand(this)); @@ -163,11 +169,8 @@ public class RankupPlugin extends JavaPlugin { getCommand("maxrankup").setExecutor(new MaxRankupCommand(this)); } - RanksGuiListener listener = new RanksGuiListener(); - getCommand("ranksgui").setExecutor(new RanksGuiCommand(this, listener)); getCommand("rankup").setExecutor(new RankupCommand(this)); getCommand("rankup3").setExecutor(new InfoCommand(this, notifier)); - getServer().getPluginManager().registerEvents(listener, this); getServer().getPluginManager().registerEvents(new GuiListener(this), this); getServer().getPluginManager().registerEvents( new JoinUpdateNotifier(notifier, () -> getConfig().getBoolean("notify-update"), "rankup.notify"), this); @@ -451,16 +454,20 @@ public class RankupPlugin extends JavaPlugin { Requirement money = rank.getRequirement(sender instanceof Player ? (Player) sender : null, "money"); if (money != null) { Double amount = null; + Double total = null; if (sender instanceof Player && rank.isIn((Player) sender)) { if (economy != null) { amount = money.getRemaining((Player) sender); + total = money.getTotal((Player) sender); } } else { amount = money.getValueDouble(); + total = 0D; } if (amount != null && economy != null) { builder.replace(Variable.MONEY_NEEDED, formatMoney(amount)); builder.replace(Variable.MONEY, formatMoney(money.getValueDouble())); + builder.replace(Variable.MONEY_DONE, formatMoney(total)); } } if (sender instanceof Player) { diff --git a/src/main/java/sh/okx/rankup/commands/RankupCommand.java b/src/main/java/sh/okx/rankup/commands/RankupCommand.java index 05d9ae1..18fbe37 100644 --- a/src/main/java/sh/okx/rankup/commands/RankupCommand.java +++ b/src/main/java/sh/okx/rankup/commands/RankupCommand.java @@ -46,7 +46,8 @@ public class RankupCommand implements CommandExecutor { String confirmationType = config.getString("confirmation-type").toLowerCase(); // if they are on text confirming, rank them up - if (confirmationType.equals("text") && confirming.containsKey(player)) { + // clicking on the gui cannot confirm a rankup + if (confirmationType.equals("text") && confirming.containsKey(player) && !(args.length > 0 && args[0].equalsIgnoreCase("gui"))) { long time = System.currentTimeMillis() - confirming.remove(player); if (time < config.getInt("text.timeout") * 1000) { plugin.getHelper().rankup(player); diff --git a/src/main/java/sh/okx/rankup/messages/Variable.java b/src/main/java/sh/okx/rankup/messages/Variable.java index 0fed4ce..bd3b99a 100644 --- a/src/main/java/sh/okx/rankup/messages/Variable.java +++ b/src/main/java/sh/okx/rankup/messages/Variable.java @@ -1,18 +1,19 @@ -package sh.okx.rankup.messages; - -public enum Variable { - PLAYER, - OLD_RANK, - RANK, - FROM, - TO, - MONEY, - MONEY_NEEDED, - AMOUNT, - AMOUNT_NEEDED, - AMOUNT_DONE, - PERCENT_DONE, - PERCENT_LEFT, - SECONDS, - SECONDS_LEFT -} +package sh.okx.rankup.messages; + +public enum Variable { + PLAYER, + OLD_RANK, + RANK, + FROM, + TO, + MONEY, + MONEY_NEEDED, + MONEY_DONE, + AMOUNT, + AMOUNT_NEEDED, + AMOUNT_DONE, + PERCENT_DONE, + PERCENT_LEFT, + SECONDS, + SECONDS_LEFT +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 45c10d1..df673c8 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -8,7 +8,7 @@ version: 9 locale: en # interval (in minutes) to check to autorankup players -# ranking up manually wil always be enabled +# ranking up manually will always be enabled # set to 0 to disable autorankup-interval: 0 @@ -20,6 +20,10 @@ ranks: true # this will also make the command not autocomplete in 1.13 prestiges: true +# whether to enabable the /ranks GUI. +# will override the /ranks command +ranks-gui: false + # whether or not /prestige and /prestiges should be enabled. # when a player reaches the top rank, they can do /prestige to return to the first rank, # but you will be able to grant them an additional "prestige" group or additional items. diff --git a/src/main/resources/locale/en.yml b/src/main/resources/locale/en.yml index 25a4acd..8900d05 100644 --- a/src/main/resources/locale/en.yml +++ b/src/main/resources/locale/en.yml @@ -43,16 +43,15 @@ rankup: rows: 3 offset: 10 width: 7 - rankup: - complete: - material: GREEN_STAINED_GLASS_PANE - name: "&aRank &7{RANK} &a(completed)" - current: - material: ORANGE_STAINED_GLASS_PANE - name: "&dRankup to &7{RANK}" - incomplete: - material: RED_STAINED_GLASS_PANE - name: "&cRank &7{RANK} &c(requires rankup)" + complete: + material: GREEN_STAINED_GLASS_PANE + name: "&aRank &7{RANK} &a(completed)" + current: + material: ORANGE_STAINED_GLASS_PANE + name: "&dRankup to &7{RANK}" + incomplete: + material: RED_STAINED_GLASS_PANE + name: "&cRank &7{RANK} &c(requires rankup)" fill: material: BLACK_STAINED_GLASS_PANE name: ' ' diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 640741c..90a73ad 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -26,8 +26,6 @@ commands: maxrankup: permission: rankup.maxrankup description: Rankup as much as possible. - ranksgui: - description: Show the ranks GUI permissions: rankup.*: children: