TriggerVolumeTestCommand class

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

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

extends: AbstractWorldCommand

Поля (51)

МодификаторыТипИмя
final String TEST_PREFIX
SendMessageEffect var100
VolumeEntry var101
VolumeEntry var102
VolumeEntry var103
double var11
GroupEntry var11
double var13
EnumSet var15
BoxShape var16
int var17
int var18
SendMessageEffect var19
VolumeEntry var20
VolumeEntry var21
VolumeEntry var22
VolumeEntry var23
VolumeEntry var24
VolumeEntry var25
VolumeEntry var26
VolumeEntry var27
SendMessageEffect var28
SendMessageEffect var29
SendMessageEffect var30
VolumeEntry var31
VolumeEntry var32
VolumeEntry var33
VolumeEntry var34
String var35
String var36
VolumeEntry var37
VolumeEntry var38
RandomChanceCondition var39
TriggerVolumesPlugin var4
SendMessageEffect var40
RandomChanceCondition var41
SendMessageEffect var42
SendMessageEffect var43
Ref var44
ArrayList var46
TransformComponent var47
TriggerVolumeManager var5
Vector3d var51
float var53
String var6
ArrayList var7
Vector3d var7
VolumeEntry var8
VolumeEntry var97
SpawnNpcEffect var98
VolumeEntry var99

Методы (27)

МодификаторыВозвратСигнатура
for for(String var48 : var7)
for for(String var52 : var46)
for for(VolumeEntry var9 : var5)
for for(VolumeEntry var10 : var5)
if if(var5 != null)
if if(var47 != null)
if if(var20 != null)
if if(var21 != null)
if if(var22 != null)
if if(var23 != null)
if if(var24 != null)
if if(var25 != null)
if if(var26 != null)
if if(var27 != null)
if if(var31 != null)
if if(var32 != null)
if if(var33 != null)
if if(var34 != null)
if if(var37 != null)
if if(var38 != null)
if if(var97 != null)
if if(var99 != null)
if if(var101 != null)
if if(var102 != null && var103 != null)
private void registerTestGroupvoid registerTestGroup(@Nonnull TriggerVolumeManager var1, @Nonnull String var2, @Nonnull String var3, @Nonnull Map<String, String> var4, @Nonnull List<VolumeEntry> var5, @Nonnull Set<EntityTargetType> var6)
private int registerVolumeint registerVolume(@Nonnull TriggerVolumeManager var1, @Nonnull String var2, @Nonnull String var3, @Nonnull Vector3d var4, @Nonnull TriggerVolumeShape var5, @Nonnull List<TriggerEffect> var6, @Nonnull Set<EntityTargetType> var7)
abstract super super("test", "server.commands.triggervolume.test.desc")

Исходный код

Показать/скрыть
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.effect.EffectOrigin;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.TriggerEventType;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.DeleteVolumeEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.ItemCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.ModifyTagsEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.PlaySoundEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.PlayVfxEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.SendMessageEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.SetVelocityEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.ShowEventTitleEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.SpawnNpcEffect;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.BlockTypeCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.CooldownCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.EntityCountCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.GameModeCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.PermissionCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.RandomChanceCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.effect.builtin.conditions.TagCondition;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.ConditionTiming;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.CooldownMode;
class="kw">import com.hypixel.hytale.builtin.triggervolumes.manager.GroupEntry;
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.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.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
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.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;

