| 1 | package sh.okx.rankup.messages; | |
| 2 | ||
| 3 | import java.util.Objects; | |
| 4 | import java.util.regex.Matcher; | |
| 5 | import java.util.regex.Pattern; | |
| 6 | import me.clip.placeholderapi.PlaceholderAPI; | |
| 7 | import org.bukkit.Bukkit; | |
| 8 | import org.bukkit.command.CommandSender; | |
| 9 | import org.bukkit.configuration.ConfigurationSection; | |
| 10 | import org.bukkit.entity.Player; | |
| 11 | import sh.okx.rankup.prestige.Prestige; | |
| 12 | import sh.okx.rankup.prestige.Prestiges; | |
| 13 | import sh.okx.rankup.ranks.Rank; | |
| 14 | import sh.okx.rankup.util.Colour; | |
| 15 | ||
| 16 | public class StringMessageBuilder implements MessageBuilder { | |
| 17 | ||
| 18 | private String message; | |
| 19 | ||
| 20 | public StringMessageBuilder(String message) { | |
| 21 | this.message = message; | |
| 22 | } | |
| 23 | ||
| 24 | public static StringMessageBuilder of(ConfigurationSection config, Message message) { | |
| 25 |
1
1. of : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::of → NO_COVERAGE |
return StringMessageBuilder.of(config, message.getName()); |
| 26 | } | |
| 27 | ||
| 28 | private static StringMessageBuilder of(ConfigurationSection config, String message) { | |
| 29 | String string = config.getString(message); | |
| 30 | Objects.requireNonNull(string, "Configuration message '" + message + "' not found!"); | |
| 31 |
1
1. of : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::of → NO_COVERAGE |
return new StringMessageBuilder(Colour.translate(string)); |
| 32 | } | |
| 33 | ||
| 34 | public StringMessageBuilder replace(Variable variable, Object value) { | |
| 35 |
1
1. replace : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replace → NO_COVERAGE |
return replaceKey(variable.name(), value); |
| 36 | } | |
| 37 | ||
| 38 | @Override | |
| 39 | public StringMessageBuilder replaceKey(String name, Object value) { | |
| 40 |
1
1. replaceKey : negated conditional → NO_COVERAGE |
if (value == null) { |
| 41 |
1
1. replaceKey : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceKey → NO_COVERAGE |
return this; |
| 42 | } | |
| 43 | Pattern pattern = Pattern.compile("\\{" + name + "}", Pattern.CASE_INSENSITIVE); | |
| 44 | Matcher matcher = pattern.matcher(message); | |
| 45 | this.message = matcher.replaceAll(String.valueOf(value)); | |
| 46 |
1
1. replaceKey : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceKey → NO_COVERAGE |
return this; |
| 47 | } | |
| 48 | ||
| 49 | public StringMessageBuilder replaceFirstPrestige(Rank rank, Prestiges prestiges, String with) { | |
| 50 |
2
1. replaceFirstPrestige : negated conditional → NO_COVERAGE 2. replaceFirstPrestige : negated conditional → NO_COVERAGE |
if (prestiges != null && prestiges.getFirst().equals(rank)) { |
| 51 | replace(Variable.OLD_RANK, with); | |
| 52 | } | |
| 53 |
1
1. replaceFirstPrestige : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceFirstPrestige → NO_COVERAGE |
return this; |
| 54 | } | |
| 55 | ||
| 56 | /** | |
| 57 | * Fails the MessageBuilder if the message is empty. if this fails, all subsequent calls to that | |
| 58 | * MessageBuilder will do nothing | |
| 59 | * | |
| 60 | * @return a NullMessageBuilder if the message is empty, itself otherwise | |
| 61 | */ | |
| 62 | public MessageBuilder failIfEmpty() { | |
| 63 |
1
1. failIfEmpty : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::failIfEmpty → KILLED |
return failIf(message.isEmpty()); |
| 64 | } | |
| 65 | ||
| 66 | public MessageBuilder failIf(boolean value) { | |
| 67 |
1
1. failIf : negated conditional → KILLED |
if (value) { |
| 68 |
1
1. failIf : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::failIf → KILLED |
return new NullMessageBuilder(); |
| 69 | } else { | |
| 70 |
1
1. failIf : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::failIf → NO_COVERAGE |
return this; |
| 71 | } | |
| 72 | } | |
| 73 | ||
| 74 | @Override | |
| 75 | public MessageBuilder replacePlayer(CommandSender sender) { | |
| 76 |
1
1. replacePlayer : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replacePlayer → NO_COVERAGE |
return replace(Variable.PLAYER, sender.getName()); |
| 77 | } | |
| 78 | ||
| 79 | @Override | |
| 80 | public MessageBuilder replaceRank(Rank rank) { | |
| 81 |
1
1. replaceRank : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceRank → NO_COVERAGE |
return replace(Variable.RANK, rank.getRank()) |
| 82 | .replace(Variable.RANK_NAME, rank.getDisplayName()); | |
| 83 | } | |
| 84 | ||
| 85 | @Override | |
| 86 | public MessageBuilder replaceOldRank(Rank rank) { | |
| 87 |
1
1. replaceOldRank : negated conditional → NO_COVERAGE |
if (rank instanceof Prestige) { |
| 88 | Prestige prestige = (Prestige) rank; | |
| 89 | replace(Variable.FROM, prestige.getFrom()); | |
| 90 | replace(Variable.TO, prestige.getTo()); | |
| 91 | } | |
| 92 |
1
1. replaceOldRank : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceOldRank → NO_COVERAGE |
return replace(Variable.OLD_RANK, rank.getRank()) |
| 93 | .replace(Variable.OLD_RANK_NAME, rank.getDisplayName()); | |
| 94 | } | |
| 95 | ||
| 96 | @Override | |
| 97 | public MessageBuilder replaceSeconds(long seconds, long secondsLeft) { | |
| 98 |
1
1. replaceSeconds : replaced return value with null for sh/okx/rankup/messages/StringMessageBuilder::replaceSeconds → NO_COVERAGE |
return replace(Variable.SECONDS, seconds) |
| 99 | .replace(Variable.SECONDS_LEFT, secondsLeft); | |
| 100 | } | |
| 101 | ||
| 102 | public void send(CommandSender sender) { | |
| 103 | String msg = message; | |
| 104 |
2
1. send : negated conditional → NO_COVERAGE 2. send : negated conditional → NO_COVERAGE |
if (sender instanceof Player && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { |
| 105 | msg = PlaceholderAPI.setPlaceholders((Player) sender, msg); | |
| 106 | } | |
| 107 |
1
1. send : removed call to org/bukkit/command/CommandSender::sendMessage → NO_COVERAGE |
sender.sendMessage(msg); |
| 108 | } | |
| 109 | ||
| 110 | /** | |
| 111 | * Sends the message to all players ie, calls MessageBuilder#send(Player) for all players online, | |
| 112 | * and sends the message in the console. | |
| 113 | */ | |
| 114 | public void broadcast() { | |
| 115 | for (Player player : Bukkit.getOnlinePlayers()) { | |
| 116 |
1
1. broadcast : removed call to sh/okx/rankup/messages/StringMessageBuilder::send → NO_COVERAGE |
send(player); |
| 117 | } | |
| 118 |
1
1. broadcast : removed call to sh/okx/rankup/messages/StringMessageBuilder::send → NO_COVERAGE |
send(Bukkit.getConsoleSender()); |
| 119 | } | |
| 120 | ||
| 121 | @Override | |
| 122 | public String toString() { | |
| 123 |
1
1. toString : replaced return value with "" for sh/okx/rankup/messages/StringMessageBuilder::toString → NO_COVERAGE |
return message; |
| 124 | } | |
| 125 | } | |
Mutations | ||
| 25 |
1.1 |
|
| 31 |
1.1 |
|
| 35 |
1.1 |
|
| 40 |
1.1 |
|
| 41 |
1.1 |
|
| 46 |
1.1 |
|
| 50 |
1.1 2.2 |
|
| 53 |
1.1 |
|
| 63 |
1.1 |
|
| 67 |
1.1 |
|
| 68 |
1.1 |
|
| 70 |
1.1 |
|
| 76 |
1.1 |
|
| 81 |
1.1 |
|
| 87 |
1.1 |
|
| 92 |
1.1 |
|
| 98 |
1.1 |
|
| 104 |
1.1 2.2 |
|
| 107 |
1.1 |
|
| 116 |
1.1 |
|
| 118 |
1.1 |
|
| 123 |
1.1 |