Skip to content

Commit d8354b9

Browse files
authored
Merge pull request #22 from DrawethreeSoftware/1.12.4
1.12.4
2 parents 04e92ed + bb89ff3 commit d8354b9

File tree

37 files changed

+431
-263
lines changed

37 files changed

+431
-263
lines changed

modules/core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>UltraPrisonCore</artifactId>
77
<groupId>dev.drawethree</groupId>
8-
<version>1.12.3</version>
8+
<version>1.12.4</version>
99
<relativePath>../../pom.xml</relativePath>
1010
</parent>
1111

modules/core/src/main/java/dev/drawethree/ultraprisoncore/placeholders/UltraPrisonMVdWPlaceholder.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -146,15 +146,19 @@ private void registerRanksPlaceholders() {
146146
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_rank", event -> plugin.getRanks().getApi().getPlayerRank(event.getPlayer()).getPrefix());
147147

148148
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank", event -> {
149-
Rank nextRank = plugin.getRanks().getApi().getNextPlayerRank(event.getPlayer());
150-
return nextRank == null ? "" : nextRank.getPrefix();
149+
Optional<Rank> nextRank = plugin.getRanks().getApi().getNextPlayerRank(event.getPlayer());
150+
if (nextRank.isEmpty()) {
151+
return "";
152+
} else {
153+
return nextRank.get().getPrefix();
154+
}
151155
});
152156

153-
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_rankup_progress", event -> String.format("%d%%", plugin.getRanks().getRankManager().getRankupProgress(event.getPlayer())));
154-
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_rankup_progress_bar", event -> plugin.getRanks().getRankManager().getRankupProgressBar(event.getPlayer()));
155-
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost_raw", event -> String.valueOf(plugin.getRanks().getRankManager().getNextRankCost(event.getPlayer())));
156-
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost", event -> String.format("%,.2f", plugin.getRanks().getRankManager().getNextRankCost(event.getPlayer())));
157-
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost_formatted", event -> MathUtils.formatNumber(plugin.getRanks().getRankManager().getNextRankCost(event.getPlayer())));
157+
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_rankup_progress", event -> String.format("%d%%", plugin.getRanks().getRanksManager().getRankupProgress(event.getPlayer())));
158+
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_rankup_progress_bar", event -> plugin.getRanks().getRanksManager().getRankupProgressBar(event.getPlayer()));
159+
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost_raw", event -> String.valueOf(plugin.getRanks().getRanksManager().getNextRankCost(event.getPlayer())));
160+
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost", event -> String.format("%,.2f", plugin.getRanks().getRanksManager().getNextRankCost(event.getPlayer())));
161+
PlaceholderAPI.registerPlaceholder(plugin, "ultraprison_next_rank_cost_formatted", event -> MathUtils.formatNumber(plugin.getRanks().getRanksManager().getNextRankCost(event.getPlayer())));
158162
}
159163

