130 lines
4.8 KiB
Java
130 lines
4.8 KiB
Java
package xyz.etztech.minecraftmanager;
|
|
|
|
import com.google.gson.JsonArray;
|
|
import net.md_5.bungee.api.chat.ClickEvent;
|
|
import net.md_5.bungee.api.chat.ComponentBuilder;
|
|
import net.md_5.bungee.api.chat.HoverEvent;
|
|
import net.md_5.bungee.api.chat.TextComponent;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.log4j.Logger;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.ChatColor;
|
|
import org.bukkit.entity.Player;
|
|
import xyz.etztech.core.web.Http;
|
|
import xyz.etztech.minecraftmanager.objects.ModelResponse;
|
|
|
|
import java.util.Map;
|
|
|
|
public class MCMUtil {
|
|
public static Logger globalLogger;
|
|
public static Logger staffLogger;
|
|
|
|
|
|
public static void init() {
|
|
MinecraftManager plugin = (MinecraftManager) Bukkit.getPluginManager().getPlugin("MinecraftManager");
|
|
String pluginPath = plugin.getDataFolder().getAbsolutePath();
|
|
System.setProperty("mcm.log", pluginPath + "/logs");
|
|
try {
|
|
globalLogger = Logger.getLogger("mcm.global");
|
|
} catch (Exception e) {
|
|
plugin.log("Could not connect to global log.");
|
|
}
|
|
if (plugin.getConfig().getBoolean("staff-chat.enabled")) {
|
|
try {
|
|
staffLogger = Logger.getLogger("mcm.staff");
|
|
} catch (Exception e) {
|
|
plugin.log("Could not connect to staff log.");
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void staffMessage(String message) {
|
|
staffMessage(message, false);
|
|
}
|
|
public static void staffMessage(String message, boolean mcm) {
|
|
log(staffLogger, message);
|
|
String tag = mcm ? "MCM " : "";
|
|
HoverEvent hover = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder(tag + "Staff Chat").create());
|
|
TextComponent text = new TextComponent(message);
|
|
text.setHoverEvent(hover);
|
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
if (player.hasPermission("minecraftmanager.staff")) {
|
|
player.spigot().sendMessage(text);
|
|
}
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage(message);
|
|
}
|
|
|
|
@Deprecated
|
|
public static void staffMessage(String message, String hoverCommand) {
|
|
log(staffLogger, message);
|
|
HoverEvent hover = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder("Staff Chat").create());
|
|
TextComponent text = new TextComponent(message);
|
|
text.setHoverEvent(hover);
|
|
if (StringUtils.isNotEmpty(hoverCommand)) {
|
|
text.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, hoverCommand));
|
|
}
|
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
if (player.hasPermission("minecraftmanager.staff")) {
|
|
player.spigot().sendMessage(text);
|
|
}
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage(message);
|
|
}
|
|
|
|
public static void staffMessage(TextComponent message) {
|
|
log(staffLogger, message.toPlainText());
|
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
if (player.hasPermission("minecraftmanager.staff")) {
|
|
player.spigot().sendMessage(message);
|
|
}
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage(message.toPlainText());
|
|
}
|
|
|
|
public static void globalMessage(String message) {
|
|
log(globalLogger, message);
|
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
player.sendMessage(message);
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage(message);
|
|
}
|
|
|
|
public static void globalMessage(TextComponent message) {
|
|
log(globalLogger, message.toPlainText());
|
|
for (Player player : Bukkit.getServer().getOnlinePlayers()) {
|
|
player.spigot().sendMessage(message);
|
|
}
|
|
Bukkit.getConsoleSender().sendMessage(message.toPlainText());
|
|
}
|
|
|
|
public static String getUUID(String playerName) {
|
|
String uuid = null;
|
|
try {
|
|
uuid = Bukkit.getPlayer(playerName).getUniqueId().toString();
|
|
} catch(Exception ex) {
|
|
try {
|
|
Map<String, String> filters = MCMAPI.setup();
|
|
filters.put("username__iexact", playerName);
|
|
ModelResponse response = new ModelResponse(Http.HTTP(MCMAPI.getModelUrl("player"), Http.Method.GET,
|
|
filters));
|
|
JsonArray players = response.getResults();
|
|
if (players.size() == 1) {
|
|
uuid = players.get(0).getAsJsonObject().get("uuid").getAsString();
|
|
}
|
|
} catch (Exception ignored) {}
|
|
}
|
|
return uuid;
|
|
}
|
|
|
|
public static void log(Logger logger, String message) {
|
|
try {
|
|
message = ChatColor.stripColor(message);
|
|
logger.info(message);
|
|
} catch (Exception ex) {
|
|
Bukkit.getServer().getConsoleSender().sendMessage("Could not log message! Check your log files!");
|
|
}
|
|
}
|
|
|
|
}
|