2018-10-26 06:44:07 +02:00
|
|
|
package com.songoda.epicbosses.utils;
|
2018-04-27 22:22:03 +02:00
|
|
|
|
2018-11-17 14:49:25 +01:00
|
|
|
import org.bukkit.Bukkit;
|
2018-04-27 22:22:03 +02:00
|
|
|
import org.bukkit.ChatColor;
|
2018-10-20 17:20:50 +02:00
|
|
|
import org.bukkit.Location;
|
2018-11-17 14:49:25 +01:00
|
|
|
import org.bukkit.World;
|
2018-04-27 22:22:03 +02:00
|
|
|
|
2019-10-07 22:53:51 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.LinkedList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Queue;
|
2018-10-09 15:23:40 +02:00
|
|
|
|
2018-04-27 22:22:03 +02:00
|
|
|
/**
|
|
|
|
* @author Charles Cullen
|
|
|
|
* @version 1.0.0
|
|
|
|
* @since 28-Apr-18
|
|
|
|
*/
|
|
|
|
public class StringUtils {
|
|
|
|
|
|
|
|
private static StringUtils INSTANCE = new StringUtils();
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
public static StringUtils get() {
|
|
|
|
return INSTANCE;
|
|
|
|
}
|
|
|
|
|
2018-12-09 11:48:32 +01:00
|
|
|
public List<String> splitString(String input, int splitSize) {
|
|
|
|
List<String> messages = new ArrayList<>();
|
|
|
|
int index = 0;
|
|
|
|
|
|
|
|
while (index < input.length()) {
|
|
|
|
messages.add(input.substring(index, Math.min(index + splitSize, input.length())));
|
|
|
|
index += splitSize;
|
|
|
|
}
|
|
|
|
|
|
|
|
return messages;
|
|
|
|
}
|
|
|
|
|
2020-03-19 19:52:32 +01:00
|
|
|
public String toNum(String s) {
|
|
|
|
StringBuilder t = new StringBuilder();
|
|
|
|
for (int i = 0; i < s.length(); ++i) {
|
|
|
|
char ch = s.charAt(i);
|
|
|
|
int n = (int)ch - (int)'a' + 1;
|
|
|
|
t.append(n);
|
|
|
|
}
|
|
|
|
return t.toString();
|
|
|
|
}
|
|
|
|
|
2018-04-27 22:22:03 +02:00
|
|
|
public String stripColor(String string) {
|
|
|
|
return ChatColor.stripColor(string);
|
|
|
|
}
|
|
|
|
|
|
|
|
public String translateColor(String string) {
|
|
|
|
return ChatColor.translateAlternateColorCodes('&', string);
|
|
|
|
}
|
|
|
|
|
2018-10-20 17:20:50 +02:00
|
|
|
public String translateLocation(Location location) {
|
|
|
|
String world = location.getWorld().getName();
|
|
|
|
int x = location.getBlockX();
|
|
|
|
int y = location.getBlockY();
|
|
|
|
int z = location.getBlockZ();
|
|
|
|
|
|
|
|
return Message.General_LocationFormat.toString()
|
|
|
|
.replace("{world}", world)
|
2019-10-07 23:25:54 +02:00
|
|
|
.replace("{x}", "" + x)
|
|
|
|
.replace("{y}", "" + y)
|
|
|
|
.replace("{z}", "" + z);
|
2018-10-20 17:20:50 +02:00
|
|
|
}
|
|
|
|
|
2018-11-17 14:49:25 +01:00
|
|
|
public Location fromStringToLocation(String input) {
|
2019-10-07 23:25:54 +02:00
|
|
|
if (input == null) return null;
|
2019-01-03 14:41:35 +01:00
|
|
|
|
2018-11-17 14:49:25 +01:00
|
|
|
String[] split = input.split(",");
|
|
|
|
|
2019-02-01 14:04:23 +01:00
|
|
|
try {
|
|
|
|
String worldInput = split[0].trim();
|
|
|
|
String xInput = split[1].trim();
|
|
|
|
String yInput = split[2].trim();
|
|
|
|
String zInput = split[3].trim();
|
|
|
|
World world = Bukkit.getWorld(worldInput);
|
2018-11-17 14:49:25 +01:00
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
if (NumberUtils.get().isInt(xInput) && NumberUtils.get().isInt(yInput) && NumberUtils.get().isInt(zInput)) {
|
2019-02-01 14:04:23 +01:00
|
|
|
return new Location(world, Integer.valueOf(xInput), Integer.valueOf(yInput), Integer.valueOf(zInput));
|
|
|
|
}
|
|
|
|
} catch (Exception ex) {
|
|
|
|
ServerUtils.get().logDebug("Exception caught in location making, returning null");
|
|
|
|
return null;
|
2018-11-17 14:49:25 +01:00
|
|
|
}
|
|
|
|
|
2019-02-01 14:04:23 +01:00
|
|
|
ServerUtils.get().logDebug("X, Y or Z is not number, returning null");
|
2018-11-17 14:49:25 +01:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2018-10-09 15:23:40 +02:00
|
|
|
public <T> String appendList(List<T> list) {
|
|
|
|
Queue<T> queue = new LinkedList<>(list);
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
while (!queue.isEmpty()) {
|
2018-10-09 15:23:40 +02:00
|
|
|
T object = queue.poll();
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
if (object == null) continue;
|
2018-10-09 15:23:40 +02:00
|
|
|
|
|
|
|
stringBuilder.append(object.toString());
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
if (queue.isEmpty()) {
|
2018-10-09 15:23:40 +02:00
|
|
|
stringBuilder.append(".");
|
|
|
|
} else {
|
|
|
|
stringBuilder.append(", ");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return stringBuilder.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
public String formatString(String string) {
|
2019-10-07 23:25:54 +02:00
|
|
|
if (string == null) return "null";
|
2018-11-18 16:06:12 +01:00
|
|
|
|
2018-10-09 15:23:40 +02:00
|
|
|
string = string.toLowerCase();
|
|
|
|
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
if (string.contains(" ")) {
|
|
|
|
for (String z : string.split(" ")) {
|
2018-10-09 15:23:40 +02:00
|
|
|
stringBuilder.append(Character.toUpperCase(z.charAt(0))).append(z.substring(1).toLowerCase());
|
|
|
|
}
|
2019-10-07 23:25:54 +02:00
|
|
|
} else if (string.contains("_")) {
|
2018-10-09 15:23:40 +02:00
|
|
|
String[] split = string.split("_");
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
for (int i = 0; i < split.length; i++) {
|
2018-10-09 15:23:40 +02:00
|
|
|
String z = split[i];
|
|
|
|
|
|
|
|
stringBuilder.append(Character.toUpperCase(z.charAt(0))).append(z.substring(1).toLowerCase());
|
|
|
|
|
2019-10-07 23:25:54 +02:00
|
|
|
if (i != (split.length - 1)) {
|
2018-10-09 15:23:40 +02:00
|
|
|
stringBuilder.append(" ");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
return Character.toUpperCase(string.charAt(0)) + string.substring(1).toLowerCase();
|
|
|
|
}
|
|
|
|
|
|
|
|
return stringBuilder.toString();
|
|
|
|
}
|
|
|
|
|
2018-04-27 22:22:03 +02:00
|
|
|
}
|