AudioStateSetCommand class

Пакет: com.hypixel.hytale.builtin.audio.commands

Файл: com/hypixel/hytale/builtin/audio/commands/AudioStateSetCommand.java

extends: AbstractWorldCommand

Поля (24)

МодификаторыТипИмя
World, Self, Players
break
break
break
return
return
return
FadeCurve var10
StateTransition var11
AudioStateSetCommand.Scope var12
int var13
List var14
Ref var17
int var18
Ref var19
StateTransition var2
Ref var22
AudioState var4
String var5
AudioStateComponent var5
String[] var6
int var7
var7
Float var9

Методы (12)

МодификаторыВозвратСигнатура
Scope Scope()
static boolean applyToPlayerboolean applyToPlayer(@Nonnull Store<EntityStore> var0, @Nonnull Ref<EntityStore> var1, int var2, int var3, @Nullable StateTransition var4)
for for(int var8 = 0; var8 < var6.length; var8++)
for for(PlayerRef var16 : var14)
if if(var6 != null)
if if(var7 < 0)
if if(var19 == null)
if if(var16 != null)
if if(var5 == null)
if if(var0 == null && var1 == null)
abstract super super("set", "server.commands.audio.state.set.desc")
switch switch(var12)

Исходный код

Показать/скрыть
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() {
      }
   }
}