Bukkit Minecraft Server

From Embedded Workshop
Jump to navigation Jump to search

Bukkit Minecraft Server

An older PC may not run Windows 10 very well, but can easily power a Minecraft Server, especially if running Linux.
Although Mojang provides the latest Minecraft server as a Java application, the game play is vanilla. Nothing special, and very little is available to alter the game play.
Here's where Spiggot steps in with tools to create a Minecraft server that supports plugins.
The plugins are java packages created by individuals that modify / augment the game play by adding features the vanilla game lacks.

Although this guide may recommend older versions of software, IT WORKS! Attempting to use "Latest And Greatest" versions may not produce an environment in which the Spiggot BuildTools will function correctly or the server functions as expected. (Trust me! I tried this... Lubuntu 18.04 had multiple issues. Lubuntu 16.04 worked just fine!)
{{#if:|{{#ifexpr:({{#time:U|{{{3}}}}} - {{#time:U|now}}) > 0| This guide assumes you are working with a computer with NO VALUABLE DATA on it. If there is anything of any value, back it up, so nothing is lost.| This guide assumes you are working with a computer with NO VALUABLE DATA on it. If there is anything of any value, back it up, so nothing is lost.}}| This guide assumes you are working with a computer with NO VALUABLE DATA on it. If there is anything of any value, back it up, so nothing is lost.}}

Minimal Computer Hardware

Running the Java Minecraft service will consume a large quantity of CPU cycles. For good game play, with two or more players, and one or two plugins, you need a processor that can "keep up", and not spend 100% of its CPU cycles "just sitting there".
Determine and record the following information!

We can "try and see" with just about anything, but I would recommend....

  • Procecssor with CPU Passmark of 1,000 or more
  • 3GB of DRAM (or more)
  • 200GB or larger hard drive

Server Software - Setup & Install

1. Begin by downloading Lubuntu 16.04.04 - Lubuntu 16.04.4 release

32-bit: {{#if:|{{#ifexpr:({{#time:U|{{{3}}}}} - {{#time:U|now}}) > 0|lubuntu-16.04.4-desktop-i386.iso|lubuntu-16.04.4-desktop-i386.iso}}|lubuntu-16.04.4-desktop-i386.iso}}, if 4GB of RAM or less
64-bit: {{#if:|{{#ifexpr:({{#time:U|{{{3}}}}} - {{#time:U|now}}) > 0|lubuntu-16.04.4-desktop-amd64.iso|lubuntu-16.04.4-desktop-amd64.iso}}|lubuntu-16.04.4-desktop-amd64.iso}}, if 4GB of RAM or more
Burn a blank DVD disk with this ISO image (record image information on the disk along with the date)

2. Boot the DVD, and then select Install
3. Install process - Computer Name, use Minecraft_ followed by your first name.

Example: Minecraft_Toad, if your first name is Toad.

4. Install process - User Name, use mcuser, and mcuser for the password.

Later, after the class, change the password using the passwd command to something a little more secure.

At some point, the computer will instruct you to remove the DVD so it can reboot into the new OS from the hard drive.

Installing Linux Tools / Programs

  • If you want to connect to the computer remotely install SSH (optional)
$ sudo apt-get install openssh-server

I use Tera Term (version 4.87) on my PC to connect to the server

  • Install Midnight Commander (optional)
$ sudo apt-get install mc (I like using "Midnight Commander" for file moving/coping)

I like to run Minecraft in a virtual terminal, so I can disconnect / reconnect any time

$ sudo apt-get install screen

Minecraft requires Java for the Minecraft server. By default, Lubuntu doesn't install Java.

  • Install Java JRE version 8 (1.8.0) headless - Not sure the newer versions will run everything correctly.
$ sudo apt-get install openjdk-8-jre-headless
  • Make a minecraft directory to store all minecraft related maps, tools, servers, etc - cd into directory
$ mkdir minecraft
$ cd minecraft

Vanilla Minecraft - optional

  • Download the latest server code into the minecraft directory
$ wget https://launcher.mojang.com/mc/game/1.12.2/server/886945bfb2b978778c3a0288fd7fab09d315b25f/server.jar

This downloaded a file, "server.jar". Rename the file to keep track of the version:

$ mv server.jar minecraft_server.1.12.2.jar
  • Make a folder for your first map (I have plenty of old maps that I got tired of and wanted a new map..)
$ mkdir map_1.12.2
$ cd map_1.12.2
  • Make a startup script to make it easier to start your Minecraft server each time

I use nano for my editor...

$ nano startminecraft.sh

Enter the following into the editor for your shell script:
#!/bin/bash
java -Xmx1024M -Xms1024M -jar ../minecraft_server.1.12.2.jar nogui

Use control x to save and exit when you're done ^X

  • Change the permissions on the script file, allowing execution of the file
$ chmod 755 startminecraft.sh
  • Start the server
$ ./startminecraft.sh

The server will start and then stop indicating you need to agree to the EULA

  • Edit eula.txt, changing "false" to true"

eula=true

  • Start the server again (use //stop// to stop the server)
$ ./startminecraft.sh

At this time, you can edit server.properties file, configure the "motd", change seed, use a different server-port value, set difficulty level, max-players, max-world-size, ...

You now have a "Vanilla" Minecraft Server available to play...

With a really wimpy server, I set
max-world-size=500     500 blocks in each direction (restricts players to a 1000x1000 map)

Bukkit Minecraft Server

  • Install GIT
$ sudo apt-get install git
  • Configure GIT (to work with the build tools correctly)
$ git config --global --unset core.autocrlf
  • Create a folder for your Spigot Build tools
$ mkdir spigot
$ cd spigot
$ wget https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar
  • Build the new Bukkit Server
$ java -jar BuildTools.jar

After about 10 to 20 minutes, depending on your Internet connection and processor speed, the tools will create two Minecraft server jar files, craftbukkit-1.12.2.jar, and spigot-1.12.2.jar. I've been using the "spigot" version.

The spigot folks recommend the following shell script to launch their server:

#!/bin/bash
java -Xms2G -Xmx4G  -d64 -jar ~/minecraft/spigot_1.12.2/spigot-1.12.2.jar nogui