forked from Minecraft/QoL
124 lines
4.0 KiB
Java
124 lines
4.0 KiB
Java
package xyz.etztech.qol;
|
|
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonParser;
|
|
import net.md_5.bungee.api.chat.BaseComponent;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.InputStream;
|
|
import java.io.InputStreamReader;
|
|
import java.net.URL;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import java.util.UUID;
|
|
|
|
public class EtzTechUtil
|
|
{
|
|
public static final String MOJANG_API = "https://api.mojang.com/";
|
|
public static final String UUID_API = "users/profiles/minecraft/{name}";
|
|
public static final String NAME_HISTORY_API = "user/profiles/{uuid}/names";
|
|
|
|
public static String path(String path, String key, String value) {
|
|
return path.replace("{" + key + "}", value);
|
|
}
|
|
|
|
public static void sms(CommandSender paramCommandSender, String paramString)
|
|
{
|
|
paramCommandSender.sendMessage(ChatColor.translateAlternateColorCodes('&', paramString));
|
|
}
|
|
|
|
public static void sms(Player paramPlayer, String paramString)
|
|
{
|
|
paramPlayer.sendMessage(ChatColor.translateAlternateColorCodes('&', paramString));
|
|
}
|
|
|
|
|
|
|
|
public static UUID asUUID(String uuid) {
|
|
try {
|
|
if (uuid.contains("-") && uuid.length() == 36) {
|
|
return UUID.fromString(uuid);
|
|
} else if (uuid.length() == 32) {
|
|
return UUID.fromString(uuid.substring(0, 8) + "-" + uuid.substring(8, 12) + "-" + uuid.substring(12, 16)
|
|
+ "-" + uuid.substring(16, 20) + "-" + uuid.substring(20, 32));
|
|
} else {
|
|
return null;
|
|
}
|
|
} catch (Exception ex) {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static String getUUID(String username) {
|
|
// First, look for an online player
|
|
for (Player player : Bukkit.getOnlinePlayers()) {
|
|
if (player.getName().toLowerCase().equals(username.toLowerCase())) {
|
|
return formatUUID(player.getUniqueId().toString(), false);
|
|
}
|
|
}
|
|
// Nothing? Well shit, guess we better ask Mojang
|
|
try {
|
|
InputStream response = new URL(MOJANG_API + EtzTechUtil.path(UUID_API, "name", username)).openStream();
|
|
BufferedReader reader = new BufferedReader(new InputStreamReader(response));
|
|
JsonObject jsonObject = new JsonParser().parse(reader.readLine()).getAsJsonObject();
|
|
return jsonObject.get("id").getAsString();
|
|
} catch (Exception ex) {
|
|
//QoL.getInstance().log("Could not connect to Mojang API.");
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static String formatUUID(String uuid, boolean dash) {
|
|
if (uuid.contains("-") && uuid.length() == 36) {
|
|
if (dash) {
|
|
return uuid;
|
|
} else {
|
|
return uuid.replace("-", "");
|
|
}
|
|
} else if (!uuid.contains("-") && uuid.length() == 32) {
|
|
if (dash) {
|
|
return uuid.substring(0, 8) + "-" + uuid.substring(8, 12) + "-" + uuid.substring(12, 16)
|
|
+ "-" + uuid.substring(16, 20) + "-" + uuid.substring(20, 32);
|
|
} else {
|
|
return uuid;
|
|
}
|
|
} else {
|
|
return uuid;
|
|
}
|
|
}
|
|
|
|
public static String componentText(BaseComponent... components) {
|
|
StringBuilder text = new StringBuilder();
|
|
for (BaseComponent component : components) {
|
|
text.append(ChatColor.stripColor(component.toPlainText()));
|
|
}
|
|
return text.toString();
|
|
}
|
|
|
|
public static String formatDate(Date date) {
|
|
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
|
|
return sdf.format(date);
|
|
}
|
|
|
|
public static String yesNo(boolean yesNo) {
|
|
if (yesNo) {
|
|
return ChatColor.GREEN + "Yes";
|
|
} else {
|
|
return ChatColor.RED + "No";
|
|
}
|
|
}
|
|
|
|
public static int minutesToTicks(int minutes) {
|
|
return minutes*60*20;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|