Coder Social home page Coder Social logo

mc-autotool's Introduction

mc-autotool

Build Status

This mod takes the first good tool for the thing you're trying to mine.
Put your best tools on your hotbar and just forget about it.

What does this mod do?

  • Mining? It takes your pickaxe.
  • Cutting woods? It takes your axe.
  • Digging? It takes your shovel.
  • Attacking? It takes your sword.
    • Having your sword in hand? It will attack efficiently if you target an entity in attack range.
  • Farming? Do it 9x faster, do it right.
    • Having a seed in your hand? It will plant the seed in large area and harvest only mature crops.

Once finished, it will go back to the last item you were holding.
(except for the sword, so that you are in attack mode)

Changelog

  • New 2023-03-13: Updated for 1.19.3
  • New 2021-11-24: Updated for 1.18
  • New 2021-06-26: Updated for 1.17
  • New 2020-10-01: Updated for 1.16.3
  • New 2020-09-02: Updated for 1.16.2
  • New 2020-06-29: Updated for 1.16
  • New 2020-04-30: Auto harvest with tools. If using a tool with fortune you get more harvest: reddit
  • New 2019-07-25: Auto harvesting/planting IF seeds on hand (still need some tweaks) AND IF looking at fully grown "plant" or farmland block.
  • New 2019-07-25: Auto attack entity if you have the sword pulled out and you can touch the entity.
  • New 2019-07-25: Now it always choose the best tool.

Installation

  • Fabric
    Be sure to have it (it creates a new profile on your minecraft launcher).
  • Fabric API
    Download a version appropriate for your minecraft version.
    Put the jar file on %appdata%\.minecraft\mods\.
  • This mod
    Again, download a version appropriate for your minecraft version.
    Note: autotool-mcv1.14.jar is equivalent to autotool.jar
    Put the jar file on %appdata%\.minecraft\mods\.

Details on the logic of the mod

