сделай скрипт на питоне для minecraft bedrock чтоб...
Erstellt am: 19. Februar 2025
Erstellt am: 19. Februar 2025
сделай скрипт на питоне для minecraft bedrock чтоб он запускал сервер 127.0.0.1 19132 а до этого просил айпи и порт сервера чтоб сделать сервер с функцией при написание в чат команды .speak писало вфщыах
Ниже приведён упрощённый пример скрипта на Python, который:
server.properties
..speak
посылает в чат сообщение «вфщыах».Обратите внимание, что данный скрипт — лишь демонстрация принципа. Чтобы он заработал, вам нужно:
bedrock_run.py
pythonimport subprocess import sys import os def main(): # Запрашиваем у пользователя IP и порт server_ip = input("Введите IP (по умолчанию 127.0.0.1): ") or "127.0.0.1" server_port = input("Введите порт (по умолчанию 19132): ") or "19132" # Создаём/перезаписываем server.properties # В реальном использовании пропишите остальные параметры при необходимости with open("server.properties", "w", encoding="utf-8") as f: f.write("server-name=MyBedrockServer\n") f.write(f"server-port={server_port}\n") # Для IPv6 обычно порт на 1 больше. Можно убрать, если не используете IPv6. f.write(f"server-portv6={int(server_port) + 1}\n") f.write(f"server-ip={server_ip}\n") # Ниже можно добавить любые нужные вам настройки f.write("max-players=10\n") f.write("difficulty=1\n") f.write("online-mode=true\n") f.write("white-list=false\n") # Убедимся, что у нас есть сам bedrock_server.exe # Если файл называется иначе или лежит в другом месте - нужно подправить путь bedrock_exe = "bedrock_server.exe" if not os.path.exists(bedrock_exe): print(f"Не найден файл {bedrock_exe} в директории скрипта!") sys.exit(1) # Запускаем сервер как subprocess # Обязательно указываем: stdout=subprocess.PIPE, stdin=subprocess.PIPE, text=True # чтобы мы могли считывать вывод и отправлять команды process = subprocess.Popen( [bedrock_exe], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.STDOUT, text=True ) print(f"Сервер запущен на {server_ip}:{server_port}. Ожидаем сообщения в чате...") # Считываем вывод сервера построчно while True: line = process.stdout.readline() if not line: break # сервер завершился # Отладочный вывод в консоль Python (не обязателен) print(line, end="") # Пример для Bedrock-сервера: # Обычно строка чата выглядит примерно так: # [2023-01-01 12:34:56 INFO] <PlayerName> .speak # Поэтому мы просто проверим наличие ".speak" в строке # (Для более точного детектирования можно использовать регулярные выражения) if ".speak" in line: # Если увидели .speak, отправляем команду /say в консоль: cmd = "say вфщыах\n" process.stdin.write(cmd) process.stdin.flush() if __name__ == "__main__": main()
127.0.0.1
и 19132
.server.properties
с минимальным набором параметров (можно добавить свои).bedrock_server.exe
.".speak"
, отправляет в консоль сервера команду say вфщыах
.Таким образом, если игрок в игре на сервере введёт в чат сообщение ".speak"
, в чате появится ответ вфщыах
.
Важно: Формат строк, которые выводит Bedrock-сервер, может немного меняться в зависимости от версии. Если скрипт не «ловит» нужные сообщения, посмотрите, как выглядят строки чата в реальном логе вашего сервера, и подкорректируйте проверку или используйте регулярные выражения.