WorldEventConfigPage class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.ui

Файл: com/hypixel/hytale/builtin/adventure/worldevents/ui/WorldEventConfigPage.java

extends: WorldEventPanelPage

Поля (31)

МодификаторыТипИмя
final String KIND_EVENT
break
break
break
break
break
break
WorldEventRecord var11
WorldEventPanelPage.Row var12
WorldEventRecord var19
UUID var2
boolean var20
World var4
WorldEventsConfig var4
WorldEventsConfig var5
int var5
var5
WorldEventManager var6
WorldEventRecord[] var6
WorldEventStorage var7
WorldEventRecord var7
int var8
var8
var8
var8
var8
var8
var8
var8
int var9
var9

Методы (17)

МодификаторыВозвратСигнатура
static boolean handleGlobalboolean handleGlobal(@Nonnull WorldEventRecord var0, @Nonnull WorldEventPanelPage.Action var1)
abstract return handleGlobalreturn handleGlobal(var7, var3.action)
if if(var5 == null)
if if(var8 >= 400)
if if(var9 == 0)
if if(var8 >= 400)
if if(var9 == 0)
if if(var3.action != null && var3.kind != null && var3.id != null)
if if(var4 == null)
if if(var5 >= 0 && var5 < var6.length)
if if(var7 == null)
if if(var2 == null)
static boolean isRunningboolean isRunning(@Nonnull WorldEventRecord var0, @Nonnull WorldEventManager var1)
private boolean matchesRecordboolean matchesRecord(@Nonnull WorldEventRecord var1)
abstract super super(var1)
switch switch(var3.action)
switch switch(var1)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.GlobalWorldEventManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventRecord;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventStorage;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventsConfig;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStartAction;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.action.EventStopAction;
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.ui.builder.UICommandBuilder;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder;
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.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class WorldEventConfigPage class="kw">extends WorldEventPanelPage {
   class="kw">private class="kw">static class="kw">final String KIND_EVENT = "event";
   class="kw">private class="kw">static class="kw">final String KIND_GLOBAL = "global";

   class="kw">public WorldEventConfigPage(@Nonnull PlayerRef var1) {
      super(var1);
   }

   @Nullable
   @Override
   class="kw">protected WorldEventPanelPage.Tab tab() {
      class="kw">return WorldEventPanelPage.Tab.CONFIG;
   }

   @Nonnull
   @Override
   class="kw">protected String titleKey() {
      class="kw">return "server.customUI.worldEventPanel.tab.config";
   }

   @Nonnull
   @Override
   class="kw">protected String descriptionKey() {
      class="kw">return "server.customUI.worldEventPanel.tab.config.desc";
   }

   @Override
   class="kw">protected void buildContent(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, @Nonnull Store<EntityStore> var3) {
      World var4 = var3.getExternalData().getWorld();
      WorldEventsConfig var5 = config(var4);
      if (var5 == null) {
         this.appendText(var1, "#ListContainer", 0, Message.translation("server.customUI.worldEventPanel.config.missing"));
      } else {
         WorldEventManager var6 = var3.getResource(WorldEventManager.getResourceType());
         WorldEventStorage var7 = var3.getResource(WorldEventStorage.getResourceType());
         int var8 = 0;
         var8 = this.appendSection(var1, "#ListContainer", var8, Message.translation("server.customUI.worldEventPanel.section.settings"));
         var8 = this.appendProperty(
            var1, "#ListContainer", var8, Message.translation("server.customUI.worldEventPanel.field.exclusionRadius"), String.valueOf(var5.exclusionRadius())
         );
         var8 = this.appendSection(
            var1, "#ListContainer", var8, Message.translation("server.customUI.worldEventPanel.section.worldEvents").param("count", var5.events().length)
         );
         int var9 = 0;

         for (int var10 = 0; var10 < var5.events().length; var10++) {
            WorldEventRecord var11 = var5.events()[var10];
            if (var11 != null && this.matchesRecord(var11)) {
               if (var8 >= 400) {
                  break;
               }

               WorldEventPanelPage.Row var12 = new WorldEventPanelPage.Row("event", String.valueOf(var10));
               if (var11.id() != null) {
                  var12.sub(var11.id().toString());
               } else {
                  var12.sub(Message.translation("server.customUI.worldEventPanel.config.noId"));
               }

               var8 = this.appendRow(
                  var1,
                  var2,
                  var8,
                  var12.label(var11.event())
                     .status(recordColor(var11, var6, var7))
                     .badge(recordBadge(var11, var6, var7))
                     .primary(Message.translation("server.customUI.worldEventPanel.action.start"), WorldEventPanelPage.Action.RowPrimary)
                     .secondary(Message.translation("server.customUI.worldEventPanel.action.cancel"), WorldEventPanelPage.Action.RowSecondary)
               );
               var9++;
            }
         }

         if (var9 == 0) {
            var8 = this.appendText(var1, "#ListContainer", var8, Message.translation("server.customUI.worldEventPanel.config.noEvents"));
         }

         var8 = this.appendSection(
            var1,
            "#ListContainer",
            var8,
            Message.translation("server.customUI.worldEventPanel.section.globalEvents").param("count", var5.globalEvents().length)
         );
         var9 = 0;

         for (int var18 = 0; var18 < var5.globalEvents().length; var18++) {
            WorldEventRecord var19 = var5.globalEvents()[var18];
            if (var19 != null && var19.id() != null && this.matchesRecord(var19)) {
               if (var8 >= 400) {
                  break;
               }

               boolean var20 = GlobalWorldEventManager.INSTANCE.contains(var19.id());
               var8 = this.appendRow(
                  var1,
                  var2,
                  var8,
                  new WorldEventPanelPage.Row("global", String.valueOf(var18))
                     .label(var19.event())
                     .sub(var19.id().toString())
                     .status(var20 ? "#4f9e63" : "#4a5a6a")
                     .badge(Message.translation(var20 ? "server.customUI.worldEventPanel.state.active" : "server.customUI.worldEventPanel.state.inactive"))
                     .primary(
                        Message.translation(var20 ? "server.customUI.worldEventPanel.action.restart" : "server.customUI.worldEventPanel.action.start"),
                        WorldEventPanelPage.Action.RowPrimary
                     )
                     .secondary(Message.translation("server.customUI.worldEventPanel.action.stop"), WorldEventPanelPage.Action.RowSecondary)
               );
               var9++;
            }
         }

         if (var9 == 0) {
            this.appendText(var1, "#ListContainer", var8, Message.translation("server.customUI.worldEventPanel.config.noGlobalEvents"));
         }
      }
   }

   @Override
   class="kw">protected boolean handleAction(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull WorldEventPanelPage.PageData var3) {
      if (var3.action != null && var3.kind != null && var3.id != null) {
         WorldEventsConfig var4 = config(var2.getExternalData().getWorld());
         if (var4 == null) {
            class="kw">return false;
         }

         int var5;
         try {
            var5 = Integer.parseInt(var3.id);
         } catch (NumberFormatException var8) {
            class="kw">return false;
         }

         WorldEventRecord[] var6 = "global".equals(var3.kind) ? var4.globalEvents() : var4.events();
         if (var5 >= 0 && var5 < var6.length) {
            WorldEventRecord var7 = var6[var5];
            if (var7 == null) {
               class="kw">return false;
            }

            if ("global".equals(var3.kind)) {
               class="kw">return handleGlobal(var7, var3.action);
            }

            class="kw">switch (var3.action) {
               case RowPrimary:
                  EventStartAction.startEvent(var2, var7);
                  break;
               case RowSecondary:
                  if (var7.id() != null) {
                     EventStopAction.stopEvent(var2, var7.id(), (var0, var1x) -> var0.uuid.equals(var1x));
                  } else {
                     EventStopAction.stopEvent(var2, var7.event(), (var0, var1x) -> var0.asset.equals(var1x));
                  }
                  break;
               class="kw">default:
                  class="kw">return false;
            }

            class="kw">return true;
         } else {
            class="kw">return false;
         }
      } else {
         class="kw">return false;
      }
   }

   class="kw">private class="kw">static boolean handleGlobal(@Nonnull WorldEventRecord var0, @Nonnull WorldEventPanelPage.Action var1) {
      UUID var2 = var0.id();
      if (var2 == null) {
         class="kw">return false;
      }

      class="kw">switch (var1) {
         case RowPrimary:
            if (!GlobalWorldEventManager.startEvent(var2)) {
               GlobalWorldEventManager.scheduleRestartEventInAllWorlds(var2);
            }
            break;
         case RowSecondary:
            GlobalWorldEventManager.stopEvent(var2);
            break;
         class="kw">default:
            class="kw">return false;
      }

      class="kw">return true;
   }

   class="kw">private boolean matchesRecord(@Nonnull WorldEventRecord var1) {
      class="kw">return this.matchesFilter(var1.event(), var1.id() != null ? var1.id().toString() : "");
   }

   @Nonnull
   class="kw">private class="kw">static String recordColor(@Nonnull WorldEventRecord var0, @Nonnull WorldEventManager var1, @Nonnull WorldEventStorage var2) {
      if (isRunning(var0, var1)) {
         class="kw">return "#4f9e63";
      } else {
         class="kw">return var0.id() != null && var2.isComplete(var0.id()) ? "#4274a5" : "#4a5a6a";
      }
   }

   @Nonnull
   class="kw">private class="kw">static Message recordBadge(@Nonnull WorldEventRecord var0, @Nonnull WorldEventManager var1, @Nonnull WorldEventStorage var2) {
      if (isRunning(var0, var1)) {
         class="kw">return Message.translation("server.customUI.worldEventPanel.state.running");
      } else {
         class="kw">return var0.id() != null && var2.isComplete(var0.id())
            ? Message.translation("server.customUI.worldEventPanel.state.completed")
            : Message.translation(var0.isTransient() ? "server.customUI.worldEventPanel.mode.class="kw">transient" : "server.customUI.worldEventPanel.mode.persistent");
      }
   }

   class="kw">private class="kw">static boolean isRunning(@Nonnull WorldEventRecord var0, @Nonnull WorldEventManager var1) {
      class="kw">return var0.id() != null ? var1.get(var0.id()) != null : !var1.allOf(var0.event()).isEmpty();
   }
}