MacroCommandPlugin class

Пакет: com.hypixel.hytale.builtin.commandmacro

Файл: com/hypixel/hytale/builtin/commandmacro/MacroCommandPlugin.java

extends: JavaPlugin

Поля (10)

МодификаторыТипИмя
static MacroCommandPlugin instance
instance
Collection var2
Set var3
CommandRegistration var3
AbstractCommand var4
CommandRegistration var5
String var6
String var7
Set var8

Методы (11)

МодификаторыВозвратСигнатура
for for(MacroCommandBuilder var12 : var2)
for for(String var14 : var3)
static MacroCommandPlugin getMacroCommandPlugin get()
if if(var6 != null)
if if(var7 != null)
if if(var3 != null)
if if(var4 != null)
if if(var5 != null)
public void loadCommandMacroAssetvoid loadCommandMacroAsset(@Nonnull LoadedAssetsEvent<String, MacroCommandBuilder, DefaultAssetMap<String, MacroCommandBuilder>> var1)
private void rebuildRootvoid rebuildRoot(@Nonnull String var1, @Nonnull Collection<MacroCommandBuilder> var2)
abstract super super(var1)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.event.LoadedAssetsEvent;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
class="kw">import com.hypixel.hytale.server.core.command.system.AbstractCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandRegistration;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import java.util.Collection;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import javax.annotation.Nonnull;

class="kw">public class MacroCommandPlugin class="kw">extends JavaPlugin {
   class="kw">private class="kw">static MacroCommandPlugin instance;
   @Nonnull
   class="kw">private class="kw">final Map<String, CommandRegistration> rootRegistrations = new Object2ObjectOpenHashMap();

   class="kw">public class="kw">static MacroCommandPlugin get() {
      class="kw">return instance;
   }

   class="kw">public MacroCommandPlugin(@Nonnull JavaPluginInit var1) {
      super(var1);
   }

   @Override
   class="kw">protected void setup() {
      instance = this;
      this.getAssetRegistry()
         .register(
            ((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
                           MacroCommandBuilder.class, new DefaultAssetMap()
                        )
                        .setPath("MacroCommands"))
                     .setKeyFunction(MacroCommandBuilder::getId))
                  .setCodec(MacroCommandBuilder.CODEC))
               .build()
         );
      this.getEventRegistry().register(LoadedAssetsEvent.class, MacroCommandBuilder.class, this::loadCommandMacroAsset);
      this.getCommandRegistry().registerCommand(new WaitCommand());
      this.getCommandRegistry().registerCommand(new EchoCommand());
   }

   class="kw">public void loadCommandMacroAsset(@Nonnull LoadedAssetsEvent<String, MacroCommandBuilder, DefaultAssetMap<String, MacroCommandBuilder>> var1) {
      Collection var2 = ((DefaultAssetMap)var1.getAssetMap()).getAssetMap().values();
      Set var3 = new HashSet<>();

      for (MacroCommandBuilder var5 : var1.getLoadedAssets().values()) {
         String var6 = MacroCommandTreeBuilder.rootTokenOf(var5);
         if (var6 != null) {
            var3.add(var6);
         }
      }

      Set var8 = new HashSet<>();

      for (MacroCommandBuilder var12 : var2) {
         String var7 = MacroCommandTreeBuilder.rootTokenOf(var12);
         if (var7 != null) {
            var8.add(var7);
         }
      }

      for (String var13 : this.rootRegistrations.keySet()) {
         if (!var8.contains(var13)) {
            var3.add(var13);
         }
      }

      for (String var14 : var3) {
         this.rebuildRoot(var14, var2);
      }
   }

   class="kw">private void rebuildRoot(@Nonnull String var1, @Nonnull Collection<MacroCommandBuilder> var2) {
      CommandRegistration var3 = this.rootRegistrations.remove(var1);
      if (var3 != null) {
         var3.unregister();
      }

      AbstractCommand var4 = MacroCommandTreeBuilder.build(var1, var2);
      if (var4 != null) {
         CommandRegistration var5 = this.getCommandRegistry().registerCommand(var4);
         if (var5 != null) {
            this.rootRegistrations.put(var1, var5);
         }
      }
   }
}