Code Monkey home page Code Monkey logo

maple's Introduction



๐Ÿ Source code of the Maple bot, made with โค๏ธ in Java.

stars Codacy Badge Code size GitHub repo size Lines of Code

Overview

Maple is a free and powerful path-finding bot that lets you navigate the vast landscapes of Minecraft without any user intervention.

Additionally, Maple focuses on efficiency and performance, while also paying attention to reliability and an unobtrusive look. The bot is mainly controlled by chat input and the underlying pathing algorithm is called A*, a perfect algorithm for navigating voxel worlds like Minecraft.

If you simply want to use Maple, you can download the latest version from the download page. With the appropriate version of Fabric installed, you should be good to go.

This project is heavily inspired by Baritone, another pathfinder for Minecraft. Check out their repository at this link.

Features

Maple is equipped with many useful features that allow it to find the way to any destination and overcome any obstacle.

๐ŸŒŽ Long distance travel

Maple is able to travel for thousands of blocks without any user input, i.e. completely autonomously. It achieves this by using path segmentation and calculating the next segments when they are needed. Moreover, Maple is so reliable that it can walk for miles without slipping even once.

๐Ÿ“š Caching

To convert the Minecraft world into a more manageable format and to remember chunks even when they are no longer loaded, Maple makes use of caching. The software automatically converts the blocks around you into either AIR, SOLID, WATER or DANGER, making pathfinding much easier, for example.

๐Ÿ“ Waypoints

Waypoints are a way to remember important places in your Minecraft world. You can create them manually using wp create <name> [x y z], but Maple also automatically generates waypoints when you die or sleep in a bed. When created, a marker will appear showing you the location of the waypoint. If you want to travel back to a specific waypoint, use the command wp goto <name>. For more information on waypoints, see the Commands section.

๐Ÿงฑ Breaking/Placing blocks

Maple is not only able to traverse the world, but also knows how to interact with it. It will automatically destroy blocks that are in its way or place blocks to create a more efficient path. These functions can be deactivated if desired (see Options section).

๐Ÿ”ฅ Avoiding dangers

Maple knows which blocks are safe to walk on and which blocks can cause damage (e.g. lava, fire, cacti, ...). It will never choose a path that can hurt the player in any way (this includes fall damage).

Commands

All your interactions with the bot take place via the in-game chat functionality.

In order for Maple to recognize your command, it must start with a #. You can use the following list as a guide or simply use the ingame command #help.

Name Usages Aliases Description
help help [page]
help [command]
- Gives useful information about commands.
goto goto <x> <y> <z> [radius]
goto <x> <z>
goto <y>
goto <block_type>
- Starts moving to a custom goal.
mine mine <block_type> - Starts mining a specified block type.
farm - - Starts harvesting nearby crops.
follow follow <entity_type>
follow <name>
- Starts following a specified entity.
stop - cancel Stops the current task.
pause - - Pauses the current task.
resume - - Resumes the current task.
waypoint waypoint create <name> [x y z]
waypoint delete <name>
waypoint list [page]
waypoint info <name>
waypoint goto <name>
wp Used to create and travel to waypoints.
home - h Travel to the nearest waypoint marked as HOME.
lost - - Travel to the nearest waypoint.
tunnel - - Tunnel in the direction you are looking.
thisway thisway [distance] forward Move a specified number of blocks in the direction you are facing.
axis - - Travel to the nearest axis.
eta - - Displays the estimated time to reach the current destination.
modified modified [page] - Shows all modified options.
version - ver, v Shows the installed version of Maple.

Options

With the help of options you can better customize the behavior and functionality of Maple to your personal needs.

Use the command #help option in combination with the table of available options below to start customizing the bot.

  • allowBreak

    Whether or not the bot should be allowed to break blocks in order to get to the specified goal. Disabling could lead to the possibility of the bot not being able to reach the destination.

  • allowPlace

    Whether or not the bot should be allowed to place blocks in order to get to the specified goal. Disabling could lead to the possibility of the bot not being able to reach the destination.

Progress

Below is a table showing the progress of systems, functions and features in Maple:

Name Progress Included in latest build
Walking ๐ŸŸข Stable โœ”๏ธ
Swimming ๐ŸŸข Stable โœ”๏ธ
Jumping ๐ŸŸข Stable โœ”๏ธ
Breaking blocks ๐ŸŸข Stable โœ”๏ธ
Placing blocks ๐ŸŸข (somewhat) Stable โœ”๏ธ
Avoiding blocks ๐ŸŸข Stable โœ”๏ธ
Avoiding mobs ๐ŸŸก Unstable โœ”๏ธ
Parkour ๐ŸŸข Stable โœ”๏ธ
MLGs ๐ŸŸข Stable โœ”๏ธ
Path segmentation ๐ŸŸข Implemented โœ”๏ธ
Backtracking ๐ŸŸข Implemented โœ”๏ธ

Including

Feel free to include Maple in your projects/clients as long as your use of this project complies with our license.

API

TODO

Installation & setup

Before installing the Maple project on your PC, make sure that you are using at least JDK 16. To check your Java version, open a command prompt or your terminal and enter java -version.

Note: This guide is for installing the Maple project to modify/build it. If you just want to use Maple, you can find the latest build on the download page.

Download

Clone or download the project using the button at the top of this page. Make sure to unzip the contents of the ZIP file if you have chosen to download the project.

Generating Sources

If you wish, you can generate the Minecraft source code for reference using gradlew genSources. However, this step is purely optional.

Eclipse

If your IDE of choice is Eclipse, run gradlew eclipse. Then open Eclipse and select Import > Existing Gradle Project > Select Folder. Follow the wizard instructions and click Finish.

IntelliJ

If you prefer to use IntelliJ, open IDEA, select File | Open and select the build.gradle file. After Gradle is done setting up, close and re-open the project to fix run configurations not displaying correctly.

maple's People

Contributors

stylextv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

maple's Issues

Bug when saving cached region files

HI,i'll start off by saying that i'm using a modpack so i don't expect this ticket to be considered .
I know a bit of java myself so i know that the exception that the mod threw (FileNotFoundException) is not a very good sign.
I've noticed using the mod that the cache folder is always empty,at least when i checked after every crash, and that exception was thrown.
I don't know how you manage the cache but i think a "reload" command that tries to re-cache everything around could fix the cache file problem.
Maybe the FileNotFoundException could be catched and you can reload the cache (create the cache files) automatically.

Exceptions and logs
latest.log

To Reproduce
Steps to reproduce the behavior:

  1. enter the game
  2. try to use any command
  3. crash

Screenshots
image
image

Modified options
Nothing was modified, it was clean, the config has only allowBreak and allowPlace both true

Environment (please complete the following information):

  • OS: windows 10
  • Java version: 1.8.0_301
  • Minecraft version: 1.7.10
  • Maple version: latest( maple-fabric-mc1.17-0.1.0+build.4 )
  • Other mods (if used): it is a modpack, there are a lot of mods.

Additional context
have a nice day : D

Question regarding a specific release

Hi, I'm trying to fix the bug that I reported some days ago and I just noticed that you're updating the mod to the latest Minecraft release. Is there any way that I can get the project for the 1.17.1 version of Minecraft?
I'm quite new to git having only used it to backup a project I was working on ,so I don't know how to pull a specific version ๐Ÿ˜….
Thank you for your tips the other day, I managed to pull the project and build it with gradle ,now I just need to modify it.
Have a nice day : D

a very big question

I would love to donate tons of money if this project is going to be long term like baritone where it gets updates regularly

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.