WarpSetCommand class

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

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

extends: AbstractPlayerCommand

Поля (12)

МодификаторыТипИмя
TransformComponent var10
HeadRotation var11
Vector3d var12
Rotation3f var13
Transform var14
Warp var15
IEventDispatcher var2
ReplaceWarpEvent var3
TeleportPlugin var6
String var7
String var8
Warp var9

Методы (2)

МодификаторыВозвратСигнатура
static boolean cancelboolean cancel(@Nonnull CommandContext var0, @Nonnull Warp var1)
abstract super super("set", "server.commands.warp.set.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.commands.event.ReplaceWarpEvent;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.event.IEventDispatcher;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
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.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.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HeadRotation;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.time.Instant;
class="kw">import java.util.Locale;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class WarpSetCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_TELEPORT_WARP_NOT_LOADED = Message.translation("server.commands.teleport.warp.notLoaded");
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_TELEPORT_WARP_RESERVED_KEYWORD = Message.translation("server.commands.teleport.warp.reservedKeyword");
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> nameArg = this.withRequiredArg("name", "server.commands.warp.set.name.desc", ArgTypes.STRING);
   @Nonnull
   class="kw">private class="kw">final FlagArg forceArg = this.withFlagArg("force", "server.commands.warp.set.force.desc");
   class="kw">private class="kw">final Set<String> keywords;

   class="kw">public WarpSetCommand(@Nonnull Set<String> var1) {
      super("set", "server.commands.warp.set.desc");
      this.keywords = var1;
      this.requirePermission(HytalePermissions.fromCommand("warp.set"));
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      TeleportPlugin var6 = TeleportPlugin.get();
      if (!var6.isWarpsLoaded()) {
         var1.sendMessage(MESSAGE_COMMANDS_TELEPORT_WARP_NOT_LOADED);
      } else {
         String var7 = this.nameArg.get(var1);
         String var8 = var7.toLowerCase(Locale.ROOT);
         Warp var9 = var6.getWarps().get(var8);
         if (var1.provided(this.forceArg) || var9 == null || !cancel(var1, var9)) {
            if (this.keywords.contains(var8)) {
               var1.sendMessage(MESSAGE_COMMANDS_TELEPORT_WARP_RESERVED_KEYWORD);
            } else {
               TransformComponent var10 = var2.getComponent(var3, TransformComponent.getComponentType());
               assert var10 != null;
               HeadRotation var11 = var2.getComponent(var3, HeadRotation.getComponentType());
               assert var11 != null;
               Vector3d var12 = var10.getPosition();
               Rotation3f var13 = var11.getRotation();
               Transform var14 = new Transform(new Vector3d(var12), new Rotation3f(var13));
               Warp var15 = new Warp(var14, var7, var5, var4.getUsername(), Instant.now());
               TeleportPlugin.get().addWarp(var15, true);
               var1.sendMessage(Message.translation("server.commands.teleport.warp.setWarp").param("name", var15.getId()));
            }
         }
      }
   }

   class="kw">private class="kw">static boolean cancel(@Nonnull CommandContext var0, @Nonnull Warp var1) {
      IEventDispatcher var2 = HytaleServer.get().getEventBus().dispatchFor(ReplaceWarpEvent.class);
      if (!var2.hasListener()) {
         class="kw">return false;
      }

      ReplaceWarpEvent var3 = var2.dispatch(new ReplaceWarpEvent(var1));
      if (!var3.isCancelled()) {
         class="kw">return false;
      }

      if (var3.getCancelReason() != null) {
         var0.sendMessage(var3.getCancelReason());
      } else {
         var0.sendMessage(WarpCommand.MESSAGE_COMMANDS_MODIFICATION_CANCELLED.param("name", var1.getId()));
      }

      class="kw">return true;
   }
}