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);
}
}