mirror of
https://github.com/PlaceholderAPI/PlaceholderAPI.git
synced 2024-12-27 11:27:40 +01:00
Little refactoring...
This commit is contained in:
parent
68fb8e7e65
commit
af68dbcf8b
@ -142,10 +142,32 @@ public class PlaceholderAPI {
|
||||
* @return modified list with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static List<String> setBracketPlaceholders(Player p, List<String> text) {
|
||||
return setPlaceholders(p, text, BRACKET_PLACEHOLDER_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
* set placeholders in the list<String> text provided
|
||||
* placeholders are matched with the pattern %(identifier)_(params)>% when set with this method
|
||||
* @param p Player to parse the placeholders for
|
||||
* @param text text to parse the placeholder values in
|
||||
* @return modified list with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static List<String> setPlaceholders(Player p, List<String> text) {
|
||||
return setPlaceholders(p, text, PLACEHOLDER_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
* set placeholders in the list<String> text provided
|
||||
* placeholders are matched with the pattern %(identifier)_(params)>% when set with this method
|
||||
* @param p Player to parse the placeholders for
|
||||
* @param text text to parse the placeholder values in
|
||||
* @return modified list with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static List<String> setPlaceholders(Player p, List<String> text, Pattern pattern) {
|
||||
if (text == null) return null;
|
||||
List<String> temp = new ArrayList<>();
|
||||
text.forEach(line -> {
|
||||
temp.add(setBracketPlaceholders(p, line));
|
||||
temp.add(setPlaceholders(p, line, pattern));
|
||||
});
|
||||
return temp;
|
||||
}
|
||||
@ -158,40 +180,7 @@ public class PlaceholderAPI {
|
||||
* @return modified text with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static String setBracketPlaceholders(Player player, String text) {
|
||||
if (text == null) return null;
|
||||
if (placeholders.isEmpty()) return colorize(text);
|
||||
Matcher placeholderMatcher = BRACKET_PLACEHOLDER_PATTERN.matcher(text);
|
||||
Map<String, PlaceholderHook> hooks = getPlaceholders();
|
||||
while (placeholderMatcher.find()) {
|
||||
String format = placeholderMatcher.group(1);
|
||||
int index = format.indexOf("_");
|
||||
if (index == -1 || index >= format.length()) continue;
|
||||
String identifier = format.substring(0, index).toLowerCase();
|
||||
String params = format.substring(index+1);
|
||||
if (hooks.containsKey(identifier)) {
|
||||
String value = hooks.get(identifier).onPlaceholderRequest(player, params);
|
||||
if (value != null) {
|
||||
text = text.replaceAll("\\{"+format+"\\}", Matcher.quoteReplacement(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
return colorize(text);
|
||||
}
|
||||
|
||||
/**
|
||||
* set placeholders in the list<String> text provided
|
||||
* placeholders are matched with the pattern %(identifier)_(params)>% when set with this method
|
||||
* @param p Player to parse the placeholders for
|
||||
* @param text text to parse the placeholder values in
|
||||
* @return modified list with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static List<String> setPlaceholders(Player p, List<String> text) {
|
||||
if (text == null) return null;
|
||||
List<String> temp = new ArrayList<>();
|
||||
text.forEach(line -> {
|
||||
temp.add(setPlaceholders(p, line));
|
||||
});
|
||||
return temp;
|
||||
return setPlaceholders(player, text, BRACKET_PLACEHOLDER_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -202,9 +191,21 @@ public class PlaceholderAPI {
|
||||
* @return text with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static String setPlaceholders(Player player, String text) {
|
||||
return setPlaceholders(player, text, PLACEHOLDER_PATTERN);
|
||||
}
|
||||
|
||||
/**
|
||||
* set placeholders in the text specified
|
||||
* placeholders are matched with the pattern %<(identifier)_(params)>% when set with this method
|
||||
* @param player Player to parse the placeholders for
|
||||
* @param text text to parse the placeholder values to
|
||||
* @param placeholderPattern the pattern to match placeholders to. Capture group 1 must contain an underscore separating the identifier from the params
|
||||
* @return text with all placeholders set to the corresponding values
|
||||
*/
|
||||
public static String setPlaceholders(Player player, String text, Pattern placeholderPattern) {
|
||||
if (text == null) return null;
|
||||
if (placeholders.isEmpty()) return colorize(text);
|
||||
Matcher m = PLACEHOLDER_PATTERN.matcher(text);
|
||||
Matcher m = placeholderPattern.matcher(text);
|
||||
Map<String, PlaceholderHook> hooks = getPlaceholders();
|
||||
while (m.find()) {
|
||||
String format = m.group(1);
|
||||
@ -215,7 +216,7 @@ public class PlaceholderAPI {
|
||||
if (hooks.containsKey(identifier)) {
|
||||
String value = hooks.get(identifier).onPlaceholderRequest(player, params);
|
||||
if (value != null) {
|
||||
text = text.replace("%"+format+"%", Matcher.quoteReplacement(value));
|
||||
text = text.replaceAll(m.group(), Matcher.quoteReplacement(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -269,7 +270,7 @@ public class PlaceholderAPI {
|
||||
String value = rel.onPlaceholderRequest(one, two, params);
|
||||
|
||||
if (value != null) {
|
||||
text = text.replace("%rel_"+format+"%", Matcher.quoteReplacement(value));
|
||||
text = text.replaceAll(m.group(), Matcher.quoteReplacement(value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -53,46 +53,44 @@ public class PlaceholderAPICommands implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
|
||||
|
||||
if (args.length == 0) {
|
||||
Msg.msg(s, "PlaceholderAPI &7version &b&o"+plugin.getDescription().getVersion());
|
||||
Msg.msg(s, "&fCreated by&7: &bextended_clip");
|
||||
Msg.msg(s, "PlaceholderAPI &7version &b&o" + plugin.getDescription().getVersion(),
|
||||
"&fCreated by&7: &bextended_clip");
|
||||
return true;
|
||||
|
||||
} else {
|
||||
|
||||
if (args[0].equalsIgnoreCase("help")) {
|
||||
Msg.msg(s, "PlaceholderAPI &aHelp &e(&f" + plugin.getDescription().getVersion() + "&e)");
|
||||
Msg.msg(s, "&b/papi");
|
||||
Msg.msg(s, "&fView plugin info/version info");
|
||||
Msg.msg(s, "&b/papi list");
|
||||
Msg.msg(s, "&fList all placeholder expansions that are currently active");
|
||||
Msg.msg(s, "&b/papi info <placeholder name>");
|
||||
Msg.msg(s, "&fView information for a specific expansion");
|
||||
Msg.msg(s, "&b/papi parse <...args>");
|
||||
Msg.msg(s, "&fParse a String with placeholders");
|
||||
Msg.msg(s, "&b/papi parserel <player one> <player two> <...args>");
|
||||
Msg.msg(s, "&fParse a String with relational placeholders");
|
||||
Msg.msg(s, "&b/papi reload");
|
||||
Msg.msg(s, "&fReload the config settings");
|
||||
|
||||
boolean enabled = plugin.getExpansionCloud() != null;
|
||||
Msg.msg(s, "PlaceholderAPI &aHelp &e(&f" + plugin.getDescription().getVersion() + "&e)",
|
||||
"&b/papi",
|
||||
"&fView plugin info/version info",
|
||||
"&b/papi list",
|
||||
"&fList all placeholder expansions that are currently active",
|
||||
"&b/papi info <placeholder name>",
|
||||
"&fView information for a specific expansion",
|
||||
"&b/papi parse <...args>",
|
||||
"&fParse a String with placeholders",
|
||||
"&b/papi parserel <player one> <player two> <...args>",
|
||||
"&fParse a String with relational placeholders",
|
||||
"&b/papi reload",
|
||||
"&fReload the config settings");
|
||||
|
||||
if (s.isOp()) {
|
||||
if (!enabled) {
|
||||
Msg.msg(s, "&b/papi enablecloud");
|
||||
Msg.msg(s, "&fEnable the expansion cloud");
|
||||
if (plugin.getExpansionCloud() == null) {
|
||||
Msg.msg(s, "&b/papi enablecloud",
|
||||
"&fEnable the expansion cloud");
|
||||
} else {
|
||||
Msg.msg(s, "&b/papi disablecloud");
|
||||
Msg.msg(s, "&fDisable the expansion cloud");
|
||||
Msg.msg(s, "&b/papi ecloud");
|
||||
Msg.msg(s, "&fView information about the PlaceholderAPI expansion cloud");
|
||||
Msg.msg(s, "&b/papi ecloud status");
|
||||
Msg.msg(s, "&fView status of the PlaceholderAPI expansion cloud");
|
||||
Msg.msg(s, "&b/papi ecloud list <all/author> <page>");
|
||||
Msg.msg(s, "&fList all available expansions");
|
||||
Msg.msg(s, "&b/papi ecloud info <expansion name>");
|
||||
Msg.msg(s, "&fView information about a specific expansion on the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud download <expansion name>");
|
||||
Msg.msg(s, "&fDownload a specific expansion from the cloud");
|
||||
Msg.msg(s, "&b/papi disablecloud",
|
||||
"&fDisable the expansion cloud",
|
||||
"&b/papi ecloud",
|
||||
"&fView information about the PlaceholderAPI expansion cloud",
|
||||
"&b/papi ecloud status",
|
||||
"&fView status of the PlaceholderAPI expansion cloud",
|
||||
"&b/papi ecloud list <all/author> <page>",
|
||||
"&fList all available expansions",
|
||||
"&b/papi ecloud info <expansion name>",
|
||||
"&fView information about a specific expansion on the cloud",
|
||||
"&b/papi ecloud download <expansion name>",
|
||||
"&fDownload a specific expansion from the cloud");
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +110,6 @@ public class PlaceholderAPICommands implements CommandExecutor {
|
||||
return eCloud.onCommand(s, c, label, args);
|
||||
|
||||
} else if (args[0].equalsIgnoreCase("enablecloud")) {
|
||||
|
||||
if (!s.isOp()) {
|
||||
Msg.msg(s, "&cYou don't have permission to do that!");
|
||||
return true;
|
||||
|
@ -45,20 +45,20 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
|
||||
|
||||
if (args.length == 1) {
|
||||
Msg.msg(s, "&bExpansion cloud commands");
|
||||
Msg.msg(s, " ");
|
||||
Msg.msg(s, "&b/papi ecloud status");
|
||||
Msg.msg(s, "&fView status of the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud list <all/author> (page)");
|
||||
Msg.msg(s, "&fList all/author specific available expansions");
|
||||
Msg.msg(s, "&b/papi ecloud info <expansion name>");
|
||||
Msg.msg(s, "&fView information about a specific expansion available on the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud download <expansion name>");
|
||||
Msg.msg(s, "&fDownload a specific expansion from the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud refresh");
|
||||
Msg.msg(s, "&fFetch the most up to date list of expansions available.");
|
||||
Msg.msg(s, "&b/papi ecloud clear");
|
||||
Msg.msg(s, "&fClear the expansion cloud cache.");
|
||||
Msg.msg(s, "&bExpansion cloud commands",
|
||||
" ",
|
||||
"&b/papi ecloud status",
|
||||
"&fView status of the cloud",
|
||||
"&b/papi ecloud list <all/author> (page)",
|
||||
"&fList all/author specific available expansions",
|
||||
"&b/papi ecloud info <expansion name>",
|
||||
"&fView information about a specific expansion available on the cloud",
|
||||
"&b/papi ecloud download <expansion name>",
|
||||
"&fDownload a specific expansion from the cloud",
|
||||
"&b/papi ecloud refresh",
|
||||
"&fFetch the most up to date list of expansions available.",
|
||||
"&b/papi ecloud clear",
|
||||
"&fClear the expansion cloud cache.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -111,10 +111,8 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
|
||||
if (args[1].equalsIgnoreCase("status")) {
|
||||
|
||||
Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size()
|
||||
+ " &bcloud expansions available to download on demand.");
|
||||
Msg.msg(s, "&bA total of &f" + plugin.getExpansionCloud().getCloudAuthorCount()
|
||||
+ " &bauthors have contributed to the expansion cloud.");
|
||||
Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bcloud expansions available to download",
|
||||
"&bA total of &f" + plugin.getExpansionCloud().getCloudAuthorCount() + " &bauthors have contributed.");
|
||||
|
||||
return true;
|
||||
} else if (args[1].equalsIgnoreCase("info")) {
|
||||
@ -143,12 +141,12 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
|
||||
Msg.msg(s, "&aExpansion: &f" + expansion.getName());
|
||||
if (enabled) {
|
||||
Msg.msg(s, "&aThis expansion is currently enabled!");
|
||||
Msg.msg(s, "&bYour version&7: &f" + version);
|
||||
Msg.msg(s, "&aThis expansion is currently enabled!",
|
||||
"&bYour version&7: &f" + version);
|
||||
}
|
||||
|
||||
Msg.msg(s, "&bCloud version&7: &f" + expansion.getVersion());
|
||||
Msg.msg(s, "&bAuthor&7: &f" + expansion.getAuthor());
|
||||
Msg.msg(s, "&bCloud version&7: &f" + expansion.getVersion(),
|
||||
"&bAuthor&7: &f" + expansion.getAuthor());
|
||||
|
||||
String desc = expansion.getVersion();
|
||||
|
||||
@ -223,8 +221,8 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
for (Entry<Integer, CloudExpansion> expansion : ex.entrySet()) {
|
||||
Msg.msg(s, "&b" + (expansion.getKey()+1) + "&7: &f" + expansion.getValue().getName() + " &8&m-- &r" + expansion.getValue().getLink());
|
||||
}
|
||||
Msg.msg(s, "&bDownload an expansion with &7/papi ecloud download <name>");
|
||||
Msg.msg(s, "&bView more info on an expansion with &7/papi ecloud info <expansion>");
|
||||
Msg.msg(s, "&bDownload an expansion with &7/papi ecloud download <name>",
|
||||
"&bView more info on an expansion with &7/papi ecloud info <expansion>");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -50,20 +50,20 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
public boolean onCommand(CommandSender s, Command c, String label, String[] args) {
|
||||
|
||||
if (args.length == 1) {
|
||||
Msg.msg(s, "&bExpansion cloud commands");
|
||||
Msg.msg(s, " ");
|
||||
Msg.msg(s, "&b/papi ecloud status");
|
||||
Msg.msg(s, "&fView status of the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud list <all/author> (page)");
|
||||
Msg.msg(s, "&fList all/author specific available expansions");
|
||||
Msg.msg(s, "&b/papi ecloud info <expansion name>");
|
||||
Msg.msg(s, "&fView information about a specific expansion available on the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud download <expansion name>");
|
||||
Msg.msg(s, "&fDownload a specific expansion from the cloud");
|
||||
Msg.msg(s, "&b/papi ecloud refresh");
|
||||
Msg.msg(s, "&fFetch the most up to date list of expansions available.");
|
||||
Msg.msg(s, "&b/papi ecloud clear");
|
||||
Msg.msg(s, "&fClear the expansion cloud cache.");
|
||||
Msg.msg(s, "&bExpansion cloud commands",
|
||||
" ",
|
||||
"&b/papi ecloud status",
|
||||
"&fView status of the cloud",
|
||||
"&b/papi ecloud list <all/author> (page)",
|
||||
"&fList all/author specific available expansions",
|
||||
"&b/papi ecloud info <expansion name>",
|
||||
"&fView information about a specific expansion available on the cloud",
|
||||
"&b/papi ecloud download <expansion name>",
|
||||
"&fDownload a specific expansion from the cloud",
|
||||
"&b/papi ecloud refresh",
|
||||
"&fFetch the most up to date list of expansions available.",
|
||||
"&b/papi ecloud clear",
|
||||
"&fClear the expansion cloud cache.");
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -87,9 +87,8 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
|
||||
if (args[1].equalsIgnoreCase("status")) {
|
||||
|
||||
Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bexpansions available on the cloud.");
|
||||
Msg.msg(s, "&7A total of &f" + plugin.getExpansionCloud().getCloudAuthorCount()
|
||||
+ " &7authors have contributed to the expansion cloud.");
|
||||
Msg.msg(s, "&bThere are &f" + plugin.getExpansionCloud().getCloudExpansions().size() + " &bexpansions available on the cloud.",
|
||||
"&7A total of &f" + plugin.getExpansionCloud().getCloudAuthorCount() + " &7authors have contributed to the expansion cloud.");
|
||||
if (plugin.getExpansionCloud().getToUpdateCount() > 0) {
|
||||
Msg.msg(s, "&eYou have &f" + plugin.getExpansionCloud().getToUpdateCount()
|
||||
+ " &eexpansions installed that have updates available.");
|
||||
@ -306,13 +305,13 @@ public class ExpansionCloudCommands implements CommandExecutor {
|
||||
return true;
|
||||
}
|
||||
|
||||
private void sms(Player p, String text, String hover, String link) {
|
||||
private void sms(Player p, String text, String hover, String name) {
|
||||
TextComponent message = new TextComponent( ChatColor.translateAlternateColorCodes('&', text) );
|
||||
if (hover != null) {
|
||||
message.setHoverEvent( new HoverEvent( HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(ChatColor.translateAlternateColorCodes('&', hover)).create() ) );
|
||||
}
|
||||
if (link != null) {
|
||||
message.setClickEvent( new ClickEvent( ClickEvent.Action.SUGGEST_COMMAND, "/papi ecloud download " + link) );
|
||||
if (name != null) {
|
||||
message.setClickEvent( new ClickEvent( ClickEvent.Action.SUGGEST_COMMAND, "/papi ecloud download " + name) );
|
||||
}
|
||||
p.spigot().sendMessage( message );
|
||||
}
|
||||
|
@ -23,10 +23,13 @@ package me.clip.placeholderapi.util;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class Msg {
|
||||
|
||||
public static void msg(CommandSender s, String msg) {
|
||||
s.sendMessage(ChatColor.translateAlternateColorCodes('&', msg));
|
||||
public static void msg(CommandSender s, String... msg) {
|
||||
Arrays.stream(msg).forEach(text ->
|
||||
s.sendMessage(ChatColor.translateAlternateColorCodes('&', text)));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user