O projeto CubicAI tem como meta criar uma inteligência artificial integrada ao Minecraft, capaz de interagir com o jogador, entender o mundo e reagir em tempo real.
Antes de desenvolver a versão completa, o objetivo atual é validar a integração entre as tecnologias principais — Python, Java e o servidor Minecraft (Paper) — através de um teste simples e funcional.
Esse teste é o marco zero do CubicAI: um robô controlado por código Python que envia mensagens ao chat do jogo e comprova que a comunicação entre os ambientes está funcionando corretamente.
Criar um prototipo funcional mínimo (MVP) onde um script Python, rodando no WSL, envia mensagens para o chat do Minecraft, rodando em um servidor Paper no Windows.
O foco não é IA ainda, mas integração técnica. Ou seja, provar que:
- o ambiente Java (Minecraft) e o ambiente Python conseguem se comunicar;
- as ferramentas estão bem instaladas e configuradas;
- a base de automação está sólida para crescer em direção ao CubicAI completo.
| Camada | Tecnologia | Função |
|---|---|---|
| Servidor do Minecraft | Paper (base Spigot) | Servidor Java onde o plugin CubicAI será instalado. |
| Comunicação | RCON (Remote Console Protocol) | Permite enviar comandos externos ao servidor. |
| Cliente RCON | Python + biblioteca mcrcon |
Conecta-se ao servidor e envia comandos/chat. |
| Ambiente Python (WSL) | Ubuntu + Python 3 + virtualenv | Onde roda o agente que fala com o Minecraft. |
| Ambiente Java (Windows) | OpenJDK 21 | Necessário para o servidor e futuros plugins CubicAI. |
| Integração futura | Plugin Java REST/WebSocket | Permitirá comunicação bidirecional e eventos. |
+------------------------------------+
| Python Agent (WSL) |
|------------------------------------|
| mcrcon | .env | frases predef. |
|------------------------------------|
| Envia comandos "say" via RCON |
+-------------------┬----------------+
│
│ (TCP / RCON)
▼
+------------------------------------+
| Servidor Minecraft (Windows) |
|------------------------------------|
| Paper.jar + RCON habilitado |
| Executa comandos recebidos |
| Mostra mensagens no chat |
+-------------------┬----------------+
│
▼
+------------------------------------+
| Jogador no Jogo |
|------------------------------------|
| Vê a mensagem no chat: |
| "CubicAI está online! 🚀" |
+------------------------------------+
cubicai/
├─ python-agent/ # Código do agente Python
│ ├─ src/
│ │ └─ chat_agent.py
│ ├─ .env # Variáveis de conexão (não versionar)
│ ├─ .env.example
│ ├─ requirements.txt
│ └─ README.md
│
├─ java-plugin/ # (Reservado para o futuro plugin CubicAI)
│ ├─ src/main/java/com/cubicai/mc/
│ ├─ build.gradle.kts
│ └─ README.md
│
├─ server/ # Servidor Minecraft Paper (Windows)
│ ├─ paper.jar
│ ├─ server.properties
│ ├─ eula.txt
│ ├─ plugins/
│ └─ README.md
│
├─ infra/ # Scripts utilitários
│ ├─ sync_plugin.sh
│ └─ bootstrap_wsl.sh
│
├─ docs/ # Documentação e relatórios técnicos
│ └─ RELATORIO_COMPLETO.md # (este arquivo)
│
└─ .gitignore
- Instalar Java 21 no Windows.
- Instalar Python 3 e configurar venv no WSL.
- Criar o diretório
~/cubicaie instalarmcrconepython-dotenv. - Confirmar o funcionamento básico com um script Python simples.
-
Baixar o
paper.jarda versão do Minecraft usada. -
Rodar o servidor e aceitar o EULA.
-
Ativar o RCON no arquivo
server.properties:enable-rcon=true rcon.port=25575 rcon.password=senha_segura -
Liberar a porta 25575 no firewall (se necessário).
-
Testar o acesso com cliente RCON.
-
Criar
python-agent/src/chat_agent.py:from mcrcon import MCRcon import os from dotenv import load_dotenv load_dotenv() host = os.getenv("RCON_HOST") port = int(os.getenv("RCON_PORT")) password = os.getenv("RCON_PASSWORD") with MCRcon(host, password, port=port) as mcr: mcr.command('say CubicAI está online! 🚀')
-
Rodar:
python src/chat_agent.py
-
Verificar mensagem no chat do jogo.
- Python → servidor → jogador no chat.
- Confirmar comunicação cruzada entre WSL (Python) e Windows (Minecraft).
- Garantir que as portas estão acessíveis.
| Método | Direção | Complexidade | Vantagens | Desvantagens |
|---|---|---|---|---|
| RCON (mcrcon) | Python → Servidor | Baixa | Fácil de testar e implantar | Unidirecional |
| Plugin REST | Python ⇄ Servidor | Média | Bidirecional, seguro | Precisa de Java |
| Plugin WebSocket | Python ⇄ Servidor | Alta | Tempo real | Complexidade extra |
| Bot Jogador (pyCraft) | Python ⇄ Servidor | Alta | Independe de servidor modificado | Instável em updates |
| Mensageria (Redis, Rabbit) | Python ⇄ Servidor | Alta | Escalável, resiliente | Requer infraestrutura extra |
🔹 O projeto atual começa com RCON, mas será evoluído para REST e depois WebSocket via plugin Java.
-
Instalar o OpenJDK 21 no Windows. Verificar no PowerShell:
java -version→ deve retornar versão 21.x. -
Configurar variável de ambiente
JAVA_HOME. Adicionar o caminho do JDK no PATH, se necessário. -
Instalar o WSL (Ubuntu) e atualizar pacotes. Comando:
sudo apt update && sudo apt upgrade -y. -
Instalar o Python 3, venv e pip dentro do WSL. Comando:
sudo apt install -y python3 python3-venv python3-pip. -
Criar diretório principal do projeto. Exemplo:
mkdir ~/cubicai && cd ~/cubicai. -
Configurar o ambiente virtual Python (venv). Comando:
python3 -m venv .venv && source .venv/bin/activate. -
Instalar dependências iniciais do Python. Comando:
pip install mcrcon python-dotenv.
-
Criar subpastas do projeto (monorepo).
cubicai/ ├─ python-agent/ ├─ java-plugin/ ├─ server/ ├─ infra/ ├─ docs/ -
Adicionar arquivo
.gitignorepadrão. Ignorar:.venv/,__pycache__/,server/world/,logs/, etc. -
Criar
.env.exampledentro depython-agent/.RCON_HOST=127.0.0.1 RCON_PORT=25575 RCON_PASSWORD=minha_senha_segura -
Criar arquivo
requirements.txt.mcrcon python-dotenv -
Documentar o projeto com um
README.mdinicial. Explicando estrutura, propósito e comandos de execução.
-
Baixar o
paper.jarda versão do Minecraft desejada. Colocar emcubicai/server/. -
Rodar o servidor pela primeira vez. Comando (no Windows):
java -Xmx2G -jar paper.jar→ isso gera
eula.txte arquivos de config. -
Aceitar o EULA. Abrir
eula.txte definireula=true. -
Ativar e configurar o RCON em
server.properties.enable-rcon=true rcon.port=25575 rcon.password=minha_senha_segura -
Liberar a porta 25575 no firewall do Windows. Permitir acesso local (Python → servidor).
-
Iniciar o servidor novamente e validar o RCON ativo. Verificar logs: deve mostrar
RCON running on 0.0.0.0:25575.
-
Criar
python-agent/src/chat_agent.py. Código base:from mcrcon import MCRcon import os from dotenv import load_dotenv load_dotenv() host = os.getenv("RCON_HOST") port = int(os.getenv("RCON_PORT")) password = os.getenv("RCON_PASSWORD") with MCRcon(host, password, port=port) as mcr: mcr.command('say CubicAI está online! 🚀')
-
Testar o script localmente. Comando:
python src/chat_agent.py -
Verificar se a mensagem aparece no chat do Minecraft. Esperado:
[Server] CubicAI está online! 🚀. -
Adicionar logs simples no script. Para mostrar status de conexão e respostas do servidor.
-
Adicionar novas frases no script (lista aleatória). Exemplo:
import random frases = ["Olá mundo!", "CubicAI iniciando...", "Vamos explorar!"] mcr.command(f"say {random.choice(frases)}")
-
Criar
docs/RELATORIO_COMPLETO.md. Colar o relatório técnico completo com visão do projeto. -
Versionar tudo e validar integração final.
- Rodar servidor no Windows.
- Executar agente no WSL.
- Confirmar mensagem no chat.
- Registrar resultado final no README.
| Etapa | Resultado Esperado |
|---|---|
| Setup | Ambiente configurado (Java, Python, Paper). |
| RCON | Comunicação do Python com o servidor. |
| Teste | Mensagem aparece no chat do Minecraft. |
| Estrutura | Projeto organizado e versionável. |
| Base IA | Ambiente pronto para integrar IA no futuro. |