Skip to content
Pular para o conteúdo
Voltar ao Blog
Endstone: Poder do Paper em Servidores Bedrock

Endstone: Poder do Paper em Servidores Bedrock

Alexandru Maftei
Alexandru Maftei
@ice
Atualizado
26 visualizações
TL;DR:Endstone traz infraestrutura de plugins para servidores Minecraft Bedrock, permitindo escrever plugins em Python e C++ com acesso a 60+ eventos, comandos e sistemas de permissões - mantendo compatibilidade total com Bedrock vanilla.
GitHub · Projeto da comunidade Minecraft

endstone (EndstoneMC\/endstone)

Software de servidor Minecraft Bedrock de alto desempenho com API de plugin nativa em C++ e Python

Estrela no GitHub ⇗
⭐ 623 estrelas💻 C++📄 Apache-2.0

Já pensou em executar um servidor Bedrock com o poder de customização do Paper da Java Edition? Endstone preenche essa lacuna, dando suporte a plugins e controle profundo do servidor mantendo compatibilidade vanilla intacta.

O Que Endstone Faz

Vamos ser honestos: servidores vanilla Bedrock são limitados. Você não pode cancelar eventos, controlar pacotes ou modificar a jogabilidade principal da forma que faz com Paper ou Spigot. Endstone muda isso ficando entre você e o próprio Bedrock, interceptando eventos e oferecendo uma API de plugin completa. Não é um sistema de addon ou um mecanismo de script. É um wrapper de servidor adequado com o poder arquitetônico que jogadores Java têm há anos.

A parte legal? É genuinamente uma substituição direta. Seus arquivos de mundo, suas configurações, sua configuração Bedrock existente - tudo funciona. Você não precisa migrar nada. Basta instalar Endstone, apontá-lo para seu mundo e começar a carregar plugins. O servidor Bedrock subjacente funciona inalterado, então os recursos vanilla permanecem intactos e confiáveis.

Sob o capô, é C++ fazendo o trabalho pesado. O projeto tem 623 estrelas do GitHub e desenvolvimento ativo (a versão mais recente suporta Bedrock 1.26.12). Essa API de plugin se baseia em padrões de design familiares aos desenvolvedores Bukkit - se você já escreveu plugins Paper antes, o modelo mental funcionará imediatamente.


Por Que Você Usaria Isso

O caso óbvio: você está executando um servidor Bedrock e quer adicionar comandos personalizados, sistemas de permissões ou mecânicas de jogabilidade sem codificar seu próprio addon do zero. Endstone lida com a infraestrutura - eventos, placares, formulários, acesso ao inventário, dados do jogador - para que você possa se concentrar na lógica.

Exemplos concretos. Digamos que você queira um sistema de nivelamento onde jogadores ganham XP e desbloqueiam comandos. No Bedrock vanilla, você está lutando contra limitações de addon. No Endstone, você escreve um manipulador de eventos que ouve dano do jogador, calcula XP, atualiza um placar e concede permissões dinamicamente. Algumas dezenas de linhas de Python e pronto. Você pode implementar um sistema de economia completo, mecânicas de combate personalizadas, eventos de calabouço ou emparelhamento PvP classificado.

Outro ângulo: conectividade entre servidores. Você está executando Bedrock mas quer que jogadores se conectem de servidores Java Edition via ferramentas proxy. O controle de pacotes do Endstone permite interceptar e modificar sequências de entrada, cosméticos e outras fricções entre versões. Não é suave fora da caixa, mas é possível de maneiras que o Bedrock vanilla puro não é.

Windows ou Linux. Suporte a Docker existe. Python 3.10+ no Windows 10+ ou Ubuntu 22.04+ - Debian 12+. Isso é flexível o suficiente para a maioria das configurações de hospedagem. E se você precisa de desempenho C++ para um plugin crítico, a API suporta isso também.


Começando

A instalação é três comandos:

bash
pip install endstone
endstone

É isso. O gerenciador de pacotes Python puxa o binário da versão (Windows ou Linux dependendo da sua plataforma), e executar `endstone` inicia o servidor no seu diretório atual. Ele gerará uma configuração de servidor e uma pasta `plugins`.

Para seu primeiro plugin, crie um arquivo Python nessa pasta. Aqui está o mínimo:

python
from endstone.plugin import Plugin
from endstone.event import event_handler, PlayerJoinEvent

class MyPlugin(Plugin):
 api_version = "0.10"

 def on_enable(self):
 self.logger.info("MyPlugin habilitado!")
 self.register_events(self)

 @event_handler
 def on_player_join(self, event: PlayerJoinEvent):
 event.player.send_message(f"Bem-vindo, {event.player.name}!")

