GameQuery
Активный0.0
Установок
Последнее обновление
Версии
GameQuery - Мод для запросов к Minecraft
GameQuery - это Fabric-мод для Minecraft 1.21.6, который открывает локальный интерфейс запросов на порту 25566, позволяя внешним скриптам и приложениям получать данные из игры в реальном времени или управлять определёнными игровыми действиями. Это идеальное решение для ИИ-агентов, ботов, автоматизированных скриптов или интеграции с пользовательскими инструментами.
🛠️ Установка
- Установите Fabric Loader для Minecraft 1.21.6
- Установите Fabric API
- Поместите файл GameQuery JAR в папку
.minecraft/mods - Запустите игру
- Сервер запросов автоматически запустится на
localhost:25566
📡 Протокол запросов
Запросы отправляются на localhost:25566 в формате JSON строк (по одному JSON объекту на строку). Ответы возвращаются в том же формате.
Пример запроса:
{ "type": "inventory" }
Пример ответа:
{ "inventory": { "slots": [...], "selected": 0 } }
📋 Доступные запросы
Инвентарь
Получение содержимого инвентаря игрока.
{ "type": "inventory" }
Позиция
Получение текущей позиции и поворота игрока.
{ "type": "position" }
Блоки
Получение 3D массива блоков вокруг игрока.
{ "type": "blocks", "range": 5 }
Сущности
Получение данных о ближайших сущностях.
{ "type": "entities", "range": 10 }
Информация о мире
Получение общей информации о мире (измерение, время и т.д.).
{ "type": "world_info" }
Отправка сообщения в чат
Отправка сообщения в игровой чат.
{ "type": "send_chat", "message": "Привет, мир!" }
Поворот
Поворот обзора игрока.
{
"type": "rotate",
"yaw": 90.0,
"pitch": 0.0
}
Наведение на сущность
Поворот игрока для наведения на сущность с определённым UUID.
{ "type": "point_to_entity", "uuid": "2e290bd5-81f5-4166-bc25-806818f1d958" }
Наведение на координаты
Поворот игрока для наведения на определённые координаты.
{ "type": "point_to_xyz", "x": 42, "y": 69, "z": -42.2 }
Действия с предметами
- drop_item - Выброс предмета из инвентаря
- select_slot - Выбор слота горячей панели
- hotbar - Получение предметов на горячей панели
Взаимодействие с окружением
- left_click - Левый клик
- right_click - Правый клик
- open_container - Открытие контейнера
- attack - Атака
- shoot_bow - Стрельба из лука
- use_door - Использование двери
- use_bed - Использование кровати
- leave_bed - Выход из кровати
🐍 Пример Python клиента
import socket
import json
from typing import Any, Dict, Optional
class GameQueryClient:
def init(self, host="localhost", port=25566):
self.host = host
self.port = port
def send_query(self, query: Dict[str, Any]) -> Optional[Dict[str, Any]]:
"""Отправка запроса к клиенту Minecraft и получение ответа."""
try:
with socket.create_connection((self.host, self.port), timeout=5) as sock:
query_json = json.dumps(query) + "\n"
sock.sendall(query_json.encode('utf-8'))
with sock.makefile('r', encoding='utf-8') as f:
response_line = f.readline()
return json.loads(response_line.strip())
except socket.timeout:
print(f"❌ Таймаут подключения к {self.host}:{self.port}")
return None
except ConnectionRefusedError:
print(f"❌ Подключение отклонено к {self.host}:{self.port}")
print(" Убедитесь, что Minecraft запущен с загруженным модом GameQuery")
return None
except Exception as e:
print(f"❌ Ошибка: {e}")
return None
# Пример использования:
if name == "main":
client = GameQueryClient()
response = client.send_query({"type": "position"})
print(response)
⚠️ Предупреждение безопасности
Этот мод предоставляет внутренние данные игры через открытый TCP-порт. Запускайте этот мод только в доверенной однопользовательской среде или локальной сети. Не открывайте порт для доступа из интернета.