SpawnMarkersCommand.java
package com.hypixel.hytale.server.spawning.commands;
import com.hypixel.hytale.component.AddReason;
import com.hypixel.hytale.component.Holder;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.math.Axis;
import com.hypixel.hytale.server.core.Message;
import com.hypixel.hytale.server.core.asset.type.model.config.Model;
import com.hypixel.hytale.server.core.command.system.CommandContext;
import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
import com.hypixel.hytale.server.core.command.system.arguments.types.AssetArgumentType;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractCommandCollection;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
import com.hypixel.hytale.server.core.entity.UUIDComponent;
import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
import com.hypixel.hytale.server.core.modules.entity.component.HiddenFromAdventurePlayers;
import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
import com.hypixel.hytale.server.core.modules.entity.component.PersistentModel;
import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
import com.hypixel.hytale.server.core.universe.PlayerRef;
com.hypixel.hytale.server.core.universe.world.World;
com.hypixel.hytale.server.core.universe.world.WorldConfig;
com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
com.hypixel.hytale.server.spawning.assets.spawnmarker.config.SpawnMarker;
com.hypixel.hytale.server.spawning.spawnmarkers.SpawnMarkerEntity;
javax.annotation.Nonnull;
{
AssetArgumentType<SpawnMarker, ?> SPAWN_MARKER_ASSET_TYPE = (, SpawnMarker.class, );
{
(, );
.addSubCommand( ());
.addSubCommand( ());
.addSubCommand( ());
}
{
{
(, );
}
{
world.getWorldConfig();
worldConfig.setIsSpawnMarkersEnabled();
worldConfig.markChanged();
context.sendMessage(Message.translation().param(, world.getName()));
}
}
{
{
(, );
}
{
world.getWorldConfig();
worldConfig.setIsSpawnMarkersEnabled();
worldConfig.markChanged();
context.sendMessage(Message.translation().param(, world.getName()));
}
}
{
Message.translation();
RequiredArg<SpawnMarker> markerArg;
FlagArg flipArg;
{
(, );
.markerArg = .withRequiredArg(, , SpawnMarkersCommand.SPAWN_MARKER_ASSET_TYPE);
.flipArg = .withFlagArg(, );
}
{
(!context.isPlayer()) {
(COMMANDS_ERRORS_PLAYER_ONLY);
} {
(TransformComponent)store.getComponent(ref, TransformComponent.getComponentType());
transformComponent != ;
(SpawnMarker).markerArg.get(context);
();
spawnMarker.setSpawnMarker(marker);
Holder<EntityStore> holder = EntityStore.REGISTRY.newHolder();
holder.addComponent(SpawnMarkerEntity.getComponentType(), spawnMarker);
transformComponent.clone();
((Boolean).flipArg.get(context)) {
spawnerTransformComponent.getRotation().flipRotationOnAxis(Axis.Y);
}
holder.addComponent(TransformComponent.getComponentType(), spawnerTransformComponent);
holder.addComponent(Nameplate.getComponentType(), (marker.getId()));
holder.ensureComponent(UUIDComponent.getComponentType());
holder.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
SpawnMarkerEntity.getModel(marker);
holder.addComponent(ModelComponent.getComponentType(), (model));
holder.addComponent(PersistentModel.getComponentType(), (model.toReference()));
Ref<EntityStore> spawnMarkerRef = store.addEntity(holder, AddReason.SPAWN);
(spawnMarkerRef != && spawnMarkerRef.isValid()) {
context.sendMessage(Message.translation().param(, marker.getId()));
} {
context.sendMessage(Message.translation().param(, marker.getId()));
}
}
}
}
}