Leaves One

Alan Richard's Blog

Introduction to Minecraft Server Plugin Development - Course Syllabus


Lecture: Thu, Sat, 3:00-4:00pm

Office Hours: Fri, Sun, 7:00-8:00pm


Some familiarity with vocabulary of computer programming, Minecraft is necessary.


Our aim in Introduction to Minecraft Server Plugin Development is to introduce you to Minecraft server plugin development (Spigot/Paper based).

In Minecraft, the only limit is your imagination. With the ability to modify Minecraft server, you can easily change the game’s behaviors, thus you are not limited to merely playing the game, but writing games. Using programming languages to change how the game work is not only engrossing and absorbing but beneficial and advantageous, for it is a practical way to gain the knowledge on basic programming and understand how computer software works.

By the end of the course, you will have essential understandings of programming, for Minecraft server plugin especially. And the detailed learning objectives are as follows:

  1. Utilize IntelliJ IDEA and Java programming languages for writing and compiling Minecraft server plugins.
  2. Solve problems encountered during coding by referring to Java docs and the internet.
  3. Develop plugins which make use of common Spigot APIs for simple tasks.
  4. Apply Maven to manage dependencies.
  5. Build plugins that employ third-party dependencies.


Working Alone on Assignments and Labs

You must finish all your assignments and labs independently without any direct help from others.

Final Grade Assignment

Each registered students will receive a numeric score for the course, based on a weighted average of the following:

  • Assignments (50%): Each lecture session will be accompanied by at most one assignment.
  • Labs (50%): There are two labs during the entire semester. Students will be working on two relatively large projects targeting at particular goals which may require slightly more investment and innovation than assignments.

There are no exams in this course.


No textbook is required.

Academic Integrity

Each student is required to work on their assignments and labs alone without direct help from others, or he/she would be considered cheating. The following are detailed explanations.

What is cheating:

  1. Copying, retyping, or looking at other students’ source code or directly from the internet.
  2. Sharing your source code or compiled Java classes.
  3. Getting help from others, especially line-by-line assistance.

What is not cheating:

  1. Explaining usages of tools or softwares to others.
  2. Helping others with high-level design issues.


We know that referring to the internet and docs is a significant part of programming, so it would not be considered cheating if you do copy-and-paste code gists with relatively small amount of codes from the internet. You are expected to write comments for every line (separated by ;) for the code you copied in this case. But please remember, copying source code verbatim for your assignments and labs are strictly prohibited.


Any violation of regulations above would cause the violator being expelled from the course.