mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-29 11:59:17 +00:00
refactor: refactor config and action
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
package org.leavesmc.leaves.bot.agent;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public record ExtraData(List<Pair<String, String>> raw) {
|
||||
public void add(String key, String value) {
|
||||
raw.add(Pair.of(key, value));
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.LeavesLogger;
|
||||
import org.leavesmc.leaves.bot.ServerBot;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
import org.leavesmc.leaves.command.WrappedArgument;
|
||||
import org.leavesmc.leaves.event.bot.BotActionExecuteEvent;
|
||||
@@ -60,11 +61,11 @@ public abstract class AbstractBotAction<E extends AbstractBotAction<E>> {
|
||||
public abstract Object asCraft();
|
||||
|
||||
public String getActionDataString() {
|
||||
return getActionDataString(new ActionData(new ArrayList<>()));
|
||||
return getActionDataString(new ExtraData(new ArrayList<>()));
|
||||
}
|
||||
|
||||
public String getActionDataString(@NotNull ActionData data) {
|
||||
return data.raw.stream()
|
||||
public String getActionDataString(@NotNull ExtraData data) {
|
||||
return data.raw().stream()
|
||||
.map(pair -> pair.getLeft() + "=" + pair.getRight())
|
||||
.reduce((a, b) -> a + ", " + b)
|
||||
.orElse("No arguments");
|
||||
@@ -247,10 +248,4 @@ public abstract class AbstractBotAction<E extends AbstractBotAction<E>> {
|
||||
public void setOnStop(Consumer<E> onStop) {
|
||||
this.onStop = onStop;
|
||||
}
|
||||
|
||||
public record ActionData(List<Pair<String, String>> raw) {
|
||||
public void add(String key, String value) {
|
||||
raw.add(Pair.of(key, value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.leavesmc.leaves.bot.agent.actions;
|
||||
|
||||
import net.minecraft.network.chat.Component;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
@@ -28,7 +29,7 @@ public abstract class AbstractTimerBotAction<E extends AbstractTimerBotAction<E>
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getActionDataString(@NotNull ActionData data) {
|
||||
public String getActionDataString(@NotNull ExtraData data) {
|
||||
data.add("delay", String.valueOf(this.getStartDelayTick()));
|
||||
data.add("interval", String.valueOf(this.getDoIntervalTick()));
|
||||
data.add("do_number", String.valueOf(this.getDoNumber()));
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.bot.ServerBot;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
import org.leavesmc.leaves.event.bot.BotActionStopEvent;
|
||||
|
||||
@@ -98,7 +99,7 @@ public abstract class AbstractUseBotAction<T extends AbstractUseBotAction<T>> ex
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getActionDataString(@NotNull ActionData data) {
|
||||
public String getActionDataString(@NotNull ExtraData data) {
|
||||
data.add("use_timeout", String.valueOf(this.useTickTimeout));
|
||||
data.add("already_used_tick", String.valueOf(this.alreadyUsedTick));
|
||||
return super.getActionDataString(data);
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.mojang.brigadier.arguments.StringArgumentType;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.bot.ServerBot;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
import org.leavesmc.leaves.entity.bot.action.MoveAction.MoveDirection;
|
||||
import org.leavesmc.leaves.entity.bot.actions.CraftMoveAction;
|
||||
@@ -61,7 +62,7 @@ public class ServerMoveAction extends AbstractStateBotAction<ServerMoveAction> {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getActionDataString(@NotNull ActionData data) {
|
||||
public String getActionDataString(@NotNull ExtraData data) {
|
||||
data.add("direction", direction.name);
|
||||
return super.getActionDataString(data);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.bot.ServerBot;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
import org.leavesmc.leaves.entity.bot.actions.CraftRotationAction;
|
||||
|
||||
@@ -57,7 +58,7 @@ public class ServerRotationAction extends AbstractBotAction<ServerRotationAction
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getActionDataString(@NotNull ActionData data) {
|
||||
public String getActionDataString(@NotNull ExtraData data) {
|
||||
data.add("yaw", DF.format(this.yaw));
|
||||
data.add("pitch", DF.format(this.pitch));
|
||||
return super.getActionDataString(data);
|
||||
|
||||
@@ -4,21 +4,19 @@ import com.mojang.brigadier.arguments.ArgumentType;
|
||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import com.mojang.brigadier.suggestion.SuggestionsBuilder;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.event.HoverEvent;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.bot.ServerBot;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
import org.leavesmc.leaves.command.WrappedArgument;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static net.kyori.adventure.text.Component.text;
|
||||
import static net.kyori.adventure.text.event.HoverEvent.showText;
|
||||
import static net.kyori.adventure.text.format.NamedTextColor.AQUA;
|
||||
|
||||
public abstract class AbstractBotConfig<Value, Type, E extends AbstractBotConfig<Value, Type, E>> {
|
||||
private final String name;
|
||||
private final WrappedArgument<Type> argument;
|
||||
@@ -54,25 +52,23 @@ public abstract class AbstractBotConfig<Value, Type, E extends AbstractBotConfig
|
||||
|
||||
public abstract Value loadFromCommand(@NotNull CommandContext context) throws CommandSyntaxException;
|
||||
|
||||
public List<Pair<String, String>> getExtraData() {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Component getNameComponent() {
|
||||
Component result = text(getName(), AQUA);
|
||||
if (!getExtraData().isEmpty()) {
|
||||
result = result.hoverEvent(showText(
|
||||
getExtraData().stream()
|
||||
.map(pair -> text(pair.getKey() + "=" + pair.getValue()))
|
||||
.reduce((a, b) -> a.append(text(", ")).append(b))
|
||||
.orElseGet(() -> text(""))
|
||||
));
|
||||
}
|
||||
return result;
|
||||
return Component.text(getName(), NamedTextColor.AQUA).hoverEvent(HoverEvent.showText(Component.text(getExtraDataString())));
|
||||
}
|
||||
|
||||
public String getExtraDataString() {
|
||||
return getExtraDataString(new ExtraData(new ArrayList<>()));
|
||||
}
|
||||
|
||||
public String getExtraDataString(@NotNull ExtraData data) {
|
||||
return data.raw().stream()
|
||||
.map(pair -> pair.getLeft() + "=" + pair.getRight())
|
||||
.reduce((a, b) -> a + ", " + b)
|
||||
.orElse("No data");
|
||||
}
|
||||
|
||||
public WrappedArgument<Type> getArgument() {
|
||||
|
||||
@@ -2,13 +2,11 @@ package org.leavesmc.leaves.bot.agent.configs;
|
||||
|
||||
import com.mojang.brigadier.arguments.BoolArgumentType;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.leavesmc.leaves.LeavesConfig;
|
||||
import org.leavesmc.leaves.bot.agent.ExtraData;
|
||||
import org.leavesmc.leaves.command.CommandContext;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class SpawnPhantomConfig extends AbstractBotConfig<Boolean, Boolean, SpawnPhantomConfig> {
|
||||
private boolean value;
|
||||
|
||||
@@ -28,8 +26,9 @@ public class SpawnPhantomConfig extends AbstractBotConfig<Boolean, Boolean, Spaw
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Pair<String, String>> getExtraData() {
|
||||
return List.of(Pair.of("not_sleeping_ticks", String.valueOf(bot.notSleepTicks)));
|
||||
public String getExtraDataString(@NotNull ExtraData data) {
|
||||
data.add("not_sleeping_ticks", String.valueOf(bot.notSleepTicks));
|
||||
return super.getExtraDataString(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user