diff --git a/README.md b/README.md index 3f2923f92..c2417806c 100644 --- a/README.md +++ b/README.md @@ -63,11 +63,13 @@ Baritone is the pathfinding system used in [Impact](https://impactclient.net/) s | [1.12.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.2.19/baritone-api-forge-1.2.19.jar) | | | [1.16.5 Forge](https://github.com/cabaletta/baritone/releases/download/v1.6.5/baritone-api-forge-1.6.5.jar) | [1.16.5 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.6.5/baritone-api-fabric-1.6.5.jar) | | [1.17.1 Forge](https://github.com/cabaletta/baritone/releases/download/v1.7.3/baritone-api-forge-1.7.3.jar) | [1.17.1 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.7.3/baritone-api-fabric-1.7.3.jar) | -| [1.18.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.8.5/baritone-api-forge-1.8.5.jar) | [1.18.2 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.8.5/baritone-api-fabric-1.8.5.jar) | +| [1.18.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.8.6/baritone-api-forge-1.8.6.jar) | [1.18.2 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.8.6/baritone-api-fabric-1.8.6.jar) | | [1.19.2 Forge](https://github.com/cabaletta/baritone/releases/download/v1.9.4/baritone-api-forge-1.9.4.jar) | [1.19.2 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.9.4/baritone-api-fabric-1.9.4.jar) | | [1.19.3 Forge](https://github.com/cabaletta/baritone/releases/download/v1.9.1/baritone-api-forge-1.9.1.jar) | [1.19.3 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.9.1/baritone-api-fabric-1.9.1.jar) | | [1.19.4 Forge](https://github.com/cabaletta/baritone/releases/download/v1.9.3/baritone-api-forge-1.9.3.jar) | [1.19.4 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.9.3/baritone-api-fabric-1.9.3.jar) | | [1.20.1 Forge](https://github.com/cabaletta/baritone/releases/download/v1.10.1/baritone-api-forge-1.10.1.jar) | [1.20.1 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.10.1/baritone-api-fabric-1.10.1.jar) | +| [1.20.3 Forge](https://github.com/cabaletta/baritone/releases/download/v1.10.2/baritone-api-forge-1.10.2.jar) | [1.20.3 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.10.2/baritone-api-fabric-1.10.2.jar) | +| [1.20.4 Forge](https://github.com/cabaletta/baritone/releases/download/v1.10.2/baritone-api-forge-1.10.2.jar) | [1.20.4 Fabric](https://github.com/cabaletta/baritone/releases/download/v1.10.2/baritone-api-fabric-1.10.2.jar) | **Message for 2b2t players looking for 1.19/1.20 Baritone** If you like, please try the beta for Baritone Elytra for 2b2t, find it in #announcements of [the Baritone discord](http://discord.gg/s6fRBAUpmr). It supports 1.19.4 and 1.20.1, Forge or Fabric. If you have to see it to believe it, watch [this YouTube video](https://youtu.be/NnSlQi-68eQ). diff --git a/build.gradle b/build.gradle index 011f08993..52c8ec0cc 100755 --- a/build.gradle +++ b/build.gradle @@ -77,7 +77,7 @@ allprojects { // The following line declares the yarn mappings you may select this one as well. // mappings "net.fabricmc:yarn:1.17.1+build.32:v2" //launchImplementation('dev.babbaj:nether-pathfinder:1.3.0') - implementation "dev.babbaj:nether-pathfinder:${nether_pathfinder_version}" + implementation "dev.babbaj:nether-pathfinder:${project.nether_pathfinder_version}" implementation 'com.google.code.findbugs:jsr305:3.0.2' } diff --git a/fabric/build.gradle b/fabric/build.gradle index e6a88b352..e0d5d8442 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -45,7 +45,7 @@ dependencies { common sourceSet.output shadowCommon sourceSet.output } - include "dev.babbaj:nether-pathfinder:${nether_pathfinder_version}" + include "dev.babbaj:nether-pathfinder:${project.nether_pathfinder_version}" } processResources { diff --git a/forge/build.gradle b/forge/build.gradle index 6ec55bc12..334bd968c 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -56,7 +56,7 @@ dependencies { common sourceSet.output shadowCommon sourceSet.output } - shadowCommon "dev.babbaj:nether-pathfinder:${nether_pathfinder_version}" + shadowCommon "dev.babbaj:nether-pathfinder:${project.nether_pathfinder_version}" } processResources { diff --git a/gradle.properties b/gradle.properties index 35c62e0a7..18a9f77e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,4 +13,4 @@ neoforge_version=0-beta fabric_version=0.14.22 -nether_pathfinder_version=1.4.1 \ No newline at end of file +nether_pathfinder_version=1.4.1 diff --git a/neoforge/build.gradle b/neoforge/build.gradle index ac102dace..c60cc81be 100644 --- a/neoforge/build.gradle +++ b/neoforge/build.gradle @@ -65,7 +65,7 @@ dependencies { common sourceSet.output shadowCommon sourceSet.output } - shadowCommon "dev.babbaj:nether-pathfinder:${nether_pathfinder_version}" + shadowCommon "dev.babbaj:nether-pathfinder:${project.nether_pathfinder_version}" } processResources { diff --git a/src/api/java/baritone/api/Settings.java b/src/api/java/baritone/api/Settings.java index 9171a3d68..5e33b39ba 100644 --- a/src/api/java/baritone/api/Settings.java +++ b/src/api/java/baritone/api/Settings.java @@ -29,6 +29,8 @@ import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.awt.*; import java.lang.annotation.ElementType; @@ -50,6 +52,7 @@ * @author leijurv */ public final class Settings { + private static final Logger LOGGER = LoggerFactory.getLogger("Baritone"); /** * Allow Baritone to break blocks @@ -900,6 +903,13 @@ public final class Settings { */ public final Setting maxCachedWorldScanCount = new Setting<>(10); + /** + * Mine will not scan for or remember more than this many target locations. + * Note that the number of locations retrieved from cache is additionaly + * limited by {@link #maxCachedWorldScanCount}. + */ + public final Setting mineMaxOreLocationsCount = new Setting<>(64); + /** * Sets the minimum y level whilst mining - set to 0 to turn off. * if world has negative y values, subtract the min world height to get the value to put here @@ -1209,8 +1219,12 @@ public final class Settings { */ @JavaOnly public final Setting> logger = new Setting<>((msg) -> { - final GuiMessageTag tag = useMessageTag.value ? Helper.MESSAGE_TAG : null; - Minecraft.getInstance().gui.getChat().addMessage(msg, null, tag); + try { + final GuiMessageTag tag = useMessageTag.value ? Helper.MESSAGE_TAG : null; + Minecraft.getInstance().gui.getChat().addMessage(msg, null, tag); + } catch (Throwable t) { + LOGGER.warn("Failed to log message to chat: " + msg.getString(), t); + } }); /** diff --git a/src/main/java/baritone/Baritone.java b/src/main/java/baritone/Baritone.java index c1176a3d4..ad6871413 100755 --- a/src/main/java/baritone/Baritone.java +++ b/src/main/java/baritone/Baritone.java @@ -79,7 +79,7 @@ public class Baritone implements IBaritone { private final ExploreProcess exploreProcess; private final FarmProcess farmProcess; private final InventoryPauserProcess inventoryPauserProcess; - private final ElytraProcess elytraProcess; + private final IElytraProcess elytraProcess; private final PathingControlManager pathingControlManager; private final SelectionManager selectionManager; diff --git a/src/main/java/baritone/process/ElytraProcess.java b/src/main/java/baritone/process/ElytraProcess.java index 082e3d6b6..fcd6c4b34 100644 --- a/src/main/java/baritone/process/ElytraProcess.java +++ b/src/main/java/baritone/process/ElytraProcess.java @@ -84,10 +84,10 @@ private ElytraProcess(Baritone baritone) { baritone.getGameEventHandler().registerEventListener(this); } - public static T create(final Baritone baritone) { - return (T) (NetherPathfinderContext.isSupported() + public static IElytraProcess create(final Baritone baritone) { + return NetherPathfinderContext.isSupported() ? new ElytraProcess(baritone) - : new NullElytraProcess(baritone)); + : new NullElytraProcess(baritone); } @Override diff --git a/src/main/java/baritone/process/MineProcess.java b/src/main/java/baritone/process/MineProcess.java index 852e6ba3d..6428cef5e 100644 --- a/src/main/java/baritone/process/MineProcess.java +++ b/src/main/java/baritone/process/MineProcess.java @@ -53,8 +53,6 @@ */ public final class MineProcess extends BaritoneProcessHelper implements IMineProcess { - private static final int ORE_LOCATIONS_COUNT = 64; - private BlockOptionalMetaLookup filter; private List knownOreLocations; private List blacklist; // inaccessible @@ -186,7 +184,7 @@ private PathingCommand updateGoal() { List locs = knownOreLocations; if (!locs.isEmpty()) { CalculationContext context = new CalculationContext(baritone); - List locs2 = prune(context, new ArrayList<>(locs), filter, ORE_LOCATIONS_COUNT, blacklist, droppedItemsScan()); + List locs2 = prune(context, new ArrayList<>(locs), filter, Baritone.settings().mineMaxOreLocationsCount.value, blacklist, droppedItemsScan()); // can't reassign locs, gotta make a new var locs2, because we use it in a lambda right here, and variables you use in a lambda must be effectively final Goal goal = new GoalComposite(locs2.stream().map(loc -> coalesce(loc, locs2, context)).toArray(Goal[]::new)); knownOreLocations = locs2; @@ -235,7 +233,7 @@ private void rescan(List already, CalculationContext context) { return; } List dropped = droppedItemsScan(); - List locs = searchWorld(context, filter, ORE_LOCATIONS_COUNT, already, blacklist, dropped); + List locs = searchWorld(context, filter, Baritone.settings().mineMaxOreLocationsCount.value, already, blacklist, dropped); locs.addAll(dropped); if (locs.isEmpty() && !Baritone.settings().exploreForBlocks.value) { logDirect("No locations for " + filter + " known, cancelling"); @@ -425,7 +423,7 @@ private boolean addNearby() { } } } - knownOreLocations = prune(new CalculationContext(baritone), knownOreLocations, filter, ORE_LOCATIONS_COUNT, blacklist, dropped); + knownOreLocations = prune(new CalculationContext(baritone), knownOreLocations, filter, Baritone.settings().mineMaxOreLocationsCount.value, blacklist, dropped); return true; }