LogCommand class

Пакет: com.hypixel.hytale.server.core.command.commands.debug

Файл: com/hypixel/hytale/server/core/command/commands/debug/LogCommand.java

extends: CommandBase

Поля (10)

МодификаторыТипИмя
String var2
var2
HytaleLoggerBackend var3
var3
var3
Level var4
boolean var5
var5
Map var6
Map var7

Методы (2)

МодификаторыВозвратСигнатура
public Level parsepublic Level parse(@Nonnull String var1, @Nonnull ParseResult var2)
abstract super super("log", "server.commands.log.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.commands.debug;

class="kw">import com.hypixel.hytale.logger.backend.HytaleLoggerBackend;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.ParseResult;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.OptionalArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.SingleArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Arrays;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.logging.Level;
class="kw">import java.util.stream.Collectors;
class="kw">import javax.annotation.Nonnull;

class="kw">public class LogCommand class="kw">extends CommandBase {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Level[] STANDARD_LEVELS = new Level[]{
      Level.OFF, Level.SEVERE, Level.WARNING, Level.INFO, Level.CONFIG, Level.FINE, Level.FINER, Level.FINEST, Level.ALL
   };
   @Nonnull
   class="kw">private class="kw">static class="kw">final String LEVELS_STRING = Arrays.stream(STANDARD_LEVELS).map(Level::getName).collect(Collectors.joining(", "));
   @Nonnull
   class="kw">private class="kw">static class="kw">final SingleArgumentType<Level> LOG_LEVEL = new SingleArgumentType<Level>(
      "server.commands.parsing.argtype.logLevel.name",
      Message.translation("server.commands.parsing.argtype.logLevel.usage").param("levels", LEVELS_STRING),
      Arrays.stream(STANDARD_LEVELS).map(Level::getName).toArray(String[]::new)
   ) {
      @Nonnull
      class="kw">public Level parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            class="kw">return Level.parse(var1.toUpperCase(Locale.ROOT));
         } catch (IllegalArgumentException var4) {
            var2.fail(Message.translation("server.commands.log.invalidLevel").param("input", var1).param("level", Level.INFO.getName()));
            class="kw">return Level.INFO;
         }
      }
   };
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> loggerArg = this.withRequiredArg("logger", "server.commands.log.logger.desc", ArgTypes.STRING);
   @Nonnull
   class="kw">private class="kw">final OptionalArg<Level> levelArg = this.withOptionalArg("level", "server.commands.log.level.desc", LOG_LEVEL);
   @Nonnull
   class="kw">private class="kw">final FlagArg saveFlag = this.withFlagArg("save", "server.commands.log.save.desc");
   @Nonnull
   class="kw">private class="kw">final FlagArg resetFlag = this.withFlagArg("reset", "server.commands.log.reset.desc");

   class="kw">public LogCommand() {
      super("log", "server.commands.log.desc");
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      String var2 = this.loggerArg.get(var1);
      HytaleLoggerBackend var3;
      if (var2.equalsIgnoreCase("global")) {
         var2 = "global";
         var3 = HytaleLoggerBackend.getLogger();
      } else {
         var3 = HytaleLoggerBackend.getLogger(var2);
      }

      if (this.levelArg.provided(var1)) {
         Level var4 = this.levelArg.get(var1);
         var3.setLevel(var4);
         boolean var5 = false;
         if (this.saveFlag.get(var1)) {
            Map var6 = new Object2ObjectOpenHashMap(HytaleServer.get().getConfig().getLogLevels());
            var6.put(var3.getLoggerName(), var4);
            HytaleServer.get().getConfig().setLogLevels(var6);
            var5 = true;
         }

         var1.sendMessage(
            Message.translation("server.commands.log.setLogger")
               .param("name", var2)
               .param("level", var4.getName())
               .param("saved", var5 ? " and saved to config!!" : "")
         );
      } else {
         if (this.resetFlag.get(var1)) {
            Map var7 = new Object2ObjectOpenHashMap(HytaleServer.get().getConfig().getLogLevels());
            var7.remove(var3.getLoggerName());
            HytaleServer.get().getConfig().setLogLevels(var7);
            var1.sendMessage(Message.translation("server.commands.log.removedLogger").param("name", var2));
         }

         var1.sendMessage(Message.translation("server.commands.log.setLoggerNoSave").param("name", var2).param("level", var3.getLevel().getName()));
      }
   }
}