1

[Geek] Minecrat Spigot Server

11 Flares 11 Flares ×

Sim, nós gostamos e jogamos minecraft. Talvez não com uma frequência digna de um gamer, mas sempre que podemos, jogamos. =)

Vou compartilhar aqui com vocês como subir seu próprio servidor Minecraft. Acredite, você vai curtir!

É claro, você precisa ter um local para subir esse cara. Utilizo o cloadatcost por custo, mas você pode subir ele em qualquer outra nuvem ou até mesmo na sua casa…  Na AWS, uma instancia EC2 t2.micro é o suficiente para começar a brincadeira e você ainda esta elegível ao nível de acesso gratuito.

Gosto de utilizar a distribuição Debian 8 (Jessi) e elá foi a base para este howto. Você pode utilizar qualquer outra distribuição, você só precisa modificar o método de instalação dos pacotes (e o nome dos pacotes que podem ser diferentes em outras distribuições).

Ahh, o principal! Utilizamos o SpigotMC como servidor (serviço) Minecraft. Esse projeto é muito conhecido pelo empenho dos seus desenvolvedores, que fornecem uma versão alternativa e muito performática baseada no projeto open chamado Craft Bukkit.

Então vamos lá!!!

Primeiro, precisamos instalar algumas dependências. Como utilizaremos o source, precisamos instalar os seguintes pacotes para então fazer o build do spigotMC.

Se você estiver utilizando outra distribuição que não seja o Debian, providencie a instalação dos seguintes programas:

  • java (jdk)
  • git
  • screen
  • rsync

1 – Instalando os pacotes no debian:

apt-get -y install default-jre default-jdk git screen rsync

Com o java e o git devidamente instalado já podemos iniciar a instalação do spigotMC. Utilizaremos o build tools para esta tarefa.

A ultima release esta disponível no link BuildTools

2 – Criando a estrutura de diretórios e building:

mkdir -p /usr/local/src/minecraft/; cd /usr/local/src/minecraft/; wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar

Agora com o arquivo local, execute o comando para executar o jar e iniciar o processo de building:

java -jar BuildTools.jar
Loading BuildTools version: git-BuildTools-8aa3a22-59 (#59)
Git name not set, setting it to default value.
Git email not set, setting it to default value.
Starting clone of https://hub.spigotmc.org/stash/scm/spigot/bukkit.git to Bukkit
Cloned git repository https://hub.spigotmc.org/stash/scm/spigot/bukkit.git to /usr/local/src/minecraft/Bukkit. Current HEAD: 2eb7b9fd887cb2b2257ca9f09435c0ab72a393f8
Starting clone of https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git to CraftBukkit
Cloned git repository https://hub.spigotmc.org/stash/scm/spigot/craftbukkit.git to /usr/local/src/minecraft/CraftBukkit. Current HEAD: cb61ac0404a52ba8c3f6ab8d92304aeeb6250846
Starting clone of https://hub.spigotmc.org/stash/scm/spigot/spigot.git to Spigot

Depois de mais ou menos 8 minutos, o build será concluído.

[INFO] Reactor Summary:
[INFO]
[INFO] Spigot-API ......................................... SUCCESS [ 37.166 s]
[INFO] Spigot-Parent ...................................... SUCCESS [  0.521 s]
[INFO] Spigot ............................................. SUCCESS [01:12 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:50 min
[INFO] Finished at: 2017-02-26T15:21:51-05:00
[INFO] Final Memory: 32M/430M
[INFO] ------------------------------------------------------------------------

Tudo blz? Sucesso? Agora o jar esta disponível no path /usr/local/src/minecraft/, vide:

Success! Everything compiled successfully. Copying final .jar files now.
Copying craftbukkit-1.11.2-R0.1-SNAPSHOT.jar to /usr/local/src/minecraft/.
  - Saved as craftbukkit-1.11.2.jar
Copying spigot-1.11.2-R0.1-SNAPSHOT.jar to /usr/local/src/minecraft/.
  - Saved as spigot-1.11.2.jar
root@mineserver:/usr/local/src/minecraft# ls -lht spigot-1.11.2.jar
-rw-r--r-- 1 root staff 24M Feb 26 15:21 spigot-1.11.2.jar

3 – Criando o usuário e definindo os parâmetros de openfiles:

User

 useradd -m -d /opt/minecraft -c "Minecraft daemon user" minecraft

Openfiles

echo "minecraft      soft     nofile      10240" >>/etc/security/limits.conf
echo "minecraft      hard     nofile      10240" >>/etc/security/limits.conf

4 – Copiando o jar para o path do game e configurações:

Copie o jar para o novo path:

# cp /usr/local/src/minecraft/spigot-1.11.2.jar /opt/minecraft

Apos copiar o jar, crie o arquivo eula.txt com o valor eula=true

# echo "eula=true" >/opt/minecraft/eula.txt

Você pode testar a execução do spigot. Mais lembre-se, ainda não terminou o howto. O spigot pode ser iniciado manualmente com o comando “java -jar”

java -jar spigot-1.11.2.jar
Warning, your max perm gen size is not set or less than 128mb. It is recommended you restart Java with the following argument: -XX:MaxPermSize=128M
Please see http://www.spigotmc.org/wiki/changing-permgen-size/ for more details and more in-depth instructions.
Loading libraries, please wait...
[17:56:20 INFO]: Starting minecraft server version 1.11.2
[17:56:21 INFO]: Loading properties
[17:56:21 INFO]: Default game type: SURVIVAL
[17:56:21 INFO]: This server is running CraftBukkit version git-Spigot-d4f98a3-cb61ac0 (MC: 1.11.2) (Implementing API version 1.11.2-R0.1-SNAPSHOT)
[17:56:21 INFO]: Unable to find file banned-players.json, creating it.
[17:56:21 INFO]: Unable to find file banned-ips.json, creating it.

5 – Preparando os scripts e inicialização e backup:

Para inicialização, gerenciamento e backup do Minecraft server, utilizaremos o seguinte script:

 curl -sk https://raw.githubusercontent.com/avelinoF0/minecraft-init/master/minecraft >/etc/init.d/minecraft

Este script será responsavel pela execução do backup e tambem pelo stop/start da instancia default do Spigot. Para que o script funcione corretamente, você precisa criar as seguintes estruturas de diretorio:

mkdir -p /backup
mkdir -p /opt/minecraft/worlds
/opt/minecraft# chown minecraft. /opt/minecraft -R

Criando o arquivo de configuração /etc/default/minecraft

curl -sk https://raw.githubusercontent.com/avelinoF0/minecraft-init/master/config.example >/etc/default/minecraft

Executar o start e validar se tudo esta OK.

/etc/init.d/minecraft start
spigot-1.11.2.jar is running.

Acompanhe os logs. Se o server estiver no ar, voce receber a seguinte mensagem:

tail -f /opt/minecraft/logs/latest.log 
[14:51:13] [Server thread/INFO]: Nerfing mobs spawned from spawners: false
[14:51:13] [Server thread/INFO]: Preparing start region for level 0 (Seed: -3593161158073825480)
[14:51:15] [Server thread/INFO]: Preparing spawn area: 2%
[14:51:16] [Server thread/INFO]: Preparing spawn area: 30%
[14:51:17] [Server thread/INFO]: Preparing spawn area: 71%
[14:51:17] [Server thread/INFO]: Preparing start region for level 1 (Seed: -3593161158073825480)
[14:51:18] [Server thread/INFO]: Preparing spawn area: 50%
[14:51:19] [Server thread/INFO]: Preparing start region for level 2 (Seed: -3593161158073825480)
[14:51:19] [Server thread/INFO]: Server permissions file permissions.yml is empty, ignoring it
[14:51:19] [Server thread/INFO]: Done (6.995s)! For help, type "help" or "?"

Agora, execute o stop do server. Será necessário mover os mapas que foram criados com o bootstrap de inicialização do bukkit para o diretorio “worlds”.

/etc/init.d/minecraft stop
Said: SERVER SHUTTING DOWN!
Saving worlds...
Stopping server...
spigot-1.11.2.jar is now shut down.

Após shutdown do server, execute o comando abaixo para mover os mapas.

cd /opt/minecraft; mv world_* /opt/minecraft/worlds/ && mv world /opt/minecraft/worlds/

Agora, para deixar seu ambiente resilente a qualquer modificação no game. Crie as rotinas de backup e rotate. Para isso, adicione as seguintes linhas na cron do usuário root:

02  05  *   *   *   /etc/init.d/minecraft backup
55  04  *   *   *   /etc/init.d/minecraft log-roll
*/30    *   *   *   *   /etc/init.d/minecraft to-disk

Para finalizar,  edite o arquivo server.properties (disponivel no path /opt/minecraft)

Altere o valor da propriedade online-mode.. de true para false e pronto. A diversão esta garantida!!!

Boa diversão galera!!!

RECOMENDADO PARA VOCÊ

Avelino Ferreira

“Meu egoísmo é tão egoísta que o auge do meu egoísmo é querer ajudar…”

One Comment

Dúvidas? Deixe seu comentário ou entre em contato.