Введение
Библиотека MinecraftAPI предоставляет удобный Python-интерфейс для взаимодействия с Minecraft через Programming API.
Примечание: Методы с Поддержка игроков позволяют работать с другими игроками по их никнейму
Быстрый старт:
Минимальная настройка
from minecraft_api import MinecraftAPI # Инициализация клиента api = MinecraftAPI(host='localhost', port=4711) # Установка токена (получить в игре: /api gettoken) api.set_token('ваш_токен') # Проверка подключения position = api.get_position() if position: print(f"Подключено! Позиция: {position}")
Все методы API
Полный список всех доступных методов с описанием и параметрами.
set_block(x, y, z, material)
Устанавливает блок по координатам
x, y, z int
material str
Возвращает: bool (True при успехе)
get_block(x, y, z)
Получает тип блока по координатам
x, y, z int
Возвращает: str (тип блока)
set_blocks(x1, y1, z1, x2, y2, z2, material)
Заполняет область блоками
x1, y1, z1 int
x2, y2, z2 int
material str
Возвращает: bool
get_position()
Получает позицию текущего игрока
Возвращает: tuple (x, y, z)
teleport(x, y, z)
Телепортирует игрока
x, y, z int
Возвращает: bool
send_message(message)
Отправляет сообщение игроку
message str
Возвращает: bool
Поддержка игроков
give_item(material, amount, slot=-1, player_name=None)
Выдает предмет игроку
material str
amount int
slot int
player_name str (опционально)
Возвращает: bool
Поддержка игроков
get_inventory_item(slot, player_name=None)
Получает информацию о предмете в слоте
slot int
player_name str (опционально)
Возвращает: dict
Поддержка игроков
clear_inventory_slot(slot, player_name=None)
Очищает слот инвентаря
slot int
player_name str (опционально)
Возвращает: bool
Поддержка игроков
get_inventory(player_name=None)
Получает весь инвентарь игрока
player_name str (опционально)
Возвращает: dict
get_players()
Получает список всех игроков
Возвращает: list
Поддержка игроков
set_armor(material, armor_slot, player_name=None)
Устанавливает предмет брони
material str
armor_slot int (0-3)
player_name str (опционально)
Возвращает: bool
Поддержка игроков
get_armor(armor_slot=-1, player_name=None)
Получает информацию о броне
armor_slot int
player_name str (опционально)
Возвращает: dict
Поддержка игроков
clear_armor(armor_slot, player_name=None)
Очищает слот брони
armor_slot int
player_name str (опционально)
Возвращает: bool
Поддержка игроков
give_item_with_nbt(material, amount, properties, slot=-1, player_name=None)
Выдает предмет с NBT-тегами
properties dict
player_name str (опционально)
Возвращает: bool
Поддержка игроков
set_armor_with_nbt(material, armor_slot, properties, player_name=None)
Устанавливает броню с NBT-тегами
properties dict
player_name str (опционально)
Возвращает: bool
Методы для работы с другими игроками
Эти методы поддерживают параметр player_name для работы с другими игроками.
Пример работы с другими игроками
# Получить список всех игроков players = api.get_players() print(f"Игроки онлайн: {players}") # Выдать алмазы конкретному игроку api.give_item("DIAMOND", 5, player_name="Steve") # Проверить инвентарь другого игрока inventory = api.get_inventory(player_name="Alex") if inventory: print(f"Инвентарь Alex: {inventory}") # Надеть броню другому игроку api.set_armor("DIAMOND_HELMET", 3, player_name="Notch")
Важно: Для работы с другими игроками ваш токен должен иметь соответствующие права на сервере
Работа с блоками
Основные операции с блоками
# Построить простой дом def build_house(api, x, y, z): # Фундамент api.set_blocks(x-5, y-1, z-5, x+5, y-1, z+5, "STONE") # Стены api.set_blocks(x-5, y, z-5, x+5, y+4, z+5, "OAK_PLANKS") # Внутреннее пространство api.set_blocks(x-4, y+1, z-4, x+4, y+3, z+4, "AIR") # Крыша api.set_blocks(x-5, y+4, z-5, x+5, y+4, z+5, "OAK_STAIRS") # Дверь api.set_block(x, y, z-5, "AIR") api.set_block(x, y+1, z-5, "AIR") print("Дом построен!") # Проверить блок перед установкой current_block = api.get_block(10, 64, 20) if current_block == "AIR": api.set_block(10, 64, 20, "CHEST")
Работа с инвентарем
Управление инвентарем
# Выдать стартовый набор def give_starter_kit(api, player_name=None): items = [ ("DIAMOND_PICKAXE", 1, 0), ("DIAMOND_SWORD", 1, 1), ("COOKED_BEEF", 16, 2), ("TORCH", 64, 3) ] for material, amount, slot in items: api.give_item(material, amount, slot=slot, player_name=player_name) # Выдать броню for slot, material in enumerate(["DIAMOND_BOOTS", "DIAMOND_LEGGINGS", "DIAMOND_CHESTPLATE", "DIAMOND_HELMET"]): api.set_armor(material, slot, player_name=player_name) # Проверить наличие предмета def has_item(api, item_name, player_name=None): inventory = api.get_inventory(player_name=player_name) if inventory: for slot, item in inventory.items(): if item and item.get("material") == item_name: return True return False
Практические примеры
Мини-игра: Лабиринт
def create_maze_game(api, start_x, start_y, start_z, size=15): # Создать лабиринт api.set_blocks( start_x, start_y, start_z, start_x + size, start_y + 3, start_z + size, "STONE_BRICKS" ) # Создать проходы for i in range(2, size, 3): api.set_blocks( start_x + 2, start_y + 1, start_z + i, start_x + size - 2, start_y + 1, start_z + i, "AIR" ) # Вход и выход api.set_block(start_x, start_y + 1, start_z + 1, "AIR") api.set_block(start_x + size, start_y + 1, start_z + size - 1, "AIR") # Награда в конце api.set_block(start_x + size, start_y + 1, start_z + size - 1, "GOLD_BLOCK") # Телепортировать игрока к началу api.teleport(start_x - 1, start_y + 1, start_z + 1) api.send_message("Найди выход из лабиринта! Награда ждет тебя в конце!")
Часто задаваемые вопросы
Как получить токен для API?
В игре выполните команду:
/api gettoken. Скопируйте полученный токен и используйте api.set_token('ваш_токен'). Какие методы поддерживают работу с другими игроками?
Методы с параметром
player_name: give_item, get_inventory_item, clear_inventory_slot, get_inventory, set_armor, get_armor, clear_armor, give_item_with_nbt, set_armor_with_nbt. Библиотека работает с Minecraft Bedrock Edition?
Нет, только с Minecraft Java Edition с установленным модом Programming API.
Что делать если метод возвращает ошибку?
1. Проверьте правильность токена. 2. Убедитесь что сервер доступен. 3. Проверьте права игрока в игре. 4. Убедитесь что координаты в пределах мира.