Slime World Format implementation written in Kotlin with Zstd for bukkit.

Overview

Slime Korld

Easily create many slime worlds with the Slime Korld.

What is Slime Korld?

Slime Korld is a bukkit library written in Kotlin to make minecraft worlds based on Slime World Format from Hypixel Blog 5#

How to use it?

main() {
    val delegator = SlimeKorld.createDelegator()
    
    val slimeWorld = delegator.createWorld(
        File("world.slime"), 
        "World"
    )

    println("Slime world name: ${slimeWorld.name}")
}

Also, you can refresh, delete or save the slime world. (It include saving entities/tile-entities)

Installation

Gradle DSL:

repositories() {
    maven {
        name = "jitpack"
        url = 'https://jitpack.io'
    }
}   

dependencies() {
    implementation 'com.github.luiz-otavio.slime-korld:common:1.0.0'
}

Kotlin DSL:

repositories() {
    maven("https://jitpack.io")
}

dependencies() {
    implementation("com.github.luiz-otavio.slime-korld:common:1.0.0")
}

Maven:

<repositories>
    <repository>
        <id>jitpack</id>
        <name>jitpack</name>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.github.luiz-otavio.slime-korld</groupId>
        <artifactId>common</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>

License

This project is licensed under the GNU General Public License v3.0.

Contributing

Please feel free to open an issue or create a pull request.

Comments
  • EOFException in NBTCompressedTools from NMS when reading entity data

    EOFException in NBTCompressedTools from NMS when reading entity data

    Since when there is not entity data available, NBTCompressedTools calls for an exception about the end of the byte array. https://github.com/luiz-otavio/slime-korld/blob/af7a05c92fc9dcd87b1f7b6755ef0b3f86066721/bukkit/src/main/java/me/luizotavio/minecraft/codec/SlimeInputStream.java#L120

    Also, it should be equal for extra-data and world maps.

    bug 
    opened by luiz-otavio 0
  • NullPointerException in `Chunk#getWorld` after loading it from `SlimeChunkLoader`

    NullPointerException in `Chunk#getWorld` after loading it from `SlimeChunkLoader`

    Since chunkProviderServer.emptyChunk is a constant chunk, it should not be returned in IChunkLoader#a(World, int, int). https://github.com/luiz-otavio/slime-korld/blob/af7a05c92fc9dcd87b1f7b6755ef0b3f86066721/bukkit/src/main/java/me/luizotavio/minecraft/world/chunkloader/SlimeChunkLoader.java#L49

    bug invalid 
    opened by luiz-otavio 0
  • Missed property value in `SlimeWorld#setProperty`

    Missed property value in `SlimeWorld#setProperty`

    Seems like the property isn't updated as it should be https://github.com/luiz-otavio/slime-korld/blob/af7a05c92fc9dcd87b1f7b6755ef0b3f86066721/bukkit/src/main/java/me/luizotavio/minecraft/BukkitSlimeWorld.java#L117

    bug invalid 
    opened by luiz-otavio 0
  • ArrayOutOfBounds in `SlimeWorldFactory#transform` method

    ArrayOutOfBounds in `SlimeWorldFactory#transform` method

    Seems like the array of block ids are out of the exactly value.

    [13:26:40] [Server thread/WARN]: Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 14 out of bounds for length 14
    
    [13:26:40] [Server thread/WARN]: 	at me.luizotavio.minecraft.codec.SlimeOutputStream.getBlocksId(SlimeOutputStream.java:357)
    
    [13:26:40] [Server thread/WARN]: 	at me.luizotavio.minecraft.codec.SlimeOutputStream.write(SlimeOutputStream.java:189)
    
    [13:26:40] [Server thread/WARN]: 	at me.luizotavio.minecraft.factory.BukkitSlimeWorldFactory.transform(BukkitSlimeWorldFactory.java:115)
    
    [13:26:40] [Server thread/WARN]: 	... 24 more
    
    bug invalid 
    opened by luiz-otavio 0
  • Fix slime version in `SlimeInputStream`

    Fix slime version in `SlimeInputStream`

    Seems like the InputStream doesn't skip bytes from SlimeVersion https://github.com/luiz-otavio/slime-korld/blob/af7a05c92fc9dcd87b1f7b6755ef0b3f86066721/bukkit/src/main/java/me/luizotavio/minecraft/codec/SlimeInputStream.java#L78

    bug invalid 
    opened by luiz-otavio 0
  • Forgot to introduce `world maps` after loading the world

    Forgot to introduce `world maps` after loading the world

    Seems like the world maps from here https://github.com/luiz-otavio/slime-korld/blob/af7a05c92fc9dcd87b1f7b6755ef0b3f86066721/bukkit/src/main/java/me/luizotavio/minecraft/prototype/ProtoSlimeFile.java#L55

    Is not applied after transforming the world.

    bug 
    opened by luiz-otavio 0
  • Include workflow for checking sources

    Include workflow for checking sources

    With github actions, we could ensure some specific steps such as:

    • Checking if source doesn't contains followed errors;
    • Checking source style;
    • Making automatic releases or something else.
    build-system ci feature 
    opened by luiz-otavio 0
Releases(2.0.1)
  • 2.0.1(Oct 13, 2022)

    What's Changed

    • Workaround to fix maven publication by @luiz-otavio in https://github.com/luiz-otavio/slime-korld/pull/15

    Full Changelog: https://github.com/luiz-otavio/slime-korld/compare/2.0.0...2.0.1

    Source code(tar.gz)
    Source code(zip)
  • 2.0.0(Oct 12, 2022)

    What's Changed

    • Resolve world maps after world loading by @luiz-otavio in https://github.com/luiz-otavio/slime-korld/pull/2
    • Hotfix of a lot of issues and make it available to test by @luiz-otavio in https://github.com/luiz-otavio/slime-korld/pull/10
    • Include the rest of documentation and make it available to test. by @luiz-otavio in https://github.com/luiz-otavio/slime-korld/pull/13

    New Contributors

    • @luiz-otavio made their first contribution in https://github.com/luiz-otavio/slime-korld/pull/2

    Full Changelog: https://github.com/luiz-otavio/slime-korld/commits/2.0.0

    Source code(tar.gz)
    Source code(zip)
    api-1.8.8-R0.1-SNAPSHOT.jar(33.55 KB)