Jogue-o em `plugins/`, reinicie o servidor e você verá "MyPlugin habilitado!" nos logs. Os jogadores que entram recebem uma mensagem de boas-vindas. Esse é o loop de feedback inteiro.

O projeto fornece modelos para Python e C++ se você quiser uma estrutura com andaimes. Mas honestamente, o exemplo de plugin mínimo acima é pequeno o suficiente para você copiar e começar a experimentar.


O Que O Torna Poderoso

A superfície da API é substancial. Estamos falando de 60+ eventos cobrindo jogadores entrando, quebrando blocos, recebendo dano, abrindo inventários, conversando e muito mais. Comandos funcionam com análise de comando integrada do Bedrock (sem análise de string personalizada necessária). Você obtém placares, formulários (o sistema de UI interativo), permissões, inventários e acesso aos metadados do jogador e dados do mundo.

O controle de pacotes é onde Endstone se diferencia de outras soluções. Você pode ouvir pacotes de rede de baixo nível antes do servidor processá-los. Isso abre portas para anti-cheat, hacks de compatibilidade entre versões e cancelamento de eventos refinados. Modifique um pacote em voo e a mudança se propaga normalmente.

Manter compatibilidade com o Bedrock mais recente automaticamente? A filosofia de design favorece acompanhar os lançamentos mensais do Minecraft em vez de tentar alcançar o atraso. O lançamento v0.11.3 adicionou suporte ao registro BlockType e corrigiu vários bugs de serialização de pacotes que causavam desconexões. Esse é o ritmo que você está vendo - iterações rápidas mantendo a API atual.


Coisas Que Pegam As Pessoas

Plugins Python são convenientes mas mais lentos que C++. Se você está construindo algo que funciona a cada tick para milhares de jogadores, C++ é sua resposta. Mas para eventos que ocorrem ocasionalmente (entrada de jogador, chat, comandos personalizados), Python é rápido o suficiente.

Mundos criados no Bedrock puro funcionarão, mas se você tiver backups de realm existentes ou dados específicos do mundo fora da pasta do nível (como metadados de backup de realm), pode precisar migrar manualmente. Endstone lida com o formato do mundo nativamente - é apenas a infraestrutura circundante que às vezes precisa de ajuste.

Além disso, saiba que você está executando um servidor Bedrock, não Java. Isso importa para a disponibilidade de plugins. Muitos plugins Java populares (Essentials, Vault, bibliotecas de formatação de chat sofisticadas) não têm equivalentes Bedrock. Você escreverá mais do zero. A comunidade é menor mas crescente, e os repositórios de modelo oficiais fornecem pontos de partida.


Como Se Compara Com Alternativas

PocketMine e Nukkit são implementações mais antigas de servidor Bedrock. Eles não executam Bedrock vanilla por baixo - eles reimplementam o servidor do zero. Isso é mais controle mas mais manutenção, atualizações mais lentas e às vezes diferenças sutis de comportamento. Endstone envolve Bedrock real, então os recursos vanilla são garantidos.

Script de addon é oficial e limitado propositalmente. É ótimo para cosméticos e lógica simples, mas não pode conectar-se a eventos de nível de servidor ou permissões. Endstone é a solução se você precisa de controle.

Se você está na Java Edition, Paper (ou Spigot-Bukkit) ainda é o padrão ouro e sempre será. Endstone é especificamente para comunidades Bedrock que precisam de infraestrutura de plugin.


Notas de Configuração do Mundo Real

Execute-o no Docker para isolamento mais limpo e atualizações mais fáceis. Execute-o atrás de um proxy reverso se você estiver expondo-o publicamente (Bedrock usa UDP, então sua configuração de firewall importa). E antes de implantar algo em produção, teste seus plugins localmente. A configuração de desenvolvimento do Endstone é direta o suficiente para você iterar em um laptop.

Para hospedar um servidor público, considere usar as ferramentas DNS Gratuitas que oferecemos em serviço DNS Gratuito do Minecraft.How para gerenciar seu domínio de servidor de forma confiável e barata. E se você está mantendo uma whitelist, o Minecraft Whitelist Creator simplifica a geração e gerenciamento de sua lista de jogadores.

Verifique a comunidade Discord (vinculada no repositório GitHub) antes de ficar preso. Os mantenedores respondem rapidamente e você encontrará exemplos de plugin e conselhos de implantação de pessoas que executam servidores ativos.

Fonte: Consultar a página de referência.

Sobre o autor
Alexandru Maftei
Alexandru MafteiRedator-chefe

Lead writer at minecraft.how. Long-time Minecraft player running a small SMP server, testing every build, mod, and seed before writing about it.

Comentários

Nenhum comentário ainda. Seja o primeiro a compartilhar sua opinião!

We use cookies to improve your experience. By continuing to use this site, you agree to our use of cookies. Read our Privacy Policy