Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Building Minecraft Server Modifications - Second Edition
Building Minecraft Server Modifications - Second Edition

Building Minecraft Server Modifications - Second Edition: Create and customize your very own Minecraft server using Java and the Spigot API , Second Edition

eBook
$9.99 $25.99
Paperback
$32.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

Building Minecraft Server Modifications - Second Edition

Chapter 1. Deploying a Spigot Server

The first step to modifying Minecraft with the Bukkit API is to install a multiplayer server on your Windows PC. A multiplayer server is essentially the same as the single-player Minecraft server, but it allows for more customization and is not limited to the people in your home network. Spigot is a modified version of a Minecraft server, which will be used to load the plugins that you create. A plugin is a piece of software that hooks or plugs into another piece of software. The code that you will develop in this book will be in the form of plugins. These plugins will hook into the Minecraft code and change how Minecraft operates. We will set up a Spigot server and use it to test the plugins that you will write. By the end of this chapter, all of your friends will be able to log on to your modified Minecraft server and play together. By working through the following segments of this chapter, we will deploy a Spigot server, which will be modified in the later chapters:

  • An introduction to Spigot
  • Installing a Spigot server
  • Understanding and modifying the server's settings
  • Using the console and in-game Minecraft and Bukkit server commands
  • Port forwarding

Introduction to Spigot

As you set up your own server and begin to create plugins, you will encounter a few terms that may be new to you. The terms are Vanilla, Bukkit, CraftBukkit, and Spigot.

Vanilla refers to the normal Minecraft game developed by Mojang/Microsoft. The Vanilla Server is the official version of the game. It can be downloaded from minecraft.net and is typically named minecraft_server.jar or minecraft_server.exe. The vanilla server currently does not support any sort of mods or plugins. This is where Bukkit comes in.

Bukkit is an API that helps us to develop plugins. We will discuss this in detail in Chapter 2, Learning the Bukkit API. Until then, it is sufficient to know that when you hear the phrase bukkit plugins, it is referring to the plugins that are built against the Bukkit API.

The Bukkit API was originally developed by the CraftBukkit team. This brings us to the next term. CraftBukkit is a modified Minecraft server that replaces the vanilla server. CraftBukkit and vanilla Minecraft provide us with essentially the same game. The difference is that CraftBukkit has the ability to load Bukkit plugins and execute the code within the game. CraftBukkit translates the Bukkit methods and variables into Minecraft code, which was developed by Mojang. CraftBukkit also includes additional code to aid plugin developers with completing certain tasks, such as saving/loading data, listening for server events, and scheduling the code that needs to be executed. We will not mention CraftBukkit much in this book, because it has been replaced with a project named Spigot.

Spigot completely replaces the vanilla Minecraft server, just as CraftBukkit does. Spigot was built on top of the CraftBukkit project. Therefore, they share a lot of the same code. However, Spigot is more configurable via its settings; in many ways, it is much faster. The Spigot team now maintains all three of the projects, namely Bukkit, CraftBukkit, and Spigot. You will be able to use either CraftBukkit or Spigot to run a server, since the Spigot team has been kind enough to provide us with both. I recommend running the Spigot server for the reasons mentioned earlier.

Installing a new Spigot server

We will start from scratch to set up this new server. If you wish to use a preexisting world, you will be able to do so after creating a new Spigot server. To start, let's create a new empty folder named Bukkit Server. We will run the Spigot server from this newly created folder.

The main file that you will need to start a new server is spigot.jar. A JAR file is an executable Java file. Minecraft, Spigot, and every plugin that we will create are all written in Java and therefore are run from a JAR file. The Spigot team updates the spigot.jar file as Mojang releases new versions of Minecraft. Typically, when connecting to a Minecraft server, you must be playing on the same version. In case you are unsure of your Minecraft version, it is displayed in the bottom-left corner of the Minecraft client. A client is the program that you use to play Minecraft, as shown in the following screenshot:

Installing a new Spigot server