Owner
Luiz Otávio
15y | Technology enthusiast
Luiz Otávio
A small DSL to make building a conversation in Bukkit easy.

Konversation Konversation provides a simple builder to construct chains of prompts to be used in the conversation API present in Bukkit. Bukkit only p

Tim Hagemann 2 Dec 4, 2022
Coroutine for Bukkit

Heartbeat Coroutines 두근두근 ❤️ 코루틴 Coroutine for Paper Features Bukkit의 mainHeartBeat(GameLoop)에서 dispatch되는 Coroutine JavaPlugin 생명주기의 CoroutineScope 유

null 22 Dec 18, 2022
Android Bundle format support for Kotlinx Serialization.

Bundlizer Android Bundle format support for Kotlinx Serialization. Usage Annotate your data models with @Serializable: import kotlinx.serialization.Se

Ahmed Mourad 69 Nov 9, 2022
Jackson extension for Mojang's NBT format

Jackson NBT Data Format Implements Mojang's NBT format in jackson. Usage Using this format works just like regular jackson, but with the ObjectMapper

Dyescape 3 Sep 10, 2022
Adds loveable red pandas into Minecraft! Who doesn't love a Red Panda in their world?

?? Akali Adds loveable red pandas into Minecraft! Who doesn't love a Red Panda in their world? :3 This is a Forge and Fabric mod under their respected

Noel ʕ •ᴥ•ʔ 4 Jul 4, 2022
DocuBox is a cloud based file storing app where you can securely store and access your documents from anywhere around the world

DocuBox is an android app ??in which you can securely upload your files on the cloud– from family pictures and audio recordings to spreadsheets, presentations and other confidential documents.

Vaibhav Jaiswal 26 Jan 3, 2023
LifecycleMvp 1.2 0.0 Kotlin is MVP architecture implementation with Android Architecture Components and Kotlin language features

MinSDK 14+ Download Gradle Add to project level build.gradle allprojects { repositories { ... maven { url 'https://jitpack.io' }

Robert 20 Nov 9, 2021
Opinionated Redux-like implementation backed by Kotlin Coroutines and Kotlin Multiplatform Mobile

CoRed CoRed is Redux-like implementation that maintains the benefits of Redux's core idea without the boilerplate. No more action types, action creato

Kittinun Vantasin 28 Dec 10, 2022
RoomJetpackCompose is an app written in Kotlin and shows a simple solution to perform CRUD operations in the Room database using Kotlin Flow in clean architecture.

RoomJetpackCompose is an app written in Kotlin and shows a simple solution to perform CRUD operations in the Room database using Kotlin Flow in clean architecture.

Alex 27 Jan 1, 2023
📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.

NotyKT ??️ NotyKT is the complete Kotlin-stack note taking ??️ application ?? built to demonstrate a use of Kotlin programming language in server-side

Shreyas Patil 1.4k Jan 4, 2023
A kotlin implementation of commutative encryption based on ECC ElGamal encryption over Curve25519

komuta A commutative encryption implementation. This is a naive implementation of commutative encryption using the ElGamal scheme applied over Curve25

Mircea Nistor 7 Nov 17, 2022
Ethereum Web3 implementation for mobile (android & ios) Kotlin Multiplatform development

Mobile Kotlin web3 This is a Kotlin MultiPlatform library that ... Table of Contents Features Requirements Installation Usage Samples Set Up Locally C

IceRock Development 32 Aug 26, 2022
Netflix inspired OTT Home Screen, Contains implementation in Reactjs, Kotlin React Wrapper, Jetpack Compose Web

Netflix-Clone-React Practising React by building Netflix Clone Requirements TMDB api key : Add TMDB API key to AppApi.kt Learning Resourcce Build Netf

Chetan Gupta 61 Nov 13, 2022
🏗️ Kotlin implementation of Point-Free's composable architecture

?? Komposable Architecture Kotlin implementation of Point-Free's The Composable Architecture ?? Project Status We've been using Komposable Architectur

Toggl 175 Dec 23, 2022
AndroidArchitecture - An Implementation of Google Recommended New Android Architecture with Kotlin

Android Architecture An Implementation of Google Recommended New Android Archite

Nayeem Shiddiki Abir 5 Jun 1, 2022
Lambda-snake.kt - Snake Game Implementation for Web using Kotlin programming language compiled for Javascript

Projeto da disciplina de Linguagem de Programação Funcional 2021.1 (jan/2022) ??

Alex Candido 3 Jan 10, 2022
A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

A simple, classic Kotlin MVI implementation based on coroutines with Android support, clean DSL and easy to understand logic

Nek.12 4 Oct 31, 2022
A kotlin multiplatform BLS12-381 implementation for chia key management

KBLS KBLS is a kotlin multiplatform BLS12-381 implementation built for creating cross platform chia applications. Tips are much appreciated and will d

ChiaChat 7 Nov 21, 2022
A pure Kotlin/Multiplatform implementation of group operations on Curve25519.

curve25519-kotlin A pure Kotlin/Multiplatform implementation of group operations on Curve25519. Gradle Kotlin DSL: dependencies { implementation("

Andrey Pfau 9 Dec 22, 2022