gaucho-matrero / altoclef Goto Github PK
View Code? Open in Web Editor NEWPlays block game
License: MIT License
Plays block game
License: MIT License
The bot places items in the slots for each item one at a time. This can be made faster.
Apparently you can click+drag to evenly distribute items? This might make things way faster as the game automatically splits up our items quickly. The bot would still click the output slot one at a time (unless the output slot has just the right amount that we need), but it would reduce the craft time from 50-90%
Make this more granular, and test thoroughly to make sure there are no multi-threaded shenanigans.
private void readExtraState(AltoClefSettings settings) {
synchronized (settings.getBreakMutex()) { // TODO: 2021-05-22 why is there synchronized nesting here?
synchronized (settings.getPlaceMutex()) {
blocksToAvoidBreaking = new HashSet<>(settings.getBlocksToAvoidBreaking());
toAvoidBreaking = new ArrayList<>(settings.getBreakAvoiders());
toAvoidPlacing = new ArrayList<>(settings.getPlaceAvoiders());
protectedItems = new ArrayList<>(settings.getProtectedItems());
synchronized (settings.getPropertiesMutex()) {
allowWalking = new ArrayList<>(settings.getForceWalkOnPredicates());
}
}
}
allowWalkThroughFlowingWater = settings.isFlowingWaterPassAllowed();
allowShears = settings.areShearsAllowed();
rayFluidHandling = RayTraceUtils.fluidHandling;
mineProcSearchAnyFlag = MineProcess.searchAnyFlag;
}
Bot should find but it go go go forever
Difficult to reproduce.
Try running a crap ton of commands over and over again, going to and from the nether perhaps
After wandering to wait for calculations or a located object, the bot should quickly locate and interact with said object
On rare occasions, the bot gets stuck wandering forever
Image courtesy of @TheBlueBurger
^^ Even if logs appear within proximity of the bot, it will still wander forever.
I want to change the forceFieldStrategy option in the settings file but I don't know what other values for that to put in... Could you please make a file with a list of possible settings or something like that?
Thanks!
@Stop does not stop baritone
Execute a task, then run @stop
Baritone and altoclef stops
Baritone doesn't stop
None
AltoClef might sometimes randomly look at endermen. This will cause the endermen to attempt to kill the player. There should be a check, if a enderman hits you, the bot fights back, but it should let the normal endermen be alone.
Baritone has a setting called legitMine, which prevents the bot from locating blocks it wants to mine through walls (kinda like xray), but the bot will continue to do so when legitMine is true.
If this is intended behavior maybe a setting to add legitMine could be added?
The bot doesn't use a sword when force-fielding enemies away and instead switches away from the sword to an empty hand or random item. In most cases the mobs (especially skeletons because they can shoot) will kill it since the bot can't quickly kill the mobs.
https://youtu.be/_kb0x-szNso
Time: 42:30
Include a txt file next to the settings file explaining each parameter
Allow to travel between dimensions using @goto
. A few examples:
@goto 0 100 0
= get to 0 100 0 in the current dimention
@goto 0 100 0 nether
= get to 0 100 0 in the nether
@goto nether 0 100 0
= get to 0 100 0 in the nether
@goto nether
= get to the nether
There is a biome in the nether where endermen are really common, maybe craft a chest before going to the nether, place it in the nether, and then find the biome where endermen spawn and hunt there
Throws error while being attacked by a Hoglin
Get a Hoglin to attack you
Doesnt crash
Currently, you have a massive class which constructs the tree of crafting recipes.
It would be MUCH nicer if that could instead just be a bunch of json files or smth.
Like logs.json
, food.json
, end.json
, nether.json
, materials.json
, etc.
A recipe such as cake x 20 will guarantee to fail, as you can't store 60 milk buckets in one inventory. This could also bring up a future issue with large schematics that can't hold all their resources in one inventory.
If you for example mine diamonds, it will end the task underground when it's done.
It would be good to add a option to pathfind to the starting position when it is done.
Bot is really slow when in lava and easily dies there. Fails in two aspects:
With diamond armor: Idle, then get stuck in lava pool
Bot attempts to leave lava and escapes small lava pools pretty reliably with diamond armor
Bot pussyfoots around and slowly dies in the lava when it could escape
Can't believe I didn't find this earlier.
@get stone
gets stuck while trying to craft a furnace.
Steps to repeat:
With 8 cobblestone, some fuel (1 coal is fine) and a placed crafting table, run @get stone
.
The bot will try to craft a furnace, and will stop right before picking up the furnace from the table, repeating.
Currently the bot only considers the "food" value when picking food to eat. It should consider it's health and saturation as well.
thecamo6 brought up some great descriptions for a one cycle ender dragon kill might look like.
If no more beds, either suicide to get more beds or proceed to attack the dragon manually.
The bot should make a new tool because it very often gets stuck underground when the tool breaks.
As most people know, you can't open a chest if a block is over it, but altoclef sometimes places a chest under a block and opens it.
Create a file format that handles recipes, so that people can add custom recipes easily.
Examples:
mine dirt from [dirt, grass_block, grass_path]
mine log[acacia_log, birch_log, crimson_log, dark_oak_log, oak_log, jungle_log, spruce_log, warped_log] from [acacia_log, birch_log, crimson_log, dark_oak_log, oak_log, jungle_log, spruce_log, warped_log]; any dimension
mine cobblestone from [stone, cobblestone] with wooden_pickaxe
mine netherrack with wooden_pickaxe; nether
simple planks from CollectPlanksTask; dont automine
simple cobblestone from CollectCobblestoneTask; dont automine
mob gunpowder CreeperEntity
smelt stone from cobblestone; dont automine
recipe2x2 crafting_table from [planks, planks, planks, planks]
recipe2x2 torch from [coal, , stick, ]
recipeSlab cobblestone_slab using cobblestone
recipeStairs cobblestone_stairs using cobblestone
recipeWall cobblestone_wall using cobblestone
tools wooden from planks
alias wooden_pick from wooden_pickaxe
mobCook porkchop PigEntity.class
crop carrot break carrot plant carrot
crop beetroot break beetroots plant beetroot_seeds
crop beetroot_seeds break beetroots plant beetroot_seeds
PROBLEM:
How to deal with stuff like this?
woodTasks("log", wood -> wood.log, (wood, count) -> new MineAndCollectTask(wood.log, count, new Block[]{Block.getBlockFromItem(wood.log)}, MiningRequirement.HAND));
I could manually write those out. For example:
mine acacia_log
mine birch_log
etc...
I think since this is a text based file it wouldn't hurt to add some extra lines and a comment system to make things more legible. We'll stick with that for now.
Basically, just remove TaskCatalogue
, because stactic stuff is gross.
Recipes should be loaded from a file at runtime.
while doing "get" or "butler" task, the bot will not build nether portals or use existing portals to travel cross-dimensionally. tested using the "@get quartz" command
Issue:
If the bot is holding an eye of ender and is instructed to sleep in a bed, it will right click on the bed with an eye of ender and throw the eye.
What should happen:
Before right clicking to interact with anything, the bot should de-equip itself of any usable items (preferably bare handed if inventory not full)
Steps to recreate:
Equip eye of ender, then make bot sleep in bed/set spawn.
The arg system is not very good right now... We need a new one
Gets triggered when the bot is low in health. Will attempt to hide from monsters, for example, hide in a wall and blocking itself in. If it sees any way to safely get food, it does.
Make the bot enter a portal that is standing on soulsand.
The bot should exit the portal and proceed. Instead, after entering the nether the bot will simply stand in the portal and try to dig downwards into the portal, or trying to place a block on top of the neighboring soulsand.
To create a build, both altoclef and the modified fabritone project must be built separately and then combined.
to make this easier, altoclef should include a copy of baritone-1.6.2.jar
in the build directory.
Altoclef very often attempts to go to a place underwater and gets stuck
Get the bot to go to a place underwater or the ocean
It successfully comes there
It gets stuck
There's something fundamentally wrong with the "do to closest block" task, as it's inefficient and kinda stupid.
When building a portal, liquid collection can often get stuck.
When mining diamonds, many diamonds are left out.
Currently, you are required to build fabrictone and include it as a file in the libs dir.
Gimme like 10 minutes and that'll change.
Title says it all
https://github.com/cabaletta/baritone/releases/tag/v1.6.3
Would keep baritone up to date, fix some issues and ALSO be a github fork, so it can be added to this organization for ease of access (very nice)
This seems to ONLY be 1.16.5, so this might not be the best route if we want to support earlier versions (like 1.16.1, or even 1.12)
AltoClef places water on wrong block if there is a height difference
Bot places water on the top block
Bot places water on the bottom block
None
I'm sure many people have had issues using/compiling this, but github issues is not the best way to get support as it's not something wrong with the code.
Detect and avoid dragons breath
and
if there is stuff(armor / tools) at the floor pick that up and equip it
If you change your place and break settings Alto Clef will try to use the default controls to place the block.
Change Place settings in controls in minecraft then try to get diamond.
IT places the block with the user control
It places with default controls
Currently our users don't need to copy over the fabritone jar to TEST the project, but to BUILD it they gotta open up the fabritone project. That's annoying.
When building a full jar the process should be easy. If at all possible, everything should be merged into one jar.
If not, at least every dependent jar should be included somewhere in the build folder.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.