This project is basically PowerNukkit but just in Kotlin (check out the original PowerNukkit source here: https://github.com/PowerNukkit/PowerNukkit)

Overview

nukkit

License: GPL v3 PowerNukkit v1.X Discord

Introduction

Nukkit is nuclear-powered server software for Minecraft: Pocket Edition. It has a few key advantages over other server software:

  • Written in Java, Nukkit is faster and more stable.
  • Having a friendly structure, it's easy to contribute to Nukkit's development and rewrite plugins from other platforms into Nukkit plugins.

Nukkit is under improvement yet, we welcome contributions.

PowerNukkit is a modified version of Nukkit that adds support to a huge amount of features like water-logging, all new blocks, more plugin events, offhand slot, bug fixes and many more.

Please note that PowerNukkit is not handled by Cloudburst's staff and is provided with love but without warranty. If you find any issue while running PowerNukkit you should create a new issue in this repository first.

It's also advisable to have a backup schedule set up, use plugins that are made for PowerNukkit and use only stable PowerNukkit versions.

Most Cloudburst Nukkit plugins are supported but they may not understand the new blocks and items and the new stuff that you can do with PowerNukkit.

Links

Creating Plugins

Add PowerNukkit as dependency, it's hosted by maven central and jcenter, so you don't need to specify a custom repository.

Click here to see the full gradle example

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.powernukkit', name: 'powernukkit', version: '1.5.0.0-PN'
}

Click here to see the full maven example

<dependencies>
    <dependency>
        <groupId>org.powernukkit</groupId>
        <artifactId>powernukkit</artifactId>
        <version>1.5.0.0-PN</version>
    </dependency>
</dependencies>

Build JAR file

  • git clone https://github.com/PowerNukkit/PowerNukkit
  • cd PowerNukkit
  • git submodule update --init
  • ./mvnw clean package

The compiled JAR can be found in the target/ directory.

Use the JAR that ends with -shaded to run your server.

Running

Simply run java -jar powernukkit-<version>-shaded.jar in an empty folder.

But to get the best performance on larger public servers, this longer command will be better:

java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar powernukkit-<version>-shaded.jar

Adjust the -Xmx and -Xms settings and the jar name in the end of the command as needed.

Check this page for information about the arguments above.

Docker

Running PowerNukkit in Docker:

Run these commands in terminal or cmd: (copy & paste everything at once may work)

mkdir my-server
cd my-server
curl -sSL https://raw.githubusercontent.com/PowerNukkit/PowerNukkit/master/docker-compose.yml > docker-compose.yml

If you want to keep your server always updated when it restarts, run with:
(edit the docker-compose.yml file to choose the base version you want)

docker-compose run --rm --service-ports --name powernukkit server

But if you want to keep using the same version and update, use this command to create a fixed container

docker-compose run --service-ports --name powernukkit server

To return to the terminal and keep the server running:
Keep holding CTRL, press P, release P, press Q, release Q, and release CTRL

Managing your server after the docker installation:
(these commands only works if you created a fixed container)

# Starts your server, use CTRL+P+Q to detach without stopping
docker start powernukkit -i
# Attach a detached server
docker attach powernukkit
# Stops your server with system signal
docker stop powernukkit
# Uninstall the container (keeps the data), useful to update your server
docker rm powernukkit

Check the docker-compose.yml file for more details.

Supported tags

  • bleeding ( ⚠️ use with care, may contains unstable code! ⚠️ )
  • 1.5.0.0, 1.5.0, 1.5, 1, latest
  • 1.4.0.0, 1.4.0, 1.4
  • 1.3.1.5, 1.3.1, 1.3
  • 1.3.1.4
  • 1.3.1.3
  • 1.3.1.2
  • 1.3.1.1
  • 1.3.0.1, 1.3.0
  • 1.2.1.0, 1.2.1, 1.2
  • 1.2.0.2, 1.2.0
  • 1.1.1.1, 1.1.1, 1.1
  • 1.1.1.0

Kubernetes & Helm

Validate the chart:

helm lint charts/nukkit

Dry run and print out rendered YAML:

helm install --dry-run --debug nukkit charts/nukkit

Install the chart:

helm install nukkit charts/nukkit

Or, with some different values:

helm install nukkit \
  --set image.tag="arm64" \
  --set service.type="LoadBalancer" \
    charts/nukkit

Or, the same but with a custom values from a file:

helm install nukkit \
  -f helm-values.local.yaml \
    charts/nukkit

Upgrade the chart:

helm upgrade nukkit charts/nukkit

Testing after deployment:

helm test nukkit

Completely remove the chart:

helm uninstall nukkit

Contributing

Please read the CONTRIBUTING guide before submitting any issue. Issues with insufficient information or in the wrong format will be closed and will not be reviewed.



YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications.
YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.

You might also like...
Alternative to DreamStorageService, but instead of storing files on a database, it is stored on the file system itself.

EtherealGambi Alternative to DreamStorageService, but instead of storing files on a database, it is stored on the file system itself. I made this beca

Candroid Browser is a replacement web browser for Candroid. It is designed to replace the AOSP browser, but not Google Chrome. It will be based on a privacy friendly WebKit engine fork.
Candroid Browser is a replacement web browser for Candroid. It is designed to replace the AOSP browser, but not Google Chrome. It will be based on a privacy friendly WebKit engine fork.

Candroid Browser Candroid Browser is a replacement web browser for Candroid. It is designed to replace the AOSP browser, but not Google Chrome. It wil

Exploring Kotlin Symbol Processing - KSP. This is just an experiment.

KSP example Exploring Kotlin Symbol Processing - KSP. This is just an experiment. Project contains 2 modules Processing Example Processing module is t

Just a POC repo for using Kotlin continuations

This repository This is for now just a POC repo for using Kotlin continuations, but i plan on using this to make a general library for kotlin integrat

XliteKt is an open-source, and forever open-source Kotlin based OSRS Emulator for educational purposes.

xlitekt Introduction XliteKt is an open-source, and forever open-source Kotlin based OSRS Emulator for educational purposes. Currently built around th

Share MPS code snippets. More than just screenshots.

skadi gist Share MPS code snippets. More than just screenshots. Repository Content ide-plugin: MPS Plugin that creates a gist from the IDE written in

An Interpreter/Transpiler for the Folders esoteric programming language, a language with no code and just folders
An Interpreter/Transpiler for the Folders esoteric programming language, a language with no code and just folders

Folders2kt 📁 An Interpreter/Transpiler of the Folders esoteric programming language, a language with no code and just folders, written in Kotlin Show

This just checks what architecture an installed application is using for its libraries.
This just checks what architecture an installed application is using for its libraries.

Architecture Checker This just checks what architecture an installed application is using for its libraries. About Recently, I've seen that many peopl

Project build to understand the concepts of Git and GitHub

Project build to understand the concepts of Git and GitHub. Summarizing the concepts learnt. Created a project in Android Studio Before installing And

Owner
Chrones
Chrones is small dev group that does various things
Chrones
Swarup 2 Feb 6, 2022
Spring & Kotlin equivalent to original CraftMania's TypeScript CraftAPI.

KotlinCraftAPI This project is Spring & Kotlin equivalent to original CraftMania's TypeScript CraftAPI. This project was created solely to study Sprin

Jakub Bordáš 0 Nov 6, 2021
FragmentContainerViewIdBugDemo - minimal repro project demonstrating a bug in FragmentContainerView's id check logic in the context of a dynamic feature module

FragmentContainerViewIdBugDemo minimal reproduce project demonstrating an apparent bug in FragmentContainerView's id check logic in the context of a d

null 0 Jan 5, 2022
Here is a ready to use JAICF bot template that utilises

JAICF Spring Bot template Here is a ready to use JAICF bot template that utilises Spring MongoDB Docker Prometheus Grafana Graylog How to use Please r

Just AI 1 Feb 13, 2022
Github User App for searching Github Users and get several information from it.

GithubUserApp Github User App for searching Github Users and get several information from it. This code implement with Coroutines, Retrofit, Architect

Wahyu Hendiarto W. 0 Apr 16, 2022
Webclient-kotlin-sample - An example of using the http web client to promote synchronous and asynchronous https calls

Web Client Consumer Kotlin Sample The project is an example of using the http we

null 1 May 1, 2022
Attend HoYoLAB Check-in events automatically

Croissant Attend HoYoLAB Check-in events automatically https://play.google.com/store/apps/details?id=com.joeloewi.croissant Stacks Room Database Hilt

joeloewi 2 Nov 23, 2022
A simple tool used to check the users you follow that do not follow you back.

instafbchecker - Instagram no life guide Current Release: v1.0.1 (30/08/2022) A command line tool used to check which users dont follow you back on In

Nathan 2 Aug 30, 2022
Solution for task 5 on Spring Boot https://t.me/try2py/197

IouRestService (Spring Boot Application) Решение задачи 5 https://t.me/try2py/197 Условие задачи: Четверо соседей по комнате имеют привычку занимать д

Fomin Sergei 1 Nov 22, 2021
A custom view for rating which easy to make and use, but function is excellent

QRatingView A custom view for rating which easy to make and use, but function is excellent Effect Picture Properties <declare-styleable name="QRat

QCoder 1 Dec 3, 2021