AmbienceEmitterAddCommand class
Пакет: com.hypixel.hytale.builtin.ambience.commands
Файл: com/hypixel/hytale/builtin/ambience/commands/AmbienceEmitterAddCommand.java
extends: AbstractPlayerCommand
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
|
|
break |
|
AmbientEmitterComponent |
var14 |
|
TransformComponent |
var15 |
|
Model |
var16 |
|
Ref |
var17 |
|
TransformComponent |
var6 |
|
Holder |
var7 |
|
SoundEvent |
var8 |
|
boolean |
var9 |
|
|
var9 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
GeneralCommandExceptionthrow new GeneralCommandException(MESSAGE_SERVER_COMMANDS_ERRORS_PLAYER_ONLY) |
|
|
if if(var6 != null) |
|
|
if if(!var9) |
abstract |
|
super super("add", "server.commands.ambience.emitter.add.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.ambience.commands;
class="kw">import com.hypixel.hytale.builtin.ambience.AmbiencePlugin;
class="kw">import com.hypixel.hytale.builtin.ambience.components.AmbientEmitterComponent;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.Holder;
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.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEvent;
class="kw">import com.hypixel.hytale.server.core.asset.type.soundevent.config.SoundEventLayer;
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.AssetArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.exceptions.GeneralCommandException;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.entity.nameplate.Nameplate;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.HiddenFromAdventurePlayers;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.PersistentModel;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
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 javax.annotation.Nonnull;
class="kw">public class AmbienceEmitterAddCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">static class="kw">final AssetArgumentType<SoundEvent, ?> SOUND_EVENT_ASSET_TYPE = new AssetArgumentType(
"server.commands.ambience.emitter.add.arg.soundEvent.name", SoundEvent.class, "server.commands.ambience.emitter.add.arg.soundEvent.usage"
);
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_SERVER_COMMANDS_ERRORS_PLAYER_ONLY = Message.translation("server.commands.errors.playerOnly");
@Nonnull
class="kw">private class="kw">final RequiredArg<SoundEvent> soundEventArg = this.withRequiredArg(
"soundEvent", "server.commands.ambience.emitter.add.arg.soundEvent.desc", SOUND_EVENT_ASSET_TYPE
);
class="kw">public AmbienceEmitterAddCommand() {
super("add", "server.commands.ambience.emitter.add.desc");
}
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
if (!var1.isPlayer()) {
throw new GeneralCommandException(MESSAGE_SERVER_COMMANDS_ERRORS_PLAYER_ONLY);
}
TransformComponent var6 = var2.getComponent(var3, TransformComponent.getComponentType());
if (var6 != null) {
Holder var7 = EntityStore.REGISTRY.newHolder();
SoundEvent var8 = this.soundEventArg.get(var1);
boolean var9 = false;
for (SoundEventLayer var13 : var8.getLayers()) {
if (var13.isLooping()) {
var9 = true;
break;
}
}
if (!var9) {
var1.sendMessage(Message.translation("server.commands.ambience.emitter.add.notLooping").param("soundEventId", var8.getId()));
} else {
AmbientEmitterComponent var14 = new AmbientEmitterComponent();
var14.setSoundEventId(var8.getId());
var7.addComponent(AmbientEmitterComponent.getComponentType(), var14);
TransformComponent var15 = var6.clone();
var7.addComponent(TransformComponent.getComponentType(), var15);
var7.addComponent(Nameplate.getComponentType(), new Nameplate(var8.getId()));
var7.ensureComponent(UUIDComponent.getComponentType());
var7.ensureComponent(HiddenFromAdventurePlayers.getComponentType());
Model var16 = AmbiencePlugin.get().getAmbientEmitterModel();
var7.addComponent(ModelComponent.getComponentType(), new ModelComponent(var16));
var7.addComponent(PersistentModel.getComponentType(), new PersistentModel(var16.toReference()));
Ref var17 = var2.addEntity(var7, AddReason.SPAWN);
if (var17 != null && var17.isValid()) {
var1.sendMessage(Message.translation("server.commands.ambience.emitter.add.added").param("soundEventId", var8.getId()));
} else {
var1.sendMessage(Message.translation("server.commands.ambience.emitter.add.failed").param("soundEventId", var8.getId()));
}
}
}
}
}