diff --git a/leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch b/leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch index f439c7e7..298837f9 100644 --- a/leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch +++ b/leaves-server/minecraft-patches/features/0007-Leaves-Fakeplayer.patch @@ -297,8 +297,36 @@ index 184d116320f0cd3e9fba47a86e94e0a8424c913f..baeeb4a0863cb37eee487b0e463fea37 } public boolean canBypassPlayerLimit(GameProfile profile) { +diff --git a/net/minecraft/server/waypoints/ServerWaypointManager.java b/net/minecraft/server/waypoints/ServerWaypointManager.java +index f9e7532f86122a379692561a639a209a126e8bba..2412f46837e967694222730e68e7d25ac32225cf 100644 +--- a/net/minecraft/server/waypoints/ServerWaypointManager.java ++++ b/net/minecraft/server/waypoints/ServerWaypointManager.java +@@ -22,6 +22,11 @@ public class ServerWaypointManager implements WaypointManager { public static final Configs SPAWN_PHANTOM = register(SpawnPhantomConfig.class, SpawnPhantomConfig::new); public static final Configs SIMULATION_DISTANCE = register(SimulationDistanceConfig.class, SimulationDistanceConfig::new); public static final Configs TICK_TYPE = register(TickTypeConfig.class, TickTypeConfig::new); + public static final Configs ENABLE_LOCATOR_BAR = register(LocatorBarConfig.class, LocatorBarConfig::new); private final Class> configClass; private final Supplier> configCreator; diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/AlwaysSendDataConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/AlwaysSendDataConfig.java index 3e42b990..e439a1b5 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/AlwaysSendDataConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/AlwaysSendDataConfig.java @@ -40,6 +40,6 @@ public class AlwaysSendDataConfig extends AbstractBotConfig { @Override public void load(@NotNull CompoundTag nbt) { - this.setValue(nbt.getBoolean(NAME).orElseThrow()); + this.setValue(nbt.getBooleanOr(NAME, LeavesConfig.modify.fakeplayer.canSendDataAlways)); } } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/LocatorBarConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/LocatorBarConfig.java new file mode 100644 index 00000000..1b3b5427 --- /dev/null +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/LocatorBarConfig.java @@ -0,0 +1,51 @@ +package org.leavesmc.leaves.bot.agent.configs; + +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.waypoints.ServerWaypointManager; +import org.jetbrains.annotations.NotNull; +import org.leavesmc.leaves.LeavesConfig; +import org.leavesmc.leaves.bot.agent.AbstractBotConfig; +import org.leavesmc.leaves.command.CommandArgument; +import org.leavesmc.leaves.command.CommandArgumentType; + +import java.util.List; + +public class LocatorBarConfig extends AbstractBotConfig { + + public static final String NAME = "enable_locator_bar"; + + private boolean value; + + public LocatorBarConfig() { + super(NAME, CommandArgument.of(CommandArgumentType.BOOLEAN).setSuggestion(0, List.of("true", "false"))); + this.value = LeavesConfig.modify.fakeplayer.enableLocatorBar; + } + + @Override + public Boolean getValue() { + return value; + } + + @Override + public void setValue(Boolean value) throws IllegalArgumentException { + this.value = value; + ServerWaypointManager manager = this.bot.level().getWaypointManager(); + if (value) { + manager.trackWaypoint(this.bot); + } else { + manager.untrackWaypoint(this.bot); + } + } + + @Override + public @NotNull CompoundTag save(@NotNull CompoundTag nbt) { + super.save(nbt); + nbt.putBoolean(NAME, this.getValue()); + return nbt; + } + + @Override + public void load(@NotNull CompoundTag nbt) { + this.setValue(nbt.getBooleanOr(NAME, LeavesConfig.modify.fakeplayer.enableLocatorBar)); + } +} \ No newline at end of file diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SimulationDistanceConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SimulationDistanceConfig.java index 4d7d72b1..4724b336 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SimulationDistanceConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SimulationDistanceConfig.java @@ -40,6 +40,6 @@ public class SimulationDistanceConfig extends AbstractBotConfig { @Override public void load(@NotNull CompoundTag nbt) { - this.setValue(nbt.getInt(NAME).orElseThrow()); + this.setValue(nbt.getIntOr(NAME, this.bot.getBukkitEntity().getSimulationDistance())); } } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SkipSleepConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SkipSleepConfig.java index 99b6e682..d700c053 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SkipSleepConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SkipSleepConfig.java @@ -35,6 +35,6 @@ public class SkipSleepConfig extends AbstractBotConfig { @Override public void load(@NotNull CompoundTag nbt) { - this.setValue(nbt.getBoolean(NAME).orElseThrow()); + this.setValue(nbt.getBooleanOr(NAME, false)); } } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SpawnPhantomConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SpawnPhantomConfig.java index 6d9840ea..b2ac4b16 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SpawnPhantomConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/SpawnPhantomConfig.java @@ -47,6 +47,6 @@ public class SpawnPhantomConfig extends AbstractBotConfig { @Override public void load(@NotNull CompoundTag nbt) { - this.setValue(nbt.getBoolean(NAME).orElseThrow()); + this.setValue(nbt.getBooleanOr(NAME, LeavesConfig.modify.fakeplayer.canSpawnPhantom)); } } diff --git a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/TickTypeConfig.java b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/TickTypeConfig.java index 66af8e40..0bb5bb03 100644 --- a/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/TickTypeConfig.java +++ b/leaves-server/src/main/java/org/leavesmc/leaves/bot/agent/configs/TickTypeConfig.java @@ -42,6 +42,6 @@ public class TickTypeConfig extends AbstractBotConfig { @Override public void load(@NotNull CompoundTag nbt) { - this.setValue(TICK_TYPE_ARGUMENT.parse(nbt.getString(NAME).orElseThrow())); + this.setValue(TICK_TYPE_ARGUMENT.parse(nbt.getStringOr(NAME, LeavesConfig.modify.fakeplayer.tickType.name()))); } }