ReplaceInteraction class
Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.none
Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/none/ReplaceInteraction.java
extends: Interaction
Поля (7)
| Модификаторы | Тип | Имя |
|---|---|---|
|
com.hypixel.hytale.protocol.ReplaceInteraction |
var2 |
|
Map |
var3 |
|
Map |
var3 |
|
String |
var4 |
|
|
var4 |
|
String |
var4 |
|
RootInteraction |
var5 |
Методы (7)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
private |
void |
doReplacevoid doReplace(@Nonnull InteractionContext var1, boolean var2) |
|
|
if if(var1) |
|
|
if if(var1) |
|
|
if if(var4 == null && !this.defaultOk && var2) |
|
|
if if(var4 == null) |
|
|
if if(var4 == null) |
|
|
if if(var4 != null) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.none;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.WaitForDataFrom;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionManager;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.data.Collector;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.data.StringTag;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class ReplaceInteraction class="kw">extends Interaction {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<ReplaceInteraction> CODEC = BuilderCodec.builder(
ReplaceInteraction.class, ReplaceInteraction::new, Interaction.ABSTRACT_CODEC
)
.documentation("Runs the interaction defined by the interaction variables if defined.")
.<String>appendInherited(
new KeyedCodec<>("DefaultValue", RootInteraction.CHILD_ASSET_CODEC),
(var0, var1) -> var0.defaultValue = var1,
var0 -> var0.defaultValue,
(var0, var1) -> var0.defaultValue = var1.defaultValue
)
.addValidatorLate(() -> RootInteraction.VALIDATOR_CACHE.getValidator().late())
.add()
.<String>appendInherited(
new KeyedCodec<>("Var", Codec.STRING), (var0, var1) -> var0.variable = var1, var0 -> var0.variable, (var0, var1) -> var0.variable = var1.variable
)
.addValidator(Validators.nonNull())
.add()
.appendInherited(
new KeyedCodec<>("DefaultOk", Codec.BOOLEAN),
(var0, var1) -> var0.defaultOk = var1,
var0 -> var0.defaultOk,
(var0, var1) -> var0.defaultOk = var1.defaultOk
)
.add()
.build();
class="kw">private class="kw">static class="kw">final StringTag TAG_DEFAULT = StringTag.of("Default");
class="kw">private class="kw">static class="kw">final StringTag TAG_VARS = StringTag.of("Vars");
@Nullable
class="kw">protected String defaultValue;
class="kw">protected String variable;
class="kw">protected boolean defaultOk;
class="kw">public ReplaceInteraction() {
}
@Nonnull
@Override
class="kw">public WaitForDataFrom getWaitForDataFrom() {
class="kw">return WaitForDataFrom.None;
}
@Override
class="kw">protected void tick0(boolean var1, float var2, @Nonnull InteractionType var3, @Nonnull InteractionContext var4, @Nonnull CooldownHandler var5) {
if (!Interaction.failed(var4.getState().state)) {
if (var1) {
this.doReplace(var4, true);
}
}
}
@Override
class="kw">protected void simulateTick0(boolean var1, float var2, @Nonnull InteractionType var3, @Nonnull InteractionContext var4, @Nonnull CooldownHandler var5) {
if (!Interaction.failed(var4.getState().state)) {
if (var1) {
this.doReplace(var4, false);
}
}
}
class="kw">private void doReplace(@Nonnull InteractionContext var1, boolean var2) {
Map var3 = var1.getInteractionVars();
String var4 = var3 == null ? null : var3.get(this.variable);
if (var4 == null && !this.defaultOk && var2) {
((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.SEVERE).atMostEvery(1, TimeUnit.MINUTES))
.log("Missing replacement interactions for interaction: %s for var %s on item %s", this.id, this.variable, var1.getHeldItem());
}
if (var4 == null) {
var4 = this.defaultValue;
}
if (var4 == null) {
var1.getState().state = InteractionState.Failed;
} else {
RootInteraction var5 = RootInteraction.getRootInteractionOrUnknown(var4);
var1.getState().state = InteractionState.Finished;
var1.execute(var5);
}
}
@Override
class="kw">public boolean needsRemoteSync() {
class="kw">return true;
}
@Override
class="kw">public boolean walk(@Nonnull Collector var1, @Nonnull InteractionContext var2) {
Map var3 = var2.getInteractionVars();
String var4 = var3 != null ? var3.get(this.variable) : null;
if (var4 != null) {
class="kw">return InteractionManager.walkInteractions(var1, var2, TAG_VARS, RootInteraction.getRootInteractionOrUnknown(var4).getInteractionIds());
} else {
class="kw">return this.defaultValue != null
? InteractionManager.walkInteractions(var1, var2, TAG_DEFAULT, RootInteraction.getRootInteractionOrUnknown(this.defaultValue).getInteractionIds())
: false;
}
}
@Nonnull
@Override
class="kw">protected com.hypixel.hytale.protocol.Interaction generatePacket() {
class="kw">return new com.hypixel.hytale.protocol.ReplaceInteraction();
}
@Override
class="kw">protected void configurePacket(com.hypixel.hytale.protocol.Interaction var1) {
super.configurePacket(var1);
com.hypixel.hytale.protocol.ReplaceInteraction var2 = (com.hypixel.hytale.protocol.ReplaceInteraction)var1;
var2.defaultValue = RootInteraction.getRootInteractionIdOrUnknown(this.defaultValue);
var2.variable = this.variable;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "ReplaceInteraction{defaultValue='"
+ this.defaultValue
+ "', variable='"
+ this.variable
+ "', defaultOk="
+ this.defaultOk
+ "} "
+ super.toString();
}
}