Config class
Пакет: com.hypixel.hytale.builtin.adventure.worldevents.condition
Файл: com/hypixel/hytale/builtin/adventure/worldevents/condition/SignalCondition.java
implements: EventCondition.Config
Поля (4)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<SignalCondition.Config> |
CODEC |
|
protected static final SignalCondition.Config |
EMPTY |
|
protected String |
signalId |
|
SignalCondition |
var1 |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public EventCondition |
createpublic EventCondition create() |
|
public void |
validatepublic void validate(@Nonnull Validator var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.condition;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.component.WorldEventSignal;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.Validator;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEvent;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.system.ConditionEventHandler;
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.server.core.universe.world.World;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">public class SignalCondition class="kw">implements EventCondition.Event<WorldEventSignal> {
class="kw">public class="kw">static class="kw">final String ID = "SignalCondition";
class="kw">public class="kw">static class="kw">final EventCondition.Type TYPE = EventCondition.Type.nonTicking("SignalCondition");
class="kw">public class="kw">static class="kw">final BuilderCodec<SignalCondition> CODEC = BuilderCodec.builder(SignalCondition.class, SignalCondition::new).build();
class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
@Nonnull
class="kw">protected SignalCondition.Config config = SignalCondition.Config.EMPTY;
@Nonnull
class="kw">protected UUID eventId = WorldEvent.EMPTY_ID;
class="kw">protected boolean completed;
class="kw">public SignalCondition() {
}
@Override
class="kw">public boolean test() {
class="kw">return this.completed;
}
@Override
class="kw">public void reset() {
this.completed = false;
this.eventId = WorldEvent.EMPTY_ID;
}
@Nonnull
@Override
class="kw">public Class<WorldEventSignal> eventType() {
class="kw">return WorldEventSignal.class;
}
class="kw">public void handle(@Nonnull World var1, @Nonnull WorldEventSignal var2) {
if (this.config.signalId != null) {
if (var2.eventId() == null || this.eventId.equals(var2.eventId())) {
if (this.config.signalId.equals(var2.signalId())) {
this.completed = true;
}
}
}
}
@Override
class="kw">public boolean onStart(@Nonnull WorldEvent var1) {
if (this.config.signalId == null) {
((HytaleLogger.Api)LOGGER.atWarning()).log("Failed to start SignalCondition: signalId is not defined");
class="kw">return false;
} else {
this.eventId = var1.uuid;
class="kw">return true;
}
}
class="kw">public class="kw">static class Config class="kw">implements EventCondition.Config {
class="kw">public class="kw">static class="kw">final BuilderCodec<SignalCondition.Config> CODEC = BuilderCodec.builder(SignalCondition.Config.class, SignalCondition.Config::new)
.documentation("A condition that completes when a matching world-event signal is received, for example from an encounter's SignalWorldEvent action.")
.<String>append(new KeyedCodec<>("SignalId", Codec.STRING), (var0, var1) -> var0.signalId = var1, var0 -> var0.signalId)
.documentation("The signal id this condition waits for. Must match the id sent by the producer.")
.addValidator(Validators.nonNull())
.add()
.build();
class="kw">protected class="kw">static class="kw">final SignalCondition.Config EMPTY = new SignalCondition.Config();
@Nullable
class="kw">protected String signalId;
class="kw">public Config() {
}
@Nonnull
@Override
class="kw">public EventCondition create() {
SignalCondition var1 = new SignalCondition();
var1.config = this;
class="kw">return var1;
}
@Override
class="kw">public void validate(@Nonnull Validator var1) {
if (this.signalId == null || this.signalId.isEmpty()) {
var1.addErrorMessage("SignalCondition requires a non-empty SignalId");
}
}
}
class="kw">public class="kw">static class Handler class="kw">extends ConditionEventHandler.EntityHandler<WorldEventSignal> {
class="kw">public Handler() {
super(WorldEventSignal.class);
}
}
}