Develop Minecraft Plugins (Java)
4.5 (1,624 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,180 students enrolled

Develop Minecraft Plugins (Java)

High-quality tutorials providing you with the most sustainable practices available to make Minecraft plugins.
Bestseller
4.5 (1,625 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
4,180 students enrolled
Created by Stephen King
Last updated 4/2020
English
English [Auto]
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 18 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn the programming language Java (if not known)
  • Develop plugins for Spigot, Bukkit or BungeeCord
  • Earn money from developing in Minecraft
Course content
Expand all 85 lectures 17:52:15
+ Setting Up
6 lectures 44:45

There is no development in this lecture. I explain why you can trust me and how to use this course to get the best out of it.

Preview 11:10

On the Windows operating system, you will learn how to install Eclipse, the software we need to develop our plugins in.

Installing Eclipse (WINDOWS)
04:44

On the Mac operating system, you will learn how to install Eclipse, the software we need to develop our plugins in.

Installing Eclipse (MAC)
05:08

In this lecture you will understand the layout and preferences of Eclipse.

Understanding Eclipse
10:24

On the Windows operating system, you will learn how to create a local Spigot server where we can test the plugins we make.

SKIP IF YOU ALREADY HAVE A SERVER (LOCAL OR HOSTED ONLINE)

Creating Spigot Server (WINDOWS)
07:12

On the Mac operating system, you will learn how to create a Spigot server where we can test the plugins we make.

SKIP IF YOU ALREADY HAVE A SERVER (LOCAL OR HOSTED ONLINE)

Creating Spigot Server (MAC)
06:07
+ Java Basics
5 lectures 01:20:09

You will learn:

  • Classes
  • Methods
  • Main data types
  • Creating/using variables
  • If statements (also else if)
  • Java operators
Java Basics #1 (Optional)
19:35

You will learn:

  • Method parameters
  • Exceptions (specifically NullPointerException)
  • Constructors / classes
Java Basics #2 (Optional)
13:45

You will learn:

  • Method returning
  • Try/Catch statement
  • Static keyword
Java Basics #3 (Optional)
13:22

You will learn:

  • Switch statement
  • HashMap (& LinkedHashMap)
  • List (& LinkedList)
  • Loops (for, while)
Java Basics #4 (Optional)
19:25

You will learn:

  • Date and Time
  • Random
  • Inheritance
Java Basics #5 (Optional)
14:02

This will test your knowledge on everything covered in the Java Basics section!

Basic Java Knowledge
10 questions
+ Level 1 Content
5 lectures 01:02:49

In this lecture you will make your first Minecraft plugin. We start off with a simple concept where we send a message to the console as soon as the plugin is loaded, but what is made here can be used as a base for all plugins.

First Plugin
12:36

This lecture you will understand how to make the most basic command. You will be using the most simple system which can incorporate multiple commands; you will also learn more about player variables and how they can be modified based on a command!

Simple Command
17:50

This lecture you will learn about events.. code that you can manipulate which is triggered upon a certain event. Essentially, you will be able to make things happen once something else does! 

Event Handling
13:56

This small lecture will provide you with the simple code to add permissions. You will use code created from previous lectures and modify how a command/event is run based on player permissions!

Permissions
05:16

You will understand the basic rules of a config.yml file and how you are able to add and remove formatting from it. You will also be taught the basic principals of YML creation and how you can use code inside of the file to modify what happens in your plugins.

Configuration File (config.yml)
13:11
+ Level 2 Content
18 lectures 02:55:53

Whilst there is a lecture on commands in the earlier section, here you will learn the most efficient method of writing commands and ensure that your code remains tidy and comprehensible. You will use the Command Executor method which simply directs your commands to different .class files!

Command Executors
08:38

You've done commands.. but now we need to do arguments! You'll learn the simplicity of command arguments and some good practices as it does require some effort and a neat coding style. You will then be able to change what happens based on the desired arguments.

Command Arguments
10:55

This lecture will teach you about console commands and how you can filter between sender types (i.e. player and sender). You will then be able to change the way your plugin works based on this information!

Console Commands
05:50

This lecture shows you all the primary methods and events for Entities.

Entities
11:37

You will be taught about Enums, they are another type of file (i.e. different from a .class) and allow you to make quick and easy lists which can be accessed throughout your projects. You will be able to use the example as provided to incorporate into your own plugins!

Enums
07:23

This lectures shows you how to create armor stands at specific locations, how to set their properties/attributes, how to add items to them and change their body poses. 

Armor Stands
12:36

This lecture shows you how to use the ServerListPingEvent to set the MOTD, icon and maximum player count. 

Setting MOTD, Server Icon & Player Count
05:50

This lecture shows you how to make a Boss Bar (that little bar at the top with a message). You can customize the color, style, message and progress (the amount that is filled) to suit your needs. 

Preview 09:05

This lecture teaches you the most important methods related to Armor Stands and how to manipulate them to create Holograms. You will learn how to make a single hologram, one that follows players and a multi-line hologram.

Holograms
18:34

This lecture will teach you about the best methods to toggle anything of your desire. It could be toggling the use of ender pearls, moving or command usage. You will learn the process of filtering ArrayLists in order to declare the player as having the toggle enabled or disabled.

Toggling
07:40

In this lecture you will be learning new data types, such as blocks and materials, to which you can use to manipulate events and commands. You will follow the example of manipulating block modifications which will work on any map - therefore, you will understand how to target specific blocks within the map.

Map Modification / Blocks
06:53

This lectures shows you how to use the Spigot API to kick, ban and temporary ban players. You can use this knowledge to make punishment systems responsive to user input in-game.

Moderation Tools (kick, ban..)
15:31

This lecture shows you how to hide players from other players and then show them again - invisibility!

Vanish
06:44

This lecture will show you how to detect projectiles on launch and hit, along with how to launch them as guns.

Projectiles
06:58

This lecture shows you how to force resource packs onto players and an event to check the status of it!

Resource Packs
05:05

This lecture you will learn how to use Sounds, setting the source, volume and pitch!

Sounds
08:30

In this lecture we purposely create a problem and attempt to read the error. Whilst the error appears horrible, it actually tells us exactly where the problem is which makes it much easier for you to solve the problem!

Reading Errors
08:54

During this project I will be creating a private message system. You will be following along and starting to understand new methods and practices within Java that you weren't previously aware of. After following this lecture, you will have created the ability to private messages between two players.

FOLLOW-PROJECT: Private Message System
19:10
+ Level 3 Content
14 lectures 03:10:28

You will be learning a new method which allows you to schedule (repeating) tasks for a certain time. By the end of this lecture you should fully understand Runnables, including where to use them and how they can be implemented into your code to work effectively.

Runnables
14:24

This lecture will teach you about how to create a GUI that can be shown to players. Many servers nowadays have menus that are triggered on item clicks, by the end of this lecture you will be able to replicate any GUI of your choice! You will be learning some new concepts and so sustainable practices will be used throughout.

GUI Creation
19:52

In this lecture you will be managing the GUI that you created in the previous lecture. You will be dealing with the InventoryClickEvent in order to define what happens when a player clicks on an item in the menu.

GUI Interaction
18:08

This lecture covers all elements of the sign API in Spigot - including the events, colors and per-player text!

Signs
09:39

This lecture shows you how to create custom player heads with a player's texture or a completely unique one taken from online head databases!

Player Heads (Skulls)
09:23

This lecture shows you how to create entirely custom banners with thousands of possible combinations!

Banners
09:40

This lecture will show you how to change pixels on maps, add text and implement images of any size to a custom map!

Custom Maps
16:00

This lecture will teach you two appropriate methods of dealing with cooldowns. The example is with commands, but they can be used all throughout your plugins. One method involves runnables and the other is a simplistic technique involving ArrayList storage, each dealing with time!

Cooldowns
14:03

This lecture will teach you how to make a scoreboard filled with information that doesn't change, using examples such as a website link or the player's username.

Preview 13:50

This lecture follows from the previous scoreboard lecture, showing you how to write information on a scoreboard which can change when triggered or periodically. The examples used are blocks broken and a 60 second countdown. The code used is designed to ensure NO FLICKER!

Scoreboard #2 - Dynamic
14:08

Whilst we have covered the config.yml, at the end of this lecture you will be able to create YML files with your own names that act the same as the configuration file. You will be able to edit and use data inside to determine how your plugin works!

Custom YML Files
12:55

This lecture shows you how to use the Spigot API to create entirely custom crafting recipes to give any ItemStack in a crafting table.

Preview 09:33

This lecture you'll learn how to create books, including the title, author and all of the unlimited page content!

Books
10:11

This lecture shows you how to make a help command with automatic pages. This means that you could add as many commands to your server as you wish and the pages would update accordingly. As this is a 'project', you are not expected to fully understand everything at this stage.

FOLLOW-PROJECT: Dynamic Help Command
18:42
+ Level 4 Content
10 lectures 02:24:35

This lecture shows you how to make hoverable and clickable text using the Chat Component API provided by Bungee (though it works on Spigot servers). The example used is a message saying "Hover or click for Twitter", with the 'Twitter' part being hoverable and clickable.

Preview 14:38

This lecture shows you how to use API's that are provided by other plugins. This means that you are able to use and send information from the API. In this example, WorldEdit is used and we register a selection using different means than what WorldEdit provides using their API.

Using Plugin API's
15:34

This lecture shows you how to add methods and variables in your plugin for other developers to access in theirs. Watch Using Plugin API's lecture first!

Creating Custom API
05:35

This lecture teaches you how to use Vectors to move entities, players, item drops, particle effects etc.

Vectors
08:11

This lecture shows you how to create your own plugin events to listen to yourself or for other plugins!

Custom Events
10:10

This lecture shows you the mechanics behind custom enchantments that can be applied to weapons, armor etc.

Custom Enchantments
20:55

This lecture, combined with the next, shows you how to make a page system! Specifically in this one, we cover the logic and math behind it and also creating the GUI.

Preview 17:12

This lecture, combined with the previous, shows you how to make a page system! Specifically in this one, we cover making the GUI responsive and having the pages work dynamically.

GUI Pages (Part #2)
18:21

This lecture begins a two-part series of making an internal ranks system. This lecture delves into the backend, such as creating your own ranks, YML storage structure and actions based on ranks.

FOLLOW-PROJECT: Rank System (Part #1)
16:00

This is the second installment of the two-part series. Having done the backend in the first lecture, here you will create a custom rank command, custom chat messages and test the final piece!

FOLLOW-PROJECT: Rank System (Part #2)
17:59
+ MINIGAMES!
11 lectures 03:27:18

This lecture I spend some time introducing the mechanics of minigames and how they work. Covering topics like Arenas, Managers and everything else needed to make the most effective minigame! We write the Config class which is going to pull all the data from our files.

Mechanics (Part #1)
15:48

This episode we make the Manager and Arena classes. We write some useful methods in the Manager class which is the powerhouse of the whole minigame & have it load all the arenas.

Mechanics (Part #2)
11:48

In this lecture we tackle the Countdown and Game classes which control different aspects of the live minigame.

Mechanics (Part #3)
18:40

In this lecture we finalise everything and finally get our minigame running!

Mechanics (Part #4)
19:24

This lecture we make all of the mechanics and logic behind the kits!

EXTRA: Kits #1 (Logic)
21:09

This lecture we build the GUI for selecting kits and all the code that helps it run!

EXTRA: Kits #2 (Selection GUI)
18:28

This lecture we create scalable teams logic and create a selection GUI!

EXTRA: Teams (Logic & Selection GUI)
23:02

This lecture we look at resetting maps and putting protocol in place to ensure maximum efficiency and usability.

EXTRA: Resetting Maps
15:42

In this lecture we produce a sign per arena which automatically updated depending on the GameState and player count!

EXTRA: Arena Signs
20:06

In this lecture we make clickable NPCs which allow players to join arenas!

EXTRA: NPC Join
20:31

This lecture we look at making our minigame effective and efficient to be run on BungeeCord servers. See the following section for BungeeCord specific info,

EXTRA: Bungee Compatability
22:40
+ BungeeCord
3 lectures 34:47

This lecture I run through how to create a BungeeCord network on Windows.

(OPTIONAL) Creating BungeeCord Network (WINDOWS)
10:47

This lecture I run through how to create a BungeeCord network on Mac.

(OPTIONAL) Creating BungeeCord Network (MAC)
07:20

This lecture I go through the BungeeCord Plugin Messaging Channel which allows communication between Spigot plugins on different servers.

Communicating Between Servers
16:40
+ Database (SQL)
4 lectures 49:15

In this lecture you'll learn how to host a database using phpMyAdmin and how to build the tables and fields. You'll be introduced to the idea of databases and how what you make will be used in upcoming lectures.

Building Database
16:13

In this lecture you'll learn how to connect to the database through your plugin. You'll collect certain details about your database and use it for the connection process in your code.

Connecting to Database
07:41

In this lecture you'll be introduced to the SQL language and the main syntax, including SELECT (to retrieve data), INSERT INTO (to insert data) and UPDATE (to update data).

Using Database #1
11:55

In this lecture you'll use the knowledge gained from the previous and write SQL queries and updates to make magic happen in your plugin. You'll be able to add, retrieve, update and count data in the system.

Using Database #2
13:26
+ NMS
7 lectures 01:11:37

This lecture introduces you to the concept of NMS (net.minecraft.server), why this section is important and detail of what's going to be covered.

NMS Explanation
04:48

This lecture introduces you to the concept of packets, so you should watch this before skipping to upcoming lectures! You will learn how to make a title pre 1.11 (as player.sendTitle() was introduced).

Packets #1 (Title)
14:05

This lectures shows you how to apply your newfound knowledge of packets to create an action bar!

Packets #2 (Action Bar)
07:44

This lecture shows you how to use packets to construct a tablist header and footer!

Packets #3 (Tablist Header & Footer)
05:48

This lecture shows you how to use packets to construct a Boss Bar (pre 1.9)!

Packets #4 (Boss Bar)
15:55

This lecture shows you how to create fake (and clickable) player NPCs!

Packets #5 (Player NPCs)
12:36

This lecture shows you how to add fake players to the tablist and make it look real!

Packets #6 (Fake Tablist Players)
10:41
Requirements
  • Should be able to install Eclipse (or another IDE)
  • Should understand basic math operations (i.e. addition, subtraction, division etc.)
Description

PS: JUST ADDED 14 MORE LECTURES IN MAY 2020!!

Here, you will learn all about Minecraft plugins! The first tutorial is the installation and description of what you will need, and we'll work together by starting simple and by slowly developing your plugins you will become a Java god! You will start with basic lectures, teaching you how to setup your first plugin, create commands and manage events, and then move onto more tricky aspects, such as the idea of GUIs or packets.

Whether you know Java or not, you will learn a lot from this course. I will be covering Java from basic to advanced throughout the course and it is a skill that you can carry all throughout life. When using it with Minecraft, you can create some amazing things; for instance, you could be developing for your own server, another server, or even make money from uploading your plugins online for people to purchase. At the end of this carefully constructed course you will be confident in creating plugins for Spigot, Bukkit & Bungee.

I have been dealing with Java for several years and have been working with Minecraft for the majority of those. I have developed plugins ranging from Spigot to Bungee and earned a lot of money from it. I am a natural teacher and so I can assure you that you will be in safe hands! Once you have completed the course (or even each lecture), you will be able to create your own plugins based on what you have learned. 


Why this course?

• 800+ 5 star reviews & 360+ 4 star reviews

• Very generous price and still one of the best available

• Discord server with 750+ members & dozens of experienced Support staff (who are only a ping away from helping you!)

Constantly being updated to suit API changes

• 'Best selling' course by Udemy (quality reviewed by a human)

• 24/7 Q&A section (every question answered)

• One purchase = lifetime access (content is always being added)

• 13.5+ hours of lectures alone

• Extra resources after each lecture for further learning

• Videos for both Windows and Mac users

• 1080p 60fps HD videos

• English captions

Who this course is for:
  • This course is for Minecraft players who want to create awesome plugins!