Бот на питоне майнкрафт

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

A minecraft bot written in python.

License

magahet/peon

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Peon is a minecraft bot written in python. It acts as a replacement for the minecraft client and allows for automation of tasks in the minecraft world. The bot can hunt, mine, gather, defend, eat, etc. He has efficient path finding both for movement and digging.

This version of peon uses fastmc and works with Mincraft 1.8.

Get fastmc for protocol handling

git clone https://github.com/dividuum/fastmc.git cd fastmc python setup.py install 
git clone https://github.com/magahet/peon.git cd peon 
cp settings.cfg.example settings.cfg 

Edit settings.cfg with your servername, username, and password.

./autobot -c example/test.yaml 

This will log peon in and enable a few sample automated processes. Peon will harvest mature crops within 20m of himself and will gather those crops. He will also defend himself from hostile mobs and eat any available food in his inventory when hungry.

Make him more interactive

Although autobot.py and the auto action yaml files (described in the next section) allow for many automated tasks, it does not have a comprehensive interface. However, using the python interactive terminal, or IPython (recommended) will make working with peon a lot easier than constantly killing the running autobot.py script. Here is an example session:

# launch autobot.py, connect to the world "local" defined in settings.cfg, and run the auto actions defined in examples.follow.yaml $ ipython -i autobot.py -- -w local -a examples/follow.yaml 14:11 - INFO - root - logging into [localhost:25565] as [peon] 14:11 - INFO - root - actions: [] 14:11 - INFO - peon.client - logging in 14:11 - INFO - peon.robot - Eating: Cooked Chicken Bot(xyz=(-379, 70, 288), health=20.0, food=18, xp=66, enabled_auto_actions=['defend', 'escape', 'fall', 'eat'], active_auto_actions=['eat']) In [2]: bot.stop('follow') Out[2]: True In [3]: bot.start('hunt') Out[3]: True 14:12 - INFO - peon.robot - hunting entity: Entity(eid=249767, _type=Spider, xyz=(-364, 70, 262)) In [6]: bot.inventory Out[6]: Window(id=0, slots=[ . Slot(item_name="Cobblestone", count=64, damage=0, has_data=False), # 26 main inventory Slot(item_name="Granite", count=7, damage=1, has_data=False), # 27 main inventory Slot(item_name="Seeds", count=1, damage=0, has_data=False), # 28 main inventory Slot(item_name="Sandstone", count=8, damage=0, has_data=False), # 29 main inventory Slot(item_name="Diamond", count=47, damage=0, has_data=False), # 30 main inventory Slot(item_name="Cobblestone", count=64, damage=0, has_data=False), # 31 main inventory Slot(item_name="Cobblestone", count=15, damage=0, has_data=False), # 32 main inventory 

The interpreter allows you to manipulate the bot object interactively and allows you to print, list, or get help for attributes and methods. A tutorial on IPython will help with learning how to use these features.

Peon is able to perform a number actions automatically, without blocking the main process. Using autobot.py, you can enable these actions and configure their settings with a configuration yaml file. Examples are available in the examples directory.

The following are some of the actions available. To see the full list look at peon/robots.py. The configuration yaml should be made up of a list of dictionaries describing each action. The name must match the set of actions defined in robots.py. Arguments are those defined by each auto action function and remaining keys are passed to the function as keyword arguments. Look at each function to see the full set of options.

If he’s not actively moving and not on the ground, peon will auto update his position downward. Fall is automatically enabled.

If his hunger reaches a set threshold, he will look for food in his inventory and eat it. Eat is automatically enabled.

If hostile mobs enter a 4m radius, he will grab a sword from his inventory, if available, and kill the mob. Peon defends against all hostile mobs by default. Defend is automatically enabled.

He will search the area for certain mob types, navigate to, and kill them.

- name: hunt mob_types: ['Sheep', 'Zombie'] # list of mobs to hunt _range: 20 # how far from home to hunt

He will search for objects of a given type and go collect them.

- name: gather items: # list of items to gather - Stone - Sand _range: 20 # how far from home to search

He will search for grown crops or other block_types to break and collect. Can be used to cut down trees.

- name: harvest _range: 20 # how far from home to search

Finds, digs to, and mines given block types. He has perfect knowledge of the world, so he digs straight to the resources. There’s no searching involved.

- name: mine block_types: - Diamond Ore - Gold Ore - Iron Ore

Finds and moves to an enchanting table and enchants whatever is available in his inventory. Continues to enchant as long as his xp level is 30+ and has 3+ lapis in his inventory. This works very well when used with defend (next to xp farm), get_enchantables, and store_enchanted.

Gets items from a chest at a given position.

- name: get items: - Cooked Chicken chest_position: [10, 30, 20]

Same as Get, but only gets items that can be enchanted.

Stores items in a chest at a given position.

- name: store items: - Diamonds chest_position: [10, 30, 20]

Same as Store, but only stores items that are enchanted.

Peon will follow a player until this is disabled.

- name: follow player_name: magahet

Peon keeps track of all the interesting blocks in the world, including mob spawners and end portal blocks. This makes him useful for finding strongholds or good places to build spawner xp farms. In addition, he also has the ability to find clusters of mob spawners. This is done using cluster analysis to find groups of spawners with a centroid 16m or less to each spawner.

bot.world.block_entities bot.world.get_mob_spawner_clusters()

Peon can clear an area of all solid blocks. The function takes two tuples of (x, y, z) and will clear everything within the bounding box defined by those points. This works both on the surface and underground. As with mining and all such digging, peon will not break any blocks that are adjacent to liquid (water and lava) or below a falling block (sand and gravel).

This will clear out everything from 1 to 5 on the x, y, and z axises. You can also specify a list of block types to ignore when excavating:

bot.excavate((1, 1, 1), (5, 5, 5), ignore=['Dirt', 'Grass Block'])

This is the opposite of excavate. Peon will fill this area with a given block type, starting from the bottom.

bot.fill((1, 1, 1), (5, 5, 5), block_type='Dirt')

Excavate and fill work well for clearing/flattening areas of land.

So, so much. It would be great to get all the previous peon functionality going again. However, we all have real lives and there are only so many hours in a day. Here are some big items I’m working to get going again:

My bot died. How do I respawn?

autobot.py returns two objects, client and bot. Run this:

Источник

Гайд Пишем своих майнкрафт ботов на Python зная его основы.

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

NiggaByte

so black

Добрый день, леди и джентльмены. В данной статье я вас научу делать ботом на майнкрафт используя библиотеку mineflayer.
Мы с вами напишем бота который сможет — бегать за вами, кушать если слишком мало еды, узнавать количество хп и еще пару вещей.

55486f14ac321ba0c0773a18c002cc0c1cfb6008bbd7adf701663f0a255b1731.webp

После установки python, нам нужно импортировать javascript в него. Для этого в консоль пишем:
pip install javascript

1ab72aae4e65e230c68c58dac6f47fa43376349551d4014ffce790e997ce9355.webp

У меня она уже установлена, поэтому мне пишет что такая библиотека уже есть. У вас же будут немного другие надписи.

Есть 3 самых популярных программы для этого — PyCharm , Sublime Text , Visual Studio Code . В этом гайде я буду использовать PyCharm, вы же можете использовать то, что вам по душе

Переходим к установке PyCharm:
1. Заходим на официальный сайт — *тык*
2. Жмем кнопку скачать.

90999f339b16e2c94416d01f18ea4a0e535c6d26f880b54104a255fe0ec7a31d.webp

dbdedaf5f10fb7b51d55e70d76fbdac52a6e0f26ec2706f8a5a53df369e1733c.webp

edebbf5aa330aec57b567393e7d9c39dadc72c0129045c1d84dd0831333276d6.webp

Из javascript импортируем require и запрашиваем mineflayer
Дальше создаем бота и составляем словарь с данными сервера и ником бота.
Создаем бесконечный цикл чтобы бот был на сервере всегда.

5f68b4bf238cc6dbbfd0a38090199a4ec3cdb170fd42c07dff93b6a502b6e4dc.webp

e198a9c2e0ca5a1753e724b254f107279d427ee287119fd5758fa6bf561898d3.webp

Есть методы и ивенты
Ивенты — это то что происходит в игре — дождь, сообщение в чате и т.д.
Метод — то что делает бот, например метод chat() пишет сообщение в чат.
В этом примере мы заставляем бота повторять сообщения (эхо-бот, [tooltip=71]база[/tooltip] ботов на любой платформе)
Все функции и ивенты можно найти тут — *тык*

83b231fa92ad35247860edd56b6a559b7f896d10c246479433741346c2e1f05e.webp

6924cb8e4ccdcc01f6decd187b6c80346a37f5425aec52eea9e2d28188ed7843.webp

da88731850b3d72aaa24edd335e24051b45fb78fd81e3427189fb0fe875bba8d.webp

6603c12746f6f72eb441177749b5a580dbf6300c89def416fe4f6bdacb6f413b.webp

Добавляем проверку еды, если еда меньше 19, тогда — бот кушает. (Еда должна быть в руке) Можно округлить через round. (Чтоб в чате не писало 19.1245561 и т.д.)

c7fe7ea3cc3eab0601de97a20ccdad441732a14aba1b6920e5f11f306f0e38a3.webp

Конец статьи, не забываем про документацию на гитхаб, подумайте об этом прежде чем писать вопросы . Люблю вас)

from javascript import require, On, Once, AsyncTask, once, off mineflayer = require('mineflayer') pathfinder = require('mineflayer-pathfinder') GoalFollow = pathfinder.goals.GoalFollow bot = mineflayer.createBot(< 'host':'ASFafasfefs.aternos.me', 'port':'27071', 'username':'Bot', 'version':'1.19.4' >) bot.loadPlugin(pathfinder.pathfinder) mcData = require('minecraft-')(bot.version) movements = pathfinder.Movements(bot, mcData) @On(bot, 'chat') def msgHandler(this, user, message, *args): if user !='Bot': if 'за мной' in message: player = bot.players[user] target = player.entity bot.pathfinder.setMovements(movements) goal = GoalFollow(target, 1) bot.pathfinder.setGoal(goal, True) bot.chat(f'Иду за тобой, ') @On(bot, 'chat') def edaCheck(this, user, message, *args): if user != 'Bot': if 'еда' in message: if bot.food == 20: bot.chat(f'Моя еда - ') if bot.food <= 19: bot.chat(f'Еда - , начинаю жрать') bot.activateItem() while True: pass

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Minecraft chat bot written in python that parse latest logs from server and execute action called by user in game.

License

vdeville/minecraft-bot

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

Minecraft chat bot written in python that parse latest logs from server and execute action called by user in game.

Launch start.py : python start.py You can launch this script in a screen to detach and re-attach when youl'd like

This script start screen with minecraft server by default, to disable this features and do not launch minecraft server when script boot up, pass START_SERVER_AT_BOOT to False in config.py

Command Argument Action
info Retrieve list of map and their descriptions
setinfo (description) Set description of current map
swap (map_id) Permet de changer de map
setsrvparam (key, value) Permet de changer une config du server.properties
stop Stop mc server
restart Restart mc server
stopall Stop mc and python script

@Warths for the idea and code help

Источник

Читайте также:  Атрибут pattern
Оцените статью