You can choose the version of Minecraft that you want to play by creating a new profile in the Minecraft launcher, as shown in the following screenshot:

Installing a new Spigot server

For legal reasons, the Spigot team is not allowed to let you download spigot.jar. However, it does provide you with tools and instructions so that you can build the JAR file yourself. The Spigot team continues to improve this process by providing the latest instructions as well as a troubleshooting guide at https://www.spigotmc.org/threads/buildtools-updates-information.42865/. This chapter includes simplified instructions on how to obtain the needed JAR file. However, in case you run into problems while building these jar files, refer to the instructions provided on spigotmc.org.

You will need Git for Windows in order to run the build tools. You can download it from http://msysgit.github.io/. When installing Git for Windows, the default installation settings will be fine. You will also need to download the build tools JAR file, which can be found at https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar. Create a new folder to place BuildTools.jar in. Name this folder Spigot Build Tools. Also create a new text file within the same folder. Name this text file update.txt. Open the text file and write the following line of code in it:

"<java bin path>\java.exe" -jar BuildTools.jar

<java bin path> should be replaced with the location of the Java installation. The java path depends on the version of Java that you have on your computer. Look for the Java folder inside the Program Files or Program Files (x86) directory. The Program Files directory can be found at the root of the main hard drive, which is typically C:\. If you do not see the Java folder, then you will have to install Java. You can download it at https://java.com/download/.

Once you are in the Java folder, you will see one or more java installation folders, such as jre7 or jre8. Open the installation folder. In case you see more than one, open the one with the higher version number. Within the java installation folder, open the bin directory. Here you should see java.exe, though it may be displayed as simply java. Copy the path from the top of the explorer window; this is the java bin path, as shown in the following screenshot:

Installing a new Spigot server

If you have Java 8, then the line of code in the update file will be similar to the following code:

"C:\Program Files (x86)\Java\jre1.8.0_45\bin\java.exe" -jar BuildTools.jar

Tip

On most PCs, you can reference the java variable in place of the java.exe path. Therefore the line of code in the update file will be as follows: java -jar BuildTools.jar

Save the file and then rename it from update.txt to update.sh. If you don't see the .txt extension on the file, then you will have to adjust your folder options by performing the following steps:

  1. Open the View tab to the upper left
  2. Select Folder and search options
  3. Uncheck Hide extensions for known file types
  4. Click on OK

Now, you can rename update.txt to update.sh. Run update.sh by double-clicking on it. This will execute the build tools, downloading all the code and applying changes until it is up to date. It will take several minutes to complete. Once it's complete, you will have spigot.jar, craftbukkit.jar, and bukkit.jar. The two server jars, namely spigot and craftbukkit, will be found in the Spigot Build Tools directory, where you placed BuildTools.jar. The bukkit.jar file is located in the Bukkit/target directory in the same folder. Each file will have a version number appended to it, such as spigot-1.8.8.jar and bukkit-1.8.8-R0.1-SNAPSHOT.jar. Note the location of these files, as you will need them within this chapter as well as throughout the book.

Note

It is recommended to run update.sh once a week so that you have the latest version of Spigot.

Copy the spigot.jar file and place it in the Bukkit Server folder that was created by you at the beginning of this segment. For simplicity, we will remove the version number and rename the file spigot.jar.

Now, we will create a batch file that we can double-click on every time we wish to start the server. In a new text document, type the following two lines:

java -Xms1024M -Xmx1024M -jar spigot.jar
PAUSE

1024 tells how much of the computer's RAM the server will be allowed to use. You can change this number if you want the server to use more or less RAM. spigot.jar is the name of the spigot.jar file. This must match the name of your file. We renamed the file to exclude the version number so that we will not need to edit this batch file every time we update the Spigot server to the latest version. java indicates that we are using Java to run the server. In case the server does not start during the following step, you may need to replace java with the full java path that you copied earlier. The rest of the code in the batch file should not concern you, and it should remain unchanged.

