Skip to content

PowerNukkit/PowerNukkit

 
 

Repository files navigation

PowerNukkit

License: GPL v3 PowerNukkit v1.X TeamCity Build Status Coverage 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.6.0.1-PN'
}

Click here to see the full maven example

<dependencies>
    <dependency>
        <groupId>org.powernukkit</groupId>
        <artifactId>powernukkit</artifactId>
        <version>1.6.0.1-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 contain unstable code! ⚠️)
  • 1.6.0.1, 1.6.0, 1.6, 1, latest
  • 1.6.0.0
  • 1.5.2.0, 1.5.2, 1.5
  • 1.5.1.0, 1.5.1
  • 1.5.0.0, 1.5.0
  • 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.


SonarCloud



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.

About

A Nukkit fork which supports new Minecraft Bedrock features

Resources

License

Stars

Watchers

Forks

Languages

  • Java 99.6%
  • Python 0.3%
  • Dockerfile 0.1%
  • Mustache 0.0%
  • Shell 0.0%
  • HTML 0.0%