PluginLoadCommand class

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

Файл: com/hypixel/hytale/server/core/plugin/commands/PluginCommand.java

extends: CommandBase

Поля (12)

МодификаторыТипИмя
private final FlagArg bootFlag
break
break
break
break
private final RequiredArg<PluginIdentifier> pluginNameArg
return
PluginManager var2
PluginIdentifier var3
PluginBase var4
boolean var5
HytaleServerConfig var6

Методы (4)

МодификаторыВозвратСигнатура
protected void executeSyncprotected void executeSync(@Nonnull CommandContext var1)
if if(var3 != null)
if if(var5)
abstract super super("load", "server.commands.plugin.load.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.common.plugin.PluginIdentifier;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
class="kw">import com.hypixel.hytale.server.core.HytaleServerConfig;
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.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.SingleArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractCommandCollection;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginBase;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginManager;
class="kw">import com.hypixel.hytale.server.core.plugin.PluginState;
class="kw">import com.hypixel.hytale.server.core.plugin.pages.PluginListPage;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.message.MessageFormat;
class="kw">import java.util.Set;
class="kw">import java.util.stream.Collectors;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PluginCommand class="kw">extends AbstractCommandCollection {
   @Nonnull
   class="kw">private class="kw">static class="kw">final SingleArgumentType<PluginIdentifier> PLUGIN_IDENTIFIER_ARG_TYPE = new SingleArgumentType<PluginIdentifier>(
      "server.commands.parsing.argtype.pluginidentifier.name", "server.commands.parsing.argtype.pluginidentifier.usage"
   ) {
      @Nonnull
      class="kw">public PluginIdentifier parse(@Nonnull String var1, @Nonnull ParseResult var2) {
         try {
            class="kw">return PluginIdentifier.fromString(var1);
         } catch (Exception var4) {
            var2.fail(Message.translation("server.commands.parsing.argtype.pluginidentifier.fail").param("input", var1).param("error", var4.getMessage()));
            class="kw">return null;
         }
      }
   };

   class="kw">public PluginCommand() {
      super("plugin", "server.commands.plugin.desc");
      this.addAliases("plugins", "pl");
      this.addSubCommand(new PluginCommand.PluginListCommand());
      this.addSubCommand(new PluginCommand.PluginLoadCommand());
      this.addSubCommand(new PluginCommand.PluginUnloadCommand());
      this.addSubCommand(new PluginCommand.PluginReloadCommand());
      this.addSubCommand(new PluginCommand.PluginManageCommand());
   }

   class="kw">private class="kw">static class PluginListCommand class="kw">extends CommandBase {
      class="kw">public PluginListCommand() {
         super("list", "server.commands.plugin.list.desc");
         this.addAliases("ls");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PluginManager var2 = PluginManager.get();
         Set var3 = var2.getPlugins().stream().map(PluginBase::getIdentifier).map(PluginIdentifier::toString).map(Message::raw).collect(Collectors.toSet());
         var1.sendMessage(MessageFormat.list(Message.translation("server.commands.plugin.plugins"), var3));
      }
   }

   class="kw">private class="kw">static class PluginLoadCommand class="kw">extends CommandBase {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<PluginIdentifier> pluginNameArg = this.withRequiredArg(
         "pluginName", "server.commands.plugin.load.pluginName.desc", PluginCommand.PLUGIN_IDENTIFIER_ARG_TYPE
      );
      @Nonnull
      class="kw">private class="kw">final FlagArg bootFlag = this.withFlagArg("boot", "server.commands.plugin.load.boot.desc");

      class="kw">public PluginLoadCommand() {
         super("load", "server.commands.plugin.load.desc");
         this.addAliases("l");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PluginManager var2 = PluginManager.get();
         PluginIdentifier var3 = this.pluginNameArg.get(var1);
         PluginBase var4 = var2.getPlugin(var3);
         if (var3 != null) {
            boolean var5 = this.bootFlag.get(var1);
            HytaleServerConfig var6 = HytaleServer.get().getConfig();
            HytaleServerConfig.setBoot(var6, var3, true);
            if (var6.consumeHasChanged()) {
               HytaleServerConfig.save(var6).join();
            }

            var1.sendMessage(Message.translation("server.commands.plugin.bootListEnabled").param("id", var3.toString()));
            if (var5) {
               class="kw">return;
            }
         }

         if (var4 != null && var4.getState() != PluginState.DISABLED) {
            assert var3 != null;
            class="kw">switch (var4.getState()) {
               case NONE:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToLoadInvalidState").param("id", var3.toString()));
                  break;
               case SETUP:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToLoadSetup").param("id", var3.toString()));
                  break;
               case START:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToLoadStarted").param("id", var3.toString()));
                  break;
               case ENABLED:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToLoadAlreadyEnabled").param("id", var3.toString()));
                  break;
               class="kw">default:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedPluginState").param("state", var4.getState().toString()));
            }
         } else {
            var1.sendMessage(Message.translation("server.commands.plugin.pluginLoading").param("id", var3.toString()));
            if (var2.load(var3)) {
               var1.sendMessage(Message.translation("server.commands.plugin.pluginLoaded").param("id", var3.toString()));
            } else {
               var1.sendMessage(Message.translation("server.commands.plugin.failedToLoadPlugin").param("id", var3.toString()));
            }
         }
      }
   }

   class="kw">private class="kw">static class PluginManageCommand class="kw">extends AbstractPlayerCommand {
      class="kw">public PluginManageCommand() {
         super("manage", "server.commands.plugin.manage.desc");
         this.addAliases("m");
      }

      @Override
      class="kw">protected void execute(
         @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
      ) {
         Player var6 = var2.getComponent(var3, Player.getComponentType());
         assert var6 != null;
         var6.getPageManager().openCustomPage(var3, var2, new PluginListPage(var4));
      }
   }

   class="kw">private class="kw">static class PluginReloadCommand class="kw">extends CommandBase {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<PluginIdentifier> pluginNameArg = this.withRequiredArg(
         "pluginName", "server.commands.plugin.reload.pluginName.desc", PluginCommand.PLUGIN_IDENTIFIER_ARG_TYPE
      );

      class="kw">public PluginReloadCommand() {
         super("reload", "server.commands.plugin.reload.desc");
         this.addAliases("r");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PluginManager var2 = PluginManager.get();
         PluginIdentifier var3 = this.pluginNameArg.get(var1);
         PluginBase var4 = var2.getPlugin(var3);
         if (var4 != null) {
            class="kw">switch (var4.getState()) {
               case NONE:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToReloadState").param("id", var3.toString()));
                  break;
               case SETUP:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToReloadSetup").param("id", var3.toString()));
                  break;
               case START:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToReloadStarted").param("id", var3.toString()));
                  break;
               case ENABLED:
                  if (var2.reload(var3)) {
                     var1.sendMessage(Message.translation("server.commands.plugin.pluginReloaded").param("id", var3.toString()));
                  } else {
                     var1.sendMessage(Message.translation("server.commands.plugin.failedToReload").param("id", var3.toString()));
                  }
                  break;
               case DISABLED:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToReloadDisabled").param("id", var3.toString()));
                  break;
               class="kw">default:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedPluginState").param("state", var4.getState().toString()));
            }
         } else {
            var1.sendMessage(Message.translation("server.commands.plugin.notLoaded").param("id", var3.toString()));
         }
      }
   }

   class="kw">private class="kw">static class PluginUnloadCommand class="kw">extends CommandBase {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<PluginIdentifier> pluginNameArg = this.withRequiredArg(
         "pluginName", "server.commands.plugin.unload.pluginName.desc", PluginCommand.PLUGIN_IDENTIFIER_ARG_TYPE
      );
      @Nonnull
      class="kw">private class="kw">final FlagArg bootFlag = this.withFlagArg("boot", "server.commands.plugin.unload.boot.desc");

      class="kw">public PluginUnloadCommand() {
         super("unload", "server.commands.plugin.unload.desc");
         this.addAliases("u");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PluginManager var2 = PluginManager.get();
         PluginIdentifier var3 = this.pluginNameArg.get(var1);
         PluginBase var4 = var2.getPlugin(var3);
         if (var3 != null) {
            boolean var5 = this.bootFlag.get(var1);
            HytaleServerConfig var6 = HytaleServer.get().getConfig();
            HytaleServerConfig.setBoot(var6, var3, false);
            if (var6.consumeHasChanged()) {
               HytaleServerConfig.save(var6).join();
            }

            var1.sendMessage(Message.translation("server.commands.plugin.bootListDisabled").param("id", var3.toString()));
            if (var5) {
               class="kw">return;
            }
         }

         if (var4 != null) {
            class="kw">switch (var4.getState()) {
               case NONE:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToUnloadState").param("id", var3.toString()));
                  break;
               case SETUP:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToUnloadSetup").param("id", var3.toString()));
                  break;
               case START:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToUnloadStarted").param("id", var3.toString()));
                  break;
               case ENABLED:
                  var1.sendMessage(Message.translation("server.commands.plugin.pluginUnloading").param("id", var3.toString()));
                  if (var2.unload(var3)) {
                     var1.sendMessage(Message.translation("server.commands.plugin.pluginUnloaded").param("id", var3.toString()));
                  } else {
                     var1.sendMessage(Message.translation("server.commands.plugin.failedToUnload").param("id", var3.toString()));
                  }
                  break;
               case DISABLED:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedToUnloadDisabled").param("id", var3.toString()));
                  break;
               class="kw">default:
                  var1.sendMessage(Message.translation("server.commands.plugin.failedPluginState").param("state", var4.getState().toString()));
            }
         } else {
            var1.sendMessage(Message.translation("server.commands.plugin.notLoaded").param("id", var3.toString()));
         }
      }
   }
}