diff --git a/andy.json b/andy.json index 5482f45..adc5bd8 100644 --- a/andy.json +++ b/andy.json @@ -11,6 +11,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": true, "self_defense": true, "hunting": true, diff --git a/patches/mineflayer-pathfinder+2.4.5.patch b/patches/mineflayer-pathfinder+2.4.5.patch index 4c8dc93..6906371 100644 --- a/patches/mineflayer-pathfinder+2.4.5.patch +++ b/patches/mineflayer-pathfinder+2.4.5.patch @@ -1,17 +1,16 @@ diff --git a/node_modules/mineflayer-pathfinder/index.js b/node_modules/mineflayer-pathfinder/index.js -index b38bd30..cfaa677 100644 +index b38bd30..bf16a63 100644 --- a/node_modules/mineflayer-pathfinder/index.js +++ b/node_modules/mineflayer-pathfinder/index.js -@@ -541,7 +541,7 @@ function inject (bot) { - let canPlace = true - if (placingBlock.jump) { - bot.setControlState('jump', true) -- canPlace = placingBlock.y + 1 < bot.entity.position.y -+ canPlace = placingBlock.y + 1.8 < bot.entity.position.y - } - if (canPlace) { - if (!lockEquipItem.tryAcquire()) return -@@ -557,6 +557,7 @@ function inject (bot) { +@@ -550,6 +550,7 @@ function inject (bot) { + lockEquipItem.release() + const refBlock = bot.blockAt(new Vec3(placingBlock.x, placingBlock.y, placingBlock.z), false) + if (!lockPlaceBlock.tryAcquire()) return ++ bot.world.setBlockStateId(refBlock.position.offset(placingBlock.dx, placingBlock.dy, placingBlock.dz), 1) + if (interactableBlocks.includes(refBlock.name)) { + bot.setControlState('sneak', true) + } +@@ -557,6 +558,7 @@ function inject (bot) { .then(function () { // Dont release Sneak if the block placement was not successful bot.setControlState('sneak', false) diff --git a/profiles/andy_npc.json b/profiles/andy_npc.json index 3eff4ae..8134c5e 100644 --- a/profiles/andy_npc.json +++ b/profiles/andy_npc.json @@ -13,6 +13,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": true, "self_defense": true, "hunting": true, diff --git a/profiles/claude.json b/profiles/claude.json index 20a06c5..415eda9 100644 --- a/profiles/claude.json +++ b/profiles/claude.json @@ -16,6 +16,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": false, "self_defense": true, "hunting": true, diff --git a/profiles/freeguy.json b/profiles/freeguy.json index 62b50ae..0df24a5 100644 --- a/profiles/freeguy.json +++ b/profiles/freeguy.json @@ -13,6 +13,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": true, "self_defense": true, "hunting": true, diff --git a/profiles/gemini.json b/profiles/gemini.json index 33f4918..bb354d2 100644 --- a/profiles/gemini.json +++ b/profiles/gemini.json @@ -13,6 +13,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": false, "self_defense": true, "hunting": true, diff --git a/profiles/gpt.json b/profiles/gpt.json index 271c368..7d1120d 100644 --- a/profiles/gpt.json +++ b/profiles/gpt.json @@ -11,6 +11,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": false, "self_defense": true, "hunting": true, diff --git a/profiles/llama.json b/profiles/llama.json index 86d13f6..b8620d9 100644 --- a/profiles/llama.json +++ b/profiles/llama.json @@ -15,6 +15,7 @@ "modes": { "self_preservation": true, + "unstuck": true, "cowardice": false, "self_defense": true, "hunting": true, diff --git a/src/agent/commands/index.js b/src/agent/commands/index.js index 622808e..13d7201 100644 --- a/src/agent/commands/index.js +++ b/src/agent/commands/index.js @@ -14,7 +14,7 @@ export function getCommand(name) { return commandMap[name]; } -const commandRegex = /!(\w+)(?:\(((?:[^)(]+|'[^']*'|"[^"]*")*)\))?/ +const commandRegex = /!(\w+)(?:\(([\s\S]*)\))?/ const argRegex = /(?:"[^"]*"|'[^']*'|[^,])+/g; export function containsCommand(message) {