Scope enum
Пакет: com.hypixel.hytale.builtin.audio.commands
Файл: com/hypixel/hytale/builtin/audio/commands/AudioStateSetCommand.java
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
|
World,
Self, |
Players |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.audio.commands;
class="kw">import com.hypixel.hytale.builtin.audio.components.AudioStateComponent;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.AudioStateAuthority;
class="kw">import com.hypixel.hytale.protocol.FadeCurve;
class="kw">import com.hypixel.hytale.protocol.StateTransition;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.audiostate.config.AudioState;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.OptionalArg;
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.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 java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class AudioStateSetCommand class="kw">extends AbstractWorldCommand {
@Nonnull
class="kw">private class="kw">final RequiredArg<AudioState> audioStateArg = this.withRequiredArg(
"audioState", "server.commands.audio.state.set.arg.audiostate.desc", ArgTypes.AUDIO_STATE_ASSET
);
@Nonnull
class="kw">private class="kw">final RequiredArg<String> valueArg = this.withRequiredArg("value", "server.commands.audio.state.set.arg.value.desc", ArgTypes.STRING);
@Nonnull
class="kw">private class="kw">final OptionalArg<Float> fadeMsArg = this.withOptionalArg("fadeMs", "server.commands.audio.state.set.arg.fadems.desc", ArgTypes.FLOAT);
@Nonnull
class="kw">private class="kw">final OptionalArg<FadeCurve> curveArg = this.withOptionalArg(
"curve", "server.commands.audio.state.set.arg.curve.desc", ArgTypes.forEnum("FadeCurve", FadeCurve.class)
);
@Nonnull
class="kw">private class="kw">final OptionalArg<AudioStateSetCommand.Scope> scopeArg = this.withOptionalArg(
"scope", "server.commands.audio.state.set.arg.scope.desc", ArgTypes.forEnum("Scope", AudioStateSetCommand.Scope.class)
);
@Nonnull
class="kw">private class="kw">final OptionalArg<List<PlayerRef>> playersArg = this.withListOptionalArg(
"players", "server.commands.audio.state.set.arg.players.desc", ArgTypes.PLAYER_REF
);
class="kw">public AudioStateSetCommand() {
super("set", "server.commands.audio.state.set.desc");
}
@Override
class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
AudioState var4 = this.audioStateArg.get(var1);
if (var4.getAuthority() != AudioStateAuthority.Server) {
var1.sendMessage(Message.translation("server.commands.audio.state.set.error.clientAuthority").param("audioState", var4.getId()));
} else {
String var5 = this.valueArg.get(var1);
String[] var6 = var4.getValues();
int var7 = -1;
if (var6 != null) {
for (int var8 = 0; var8 < var6.length; var8++) {
if (var6[var8].equals(var5)) {
var7 = var8;
break;
}
}
}
if (var7 < 0) {
var1.sendMessage(Message.translation("server.commands.audio.state.set.error.unknownValue").param("audioState", var4.getId()).param("value", var5));
} else {
int var18 = AudioState.getAssetMap().getIndex(var4.getId());
Float var9 = this.fadeMsArg.provided(var1) ? this.fadeMsArg.get(var1) : null;
FadeCurve var10 = this.curveArg.provided(var1) ? this.curveArg.get(var1) : null;
StateTransition var11 = buildTransitionOverride(var9, var10);
AudioStateSetCommand.Scope var12 = this.scopeArg.provided(var1) ? this.scopeArg.get(var1) : AudioStateSetCommand.Scope.World;
int var13 = 0;
class="kw">switch (var12) {
case World:
for (PlayerRef var21 : var2.getPlayerRefs()) {
Ref var22 = var21.getReference();
if (var22 != null && applyToPlayer(var3, var22, var18, var7, var11)) {
var13++;
}
}
break;
case Self:
Ref var19 = var1.senderAsPlayerRef();
if (var19 == null) {
var1.sendMessage(Message.translation("server.commands.audio.state.set.error.noSender"));
class="kw">return;
}
if (applyToPlayer(var3, var19, var18, var7, var11)) {
var13++;
}
break;
case Players:
if (!this.playersArg.provided(var1)) {
var1.sendMessage(Message.translation("server.commands.audio.state.set.error.playersRequired"));
class="kw">return;
}
List var14 = this.playersArg.get(var1);
if (var14 == null || var14.isEmpty()) {
var1.sendMessage(Message.translation("server.commands.audio.state.set.error.playersRequired"));
class="kw">return;
}
for (PlayerRef var16 : var14) {
if (var16 != null) {
Ref var17 = var16.getReference();
if (var17 != null && applyToPlayer(var3, var17, var18, var7, var11)) {
var13++;
}
}
}
}
var1.sendMessage(
Message.translation("server.commands.audio.state.set.success")
.param("audioState", var4.getId())
.param("value", var5)
.param("count", Integer.toString(var13))
);
}
}
}
class="kw">private class="kw">static boolean applyToPlayer(@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1, int var2, int var3, @Nullable StateTransition var4) {
AudioStateComponent var5 = var0.getComponent(var1, AudioStateComponent.getComponentType());
if (var5 == null) {
class="kw">return false;
}
var5.setValue(var2, var3, var4);
class="kw">return true;
}
@Nullable
class="kw">private class="kw">static StateTransition buildTransitionOverride(@Nullable Float var0, @Nullable FadeCurve var1) {
if (var0 == null && var1 == null) {
class="kw">return null;
}
StateTransition var2 = new StateTransition();
var2.fromValueIndex = -1;
var2.toValueIndex = -1;
var2.durationMs = var0 != null ? var0 : 0.0F;
var2.curve = var1 != null ? var1 : FadeCurve.Linear;
var2.syncTo = null;
class="kw">return var2;
}
class="kw">public enum Scope {
World,
Self,
Players;
Scope() {
}
}
}