WarpListCommand class

Пакет: com.hypixel.hytale.builtin.teleport.commands.warp

Файл: com/hypixel/hytale/builtin/teleport/commands/warp/WarpListCommand.java

extends: CommandBase

Поля (14)

МодификаторыТипИмя
final int WARPS_PER_LIST_PAGE
Ref var11
Store var12
World var13
Map var2
int var3
Player var4
List var4
PlayerRef var5
String var5
List var5
int var6
List var7
int var8

Методы (3)

МодификаторыВозвратСигнатура
for for(Warp var10 : var7)
if if(var3 < 1)
abstract super super("list", "server.commands.warp.list.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.teleport.commands.warp;

class="kw">import com.hypixel.hytale.builtin.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
class="kw">import com.hypixel.hytale.builtin.teleport.WarpListPage;
class="kw">import com.hypixel.hytale.common.util.ListUtil;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
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.OptionalArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
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 com.hypixel.hytale.sneakythrow.SneakyThrow;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;

class="kw">public class WarpListCommand class="kw">extends CommandBase {
   class="kw">private class="kw">static class="kw">final int WARPS_PER_LIST_PAGE = 8;
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_TELEPORT_WARP_NOT_LOADED = Message.translation("server.commands.teleport.warp.notLoaded");
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_TELEPORT_WARP_NO_WARPS = Message.translation("server.commands.teleport.warp.noWarps");
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_TELEPORT_WARP_PAGE_NUM_TOO_HIGH = Message.translation("server.commands.teleport.warp.pageNumTooHigh");
   @Nonnull
   class="kw">private class="kw">final OptionalArg<Integer> pageArg = this.withOptionalArg("page", "server.commands.warp.list.page.desc", ArgTypes.INTEGER);

   class="kw">public WarpListCommand() {
      super("list", "server.commands.warp.list.desc");
      this.requirePermission(HytalePermissions.fromCommand("warp.list"));
      this.setPermissionGroups("hytale:Builder");
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      if (!TeleportPlugin.get().isWarpsLoaded()) {
         var1.sendMessage(MESSAGE_COMMANDS_TELEPORT_WARP_NOT_LOADED);
      } else {
         Map var2 = TeleportPlugin.get().getWarps();
         if (var1.isPlayer() && !this.pageArg.provided(var1)) {
            Ref var11 = var1.senderAsPlayerRef();
            if (var11 != null && var11.isValid()) {
               Store var12 = var11.getStore();
               World var13 = var12.getExternalData().getWorld();
               var13.execute(() -> {
                  Player var4 = var12.getComponent(var11, Player.getComponentType());
                  assert var4 != null;
                  PlayerRef var5 = var12.getComponent(var11, PlayerRef.getComponentType());
                  assert var5 != null;
                  var4.getPageManager().openCustomPage(var11, var12, new WarpListPage(var5, var2, var4x -> {
                     String var5 = HytalePermissions.fromCommand("warp.go");
                     if (var5.hasPermission(var5)) {
                        try {
                           WarpCommand.tryGo(var1, var4x, var11, var12);
                        } catch (Exception var7) {
                           throw SneakyThrow.sneakyThrow(var7);
                        }
                     }
                  }));
               });
            } else {
               var1.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
            }
         } else if (var2.isEmpty()) {
            var1.sendMessage(MESSAGE_COMMANDS_TELEPORT_WARP_NO_WARPS);
         } else {
            int var3 = this.pageArg.provided(var1) ? this.pageArg.get(var1) : 1;
            if (var3 < 1) {
               var1.sendMessage(Message.translation("server.commands.teleport.warp.pageNumTooLow").param("page", var3));
            } else {
               List var4 = new ObjectArrayList(var2.values());
               var4.sort((var0, var1x) -> var1x.getCreationDate().compareTo(var0.getCreationDate()));
               List var5 = ListUtil.partition(var4, 8);
               if (var5.size() < var3) {
                  var1.sendMessage(MESSAGE_COMMANDS_TELEPORT_WARP_PAGE_NUM_TOO_HIGH);
               } else {
                  var1.sendMessage(Message.translation("server.commands.teleport.warp.listHeader").param("page", var3).param("pages", var5.size()));
                  int var6 = (var3 - 1) * 8;
                  List var7 = var5.get(var3 - 1);
                  int var8 = 1;

                  for (Warp var10 : var7) {
                     var1.sendMessage(
                        Message.translation("server.commands.teleport.warp.listEntry")
                           .param("index", var6 + var8)
                           .param("name", var10.getId())
                           .param("creator", var10.getCreator())
                     );
                     var8++;
                  }
               }
            }
         }
      }
   }
}