class="kw">public class TriggerVolumeTestCommand class="kw">extends AbstractWorldCommand {
   class="kw">private class="kw">static class="kw">final String TEST_PREFIX = "tvtest_";
   class="kw">private class="kw">static class="kw">final double SPACING = 8.0;
   class="kw">private class="kw">static class="kw">final int TEST_GROUP_COLOR = 3386111;
   class="kw">private class="kw">final FlagArg cleanupFlag = this.withFlagArg("cleanup", "server.commands.triggervolume.test.cleanup.desc");

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

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      TriggerVolumesPlugin var4 = TriggerVolumesPlugin.get();
      TriggerVolumeManager var5 = var3.getResource(var4.getManagerResourceType());
      if (var5 != null) {
         String var6 = var2.getName().toLowerCase(Locale.ROOT);
         if (!this.cleanupFlag.get(var1)) {
            Ref var44 = var1.senderAsPlayerRef();
            if (var44 != null && var44.isValid()) {
               TransformComponent var47 = var3.getComponent(var44, TransformComponent.getComponentType());
               if (var47 != null) {
                  Vector3d var51 = var47.getPosition();
                  float var53 = var47.getRotation().yaw();
                  double var11 = -Math.sin(var53);
                  double var13 = -Math.cos(var53);
                  EnumSet var15 = EnumSet.of(EntityTargetType.PLAYER);
                  BoxShape var16 = new BoxShape(new Vector3d(-2.0, 0.0, -2.0), new Vector3d(2.0, 3.0, 2.0));
                  int var17 = 0;
                  int var18 = 0;
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_enter_message",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.enter")),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_exit_message",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.EXIT, "server.commands.triggervolume.test.msg.exit")),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_launch_pad",
                     slotPosition(var51, var11, var13, ++var18),
                     new SphereShape(new Vector3d(0.0, 1.5, 0.0), 3.0),
                     List.of(SetVelocityEffect.create(TriggerEventType.ENTER, new Vector3d(0.0, 20.0, 0.0), false)),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_play_sound",
                     slotPosition(var51, var11, var13, ++var18),
                     new CylinderShape(new Vector3d(0.0, 0.0, 0.0), 3.0, 4.0),
                     List.of(PlaySoundEffect.create(TriggerEventType.ENTER, "SFX_Player_Pickup_Item")),
                     var15
                  );
                  SendMessageEffect var19 = SendMessageEffect.create(TriggerEventType.TICK, "server.commands.triggervolume.test.msg.tick");
                  var19.setInterval(2.0F);
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_tick_message_2s",
                     slotPosition(var51, var11, var13, ++var18),
                     new SphereShape(new Vector3d(0.0, 1.5, 0.0), 3.0),
                     List.of(var19),
                     var15
                  );
                  VolumeEntry var20 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_random_chance",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.conditional")),
                     var15
                  );
                  if (var20 != null) {
                     var20.getConditions().add(RandomChanceCondition.create(TriggerEventType.ENTER, 0.5F));
                     var17++;
                  }

                  VolumeEntry var21 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_cooldown_per_player",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownConditionPerPlayerAccepted")),
                     var15
                  );
                  if (var21 != null) {
                     var21.getConditions().add(CooldownCondition.create(TriggerEventType.ENTER, 5.0F, CooldownCondition.Scope.PER_PLAYER));
                     var21.getRejectionEffects()
                        .add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownConditionPerPlayerRejected"));
                     var17++;
                  }

                  VolumeEntry var22 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_cooldown_whole_volume",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownConditionWholeVolumeAccepted")),
                     var15
                  );
                  if (var22 != null) {
                     var22.getConditions().add(CooldownCondition.create(TriggerEventType.ENTER, 5.0F, CooldownCondition.Scope.WHOLE_VOLUME));
                     var22.getRejectionEffects()
                        .add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownConditionWholeVolumeRejected"));
                     var17++;
                  }

                  VolumeEntry var23 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_reject_gamemode",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.gameModeAccepted")),
                     var15
                  );
                  if (var23 != null) {
                     var23.getConditions().add(GameModeCondition.create(TriggerEventType.ENTER, GameMode.Creative));
                     var23.getRejectionEffects()
                        .add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.gameModeRejected"));
                     var17++;
                  }

                  VolumeEntry var24 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_reject_permission",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.permissionAccepted")),
                     var15
                  );
                  if (var24 != null) {
                     var24.getConditions().add(PermissionCondition.create(TriggerEventType.ENTER, "hytale.triggervolume.test.permission"));
                     var24.getRejectionEffects()
                        .add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.permissionRejected"));
                     var17++;
                  }

                  VolumeEntry var25 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_reject_item",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.itemAccepted")),
                     var15
                  );
                  if (var25 != null) {
                     var25.getConditions().add(ItemCondition.create(TriggerEventType.ENTER, "Potion_Empty", ItemCondition.Location.IN_HAND, 1));
                     var25.getRejectionEffects().add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.itemRejected"));
                     var17++;
                  }

                  VolumeEntry var26 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_condition_after_delay",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.afterDelayAccepted")),
                     var15
                  );
                  if (var26 != null) {
                     var26.setActivationDelay(2.0F);
                     var26.setConditionTiming(ConditionTiming.AFTER_VOLUME_DELAY);
                     var26.getConditions().add(RandomChanceCondition.create(TriggerEventType.ENTER, 1.0F));
                     var26.getRejectionEffects()
                        .add(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.afterDelayRejected"));
                     var17++;
                  }

                  VolumeEntry var27 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_delayed_2s_message",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.delayed")),
                     var15
                  );
                  if (var27 != null) {
                     var27.setActivationDelay(2.0F);
                     var17++;
                  }

                  SendMessageEffect var28 = SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.seq1");
                  SendMessageEffect var29 = SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.seq2");
                  var29.setDelay(1.0F);
                  SendMessageEffect var30 = SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.seq3");
                  var30.setDelay(2.0F);
                  var17 += this.registerVolume(
                     var5, var6, "tvtest_sequenced_messages", slotPosition(var51, var11, var13, ++var18), var16, List.of(var28, var29, var30), var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_event_title",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        ShowEventTitleEffect.create(
                           TriggerEventType.ENTER,
                           "server.commands.triggervolume.test.msg.titlePrimary",
                           "server.commands.triggervolume.test.msg.titleSecondary",
                           true
                        )
                     ),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_one_shot_destroy",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.oneShot"),
                        DeleteVolumeEffect.create(TriggerEventType.ENTER)
                     ),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_vfx_at_origin",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(PlayVfxEffect.create(TriggerEventType.ENTER, "Totem_Heal_Simple_Test", PlayVfxEffect.Anchor.VOLUME)),
                     var15
                  );
                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_vfx_at_entity",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(PlayVfxEffect.create(TriggerEventType.ENTER, "Totem_Heal_Simple_Test", PlayVfxEffect.Anchor.ENTITY)),
                     var15
                  );
                  VolumeEntry var31 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_cooldown_per_player_5s",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownPerPlayer")),
                     var15
                  );
                  if (var31 != null) {
                     var31.setCooldown(5.0F);
                     var31.setCooldownMode(CooldownMode.PER_ENTITY);
                     var17++;
                  }

                  VolumeEntry var32 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_cooldown_total_10s",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.cooldownTotal")),
                     var15
                  );
                  if (var32 != null) {
                     var32.setCooldown(10.0F);
                     var32.setCooldownMode(CooldownMode.TOTAL);
                     var17++;
                  }

                  VolumeEntry var33 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_block_placed_soil_dirt",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.BLOCK_PLACED, "server.commands.triggervolume.test.msg.blockPlaced")),
                     var15
                  );
                  if (var33 != null) {
                     var33.getConditions().add(BlockTypeCondition.create(TriggerEventType.BLOCK_PLACED, "Soil_Dirt"));
                     var17++;
                  }

                  VolumeEntry var34 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_tag_mutation",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.tagMutationEnter"),
                        ModifyTagsEffect.set(TriggerEventType.ENTER, "tvtest_state", "active"),
                        ModifyTagsEffect.remove(TriggerEventType.EXIT, "tvtest_state", null),
                        SendMessageEffect.create(TriggerEventType.TAG_ADDED, "server.commands.triggervolume.test.msg.tagAdded"),
                        SendMessageEffect.create(TriggerEventType.TAG_REMOVED, "server.commands.triggervolume.test.msg.tagRemoved")
                     ),
                     var15
                  );
                  if (var34 != null) {
                     var34.getConditions().add(TagCondition.forEvent(TriggerEventType.TAG_ADDED, "tvtest_state", "active"));
                     var34.getConditions().add(TagCondition.forEvent(TriggerEventType.TAG_REMOVED, "tvtest_state", "active"));
                     var17++;
                  }

                  String var35 = "tvtest_remote_target";
                  String var36 = "tvtest_remote_state";
                  VolumeEntry var37 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_remote_tag_target",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        SendMessageEffect.create(TriggerEventType.TAG_ADDED, "server.commands.triggervolume.test.msg.remoteTagAdded"),
                        SendMessageEffect.create(TriggerEventType.TAG_REMOVED, "server.commands.triggervolume.test.msg.remoteTagRemoved")
                     ),
                     var15
                  );
                  if (var37 != null) {
                     var37.setTags(Map.of(var35, "target"));
                     var37.getConditions().add(TagCondition.forEvent(TriggerEventType.TAG_ADDED, var36, "armed"));
                     var37.getConditions().add(TagCondition.forEvent(TriggerEventType.TAG_REMOVED, var36, "armed"));
                     var17++;
                  }

                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_remote_tag_controller",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.remoteControllerEnter"),
                        ModifyTagsEffect.set(TriggerEventType.ENTER, var36, "armed").withMatchTag(var35, null),
                        SendMessageEffect.create(TriggerEventType.EXIT, "server.commands.triggervolume.test.msg.remoteControllerExit"),
                        ModifyTagsEffect.remove(TriggerEventType.EXIT, var36, null).withMatchTag(var35, null)
                     ),
                     var15
                  );
                  VolumeEntry var38 = this.registerVolumeEntry(
                     var5, var6, "tvtest_multi_entry", slotPosition(var51, var11, var13, ++var18), var16, List.of(), var15
                  );
                  if (var38 != null) {
                     RandomChanceCondition var39 = RandomChanceCondition.create(TriggerEventType.ENTER, 1.0F);
                     SendMessageEffect var40 = SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.multiEntryFirst");
                     RandomChanceCondition var41 = RandomChanceCondition.create(TriggerEventType.ENTER, 0.0F);
                     var41.setEntry(1);
                     SendMessageEffect var42 = SendMessageEffect.create(
                        TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.multiEntrySecondSuccess"
                     );
                     var42.setEntry(1);
                     SendMessageEffect var43 = SendMessageEffect.create(
                        TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.multiEntrySecondRejected"
                     );
                     var43.setEntry(1);
                     var38.getConditions().add(var39);
                     var38.getConditions().add(var41);
                     var38.getEffects().add(var40);
                     var38.getEffects().add(var42);
                     var38.getRejectionEffects().add(var43);
                     var17++;
                  }

                  VolumeEntry var97 = this.registerVolumeEntry(
                     var5, var6, "tvtest_spawn_npc_on_death", slotPosition(var51, var11, var13, ++var18), var16, List.of(), EnumSet.of(EntityTargetType.NPC)
                  );
                  if (var97 != null) {
                     SpawnNpcEffect var98 = SpawnNpcEffect.create(TriggerEventType.ENTITY_DIED, "Chicken", EffectOrigin.ENTITY);
                     var98.setDelay(2.0F);
                     var97.getEffects().add(var98);
                     var17++;
                  }

                  VolumeEntry var99 = this.registerVolumeEntry(
                     var5, var6, "tvtest_entity_count_tick", slotPosition(var51, var11, var13, ++var18), var16, List.of(), var15
                  );
                  if (var99 != null) {
                     SendMessageEffect var100 = SendMessageEffect.create(TriggerEventType.TICK, "server.commands.triggervolume.test.msg.entityCount");
                     var100.setInterval(1.0F);
                     var99.getEffects().add(var100);
                     var99.getConditions().add(EntityCountCondition.create(TriggerEventType.TICK, EntityCountCondition.Comparison.AT_LEAST, 1));
                     var17++;
                  }

                  VolumeEntry var101 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_block_used_any_usable",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.BLOCK_USED, "server.commands.triggervolume.test.msg.blockUsed")),
                     var15
                  );
                  if (var101 != null) {
                     var101.getConditions().add(BlockTypeCondition.create(TriggerEventType.BLOCK_USED));
                     var17++;
                  }

                  VolumeEntry var102 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_delete_group_member_a",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.deleteGroupMember")),
                     var15
                  );
                  VolumeEntry var103 = this.registerVolumeEntry(
                     var5,
                     var6,
                     "tvtest_delete_group_member_b",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.deleteGroupMember")),
                     var15
                  );
                  if (var102 != null && var103 != null) {
                     this.registerTestGroup(var5, var6, "tvtest_delete_group_arena", Map.of("tvtest_group", "arena"), List.of(var102, var103), var15);
                     var17 += 2;
                  }

                  var17 += this.registerVolume(
                     var5,
                     var6,
                     "tvtest_delete_group_controller",
                     slotPosition(var51, var11, var13, ++var18),
                     var16,
                     List.of(
                        SendMessageEffect.create(TriggerEventType.ENTER, "server.commands.triggervolume.test.msg.deleteGroupController"),
                        DeleteVolumeEffect.create(TriggerEventType.ENTER).withMatchTag("tvtest_group", "arena").withDeleteGroup(true)
                     ),
                     var15
                  );
                  var1.sendMessage(Message.translation("server.commands.triggervolume.test.success").param("count", var17));
               }
            }
         } else {
            ArrayList var7 = new ArrayList<>();

            for (Entry var9 : var5.getVolumesMap().entrySet()) {
               if (var9.getKey().startsWith("tvtest_")) {
                  var7.add(var9.getKey());
               }
            }

            for (String var48 : var7) {
               var5.unregister(var48);
               var5.notifyViewersRemove(var48);
            }

            ArrayList var46 = new ArrayList<>();

            for (String var10 : var5.getGroupsMap().keySet()) {
               if (var10.startsWith("tvtest_")) {
                  var46.add(var10);
               }
            }

            for (String var52 : var46) {
               var5.unregisterGroup(var52);
            }

            var1.sendMessage(Message.translation("server.commands.triggervolume.test.cleaned").param("count", var7.size()));
         }
      }
   }

   @Nonnull
   class="kw">private class="kw">static Vector3d slotPosition(@Nonnull Vector3d var0, double var1, double var3, int var5) {
      class="kw">return new Vector3d(var0.x() + var1 * 8.0 * var5, var0.y(), var0.z() + var3 * 8.0 * var5);
   }

   class="kw">private int registerVolume(
      @Nonnull TriggerVolumeManager var1,
      @Nonnull String var2,
      @Nonnull String var3,
      @Nonnull Vector3d var4,
      @Nonnull TriggerVolumeShape var5,
      @Nonnull List<TriggerEffect> var6,
      @Nonnull Set<EntityTargetType> var7
   ) {
      this.registerVolumeEntry(var1, var2, var3, var4, var5, var6, var7);
      class="kw">return 1;
   }

   @Nullable
   class="kw">private VolumeEntry registerVolumeEntry(
      @Nonnull TriggerVolumeManager var1,
      @Nonnull String var2,
      @Nonnull String var3,
      @Nonnull Vector3d var4,
      @Nonnull TriggerVolumeShape var5,
      @Nonnull List<TriggerEffect> var6,
      @Nonnull Set<EntityTargetType> var7
   ) {
      if (var1.hasVolume(var3)) {
         var1.unregister(var3);
      }

      VolumeEntry var8 = new VolumeEntry(var3, var2, var4, var5, new ArrayList<>(var6), var7, true);
      var8.setName(var3);
      var1.register(var3, var8);
      class="kw">return var8;
   }

   class="kw">private void registerTestGroup(
      @Nonnull TriggerVolumeManager var1,
      @Nonnull String var2,
      @Nonnull String var3,
      @Nonnull Map<String, String> var4,
      @Nonnull List<VolumeEntry> var5,
      @Nonnull Set<EntityTargetType> var6
   ) {
      if (var1.hasGroup(var3)) {
         var1.unregisterGroup(var3);
      }

      Vector3d var7 = new Vector3d();

      for (VolumeEntry var9 : var5) {
         var7.add(var9.getPosition());
      }

      if (!var5.isEmpty()) {
         var7.div(var5.size());
      }

      GroupEntry var11 = new GroupEntry(var3, var2, var7, new ArrayList<>(), EnumSet.copyOf(var6), true, 3386111);
      var11.setName(var3);
      var11.setTags(var4);
      var1.registerGroup(var3, var11);

      for (VolumeEntry var10 : var5) {
         var10.setGroupId(var3);
         var11.addMember(var10.getId());
      }
   }
}