3.7 add prestige-based requirements
This commit is contained in:
@@ -1,41 +1,41 @@
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
public enum Message {
|
||||
NOT_IN_LADDER("not-in-ladder"),
|
||||
REQUIREMENTS_NOT_MET("rankup.requirements-not-met"),
|
||||
NO_RANKUP("rankup.no-rankup"),
|
||||
SUCCESS_PUBLIC("rankup.success-public"),
|
||||
SUCCESS_PRIVATE("rankup.success-private"),
|
||||
CONFIRMATION("rankup.confirmation"),
|
||||
TITLE("rankup.gui.title"),
|
||||
RANKS_HEADER("rankup.list.header"),
|
||||
RANKS_FOOTER("rankup.list.footer"),
|
||||
RANKS_COMPLETE("rankup.list.complete"),
|
||||
RANKS_CURRENT("rankup.list.current"),
|
||||
RANKS_INCOMPLETE("rankup.list.incomplete"),
|
||||
PRESTIGE_REQUIREMENTS_NOT_MET("prestige.requirements-not-met"),
|
||||
PRESTIGE_NO_PRESTIGE("prestige.no-prestige"),
|
||||
PRESTIGES_HEADER("prestige.list.header"),
|
||||
PRESTIGES_FOOTER("prestige.list.footer"),
|
||||
PRESTIGES_COMPLETE("prestige.list.complete"),
|
||||
PRESTIGES_CURRENT("prestige.list.current"),
|
||||
PRESTIGES_INCOMPLETE("prestige.list.incomplete"),
|
||||
PRESTIGE_TITLE("prestige.gui.title"),
|
||||
COOLDOWN_SINGULAR("rankup.cooldown.singular"),
|
||||
COOLDOWN_PLURAL("rankup.cooldown.plural"),
|
||||
MUST_PRESTIGE("rankup.must-prestige"),
|
||||
NOT_HIGH_ENOUGH("not-high-enough"),
|
||||
PRESTIGE_SUCCESS_PUBLIC("prestige.success-public"),
|
||||
PRESTIGE_SUCCESS_PRIVATE("prestige.success-private"),
|
||||
PRESTIGE_CONFIRMATION("prestige.confirmation"),
|
||||
INVALID_RANKUP("invalid-rankup");
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
|
||||
Message(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
public enum Message {
|
||||
NOT_IN_LADDER("not-in-ladder"),
|
||||
REQUIREMENTS_NOT_MET("rankup.requirements-not-met"),
|
||||
NO_RANKUP("rankup.no-rankup"),
|
||||
SUCCESS_PUBLIC("rankup.success-public"),
|
||||
SUCCESS_PRIVATE("rankup.success-private"),
|
||||
CONFIRMATION("rankup.confirmation"),
|
||||
TITLE("rankup.gui.title"),
|
||||
RANKS_HEADER("rankup.list.header"),
|
||||
RANKS_FOOTER("rankup.list.footer"),
|
||||
RANKS_COMPLETE("rankup.list.complete"),
|
||||
RANKS_CURRENT("rankup.list.current"),
|
||||
RANKS_INCOMPLETE("rankup.list.incomplete"),
|
||||
PRESTIGE_REQUIREMENTS_NOT_MET("prestige.requirements-not-met"),
|
||||
PRESTIGE_NO_PRESTIGE("prestige.no-prestige"),
|
||||
PRESTIGES_HEADER("prestige.list.header"),
|
||||
PRESTIGES_FOOTER("prestige.list.footer"),
|
||||
PRESTIGES_COMPLETE("prestige.list.complete"),
|
||||
PRESTIGES_CURRENT("prestige.list.current"),
|
||||
PRESTIGES_INCOMPLETE("prestige.list.incomplete"),
|
||||
PRESTIGE_TITLE("prestige.gui.title"),
|
||||
COOLDOWN_SINGULAR("rankup.cooldown.singular"),
|
||||
COOLDOWN_PLURAL("rankup.cooldown.plural"),
|
||||
MUST_PRESTIGE("rankup.must-prestige"),
|
||||
NOT_HIGH_ENOUGH("not-high-enough"),
|
||||
PRESTIGE_SUCCESS_PUBLIC("prestige.success-public"),
|
||||
PRESTIGE_SUCCESS_PRIVATE("prestige.success-private"),
|
||||
PRESTIGE_CONFIRMATION("prestige.confirmation"),
|
||||
INVALID_RANKUP("invalid-rankup");
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
|
||||
Message(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
@@ -1,124 +1,124 @@
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.prestige.Prestige;
|
||||
import sh.okx.rankup.prestige.Prestiges;
|
||||
import sh.okx.rankup.ranks.Rank;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class MessageBuilder {
|
||||
private String message;
|
||||
|
||||
public MessageBuilder(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static MessageBuilder of(ConfigurationSection config, Message message) {
|
||||
return MessageBuilder.of(config, message.getName());
|
||||
}
|
||||
|
||||
private static MessageBuilder of(ConfigurationSection config, String message) {
|
||||
String string = config.getString(message);
|
||||
Objects.requireNonNull(string, "Configuration message '" + message + "' not found!");
|
||||
return new MessageBuilder(ChatColor.translateAlternateColorCodes('&', string));
|
||||
}
|
||||
|
||||
public MessageBuilder replace(Variable variable, Object value) {
|
||||
return replace(variable.name(), value);
|
||||
}
|
||||
|
||||
public MessageBuilder replace(String name, Object value) {
|
||||
Pattern pattern = Pattern.compile("\\{" + name + "}", Pattern.CASE_INSENSITIVE);
|
||||
Matcher matcher = pattern.matcher(message);
|
||||
this.message = matcher.replaceAll(String.valueOf(value));
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceFirstPrestige(Rank rank, Prestiges prestiges, String with) {
|
||||
if (prestiges != null && prestiges.getFirst().equals(rank)) {
|
||||
replace(Variable.OLD_RANK, with);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(CommandSender player, String rankName) {
|
||||
replace(Variable.PLAYER, player.getName());
|
||||
replaceRanks(rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(CommandSender player, Rank oldRank, String rankName) {
|
||||
replace(Variable.PLAYER, player.getName());
|
||||
replaceRanks(oldRank, rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(String rankName) {
|
||||
replace(Variable.RANK, rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(Rank oldRank, String rankName) {
|
||||
replaceRanks(rankName);
|
||||
replace(Variable.OLD_RANK, oldRank.getRank());
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceFromTo(Rank rank) {
|
||||
if (rank instanceof Prestige) {
|
||||
Prestige prestige = (Prestige) rank;
|
||||
replace(Variable.FROM, prestige.getFrom());
|
||||
replace(Variable.TO, prestige.getTo());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fails the MessageBuilder if the message is empty.
|
||||
* if this fails, all subsequent calls to that MessageBuilder will do nothing
|
||||
* @return a NullMessageBuilder if the message is empty, itself otherwise
|
||||
*/
|
||||
public MessageBuilder failIfEmpty() {
|
||||
return failIf(message.isEmpty());
|
||||
}
|
||||
|
||||
public MessageBuilder failIf(boolean value) {
|
||||
if (value) {
|
||||
return new NullMessageBuilder();
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public void send(CommandSender sender) {
|
||||
String msg = message;
|
||||
if (sender instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
msg = PlaceholderAPI.setPlaceholders((Player) sender, msg);
|
||||
}
|
||||
sender.sendMessage(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the message to all players
|
||||
* ie, calls MessageBuilder#send(Player) for all players online, and sends the message in the console.
|
||||
*/
|
||||
public void broadcast() {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
send(player);
|
||||
}
|
||||
send(Bukkit.getConsoleSender());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.prestige.Prestige;
|
||||
import sh.okx.rankup.prestige.Prestiges;
|
||||
import sh.okx.rankup.ranks.Rank;
|
||||
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class MessageBuilder {
|
||||
private String message;
|
||||
|
||||
public MessageBuilder(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static MessageBuilder of(ConfigurationSection config, Message message) {
|
||||
return MessageBuilder.of(config, message.getName());
|
||||
}
|
||||
|
||||
private static MessageBuilder of(ConfigurationSection config, String message) {
|
||||
String string = config.getString(message);
|
||||
Objects.requireNonNull(string, "Configuration message '" + message + "' not found!");
|
||||
return new MessageBuilder(ChatColor.translateAlternateColorCodes('&', string));
|
||||
}
|
||||
|
||||
public MessageBuilder replace(Variable variable, Object value) {
|
||||
return replace(variable.name(), value);
|
||||
}
|
||||
|
||||
public MessageBuilder replace(String name, Object value) {
|
||||
Pattern pattern = Pattern.compile("\\{" + name + "}", Pattern.CASE_INSENSITIVE);
|
||||
Matcher matcher = pattern.matcher(message);
|
||||
this.message = matcher.replaceAll(String.valueOf(value));
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceFirstPrestige(Rank rank, Prestiges prestiges, String with) {
|
||||
if (prestiges != null && prestiges.getFirst().equals(rank)) {
|
||||
replace(Variable.OLD_RANK, with);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(CommandSender player, String rankName) {
|
||||
replace(Variable.PLAYER, player.getName());
|
||||
replaceRanks(rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(CommandSender player, Rank oldRank, String rankName) {
|
||||
replace(Variable.PLAYER, player.getName());
|
||||
replaceRanks(oldRank, rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(String rankName) {
|
||||
replace(Variable.RANK, rankName);
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceRanks(Rank oldRank, String rankName) {
|
||||
replaceRanks(rankName);
|
||||
replace(Variable.OLD_RANK, oldRank.getRank());
|
||||
return this;
|
||||
}
|
||||
|
||||
public MessageBuilder replaceFromTo(Rank rank) {
|
||||
if (rank instanceof Prestige) {
|
||||
Prestige prestige = (Prestige) rank;
|
||||
replace(Variable.FROM, prestige.getFrom());
|
||||
replace(Variable.TO, prestige.getTo());
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fails the MessageBuilder if the message is empty.
|
||||
* if this fails, all subsequent calls to that MessageBuilder will do nothing
|
||||
* @return a NullMessageBuilder if the message is empty, itself otherwise
|
||||
*/
|
||||
public MessageBuilder failIfEmpty() {
|
||||
return failIf(message.isEmpty());
|
||||
}
|
||||
|
||||
public MessageBuilder failIf(boolean value) {
|
||||
if (value) {
|
||||
return new NullMessageBuilder();
|
||||
} else {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
public void send(CommandSender sender) {
|
||||
String msg = message;
|
||||
if (sender instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
|
||||
msg = PlaceholderAPI.setPlaceholders((Player) sender, msg);
|
||||
}
|
||||
sender.sendMessage(msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the message to all players
|
||||
* ie, calls MessageBuilder#send(Player) for all players online, and sends the message in the console.
|
||||
*/
|
||||
public void broadcast() {
|
||||
for (Player player : Bukkit.getOnlinePlayers()) {
|
||||
send(player);
|
||||
}
|
||||
send(Bukkit.getConsoleSender());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return message;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* A no-op implementation of MessageBuilder
|
||||
*/
|
||||
public class NullMessageBuilder extends MessageBuilder {
|
||||
NullMessageBuilder() {
|
||||
super(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageBuilder failIf(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageBuilder replace(Variable variable, Object value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void send(CommandSender sender) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void broadcast() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
package sh.okx.rankup.messages;
|
||||
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
/**
|
||||
* A no-op implementation of MessageBuilder
|
||||
*/
|
||||
public class NullMessageBuilder extends MessageBuilder {
|
||||
NullMessageBuilder() {
|
||||
super(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageBuilder failIf(boolean value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageBuilder replace(Variable variable, Object value) {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void send(CommandSender sender) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void broadcast() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
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,
|
||||
AMOUNT,
|
||||
AMOUNT_NEEDED,
|
||||
AMOUNT_DONE,
|
||||
PERCENT_DONE,
|
||||
PERCENT_LEFT,
|
||||
SECONDS,
|
||||
SECONDS_LEFT
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user