Added more formatting options
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.willfp.eco.core.config.interfaces;
|
||||
|
||||
import com.willfp.eco.util.StringUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -165,7 +166,9 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or an empty string if not found.
|
||||
*/
|
||||
@NotNull
|
||||
String getString(@NotNull String path);
|
||||
default String getString(@NotNull String path) {
|
||||
return getString(path, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
@@ -175,8 +178,36 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or an empty string if not found.
|
||||
*/
|
||||
@NotNull
|
||||
default String getString(@NotNull String path,
|
||||
boolean format) {
|
||||
return this.getString(path, format, StringUtils.FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param option The format option.
|
||||
* @return The found value, or an empty string if not found.
|
||||
*/
|
||||
@NotNull
|
||||
default String getString(@NotNull String path,
|
||||
@NotNull final StringUtils.FormatOption option) {
|
||||
return this.getString(path, true, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param format If the string should be formatted.
|
||||
* @param option The format option.
|
||||
* @return The found value, or an empty string if not found.
|
||||
*/
|
||||
@NotNull
|
||||
String getString(@NotNull String path,
|
||||
boolean format);
|
||||
boolean format,
|
||||
@NotNull StringUtils.FormatOption option);
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
@@ -185,7 +216,9 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
String getStringOrNull(@NotNull String path);
|
||||
default String getStringOrNull(@NotNull String path) {
|
||||
return getStringOrNull(path, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
@@ -195,8 +228,36 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
default String getStringOrNull(@NotNull String path,
|
||||
boolean format) {
|
||||
return this.getStringOrNull(path, format, StringUtils.FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param option The format option.
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
default String getStringOrNull(@NotNull String path,
|
||||
@NotNull StringUtils.FormatOption option) {
|
||||
return this.getStringOrNull(path, true, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param format If the string should be formatted.
|
||||
* @param option The format option.
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
String getStringOrNull(@NotNull String path,
|
||||
boolean format);
|
||||
boolean format,
|
||||
@NotNull StringUtils.FormatOption option);
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
@@ -207,7 +268,9 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or a blank {@link java.util.ArrayList} if not found.
|
||||
*/
|
||||
@NotNull
|
||||
List<String> getStrings(@NotNull String path);
|
||||
default List<String> getStrings(@NotNull String path) {
|
||||
return getStrings(path, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
@@ -217,8 +280,36 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or a blank {@link java.util.ArrayList} if not found.
|
||||
*/
|
||||
@NotNull
|
||||
default List<String> getStrings(@NotNull String path,
|
||||
boolean format) {
|
||||
return this.getStrings(path, format, StringUtils.FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param option The format option.
|
||||
* @return The found value, or a blank {@link java.util.ArrayList} if not found.
|
||||
*/
|
||||
@Nullable
|
||||
default List<String> getStrings(@NotNull String path,
|
||||
@NotNull StringUtils.FormatOption option) {
|
||||
return getStrings(path, true, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param format If the strings should be formatted.
|
||||
* @param option The option.
|
||||
* @return The found value, or a blank {@link java.util.ArrayList} if not found.
|
||||
*/
|
||||
@NotNull
|
||||
List<String> getStrings(@NotNull String path,
|
||||
boolean format);
|
||||
boolean format,
|
||||
@NotNull StringUtils.FormatOption option);
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
@@ -227,7 +318,9 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
List<String> getStringsOrNull(@NotNull String path);
|
||||
default List<String> getStringsOrNull(@NotNull String path) {
|
||||
return getStringsOrNull(path, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
@@ -237,8 +330,36 @@ public interface Config extends Cloneable {
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
default List<String> getStringsOrNull(@NotNull String path,
|
||||
boolean format) {
|
||||
return getStringsOrNull(path, format, StringUtils.FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param option The format option.
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
default List<String> getStringsOrNull(@NotNull String path,
|
||||
@NotNull StringUtils.FormatOption option) {
|
||||
return getStringsOrNull(path, true, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of strings from config.
|
||||
*
|
||||
* @param path The key to fetch the value from.
|
||||
* @param format If the strings should be formatted.
|
||||
* @param option The format option.
|
||||
* @return The found value, or null if not found.
|
||||
*/
|
||||
@Nullable
|
||||
List<String> getStringsOrNull(@NotNull String path,
|
||||
boolean format);
|
||||
boolean format,
|
||||
@NotNull StringUtils.FormatOption option);
|
||||
|
||||
/**
|
||||
* Get a decimal from config.
|
||||
|
||||
@@ -12,7 +12,7 @@ import org.bukkit.entity.Player;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.Color;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -57,7 +57,21 @@ public class StringUtils {
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Format a list of strings - converts Placeholders and Color codes.
|
||||
* Format a list of strings.
|
||||
* <p>
|
||||
* Converts color codes and placeholders.
|
||||
*
|
||||
* @param list The messages to format.
|
||||
* @return The message, formatted.
|
||||
*/
|
||||
public List<String> formatList(@NotNull final List<String> list) {
|
||||
return formatList(list, (Player) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a list of strings.
|
||||
* <p>
|
||||
* Coverts color codes and placeholders for a player.
|
||||
*
|
||||
* @param list The messages to format.
|
||||
* @param player The player to translate placeholders with respect to.
|
||||
@@ -65,26 +79,61 @@ public class StringUtils {
|
||||
*/
|
||||
public List<String> formatList(@NotNull final List<String> list,
|
||||
@Nullable final Player player) {
|
||||
return formatList(list, player, FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a list of strings.
|
||||
* <p>
|
||||
* Converts color codes and placeholders if specified.
|
||||
*
|
||||
* @param list The messages to format.
|
||||
* @param option The format option.
|
||||
* @return The message, formatted.
|
||||
*/
|
||||
public List<String> formatList(@NotNull final List<String> list,
|
||||
@NotNull final FormatOption option) {
|
||||
return formatList(list, null, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a list of strings.
|
||||
* <p>
|
||||
* Coverts color codes and placeholders for a player if specified.
|
||||
*
|
||||
* @param list The messages to format.
|
||||
* @param player The player to translate placeholders with respect to.
|
||||
* @param option The options.
|
||||
* @return The message, format.
|
||||
*/
|
||||
public List<String> formatList(@NotNull final List<String> list,
|
||||
@Nullable final Player player,
|
||||
@NotNull final FormatOption option) {
|
||||
List<String> translated = new ArrayList<>();
|
||||
for (String string : list) {
|
||||
translated.add(format(string, player));
|
||||
translated.add(format(string, player, option));
|
||||
}
|
||||
|
||||
return translated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a list of strings - converts Placeholders and Color codes.
|
||||
* Format a string.
|
||||
* <p>
|
||||
* Converts color codes and placeholders.
|
||||
*
|
||||
* @param list The messages to format.
|
||||
* @param message The message to translate.
|
||||
* @return The message, formatted.
|
||||
* @see StringUtils#format(String, Player)
|
||||
*/
|
||||
public List<String> formatList(@NotNull final List<String> list) {
|
||||
return formatList(list, null);
|
||||
public String format(@NotNull final String message) {
|
||||
return format(message, (Player) null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a string - converts Placeholders and Color codes.
|
||||
* Format a string.
|
||||
* <p>
|
||||
* Converts color codes and placeholders for a player.
|
||||
*
|
||||
* @param message The message to format.
|
||||
* @param player The player to translate placeholders with respect to.
|
||||
@@ -92,23 +141,45 @@ public class StringUtils {
|
||||
*/
|
||||
public String format(@NotNull final String message,
|
||||
@Nullable final Player player) {
|
||||
String processedMessage = message;
|
||||
processedMessage = translateGradients(processedMessage);
|
||||
processedMessage = PlaceholderManager.translatePlaceholders(processedMessage, player);
|
||||
processedMessage = translateHexColorCodes(processedMessage);
|
||||
processedMessage = ChatColor.translateAlternateColorCodes('&', processedMessage);
|
||||
return processedMessage;
|
||||
return format(message, player, FormatOption.WITH_PLACEHOLDERS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a string without respect to a player.
|
||||
* Format a string.
|
||||
* <p>
|
||||
* Converts color codes and placeholders if specified.
|
||||
*
|
||||
* @param message The message to translate.
|
||||
* @param option The format option.
|
||||
* @return The message, formatted.
|
||||
* @see StringUtils#format(String, Player)
|
||||
*/
|
||||
public String format(@NotNull final String message) {
|
||||
return format(message, null);
|
||||
public String format(@NotNull final String message,
|
||||
@NotNull final FormatOption option) {
|
||||
return format(message, null, option);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format a string.
|
||||
* <p>
|
||||
* Coverts color codes and placeholders for a player if specified.
|
||||
*
|
||||
* @param message The message to format.
|
||||
* @param player The player to translate placeholders with respect to.
|
||||
* @param option The format options.
|
||||
* @return The message, formatted.
|
||||
*/
|
||||
public String format(@NotNull final String message,
|
||||
@Nullable final Player player,
|
||||
@NotNull final FormatOption option) {
|
||||
String processedMessage = message;
|
||||
processedMessage = translateGradients(processedMessage);
|
||||
if (option == FormatOption.WITH_PLACEHOLDERS) {
|
||||
processedMessage = PlaceholderManager.translatePlaceholders(processedMessage, player);
|
||||
}
|
||||
processedMessage = translateHexColorCodes(processedMessage);
|
||||
processedMessage = ChatColor.translateAlternateColorCodes('&', processedMessage);
|
||||
return processedMessage;
|
||||
}
|
||||
|
||||
private static String translateHexColorCodes(@NotNull final String message) {
|
||||
@@ -271,4 +342,19 @@ public class StringUtils {
|
||||
GsonComponentSerializer.gson().deserialize(json)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Options for formatting.
|
||||
*/
|
||||
public enum FormatOption {
|
||||
/**
|
||||
* Completely formatted.
|
||||
*/
|
||||
WITH_PLACEHOLDERS,
|
||||
|
||||
/**
|
||||
* Completely formatted without placeholders.
|
||||
*/
|
||||
WITHOUT_PLACEHOLDERS
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user