GameModeCommand class

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

Файл: com/hypixel/hytale/server/core/command/commands/player/GameModeCommand.java

extends: AbstractPlayerCommand

Поля (14)

МодификаторыТипИмя
private static final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD
private final RequiredArg<GameMode> gameModeArg
private final RequiredArg<PlayerRef> playerArg
PlayerRef var2
Ref var3
Store var4
Player var4
World var5
PlayerRef var5
Player var6
GameMode var6
GameMode var7
Message var7
Message var8

Методы (5)

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

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.GameMode;
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.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.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.permissions.HytalePermissions;
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 java.util.Locale;
class="kw">import javax.annotation.Nonnull;

class="kw">public class GameModeCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_GAMEMODE_ALREADY_IN_MODE_SELF = Message.translation("server.commands.gamemode.alreadyInMode.self");
   @Nonnull
   class="kw">private class="kw">final RequiredArg<GameMode> gameModeArg = this.withRequiredArg("gamemode", "server.commands.gamemode.gamemode.desc", ArgTypes.GAME_MODE);

   class="kw">public GameModeCommand() {
      super("gamemode", "server.commands.gamemode.desc");
      this.addAliases("gm");
      this.requirePermission(HytalePermissions.fromCommand("gamemode.self"));
      this.setPermissionGroups("hytale:Builder");
      this.addUsageVariant(new GameModeCommand.GameModeOtherCommand());
   }

   @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;
      GameMode var7 = this.gameModeArg.get(var1);
      if (var6.getGameMode() == var7) {
         var1.sendMessage(MESSAGE_COMMANDS_GAMEMODE_ALREADY_IN_MODE_SELF);
      } else {
         Player.setGameMode(var3, var7, var2);
         Message var8 = Message.translation("server.general.gamemodes." + var7.name().toLowerCase(Locale.ROOT));
         var1.sendMessage(Message.translation("server.commands.gamemode.success.self").param("mode", var8));
      }
   }

   class="kw">private class="kw">static class GameModeOtherCommand class="kw">extends CommandBase {
      class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
      @Nonnull
      class="kw">private class="kw">final RequiredArg<GameMode> gameModeArg = this.withRequiredArg("gamemode", "server.commands.gamemode.gamemode.desc", ArgTypes.GAME_MODE);
      @Nonnull
      class="kw">private class="kw">final RequiredArg<PlayerRef> playerArg = this.withRequiredArg("player", "server.commands.argtype.player.desc", ArgTypes.PLAYER_REF);

      GameModeOtherCommand() {
         super("server.commands.gamemode.other.desc");
         this.requirePermission(HytalePermissions.fromCommand("gamemode.other"));
         this.setPermissionGroups("hytale:WorldEditor");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PlayerRef var2 = this.playerArg.get(var1);
         Ref var3 = var2.getReference();
         if (var3 != null && var3.isValid()) {
            Store var4 = var3.getStore();
            World var5 = var4.getExternalData().getWorld();
            var5.execute(() -> {
               Player var4 = var4.getComponent(var3, Player.getComponentType());
               if (var4 == null) {
                  var1.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
               } else {
                  PlayerRef var5 = var4.getComponent(var3, PlayerRef.getComponentType());
                  assert var5 != null;
                  GameMode var6 = this.gameModeArg.get(var1);
                  if (var4.getGameMode() == var6) {
                     var1.sendMessage(Message.translation("server.commands.gamemode.alreadyInMode.other").param("username", var5.getUsername()));
                  } else {
                     Player.setGameMode(var3, var6, var4);
                     Message var7 = Message.translation("server.general.gamemodes." + var6.name().toLowerCase(Locale.ROOT));
                     var1.sendMessage(Message.translation("server.commands.gamemode.success.other").param("mode", var7).param("username", var5.getUsername()));
                  }
               }
            });
         } else {
            var1.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
         }
      }
   }
}