> buildIgnoreProperties = new Setting<>(new ArrayList<>(Arrays.asList(
+ )));
+
/**
* If this setting is true, Baritone will never break a block that is adjacent to an unsupported falling block.
*
diff --git a/src/main/java/baritone/process/BuilderProcess.java b/src/main/java/baritone/process/BuilderProcess.java
index c1c0cb1d..2d7714d9 100644
--- a/src/main/java/baritone/process/BuilderProcess.java
+++ b/src/main/java/baritone/process/BuilderProcess.java
@@ -874,14 +874,21 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil
BlockTrapDoor.OPEN, BlockTrapDoor.HALF
);
- private boolean sameWithoutOrientation(IBlockState first, IBlockState second) {
+ private boolean sameBlockstate(IBlockState first, IBlockState second) {
if (first.getBlock() != second.getBlock()) {
return false;
}
+ boolean ignoreDirection = Baritone.settings().buildIgnoreDirection.value;
+ List ignoredProps = Baritone.settings().buildIgnoreProperties.value;
+ if (!ignoreDirection && ignoredProps.isEmpty()) {
+ return first.equals(second); // early return if no properties are being ignored
+ }
ImmutableMap, Comparable>> map1 = first.getProperties();
ImmutableMap, Comparable>> map2 = second.getProperties();
for (IProperty> prop : map1.keySet()) {
- if (map1.get(prop) != map2.get(prop) && !orientationProps.contains(prop)) {
+ if (map1.get(prop) != map2.get(prop)
+ && !(ignoreDirection && orientationProps.contains(prop))
+ && !ignoredProps.contains(prop.getName())) {
return false;
}
}
@@ -913,7 +920,7 @@ public final class BuilderProcess extends BaritoneProcessHelper implements IBuil
if (current.equals(desired)) {
return true;
}
- return Baritone.settings().buildIgnoreDirection.value && sameWithoutOrientation(current, desired);
+ return sameBlockstate(current, desired);
}
public class BuilderCalculationContext extends CalculationContext {
From 1cd2fb5b18203b7fee4f8e1c71a53326e6b7e2ea Mon Sep 17 00:00:00 2001
From: ZacSharp <68165024+ZacSharp@users.noreply.github.com>
Date: Mon, 24 Oct 2022 22:49:12 +0200
Subject: [PATCH 62/68] Reliably clear keys when paused
---
.../java/baritone/command/defaults/ExecutionControlCommands.java | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main/java/baritone/command/defaults/ExecutionControlCommands.java b/src/main/java/baritone/command/defaults/ExecutionControlCommands.java
index eaab7528..6f6293cc 100644
--- a/src/main/java/baritone/command/defaults/ExecutionControlCommands.java
+++ b/src/main/java/baritone/command/defaults/ExecutionControlCommands.java
@@ -56,6 +56,7 @@ public class ExecutionControlCommands {
@Override
public PathingCommand onTick(boolean calcFailed, boolean isSafeToCancel) {
+ baritone.getInputOverrideHandler().clearAllKeys();
return new PathingCommand(null, PathingCommandType.REQUEST_PAUSE);
}
From 3cef7a7911d45c94a1344239ab6895b5c7578bb8 Mon Sep 17 00:00:00 2001
From: rycbar0 <100363533+rycbar0@users.noreply.github.com>
Date: Wed, 26 Oct 2022 23:09:23 +0200
Subject: [PATCH 63/68] formula error
---
.../utils/schematic/format/defaults/LitematicaSchematic.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java b/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java
index 84b9b86e..c2857bc2 100644
--- a/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java
+++ b/src/main/java/baritone/utils/schematic/format/defaults/LitematicaSchematic.java
@@ -136,7 +136,7 @@ public final class LitematicaSchematic extends StaticSchematic {
* @return amount of bits used to encode a block.
*/
private static int getBitsPerBlock(int amountOfBlockTypes) {
- return (int) Math.floor((Math.log(amountOfBlockTypes)) / Math.log(2)) + 1;
+ return (int) Math.max(2,Math.ceil(Math.log(amountOfBlockTypes) / Math.log(2)));
}
/**
From e1095962a1b2854dd65003959e17e5f812fad7e3 Mon Sep 17 00:00:00 2001
From: ZacSharp <68165024+ZacSharp@users.noreply.github.com>
Date: Mon, 28 Nov 2022 23:07:30 +0100
Subject: [PATCH 64/68] Fix Registry.unregister
---
src/api/java/baritone/api/command/registry/Registry.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/api/java/baritone/api/command/registry/Registry.java b/src/api/java/baritone/api/command/registry/Registry.java
index 06779169..b571484b 100644
--- a/src/api/java/baritone/api/command/registry/Registry.java
+++ b/src/api/java/baritone/api/command/registry/Registry.java
@@ -84,7 +84,7 @@ public class Registry {
* @param entry The entry to unregister.
*/
public void unregister(V entry) {
- if (registered(entry)) {
+ if (!registered(entry)) {
return;
}
_entries.remove(entry);
From e09127eadf3efe6aee9afd56183c902181737c57 Mon Sep 17 00:00:00 2001
From: Wagyourtail
Date: Sat, 10 Dec 2022 16:35:51 -0700
Subject: [PATCH 65/68] allowBreakAnyway should let mining happen
---
.../java/baritone/process/MineProcess.java | 25 ++++++++++++++-----
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/src/main/java/baritone/process/MineProcess.java b/src/main/java/baritone/process/MineProcess.java
index 1ec47cd9..08a6791b 100644
--- a/src/main/java/baritone/process/MineProcess.java
+++ b/src/main/java/baritone/process/MineProcess.java
@@ -102,10 +102,17 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
return null;
}
}
+
if (!Baritone.settings().allowBreak.value) {
- logDirect("Unable to mine when allowBreak is false!");
- cancel();
- return null;
+ this.filter = new BlockOptionalMetaLookup(filter.blocks()
+ .stream()
+ .filter(e -> Baritone.settings().allowBreakAnyway.value.contains(e.getBlock()))
+ .toArray(BlockOptionalMeta[]::new));
+ if (this.filter.blocks().isEmpty()) {
+ logDirect("Unable to mine when allowBreak is false!");
+ cancel();
+ return null;
+ }
}
updateLoucaSystem();
int mineGoalUpdateInterval = Baritone.settings().mineGoalUpdateInterval.value;
@@ -467,9 +474,15 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
public void mine(int quantity, BlockOptionalMetaLookup filter) {
this.filter = filter;
if (filter != null && !Baritone.settings().allowBreak.value) {
- logDirect("Unable to mine when allowBreak is false!");
- this.mine(quantity, (BlockOptionalMetaLookup) null);
- return;
+ this.filter = new BlockOptionalMetaLookup(filter.blocks()
+ .stream()
+ .filter(e -> Baritone.settings().allowBreakAnyway.value.contains(e.getBlock()))
+ .toArray(BlockOptionalMeta[]::new));
+ if (this.filter.blocks().isEmpty()) {
+ logDirect("Unable to mine when allowBreak is false!");
+ this.mine(quantity, (BlockOptionalMetaLookup) null);
+ return;
+ }
}
this.desiredQuantity = quantity;
this.knownOreLocations = new ArrayList<>();
From 85087ce04a9130a92059732ca7046be3d39c9f29 Mon Sep 17 00:00:00 2001
From: Wagyourtail
Date: Sat, 10 Dec 2022 19:25:57 -0700
Subject: [PATCH 66/68] smarter filter filtering
---
.../java/baritone/process/MineProcess.java | 59 +++++++++++--------
1 file changed, 36 insertions(+), 23 deletions(-)
diff --git a/src/main/java/baritone/process/MineProcess.java b/src/main/java/baritone/process/MineProcess.java
index 08a6791b..7666ec7c 100644
--- a/src/main/java/baritone/process/MineProcess.java
+++ b/src/main/java/baritone/process/MineProcess.java
@@ -103,17 +103,6 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
}
}
- if (!Baritone.settings().allowBreak.value) {
- this.filter = new BlockOptionalMetaLookup(filter.blocks()
- .stream()
- .filter(e -> Baritone.settings().allowBreakAnyway.value.contains(e.getBlock()))
- .toArray(BlockOptionalMeta[]::new));
- if (this.filter.blocks().isEmpty()) {
- logDirect("Unable to mine when allowBreak is false!");
- cancel();
- return null;
- }
- }
updateLoucaSystem();
int mineGoalUpdateInterval = Baritone.settings().mineGoalUpdateInterval.value;
List curr = new ArrayList<>(knownOreLocations);
@@ -122,7 +111,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
Baritone.getExecutor().execute(() -> rescan(curr, context));
}
if (Baritone.settings().legitMine.value) {
- addNearby();
+ if (!addNearby()) return null;
}
Optional shaft = curr.stream()
.filter(pos -> pos.getX() == ctx.playerFeet().getX() && pos.getZ() == ctx.playerFeet().getZ())
@@ -183,6 +172,11 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
}
private PathingCommand updateGoal() {
+ BlockOptionalMetaLookup filter = filterFilter();
+ if (filter == null) {
+ return null;
+ }
+
boolean legit = Baritone.settings().legitMine.value;
List locs = knownOreLocations;
if (!locs.isEmpty()) {
@@ -227,6 +221,7 @@ public final class MineProcess extends BaritoneProcessHelper implements IMinePro
}
private void rescan(List