9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-29 11:59:17 +00:00

refactor: format & refactor code

This commit is contained in:
MC_XiaoHei
2025-09-11 22:18:47 +08:00
parent 63fdbf0770
commit 0bdc2db116
7 changed files with 46 additions and 58 deletions

View File

@@ -14,6 +14,8 @@ import org.bukkit.permissions.PermissionDefault;
import org.bukkit.plugin.PluginManager;
import org.jetbrains.annotations.NotNull;
import org.leavesmc.leaves.bot.ServerBot;
import org.leavesmc.leaves.command.bot.BotCommand;
import org.leavesmc.leaves.command.leaves.LeavesCommand;
import org.leavesmc.leaves.config.GlobalConfigManager;
import org.leavesmc.leaves.config.annotations.GlobalConfig;
import org.leavesmc.leaves.config.annotations.GlobalConfigCategory;
@@ -27,8 +29,6 @@ import org.leavesmc.leaves.config.api.impl.ConfigValidatorImpl.IntConfigValidato
import org.leavesmc.leaves.config.api.impl.ConfigValidatorImpl.ListConfigValidator;
import org.leavesmc.leaves.config.api.impl.ConfigValidatorImpl.LongConfigValidator;
import org.leavesmc.leaves.config.api.impl.ConfigValidatorImpl.StringConfigValidator;
import org.leavesmc.leaves.command.bot.BotCommand;
import org.leavesmc.leaves.command.leaves.LeavesCommand;
import org.leavesmc.leaves.profile.LeavesMinecraftSessionService;
import org.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRule;
import org.leavesmc.leaves.protocol.CarpetServerProtocol.CarpetRules;
@@ -135,13 +135,12 @@ public final class LeavesConfig {
private static class FakeplayerValidator extends BooleanConfigValidator {
@Override
public void verify(Boolean old, Boolean value) throws IllegalArgumentException {
if (value.equals(old)) {
return;
}
if (value) {
BotCommand.INSTANCE.register();
} else {
BotCommand.INSTANCE.unregister();
if (!value.equals(old)) {
if (value) {
BotCommand.INSTANCE.register();
} else {
BotCommand.INSTANCE.unregister();
}
}
}
}
@@ -177,46 +176,46 @@ public final class LeavesConfig {
@GlobalConfig("open-fakeplayer-inventory")
public boolean canOpenInventory = false;
@GlobalConfig(value = "use-action", validator = CanUseActionValidator.class)
@GlobalConfig(value = "use-action", validator = CanUseConfigValidator.class)
public boolean canUseAction = true;
private static class CanUseActionValidator extends BooleanConfigValidator {
@Override
public void verify(Boolean old, Boolean value) throws IllegalArgumentException {
if (old != null && !old.equals(value)) {
Bukkit.getOnlinePlayers().stream()
.filter(sender -> BotCommand.hasPermission(sender, "action"))
.forEach(org.bukkit.entity.Player::updateCommands);
}
private static class CanUseConfigValidator extends BotSubcommandValidator {
private CanUseConfigValidator() {
super("use");
}
}
@GlobalConfig(value = "modify-config", validator = CanModifyConfigValidator.class)
public boolean canModifyConfig = false;
private static class CanModifyConfigValidator extends BooleanConfigValidator {
@Override
public void verify(Boolean old, Boolean value) throws IllegalArgumentException {
if (old != null && !old.equals(value)) {
Bukkit.getOnlinePlayers().stream()
.filter(sender ->
BotCommand.hasPermission(sender, "config")
).forEach(org.bukkit.entity.Player::updateCommands);
}
private static class CanModifyConfigValidator extends BotSubcommandValidator {
private CanModifyConfigValidator() {
super("config");
}
}
@GlobalConfig(value = "manual-save-and-load", validator = CanManualSaveAndLoadValidator.class)
public boolean canManualSaveAndLoad = false;
private static class CanManualSaveAndLoadValidator extends BooleanConfigValidator {
private static class CanManualSaveAndLoadValidator extends BotSubcommandValidator {
private CanManualSaveAndLoadValidator() {
super("save", "load");
}
}
private static class BotSubcommandValidator extends BooleanConfigValidator {
private final List<String> subcommands;
private BotSubcommandValidator(String... subcommand) {
this.subcommands = List.of(subcommand);
}
@Override
public void verify(Boolean old, Boolean value) throws IllegalArgumentException {
if (old != null && !old.equals(value)) {
Bukkit.getOnlinePlayers().stream()
.filter(sender ->
BotCommand.hasPermission(sender, "save") || BotCommand.hasPermission(sender, "load")
).forEach(org.bukkit.entity.Player::updateCommands);
.filter(sender -> subcommands.stream().allMatch(subcommand -> BotCommand.hasPermission(sender, subcommand)))
.forEach(org.bukkit.entity.Player::updateCommands);
}
}
}

View File

@@ -6,12 +6,13 @@ import net.minecraft.core.UUIDUtil;
import net.minecraft.nbt.CompoundTag;
import org.apache.commons.lang3.tuple.Pair;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.leavesmc.leaves.LeavesLogger;
import org.leavesmc.leaves.bot.ServerBot;
import org.leavesmc.leaves.event.bot.BotActionExecuteEvent;
import org.leavesmc.leaves.event.bot.BotActionStopEvent;
import org.leavesmc.leaves.command.CommandContext;
import org.leavesmc.leaves.command.WrappedArgument;
import org.leavesmc.leaves.event.bot.BotActionExecuteEvent;
import org.leavesmc.leaves.event.bot.BotActionStopEvent;
import org.leavesmc.leaves.util.UpdateSuppressionException;
import java.util.ArrayList;
@@ -59,12 +60,11 @@ public abstract class AbstractBotAction<E extends AbstractBotAction<E>> {
public abstract Object asCraft();
public void provideActionData(@NotNull ActionData data) {
public String getActionDataString() {
return getActionDataString(new ActionData(new ArrayList<>()));
}
public String getActionDataString() {
ActionData data = new ActionData(new ArrayList<>());
provideActionData(data);
public String getActionDataString(@NotNull ActionData data) {
return data.raw.stream()
.map(pair -> pair.getLeft() + "=" + pair.getRight())
.reduce((a, b) -> a + ", " + b)
@@ -249,9 +249,7 @@ public abstract class AbstractBotAction<E extends AbstractBotAction<E>> {
this.onStop = onStop;
}
public record ActionData(
List<Pair<String, String>> raw
) {
public record ActionData(List<Pair<String, String>> raw) {
public void add(String key, String value) {
raw.add(Pair.of(key, value));
}

View File

@@ -32,11 +32,11 @@ public abstract class AbstractTimerBotAction<E extends AbstractTimerBotAction<E>
}
@Override
public void provideActionData(@NotNull ActionData data) {
super.provideActionData(data);
public String getActionDataString(@NotNull ActionData data) {
data.add("delay", String.valueOf(this.getStartDelayTick()));
data.add("interval", String.valueOf(this.getDoIntervalTick()));
data.add("do_number", String.valueOf(this.getDoNumber()));
data.add("remaining_do_number", String.valueOf(this.getDoNumberRemaining()));
return super.getActionDataString(data);
}
}

View File

@@ -98,10 +98,10 @@ public abstract class AbstractUseBotAction<T extends AbstractUseBotAction<T>> ex
}
@Override
public void provideActionData(@NotNull ActionData data) {
super.provideActionData(data);
public String getActionDataString(@NotNull ActionData data) {
data.add("use_timeout", String.valueOf(this.useTickTimeout));
data.add("already_used_tick", String.valueOf(this.alreadyUsedTick));
return super.getActionDataString(data);
}
@Override

View File

@@ -98,16 +98,6 @@ public class ServerLookAction extends AbstractBotAction<ServerLookAction> {
return target;
}
@Override
public void provideActionData(@NotNull ActionData data) {
super.provideActionData(data);
if (target != null) {
data.add("target", target.getName().getString());
} else {
data.add("position", String.format("(%.2f, %.2f, %.2f)", pos.getX(), pos.getY(), pos.getZ()));
}
}
@Override
public boolean doTick(@NotNull ServerBot bot) {
if (target != null) {

View File

@@ -3,6 +3,7 @@ package org.leavesmc.leaves.bot.agent.actions;
import com.mojang.brigadier.arguments.StringArgumentType;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.leavesmc.leaves.bot.ServerBot;
import org.leavesmc.leaves.entity.bot.action.MoveAction.MoveDirection;
import org.leavesmc.leaves.entity.bot.actions.CraftMoveAction;
@@ -65,9 +66,9 @@ public class ServerMoveAction extends AbstractStateBotAction<ServerMoveAction> {
}
@Override
public void provideActionData(@NotNull ActionData data) {
super.provideActionData(data);
public String getActionDataString(@NotNull ActionData data) {
data.add("direction", direction.name);
return super.getActionDataString(data);
}
public MoveDirection getDirection() {

View File

@@ -57,10 +57,10 @@ public class ServerRotationAction extends AbstractBotAction<ServerRotationAction
}
@Override
public void provideActionData(@NotNull ActionData data) {
super.provideActionData(data);
public String getActionDataString(@NotNull ActionData data) {
data.add("yaw", DF.format(this.yaw));
data.add("pitch", DF.format(this.pitch));
return super.getActionDataString(data);
}
@Override