TriggerVolumeCreateCommand class

Пакет: com.hypixel.hytale.builtin.triggervolumes.command

Файл: com/hypixel/hytale/builtin/triggervolumes/command/TriggerVolumeCreateCommand.java

extends: AbstractWorldCommand

Поля (22)

МодификаторыТипИмя
break
break
break
final RequiredArg<String> nameArg
return
String var10
TriggerVolumeManager var11
Ref var12
UUIDComponent var13
TransformComponent var14
Vector3d var15
TriggerVolumeShape var16
var16
var16
var16
VolumeEntry var19
TriggerVolumesPlugin var4
String var5
String var6
Double var7
Double var8
Double var9

Методы (5)

МодификаторыВозвратСигнатура
if if(var11 != null)
if if(var13 != null)
if if(var14 != null)
abstract super super("create", "server.commands.triggervolume.create.desc")
switch switch(var6)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.triggervolumes.EntityTargetType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.TriggerVolumesPlugin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.TriggerVolumeManager;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.VolumeEntry;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.shape.BoxShape;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.shape.CylinderShape;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.shape.SphereShape;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.shape.TriggerVolumeShape;
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.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.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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.ArrayList;
class="kw">import java.util.EnumSet;
class="kw">import java.util.Locale;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class TriggerVolumeCreateCommand class="kw">extends AbstractWorldCommand {
   class="kw">private class="kw">final RequiredArg<String> nameArg = this.withRequiredArg("name", "server.commands.triggervolume.create.name.desc", ArgTypes.STRING);
   class="kw">private class="kw">final RequiredArg<String> shapeArg = this.withRequiredArg("shape", "server.commands.triggervolume.create.shape.desc", ArgTypes.STRING);
   class="kw">private class="kw">final RequiredArg<Double> dimension1Arg = this.withRequiredArg("dimension1", "server.commands.triggervolume.create.dimension1.desc", ArgTypes.DOUBLE);
   class="kw">private class="kw">final RequiredArg<Double> dimension2Arg = this.withRequiredArg("dimension2", "server.commands.triggervolume.create.dimension2.desc", ArgTypes.DOUBLE);
   class="kw">private class="kw">final RequiredArg<Double> dimension3Arg = this.withRequiredArg("dimension3", "server.commands.triggervolume.create.dimension3.desc", ArgTypes.DOUBLE);

   class="kw">public TriggerVolumeCreateCommand() {
      super("create", "server.commands.triggervolume.create.desc");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      TriggerVolumesPlugin var4 = TriggerVolumesPlugin.get();
      String var5 = this.nameArg.get(var1);
      String var6 = this.shapeArg.get(var1).toLowerCase(Locale.ROOT);
      Double var7 = this.dimension1Arg.get(var1);
      Double var8 = this.dimension2Arg.get(var1);
      Double var9 = this.dimension3Arg.get(var1);
      String var10 = var2.getName().toLowerCase(Locale.ROOT);
      TriggerVolumeManager var11 = var3.getResource(var4.getManagerResourceType());
      if (var11 != null) {
         if (var11.hasVolume(var5)) {
            var1.sendMessage(Message.translation("server.commands.triggervolume.create.alreadyExists").param("name", var5));
         } else {
            Ref var12 = var1.senderAsPlayerRef();
            if (var12 != null && var12.isValid()) {
               UUIDComponent var13 = var3.getComponent(var12, UUIDComponent.getComponentType());
               if (var13 != null) {
                  TransformComponent var14 = var3.getComponent(var12, TransformComponent.getComponentType());
                  if (var14 != null) {
                     Vector3d var15 = new Vector3d(var14.getPosition());
                     TriggerVolumeShape var16;
                     class="kw">switch (var6) {
                        case "box":
                           var16 = new BoxShape(new Vector3d(-var7, 0.0, -var9), new Vector3d(var7, var8, var9));
                           break;
                        case "sphere":
                           var16 = new SphereShape(new Vector3d(0.0, var8, 0.0), var7);
                           break;
                        case "cylinder":
                           var16 = new CylinderShape(new Vector3d(0.0, 0.0, 0.0), var7, var8);
                           break;
                        class="kw">default:
                           var1.sendMessage(Message.translation("server.commands.triggervolume.create.unknownShape").param("shape", var6));
                           class="kw">return;
                     }

                     VolumeEntry var19 = new VolumeEntry(var5, var10, var15, var16, new ArrayList<>(), EnumSet.of(EntityTargetType.PLAYER), true);
                     var11.register(var5, var19);
                     var11.notifyViewersAdd(var19);
                     var11.enqueueVolumeCreateEvent(var19, var12, var13.getUuid());
                     var1.sendMessage(Message.translation("server.commands.triggervolume.create.success").param("name", var5));
                  }
               }
            }
         }
      }
   }
}