160164
private void registerMultipliersPlaceholders() {

modules/core/src/main/java/dev/drawethree/ultraprisoncore/placeholders/UltraPrisonPAPIPlaceholder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,15 @@ public String onPlaceholderRequest(Player player, String identifier) {
184184
case "rank":
185185
return plugin.getRanks().getApi().getPlayerRank(player).getPrefix();
186186
case "next_rank": {
187-
Rank nextRank = plugin.getRanks().getApi().getNextPlayerRank(player);
188-
return nextRank == null ? "" : nextRank.getPrefix();
187+
Optional<Rank> nextRank = plugin.getRanks().getApi().getNextPlayerRank(player);
188+
return nextRank.isEmpty() ? "" : nextRank.get().getPrefix();
189189
}
190190
case "next_rank_cost_raw":
191-
return String.valueOf(plugin.getRanks().getRankManager().getNextRankCost(player));
191+
return String.valueOf(plugin.getRanks().getRanksManager().getNextRankCost(player));
192192
case "next_rank_cost":
193-
return String.format("%,.2f", plugin.getRanks().getRankManager().getNextRankCost(player));
193+
return String.format("%,.2f", plugin.getRanks().getRanksManager().getNextRankCost(player));
194194
case "next_rank_cost_formatted":
195-
return MathUtils.formatNumber(plugin.getRanks().getRankManager().getNextRankCost(player));
195+
return MathUtils.formatNumber(plugin.getRanks().getRanksManager().getNextRankCost(player));
196196
case "prestige":
197197
return plugin.getPrestiges().getApi().getPlayerPrestige(player).getPrefix();
198198
case "prestige_id":
@@ -208,9 +208,9 @@ public String onPlaceholderRequest(Player player, String identifier) {
208208
case "gems_3":
209209
return MathUtils.formatNumber(plugin.getGems().getGemsManager().getPlayerGems(player));
210210
case "rankup_progress":
211-
return String.format("%d%%", plugin.getRanks().getRankManager().getRankupProgress(player));
211+
return String.format("%d%%", plugin.getRanks().getRanksManager().getRankupProgress(player));
212212
case "rankup_progress_bar":
213-
return plugin.getRanks().getRankManager().getRankupProgressBar(player);
213+
return plugin.getRanks().getRanksManager().getRankupProgressBar(player);
214214
case "tokens_1":
215215
return String.valueOf(plugin.getTokens().getTokensManager().getPlayerTokens(player));
216216
case "blocks_1":

modules/core/src/main/java/dev/drawethree/ultraprisoncore/prestiges/manager/PrestigeManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import dev.drawethree.ultraprisoncore.prestiges.api.events.PlayerPrestigeEvent;
66
import dev.drawethree.ultraprisoncore.prestiges.model.Prestige;
77
import dev.drawethree.ultraprisoncore.ranks.UltraPrisonRanks;
8-
import dev.drawethree.ultraprisoncore.ranks.manager.RankManager;
8+
import dev.drawethree.ultraprisoncore.ranks.manager.RanksManager;
99
import dev.drawethree.ultraprisoncore.utils.player.PlayerUtils;
1010
import dev.drawethree.ultraprisoncore.utils.text.TextUtils;
1111
import me.lucko.helper.Events;
@@ -539,11 +539,11 @@ private boolean areRanksEnabled() {
539539
return this.plugin.getCore().isModuleEnabled(UltraPrisonRanks.MODULE_NAME);
540540
}
541541

542-
private RankManager getRankManager() {
542+
private RanksManager getRankManager() {
543543
if (!areRanksEnabled()) {
544544
throw new IllegalStateException("Ranks module is not enabled");
545545
}
546-
return this.plugin.getCore().getRanks().getRankManager();
546+
return this.plugin.getCore().getRanks().getRanksManager();
547547
}
548548

549549
public boolean isPrestiging(Player sender) {

modules/core/src/main/java/dev/drawethree/ultraprisoncore/ranks/UltraPrisonRanks.java

Lines changed: 25 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,16 @@
22

33
import dev.drawethree.ultraprisoncore.UltraPrisonCore;
44
import dev.drawethree.ultraprisoncore.UltraPrisonModule;
5-
import dev.drawethree.ultraprisoncore.config.FileManager;
65
import dev.drawethree.ultraprisoncore.database.model.DatabaseType;
76
import dev.drawethree.ultraprisoncore.ranks.api.UltraPrisonRanksAPI;
87
import dev.drawethree.ultraprisoncore.ranks.api.UltraPrisonRanksAPIImpl;
9-
import dev.drawethree.ultraprisoncore.ranks.manager.RankManager;
10-
import dev.drawethree.ultraprisoncore.ranks.model.Rank;
11-
import dev.drawethree.ultraprisoncore.utils.player.PlayerUtils;
12-
import dev.drawethree.ultraprisoncore.utils.text.TextUtils;
8+
import dev.drawethree.ultraprisoncore.ranks.commands.MaxRankupCommand;
9+
import dev.drawethree.ultraprisoncore.ranks.commands.RankupCommand;
10+
import dev.drawethree.ultraprisoncore.ranks.commands.SetRankCommand;
11+
import dev.drawethree.ultraprisoncore.ranks.config.RanksConfig;
12+
import dev.drawethree.ultraprisoncore.ranks.listener.RanksListener;
13+
import dev.drawethree.ultraprisoncore.ranks.manager.RanksManager;
1314
import lombok.Getter;
14-
import me.lucko.helper.Commands;
15-
import org.bukkit.entity.Player;
16-
17-
import java.util.HashMap;
1815

1916
@Getter
2017
public final class UltraPrisonRanks implements UltraPrisonModule {
@@ -23,21 +20,18 @@ public final class UltraPrisonRanks implements UltraPrisonModule {
2320
public static final String MODULE_NAME = "Ranks";
2421

2522
@Getter
26-
private FileManager.Config config;
27-
28-
private RankManager rankManager;
29-
23+
private RanksConfig ranksConfig;
24+
@Getter
25+
private RanksManager ranksManager;
3026
@Getter
3127
private UltraPrisonRanksAPI api;
32-
33-
private HashMap<String, String> messages;
34-
3528
@Getter
3629
private final UltraPrisonCore core;
30+
3731
private boolean enabled;
3832

39-
public UltraPrisonRanks(UltraPrisonCore UltraPrisonCore) {
40-
this.core = UltraPrisonCore;
33+
public UltraPrisonRanks(UltraPrisonCore core) {
34+
this.core = core;
4135
}
4236

4337
@Override
@@ -47,39 +41,28 @@ public boolean isEnabled() {
4741

4842
@Override
4943
public void reload() {
50-
this.config.reload();
51-
this.loadMessages();
52-
this.rankManager.reload();
44+
this.ranksConfig.reload();
5345
}
5446

5547
@Override
5648
public void enable() {
5749
this.enabled = true;
58-
59-
this.config = this.core.getFileManager().getConfig("ranks.yml").copyDefaults(true).save();
60-
61-
this.loadMessages();
62-
this.rankManager = new RankManager(this);
63-
api = new UltraPrisonRanksAPIImpl(this);
50+
this.ranksConfig = new RanksConfig(this);
51+
this.ranksConfig.load();
52+
this.ranksManager = new RanksManager(this);
53+
this.ranksManager.enable();
54+
this.api = new UltraPrisonRanksAPIImpl(this.ranksManager);
6455
this.registerCommands();
65-
this.rankManager.loadAllData();
66-
}
67-
68-
private void loadMessages() {
69-
messages = new HashMap<>();
70-
for (String key : this.getConfig().get().getConfigurationSection("messages").getKeys(false)) {
71-
messages.put(key.toLowerCase(), TextUtils.applyColor(this.getConfig().get().getString("messages." + key)));
72-
}
56+
this.registerListeners();
7357
}
7458

75-
public String getMessage(String key) {
76-
return messages.getOrDefault(key.toLowerCase(), TextUtils.applyColor("&cMessage " + key + " not found."));
59+
private void registerListeners() {
60+
new RanksListener(this).register();
7761
}
7862

79-
8063
@Override
8164
public void disable() {
82-
this.rankManager.saveAllDataSync();
65+
this.ranksManager.disable();
8366
this.enabled = false;
8467
}
8568

@@ -113,36 +96,8 @@ public boolean isHistoryEnabled() {
11396
}
11497

11598
private void registerCommands() {
116-
Commands.create()
117-
.assertPlayer()
118-
.handler(c -> {
119-
if (c.args().size() == 0) {
120-
this.rankManager.buyNextRank(c.sender());
121-
}
122-
}).registerAndBind(core, "rankup");
123-
Commands.create()
124-
.assertPermission("ultraprison.ranks.admin")
125-
.handler(c -> {
126-
if (c.args().size() == 2) {
127-
Player target = c.arg(0).parseOrFail(Player.class);
128-
Rank rank = this.getRankManager().getRankById(c.arg(1).parseOrFail(Integer.class));
129-
130-
if (rank == null) {
131-
PlayerUtils.sendMessage(c.sender(), "&cInvalid rank id provided.");
132-
return;
133-
}
134-
135-
this.rankManager.setRank(target, rank, c.sender());
136-
}
137-
}).registerAndBind(core, "setrank");
138-
139-
Commands.create()
140-
.assertPermission("ultraprison.ranks.maxrankup", this.getMessage("no_permission"))
141-
.assertPlayer()
142-
.handler(c -> {
143-
if (c.args().size() == 0) {
144-
this.rankManager.buyMaxRank(c.sender());
145-
}
146-
}).registerAndBind(core, "maxrankup", "mru");
99+
new RankupCommand(this).register();
100+
new MaxRankupCommand(this).register();
101+
new SetRankCommand(this).register();
147102
}
148103
}

modules/core/src/main/java/dev/drawethree/ultraprisoncore/ranks/api/UltraPrisonRanksAPI.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import dev.drawethree.ultraprisoncore.ranks.model.Rank;
55
import org.bukkit.entity.Player;
66

7+
import java.util.Optional;
8+
79
public interface UltraPrisonRanksAPI {
810

911
/**
@@ -20,7 +22,7 @@ public interface UltraPrisonRanksAPI {
2022
* @param player Player
2123
* @return null if he has max rank, otherwise next Rank
2224
*/
23-
Rank getNextPlayerRank(Player player);
25+
Optional<Rank> getNextPlayerRank(Player player);
2426

2527
/**
2628
* Method to get player's rankup progress
Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,36 @@
11
package dev.drawethree.ultraprisoncore.ranks.api;
22

3-
import dev.drawethree.ultraprisoncore.ranks.UltraPrisonRanks;
3+
import dev.drawethree.ultraprisoncore.ranks.manager.RanksManager;
44
import dev.drawethree.ultraprisoncore.ranks.model.Rank;
55
import org.bukkit.entity.Player;
66

7-
public class UltraPrisonRanksAPIImpl implements UltraPrisonRanksAPI {
7+
import java.util.Optional;
88

9-
private UltraPrisonRanks plugin;
9+
public final class UltraPrisonRanksAPIImpl implements UltraPrisonRanksAPI {
1010

11-
public UltraPrisonRanksAPIImpl(UltraPrisonRanks plugin) {
12-
this.plugin = plugin;
11+
private final RanksManager manager;
12+
13+
public UltraPrisonRanksAPIImpl(RanksManager manager) {
14+
this.manager = manager;
1315
}
1416

1517
@Override
1618
public Rank getPlayerRank(Player p) {
17-
return plugin.getRankManager().getPlayerRank(p);
19+
return manager.getPlayerRank(p);
1820
}
1921

2022
@Override
21-
public Rank getNextPlayerRank(Player player) {
22-
return plugin.getRankManager().getNextRank(this.getPlayerRank(player).getId());
23+
public Optional<Rank> getNextPlayerRank(Player player) {
24+
return manager.getNextRank(this.getPlayerRank(player).getId());
2325
}
2426

2527
@Override
2628
public int getRankupProgress(Player player) {
27-
return plugin.getRankManager().getRankupProgress(player);
29+
return manager.getRankupProgress(player);
2830
}
2931

3032
@Override
3133
public void setPlayerRank(Player player, Rank rank) {
32-
plugin.getRankManager().setRank(player, rank, null);
34+
manager.setRank(player, rank, null);
3335
}
3436
}

modules/core/src/main/java/dev/drawethree/ultraprisoncore/ranks/api/events/PlayerRankUpEvent.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,12 @@
88
import org.bukkit.event.Cancellable;
99
import org.bukkit.event.HandlerList;
1010

11-
public class PlayerRankUpEvent extends UltraPrisonPlayerEvent implements Cancellable {
12-
11+
public final class PlayerRankUpEvent extends UltraPrisonPlayerEvent implements Cancellable {
1312

1413
private static final HandlerList handlers = new HandlerList();
1514

1615
@Getter
17-
private Rank oldRank;
16+
private final Rank oldRank;
1817

1918
@Getter
2019
@Setter
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package dev.drawethree.ultraprisoncore.ranks.commands;
2+
3+
import dev.drawethree.ultraprisoncore.ranks.UltraPrisonRanks;
4+
import me.lucko.helper.Commands;
5+
6+
public class MaxRankupCommand {
7+
8+
private static final String[] COMMAND_ALIASES = {"maxrankup", "mru"};
9+
private static final String PERMISSION_REQUIRED = "ultraprison.ranks.maxrankup";
10+
private final UltraPrisonRanks plugin;
11+
12+
public MaxRankupCommand(UltraPrisonRanks plugin) {
13+
this.plugin = plugin;
14+
}
15+
16+
public void register() {
17+
Commands.create()
18+
.assertPermission(PERMISSION_REQUIRED, this.plugin.getRanksConfig().getMessage("no_permission"))
19+
.assertPlayer()
20+
.handler(c -> {
21+
if (c.args().size() == 0) {
22+
this.plugin.getRanksManager().buyMaxRank(c.sender());
23+
}
24+
}).registerAndBind(this.plugin.getCore(), COMMAND_ALIASES);
25+
}
26+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.drawethree.ultraprisoncore.ranks.commands;
2+
3+
import dev.drawethree.ultraprisoncore.ranks.UltraPrisonRanks;
4+
import me.lucko.helper.Commands;
5+
6+
public class RankupCommand {
7+
8+
private static final String[] COMMAND_ALIASES = {"rankup"};
9+
private final UltraPrisonRanks plugin;
10+
11+
public RankupCommand(UltraPrisonRanks plugin) {
12+
this.plugin = plugin;
13+
}
14+
15+
public void register() {
16+
Commands.create()
17+
.assertPlayer()
18+
.handler(c -> {
19+
if (c.args().size() == 0) {
20+
this.plugin.getRanksManager().buyNextRank(c.sender());
21+
}
22+
}).registerAndBind(this.plugin.getCore(), COMMAND_ALIASES);
23+
}
24+
}

0 commit comments

Comments
 (0)