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));
}
}
}
}
}
}
}