AudioMusicForceCommand class

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

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

extends: AbstractTargetPlayersCommand

Поля (9)

МодификаторыТипИмя
final int MAX_RECURSION_DEPTH
MusicContainer var10
ForcedMusicTracker var11
IndexedAssetMap var4
MusicContainer var5
ArrayList var6
int var7
int var8
int var9

Методы (9)

МодификаторыВозвратСигнатура
static void collectUnresolvedRefsvoid collectUnresolvedRefs(@Nonnull MusicContainer var0, @Nonnull List<String> var1, @Nonnull HashSet<String> var2, int var3)
abstract collectUnresolvedRefs collectUnresolvedRefs(var10, var1, var2, var3 + 1)
for for(Ref var10 : var4)
if if(var11 != null)
if if(var3 <= 16)
if if(var8 != null)
if if(var9 == Integer.MIN_VALUE)
if if(var10 != null)
abstract super super("force", "server.commands.audio.music.force.desc")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.audio.commands;

class="kw">import com.hypixel.hytale.assetstore.map.IndexedAssetMap;
class="kw">import com.hypixel.hytale.builtin.audio.components.ForcedMusicTracker;
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.musiccontainer.config.MusicContainer;
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.AbstractTargetPlayersCommand;
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.HashSet;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;

class="kw">public class AudioMusicForceCommand class="kw">extends AbstractTargetPlayersCommand {
   class="kw">private class="kw">static class="kw">final int MAX_RECURSION_DEPTH = 16;
   @Nonnull
   class="kw">private class="kw">final RequiredArg<MusicContainer> musicContainerArg = this.withRequiredArg(
      "musicContainerId", "server.commands.audio.music.force.arg.musiccontainerid.desc", ArgTypes.MUSIC_CONTAINER_ASSET
   );

   class="kw">public AudioMusicForceCommand() {
      super("force", "server.commands.audio.music.force.desc");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3, @Nonnull List<Ref<EntityStore>> var4) {
      MusicContainer var5 = this.musicContainerArg.get(var1);
      ArrayList var6 = new ArrayList<>();
      collectUnresolvedRefs(var5, var6, new HashSet<>(), 0);
      if (!var6.isEmpty()) {
         var1.sendMessage(
            Message.translation("server.commands.audio.music.force.unresolved").param("music", var5.getId()).param("refs", String.join(", ", var6))
         );
      } else {
         int var7 = MusicContainer.getAssetMap().getIndex(var5.getId());
         int var8 = 0;

         for (Ref var10 : var4) {
            ForcedMusicTracker var11 = var3.getComponent(var10, ForcedMusicTracker.getComponentType());
            if (var11 != null) {
               var11.setCurrentContainerIndex(var7);
               var8++;
            }
         }

         var1.sendMessage(Message.translation("server.commands.audio.music.force.success").param("music", var5.getId()).param("count", var8));
      }
   }

   class="kw">private class="kw">static void collectUnresolvedRefs(@Nonnull MusicContainer var0, @Nonnull List<String> var1, @Nonnull HashSet<String> var2, int var3) {
      if (var3 <= 16) {
         if (var2.add(var0.getId())) {
            IndexedAssetMap var4 = MusicContainer.getAssetMap();

            for (String var8 : var0.getChildIds()) {
               if (var8 != null) {
                  int var9 = var4.getIndex(var8);
                  if (var9 == Integer.MIN_VALUE) {
                     var1.add(var8);
                  } else {
                     MusicContainer var10 = var4.getAsset(var8);
                     if (var10 != null) {
                        collectUnresolvedRefs(var10, var1, var2, var3 + 1);
                     }
                  }
               }
            }
         }
      }
   }
}