InteractiveCustomUIPage class

Пакет: com.hypixel.hytale.server.core.entity.entities.player.pages

Файл: com/hypixel/hytale/server/core/entity/entities/player/pages/InteractiveCustomUIPage.java

extends: CustomUIPage

Поля (7)

МодификаторыТипИмя
Ref var4
ExtraInfo var4
Store var5
Object var5
var5
World var6
Player var6

Методы (5)

МодификаторыВозвратСигнатура
abstract throw new RuntimeExceptionthrow new RuntimeException(var7)
public void handleDataEventvoid handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull T var3)
if if(var4 != null)
protected void sendUpdatevoid sendUpdate(@Nullable UICommandBuilder var1, @Nullable UIEventBuilder var2, boolean var3)
abstract super super(var1, var2)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.entity.entities.player.pages;

class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.util.RawJsonReader;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomPage;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
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.io.IOException;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class InteractiveCustomUIPage<T> class="kw">extends CustomUIPage {
   @Nonnull
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   @Nonnull
   class="kw">protected class="kw">final BuilderCodec<T> eventDataCodec;

   class="kw">public InteractiveCustomUIPage(@Nonnull PlayerRef var1, @Nonnull CustomPageLifetime var2, @Nonnull BuilderCodec<T> var3) {
      super(var1, var2);
      this.eventDataCodec = var3;
   }

   class="kw">public void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull T var3) {
   }

   class="kw">protected void sendUpdate(@Nullable UICommandBuilder var1, @Nullable UIEventBuilder var2, boolean var3) {
      Ref var4 = this.playerRef.getReference();
      if (var4 != null) {
         Store var5 = var4.getStore();
         World var6 = var5.getExternalData().getWorld();
         var6.execute(
            () -> {
               if (var4.isValid()) {
                  Player var6 = var5.getComponent(var4, Player.getComponentType());
                  assert var6 != null;
                  var6.getPageManager()
                     .updateCustomPage(
                        new CustomPage(
                           this.getClass().getName(),
                           false,
                           var3,
                           this.lifetime,
                           var1 != null ? var1.getCommands() : UICommandBuilder.EMPTY_COMMAND_ARRAY,
                           var2 != null ? var2.getEvents() : UIEventBuilder.EMPTY_EVENT_BINDING_ARRAY
                        )
                     );
               }
            }
         );
      }
   }

   @Override
   class="kw">public void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, String var3) {
      ExtraInfo var4 = ExtraInfo.THREAD_LOCAL.get();

      Object var5;
      try {
         var5 = this.eventDataCodec.decodeJson(new RawJsonReader(var3.toCharArray()), var4);
      } catch (IOException var7) {
         throw new RuntimeException(var7);
      }

      var4.getValidationResults().logOrThrowValidatorExceptions(LOGGER);
      this.handleDataEvent(var1, var2, var5);
   }

   @Override
   class="kw">protected void sendUpdate(@Nullable UICommandBuilder var1, boolean var2) {
      this.sendUpdate(var1, null, var2);
   }
}