CraftMentor/ | Aqui estão os arquivos do projeto em Kotlin
referente ao Plugin desenvolvido com a biblioteca Spigot 1.20.4
(Bukkit)
CraftMentorBukkit/ | Aqui estão os arquivos de configuração do servidor Bukkit
craftmentor_backend/ | Aqui estão os arquivos do backend feito em Dart
- Docker
- Dart 3.4.0
- Java | JRE 1.8.0
- Minecraft 1.20.4
- Clone o repositório
git clone https://github.com/TRABALHOS-FACULDADE/craftmentor_sistemas_distribuidos.git
- Crie os containers para o PostgreSQL e o Adminer
docker build ./craftmentor_backend/
- Execute o servidor Dart Shelf para se comunicar com o PostgreSQL
dart ./craftmentor_backend/bin/craftmentor_backend.dart
- Crie o container para o servidor Minecraft Bukkit
docker build -t craftmentor_bukkit ./CraftMentorBukkit/
- Execute o container do Bukkit e configure-o para se comunicar com o localhost
docker run --name craftmentor_bukkit_server --add-host host.docker.internal:host-gateway -it -p 8000:8000 craftmentor_bukkit
Forma alternativa para as etapas 4 e 5:
./CraftMentorBukkit/start.bat ### Ou, caso esteja usando S.O Linux:
### Renomeie o arquivo para start.sh e execute:
bash ./CraftMentorBukkit/start.sh
- No Minecraft (versão 1.20.4), conecte-se ao servidor através do endereço
0.0.0.0:8000
[GET] 0.0.0.0:8001/players
| Lista os jogadores do servidor, permitindo visualizar a pontuação de cada.
[GET] 0.0.0.0:8001/player-exists/<player_name>
| Verifica se um jogador já está cadastrado no servidor.
[POST] 0.0.0.0:8001/players
| Cadastra um novo jogador no servidor. | Recebe um body {"id": <uuid>, "name": <player_name>}
[PATCH] 0.0.0.0:8001/player/<name>
| Atualiza a pontuação de um jogador. | Recebe um body {"points": <valor_em_double>}
Consiste em um sistema que monitora o inventário dos jogadores dentro de um servidor de Minecrat (Bukkit hospedado em um container Docker) e, após 10 segundos, um cálculo é feito para atualizar a pontuação de cada jogador com base nos tipos de itens coletados. Os blocos e suas respectivas pontuações podem ser visualizados aqui.
No Docker, estão os seguintes containers:
- Servidor Bukkit (porta 8000)
- PostgreSQL (porta 5435)
- Adminer (porta 8082)
O Adminer é uma interface que permite interagir com o banco de dados do PostgreSQL e criar/deletar/alterar tabelas dentro dele.
Na porta 8001, estará rodando o backend em Dart na máquina local. Em seu código, será estabelecida a comunicação com o banco de dados do PostgreSQL (que estará rodando no container Docker).