123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package me.km.snuviscript;
- import me.hammerle.snuviscript.code.ISnuviLogger;
- import me.hammerle.snuviscript.code.Script;
- import me.hammerle.snuviscript.exceptions.StackTrace;
- import me.km.permissions.Permissions;
- import net.minecraft.server.MinecraftServer;
- import net.minecraft.util.Util;
- import net.minecraft.util.text.ITextComponent;
- import net.minecraft.util.text.StringTextComponent;
- public class SnuviLogger implements ISnuviLogger {
- private boolean printErrorToConsole = true;
- private boolean printDebugToConsole = true;
- private MinecraftServer server = null;
- private Permissions perms = null;
- private final RingArray<String> debugHistory = new RingArray(100);
- private final RingArray<String> errorHistory = new RingArray(100);
- public void setConsoleErrorLogging(boolean b) {
- printErrorToConsole = b;
- }
- public void setConsoleDebugLogging(boolean b) {
- printDebugToConsole = b;
- }
- public void setPlayerLoggingData(MinecraftServer server, Permissions perms) {
- this.server = server;
- this.perms = perms;
- }
- public RingArray<String> getDebugHistory() {
- return debugHistory;
- }
- public RingArray<String> getErrorHistory() {
- return errorHistory;
- }
- private void sendToPlayers(ITextComponent text, String perm) {
- if(server != null && perms != null && server.getPlayerList() != null) {
- server.getPlayerList().getPlayers().forEach(p -> {
- if(perms.has(p, perm)) {
- p.sendMessage(text, Util.DUMMY_UUID);
- }
- });
- }
- }
- @Override
- public void print(String message, Exception ex, String function, String scriptname, Script sc, StackTrace lines) {
- StringBuilder sb = new StringBuilder();
- sb.append("[§cLogger§r] ");
- String color;
- if(ex == null) {
- color = "§e";
- sb.append(color).append(message).append("§r");
- } else {
- color = "§c";
- sb.append(color).append(ex.getClass().getSimpleName()).append("§r: '").append(color).append(ex.getMessage());
- if(message != null && !message.isEmpty()) {
- sb.append(" - ").append(message);
- }
- sb.append("§r'");
- }
- if(scriptname != null && !scriptname.isEmpty()) {
- sb.append(" in script '").append(color).append(scriptname).append("§r'");
- }
- if(sc != null) {
- sb.append(" id '").append(color).append(sc.getId()).append("§r'");
- }
- if(function != null && !function.isEmpty()) {
- sb.append(" in function '").append(color).append(function).append("§r'");
- }
- if(lines != null) {
- sb.append(" in line '").append(color).append(lines).append("§r'");
- }
- String s = sb.toString();
- StringTextComponent text = new StringTextComponent(s);
- if(ex == null) {
- debugHistory.add(s);
- if(printDebugToConsole && server != null) {
- server.sendMessage(text, Util.DUMMY_UUID);
- }
- sendToPlayers(text, "script.debug");
- } else {
- errorHistory.add(s);
- if(printErrorToConsole && server != null) {
- server.sendMessage(text, Util.DUMMY_UUID);
- }
- sendToPlayers(text, "script.error");
- }
- }
- }
|