51 lines
1.9 KiB
Java
51 lines
1.9 KiB
Java
package com.hypixel.hytale.builtin.adventure.npcobjectives.npc.builders;
|
|
|
|
import com.google.gson.JsonElement;
|
|
import com.hypixel.hytale.builtin.adventure.npcobjectives.npc.ActionStartObjective;
|
|
import com.hypixel.hytale.builtin.adventure.npcobjectives.npc.validators.ObjectiveExistsValidator;
|
|
import com.hypixel.hytale.server.npc.asset.builder.BuilderDescriptorState;
|
|
import com.hypixel.hytale.server.npc.asset.builder.BuilderSupport;
|
|
import com.hypixel.hytale.server.npc.asset.builder.InstructionType;
|
|
import com.hypixel.hytale.server.npc.asset.builder.holder.AssetHolder;
|
|
import com.hypixel.hytale.server.npc.corecomponents.builders.BuilderActionBase;
|
|
import java.util.EnumSet;
|
|
import javax.annotation.Nonnull;
|
|
|
|
public class BuilderActionStartObjective extends BuilderActionBase {
|
|
protected final AssetHolder objectiveId = new AssetHolder();
|
|
|
|
@Nonnull
|
|
@Override
|
|
public String getShortDescription() {
|
|
return "Start the given objective for the currently iterated player in the interaction instruction";
|
|
}
|
|
|
|
@Nonnull
|
|
@Override
|
|
public String getLongDescription() {
|
|
return this.getShortDescription();
|
|
}
|
|
|
|
@Nonnull
|
|
public ActionStartObjective build(@Nonnull BuilderSupport builderSupport) {
|
|
return new ActionStartObjective(this, builderSupport);
|
|
}
|
|
|
|
@Nonnull
|
|
@Override
|
|
public BuilderDescriptorState getBuilderDescriptorState() {
|
|
return BuilderDescriptorState.Stable;
|
|
}
|
|
|
|
@Nonnull
|
|
public BuilderActionStartObjective readConfig(@Nonnull JsonElement data) {
|
|
this.requireAsset(data, "Objective", this.objectiveId, ObjectiveExistsValidator.required(), BuilderDescriptorState.Stable, "The task to start", null);
|
|
this.requireInstructionType(EnumSet.of(InstructionType.Interaction));
|
|
return this;
|
|
}
|
|
|
|
public String getObjectiveId(@Nonnull BuilderSupport support) {
|
|
return this.objectiveId.get(support.getExecutionContext());
|
|
}
|
|
}
|