It will take the best tool that is capable of breaking the block you are clicking at.
Example:
On your hand is currently some bread you found on a strange chest.
You are looking at a tree and you have a wooden axe and a iron axe, the tool will take the best tool, the wooden axe, once you click on the tree. When you release the click (either finished or don't want to cut some trees after all), you will get back the last thing on your hand, the mysterious piece of bread.

The behaviour is different for entities, if you look at a pig and want to kill it, once you click on it, you will take a sword from your hotbar, but it won't go back to the last item you were holding.
(this is something I need to figure out)
Then, the tool will use the sword (generally, but if you don't have a sword possibly it will take an axe).
If it is a sword, it will attack the entity every 625ms (the time the sword takes to fully "charge").

This mod definitly won't suit everyone.
There is no configuration and won't have any configuration.

Please take a look at the source code, it's only 387 LOC (spread on about 8 files).

Other

The code is on the other branches of this repo.
1.14
1.15
1.16
1.17
1.18
1.19

Inspiration

Thanks to the author of the ControlPack, it is a mod I discovered a long time ago (arround mc 1.9).
So far the best-mod-ever. True quality of life for Minecraft gameplay. https://github.com/uyjulian/ControlPack

Steps to update deps

debugging vscode sources and other

rm -rf .gradle bin build .project .classpath
./gradlew genSources

List of prefered mods

# mods 1.16
appleskin-mc1.16-fabric-1.0.11.jar
autotool-mcv1.16.jar
durabilityviewer-1.16.2-fabric0.17.2-1.8.6.jar
fabric-api-0.19.0+build.398-1.16.jar
fabricmod_VoxelMap-1.10.10_for_1.16.2.jar
modmenu-1.14.6+build.31.jar
modnametooltip_1.16.2-1.15.0.jar
mousewheelie-1.5.3+mc1.16.2-pre1.jar
optifabric-1.4.3.jar
OptiFine_1.16.2_HD_U_G3.jar

# shaders
Sildurs Vibrant Shaders v1.28 High-Motionblur.zip

# resource pack
realistico 8

# fov
100

# cool game rules to play with bebe
# see more here https://minecraft.gamepedia.com/Commands/gamerule
/gamerule mobGriefing false
/gamerule keepInventory true
/team add noff
/team modify noff friendlyFire false
/team join noff @a

# god stuff
# SWORD + TOOLS
/give @p netherite_sword{Unbreakable:1,Enchantments:[{id:sharpness,lvl:9},{id:fire_aspect,lvl:9},{id:looting,lvl:9},{id:sweeping,lvl:9}]}
/give @p netherite_sword{Unbreakable:1,Enchantments:[{id:sharpness,lvl:9999},{id:fire_aspect,lvl:9},{id:looting,lvl:9},{id:sweeping,lvl:9}]}
/give @p netherite_pickaxe{Unbreakable:1,Enchantments:[{id:efficiency,lvl:9},{id:fortune,lvl:9}]}
/give @p netherite_shovel{Unbreakable:1,Enchantments:[{id:efficiency,lvl:5},{id:fortune,lvl:9}]}
/give @p netherite_axe{Unbreakable:1,Enchantments:[{id:efficiency,lvl:9},{id:fortune,lvl:9}]}
/give @p netherite_hoe{Unbreakable:1,Enchantments:[{id:efficiency,lvl:9},{id:fortune,lvl:9}]}

# ARMOR WITH MODIFIED ELYTRA
/give @p netherite_helmet{Unbreakable:1,Enchantments:[{id:aqua_affinity,lvl:9},{id:blast_protection,lvl:9},{id:fire_protection,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:respiration,lvl:9},{id:thorns,lvl:9}]}
/give @p elytra{Unbreakable:1,AttributeModifiers:[{AttributeName:"generic.armor",Amount:12,UUIDLeast:1,UUIDMost:1,Slot:"chest"}],Enchantments:[{id:fire_protection,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:thorns,lvl:9}]}
/give @p netherite_boots{Unbreakable:1,Enchantments:[{id:blast_protection,lvl:9},{id:depth_strider,lvl:9},{id:feather_falling,lvl:9},{id:fire_protection,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:thorns,lvl:9}]}
/give @p netherite_leggings{Unbreakable:1,Enchantments:[{id:blast_protection,lvl:9},{id:fire_protection,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:thorns,lvl:9}]}
/give @p trident{Unbreakable:1,Enchantments:[{id:channeling,lvl:9},{id:impaling,lvl:9},{id:loyalty,lvl:9},{id:riptide,lvl:9},{id:sharpness,lvl:9},{id:looting,lvl:9}]}

# best used with elytra
/give @p minecraft:firework_rocket 128



/give @p netherite_boots{Unbreakable:1,Enchantments:[{id:blast_protection,lvl:9},{id:depth_strider,lvl:9},{id:feather_falling,lvl:9},{id:fire_protection,lvl:9},{id:frost_walker,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:thorns,lvl:9}]}

# OTHER
/give @p bow{Unbreakable:1,Enchantments:[{id:infinity,lvl:9},{id:flame,lvl:9},{id:punch,lvl:9},{id:power,lvl:9},{id:looting,lvl:9},{id:multishot,lvl:10},{id:piercing,lvl:10},{id:quick_charge,lvl:10}]}
/give @p crossbow{Unbreakable:1,Enchantments:[{id:infinity,lvl:9},{id:flame,lvl:9},{id:punch,lvl:9},{id:power,lvl:9},{id:looting,lvl:9},{id:multishot,lvl:10},{id:piercing,lvl:10},{id:quick_charge,lvl:5}]}
/give @p fishing_rod{Unbreakable:1,Enchantments:[{id:lure,lvl:9},{id:luck_of_the_sea,lvl:9},{id:vanishing_curse,lvl:9}]}
/give @p spectral_arrow 64
/give @p enchanted_golden_apple 64

/give @p netherite_chestplate{Unbreakable:1,Enchantments:[{id:blast_protection,lvl:9},{id:fire_protection,lvl:9},{id:projectile_protection,lvl:9},{id:protection,lvl:9},{id:thorns,lvl:9}]}


# EFFECTS
/effect give @a haste 999999 255 true
/effect give @a luck 999999 255 true
/effect give @p night_vision 999999 255 true

/effect give @p haste 999999 255 true
/effect give @p luck 999999 255 true
/effect give @p regeneration 999999 255 true

/effect give @p invisibility 999999 255 true
/effect give @p water_breathing 999999 255 true
/effect give @p strength 999999 255 true
/effect give @p instant_health 999999 255 true
/effect give @p absorption 999999 255 true
/effect give @p conduit_power 999999 255 true
/effect give @p dolphins_grace 999999 255 true
/effect give @p health_boost 999999 255 true
/effect give @p speed 999999 255 true
/effect clear @p

Dropped ideas

  • TODO: Auto refill of coal and easy refill of chest if item is in inventory and the chest
# this idea looks like it is just not easily possible.

mc-autotool's People

Contributors

chneau avatar

Watchers

 avatar

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.