Save the text document as Start Server.bat and ensure that it is in the same folder as that of spigot.jar. Now, you will be able to run the server. Double-click on the batch file that you just created. It will open the command prompt and start creating server files. It will look like the following screenshot and should display the Minecraft server version that you are using:

Installing a new Spigot server

If you do not see the Starting minecraft server message, then there may be something wrong with the batch file. If a window similar to what's shown in the previous screenshot does not appear, then make sure that the batch file is named Start Server.bat and not Start Server.bat.txt. When you first start the server, you will see a few warnings. Most of them shouldn't worry you as they are expected. However, you may see a message that explains that you need to agree to the EULA in order to run the server. If you look in the Bukkit Server folder, you will now see a new file named eula.txt. Open this file, set eula=true, and save it to agree to the terms, which are outlined by Mojang at https://account.mojang.com/documents/minecraft_eula. Once you do so, you can start the server again. This time, you will see the server loading and generating a new world.

Setting up a new server

You will see the server folder populated with several files and folders. The purpose of some of these are explained in this section, but most of the files should not concern you at present:

  • plugins: This folder is where you will place all the Bukkit plugins that you wish to use on the server.
  • world: The folders that begin with world, such as world, world_nether, and so on, include all the information for the new world of the server. If you already have a Minecraft world that you wish to use, then replace these new folders with the old world folders. Do not attempt to do this while the server is running as it will cause problems.
  • server.properties: This file holds several options that allow you to change how a Minecraft server operates. You can open it with a text editor. There are many settings, and most of them are pretty self-explanatory. I will go over a few settings in the following list that you may want to modify. For a full list of property explanations, you can visit www.minecraftwiki.net/wiki/Server.properties. Changing any of these settings will require you to restart the server.
    • pvp=true: The pvp property can be set to a boolean value. PvP (short for Player versus Player) determines whether players can attack and harm each other. You will want to set this to true or false, depending on whether you want PvP to be on or off respectively.
    • difficulty=1: The difficulty property can be set to a number from 0 to 3, where 0 means Peaceful, 1 means Easy, 2 means Normal, and 3 means Hard. Everyone on the server will play at this difficulty level.
    • gamemode=0: This property determines which game mode players will start in, where 0 means Survival, 1 means Creative, and 2 means Adventure.
    • motd=A Minecraft Server: MOTD (short for Message Of The Day. This message will be displayed when viewing your server in the Minecraft multiplayer server list, as shown in the following screenshot. It is a good idea to set this to a short description of your server. An example of this is Bukkit plugin testing.
      Setting up a new server
    • online-mode=true: This can be set to false to allow players to connect to the server when in the offline mode. This is useful in case http://minecraft.net/ is unavailable or your computer is not connected to the Internet. Running your server in the offline mode can cause security issues, such as other players logging in to your account.
  • bukkit.yml: This file contains many server options. These are the options that a vanilla server does not offer and are only available when you run a modified server. Note that this file is a YMAL (.yml) file and not a PROPERTIES (.properties) file. When you open it, you will see how the two file types are formatted differently. The first difference that you will see is that certain lines are indented. You do not need to fully understand the YMAL formatting, as it will be explained further as we progress through creating Bukkit plugins. There are a few settings in this file that I will bring to your attention, as shown in the following list. For a full list of these Bukkit settings, you can visit wiki.bukkit.org/Bukkit.yml. Like server.properties, changing any of these settings will require you to restart the server.
    • allow-end: true: A vanilla Minecraft server allows you to disable the nether world from functioning. A Bukkit server allows you to disable the end world as well. Set this to false to prevent players from traveling to the end.
    • use-exact-login-location: false: Vanilla Minecraft contains a feature that will prevent players from spawning inside a block. The player will instead be spawned above the block so that they will not be stuck when they join the server. This can be easily exploited to climb onto blocks that a player could normally not reach. Bukkit can prevent this from occurring by spawning the player exactly where they logged out. Set this property to true if you wish to prevent this.
    • spawn-limits: Bukkit allows a server admin to modify the number of monsters and animals that are allowed to spawn within a given chunk. If you are unfamiliar with the term chunk, it is a group of 16 x 16 blocks from bedrock to the highest point of the sky. The following is a picture of a single chunk in Minecraft; if you feel that there are too many (or too few) mobs, then you will want to adjust these values accordingly:
      Setting up a new server
    • ticks-per: autosave: 0: Unlike vanilla Minecraft, a Bukkit server will not periodically save your player/world data. Automatically saving data may prevent the server from losing the changes that were made in the game in case it crashes or shuts down for some reason, such as the computer losing power. Vanilla has set this to 6000 by default. This value is provided in ticks. There are 20 ticks every second. We can determine how long 6,000 ticks is with this math: 6000 ticks / 20 ticks/second = 300 seconds and 300 seconds / 60 seconds/minute = 5 minutes. From this calculation, you should be able to calculate an appropriate time period after which you want your server to autosave your progress. If your server lags whenever it saves your changes, then you may want to increase this number. A setting of 72000 will cause a lag only once every hour. However, if the server crashes right before it saves, you may lose any progress that you made in the past hour.
  • spigot.yml: This file is similar to bukkit.yml. It has many settings and configurations that are only available when running a Spigot server. If you wish to configure any of these options, refer to the documentation at the top of the file.

Minecraft/Bukkit server commands

We now have all the custom options set. Next, let's log on to the server and take a look at the in-game server commands.

To log in to your server, you will need to know the IP address of your computer. Later in this chapter, we will work through finding this essential information. However, I will assume that for now, you will be playing Minecraft on the same machine on which you are running your server. In this case, for the IP of the server, simply type localhost. Once you are connected to the server, you will see that the Spigot server is essentially the same as the vanilla server because you do not have any plugins installed yet. The first indication that the server is running Bukkit is that you will have a few extra commands at your disposal.

Bukkit inherits all the Minecraft server commands. If you have ever played on a Minecraft server, then you have probably already used some of these commands. In case you have not, I will explain some of the useful ones. These commands can be typed into the console or an in-game console. By "console", I am referring to the command prompt that is running your server. Bukkit has a built-in permissions system that limits players from using specific commands.

They cannot use a command if they do not have the necessary permissions. We will discuss this in detail in a later chapter, but for now, we will make your player an operator, or op for short. An operator automatically has all the permissions and will be able to execute all the commands that will be presented. To make yourself an operator, issue the op command to the console, as follows:

>op <player>

Replace <player> with your player name. See the highlighted command in the following screenshot for an example:

Minecraft/Bukkit server commands

Once you have been Opped, you are ready to test some of the in-game server commands. In order to understand how to use commands properly, you must understand the command syntax. Let's look at the gamemode command as an example:

gamemode <0 | 1 | 2 | 3> [player]
  • < > indicates that it is a required argument.
  • [ ] indicates that it is an optional parameter. For this command, if the player parameter is not included, then the game mode of your own player will be set.
  • | is a known symbol for the word or. So, <0 | 1 | 2 | 3> indicates that 0, 1, 2, or 3 can be entered. They represent Survival, Creative, Adventure, and Spectator respectively.
  • Parameters must always be typed in the same order in which they are displayed. Usually, if you enter an incorrect command, a help message will appear, reminding you of how to use the command properly.

Note that when you issue an in-game command, you must start with /, but when issuing a command from the console, / must be left out. A proper use of the gamemode command will be /gamemode 1, which will set your game mode to Creative, as shown in the following screenshot:

Minecraft/Bukkit server commands

Another example of this command is /gamemode 2 Steve, which will find the player whose username is Steve and change his game mode to Adventure.

Now that you understand the basic syntax for commands, you can learn how to use some other useful server commands from the following list. Most of these commands are also present in vanilla Minecraft. Only a few of them are specific to Bukkit servers:

  • gamerule <rule> [true | false]

    An example of this is /gamerule mobGriefing false.

    The rule parameter can be set to any of the following:

    • doMobSpawning: This determines whether mobs will naturally spawn
    • keepInventory: This determines whether players will keep their items if they die
    • mobGriefing: This determines whether mobs, such as creepers, can destroy blocks
    • doFireTick: This determines whether fire should be spread
    • doMobLoot: This determines whether mobs should drop items
    • doDaylightCycle: This determines whether the day/night cycle is in effect
  • give <player> <item> [amount [data]]
    • For example, /give Codisimus wool 3 14 gives Codisimus 3 red wool.
  • plugins (applicable only in Bukkit)
    • For example, /plugins or /pl displays a list of all the plugins that are installed on the server.
  • reload (applicable only in Bukkit)
    • For example, /reload or /rl disables all the plugins and re-enables them. This command is used to load new settings for a plugin without shutting down the entire server.
  • spawnpoint [player] [x y z]
    • For example, /spawnpoint allows you to spawn where you are standing when you die.
  • stop
    • For example, /stop saves your progress and shuts down the server. This is how you should stop the server to ensure that data is saved. You will lose data if you simply close the command prompt by clicking on X.
  • tell <player> <message>
    • For example, /tell Steve my secret base is behind the waterfall sends a message that only Steve will be able to see. Note that these messages will also be printed to the console.
  • time set <day | night>
    • For example, /time set day sets the time of the server to 0 (daytime).
  • toggledownfall
    • For example, /toggledownfall stops or starts rain/snowfall.
  • tp [player] <targetplayer>
    • For example, /tp Steve Codisimus teleports Steve to the location of Codisimus.

For more information regarding these and other commands, visit minecraft.gamepedia.com/Commands and wiki.bukkit.org/CraftBukkit_commands. The commands and property files mentioned earlier give you a lot of control over how the server functions.

Port forwarding

Where's the fun in running your own Minecraft server when no one else can log on to it? I will now explain how to allow your friends to connect to your server so that they can play with you. In order to do this, we must first find your IP address. Just like your place of residence has a street address, your computer has an address on the Internet. This is what your friends will type into their Minecraft client to find your server. To find the IP address, simply search IP on Google. At the top of the results will be a line that states, "Your public IP address is XX.XX.XXX.XX" (the X signs will be replaced by numbers, and its overall length may be different). You can also visit www.whatismyip.com to find out your IP address.

Once you have your IP address, try using it to connect to your server rather than using localhost. If you are able to connect, then your friends will be able to do so too. If not, you will have to take additional steps to allow other players to connect to your server. This will be the case if your computer is attached to a router. We must let the router know that it should point other Minecraft players towards your computer, which is running the server. This process is called port forwarding. To do so, we will first need some additional information.

We need to know the IP address of your computer on your local network. This IP address will be different from the address that we obtained earlier. We will also need to know the IP address of your router. To find out this information, open a new command prompt window. The command prompt can be found at the following path:

Start Menu/All Programs/Accessories/Command Prompt

You can also search for cmd.exe to find it. Once the command prompt is open, type in the following command:

>ipconfig

Then, press the Enter key. A screen will be displayed, which will be similar to the one shown in the following screenshot:

Port forwarding

In the previous image, the two IP addresses that you were looking for have been highlighted. The numbers will most likely be very similar to these sample numbers. IPv4 Address is the address of your computer, and Default Gateway is the address of your router. Make a note of both of these IPs.

Next, we will log in to your router. In a web browser, type the IP address of the router, which is 192.168.1.1 in our example. If you do this correctly, then you will be prompted with a login form asking for a username and password. If you do not know this information, you can try to input admin for both the fields. If this is unsuccessful, you will have to find the default username and password, which can be found in the paperwork that was provided with your router. This information can usually be found online as well by searching for the name of your router along with the term default login.

Once we are logged in to the router, we must find the area that includes the settings for port forwarding. There exist many brands and models of routers in the world, and all of them present this option differently. Therefore, I cannot provide a specific walkthrough of how this page is found. However, you will want to look for a tab that says something that includes the terms Forwarding, Port Forward, or Applications & Gaming. If you do not see any of these, then expand your search by exploring the advanced settings. Once you find the correct page, you will most likely see a table that looks like the following one:

Application Name

External Port

Internal Port

Protocol

IP Address

Bukkit Server

25565

25565

TCP and UDP

192.168.1.100

Fill in the fields, as shown in the previous table. The layout and formatting will of course differ depending on your router, but the important details are that you forward port 25565 to the IP address that you found earlier, which is 192.168.1.100 in our example. Ensure that you save these new settings. If you have done this correctly, then you should now be able to connect to the server by using your public IP address.

Summary

You now have a Spigot server running on your PC. You can inform your friends of your IP address so that they can play on your new server with you. In this chapter, you became familiar with in-game commands and how to use them, and your server is ready to have Bukkit plugins installed onto it as soon as we program them. To prepare ourselves for programming these plugins, we will first become familiar with the Bukkit API and how it can be used.

Left arrow icon Right arrow icon

Key benefits

  • Set up a Minecraft server that you control
  • Use object-oriented programming to modify Minecraft regardless of your level of experience
  • This interactive guide will help you create a unique experience for you and your friends

Description

Minecraft is a sandbox game that allows you to play it in any way you want. Coupled with a multiplayer server powered by Spigot, you can customize the game even more! Using the Bukkit API, anyone interested in learning how to program can control their Minecraft world by developing server plugins. This book is a great introduction to software development through the wonderful world of Minecraft. We start by instructing you through how to set up your home PC for Minecraft server development. This includes an IDE complete with the required libraries as well as a Spigot server to test on. You will be guided through writing code for several different plugins. Each chapter teaches you new skills to create plugins of increasing complexity, and each plugin adds a new concept of the Bukkit API By the end of the book, you will have all the knowledge you need about the API to successfully create any type of plugin. You can then practice and build your Java skills through developing more mods for their server.

Who is this book for?

This book is great for anyone who is interested in customizing their Minecraft server. Whether you are new to programming, Java, Bukkit, or even Minecraft itself, this book has you covered. All you need is a valid Minecraft account. If you are interested in programming as a career or hobby, this book will get you started. If you are simply interested in playing Minecraft with your friends, then this book will help you make that experience even more enjoyable.

What you will learn

  • Install and run a Spigot server for free on your home PC
  • Adjust the server settings to customize Minecraft to your liking
  • Install an IDE and configure a project to write code
  • Install and test plugins on a Spigot server
  • Test your plugins through debugging the code
  • Program in game commands and permissions
  • • Get to know advanced programming concepts such as event-driven programming, configuration files, saving/loading data, and scheduled tasks
  • • Implement configuration files to make your plugins customizable
  • • Save and load your plugin s data to persist across server restarts
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 23, 2015
Length: 158 pages
Edition : 2nd
Language : English
ISBN-13 : 9781785883026
Languages :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Dec 23, 2015
Length: 158 pages
Edition : 2nd
Language : English
ISBN-13 : 9781785883026
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 81.97
Instant Minecraft Designs How-to
$21.99
LLVM Essentials
$26.99
Building Minecraft Server Modifications - Second Edition
$32.99
Total $ 81.97 Stars icon
Banner background image

Table of Contents

11 Chapters
1. Deploying a Spigot Server Chevron down icon Chevron up icon
2. Learning the Bukkit API Chevron down icon Chevron up icon
3. Creating Your First Bukkit Plugin Chevron down icon Chevron up icon
4. Testing on the Spigot Server Chevron down icon Chevron up icon
5. Plugin Commands Chevron down icon Chevron up icon
6. Player Permissions Chevron down icon Chevron up icon
7. The Bukkit Event System Chevron down icon Chevron up icon
8. Making Your Plugin Configurable Chevron down icon Chevron up icon
9. Saving Your Data Chevron down icon Chevron up icon
10. The Bukkit Scheduler Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(1 Ratings)
5 star 0%
4 star 100%
3 star 0%
2 star 0%
1 star 0%
Alfredo Furnò Jan 30, 2024
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Feefo Verified review Feefo
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela