Skip to content

mylittledevelop/MLPSkyblock

Repository files navigation

MLPSkyblock is a Skyblock plugin designed for the MyLittlePlanet Minecraft server

Built on top of AdvancedSlimePaper and backed by MongoDB with Morphia for database integration, MLPSkyblock ensures efficient and robust world management.


Technologies

  • AdvancedSlimePaper (4.0.0): The server jar and plugin which allows us to manage worlds efficiently, including loading and saving player-specific worlds to the database.

  • MongoDB & Morphia (Database): Reliable database backend for storing and retrieving world data efficiently, used in combination with object mapping.

  • RabbitMQ: For distributed event handling, allowing the plugin to communicate across different components and services.


How Worlds Are Handled

Worlds in this system operate based on the concept of start world templates. These serve as the foundation for creating individualized player worlds and must be prepared in advance. You can now define and use multiple start worlds, enabling diverse world templates within the same system.

The Skyblock plugin automates:

  1. World Creation: New player worlds are created by cloning the selected start world template.

  2. World Loading: Pre-existing player worlds are directly loaded from the database.


Setting Up Your Environment

Follow these steps to prepare your environment and configure your start worlds templates:

Prerequisites

Before starting, ensure you have the following infrastructure ready:

  1. MongoDB Database:

    • A working MongoDB database is required to store and retrieve world data.
    • Ensure you have the database credentials and connection URI properly configured.
  2. AdvancedSlimePaper Server:

  3. Slime World Plugin Setup:

  4. RabbitMQ Server:

    • A RabbitMQ server is required for distributed event handling. Ensure it is running and accessible.
  5. Proper User Access:

    • Ensure MongoDB users have the required permissions to read/write for the relevant database and collections.
  6. WorldEdit Plugin (Optional but recommended):

    • To prepare and modify the start world template schematics.

1. SlimeWorldPlugin Configuration

  • Configure the plugin to use MongoDB as the storage source by modifying the configuration files appropriately.

2. Create Template (Start) Worlds

  • For each start world template, use the /swp create command to create an empty world with a unique name.

  • Using plugins like WorldEdit, add and configure the desired schematics to these worlds.


3. Configure Start World Template Properties

  • Update the worlds.yml file in the SlimeWorldManager plugin. Define the properties for each start world template, such as spawn points, environment, and other settings. These properties will automatically propagate to all subsequent player worlds generated from these templates.

4. Save the Start Worlds Templates to Database

  • Clone each prepared start world template into the database under its unique name defined in world_manager.yml by running:

    /swp clone-world <created-world-name> <start-world-name> mongodb
    

5. Set up Paper settings

  • Some settings must be changed in the paper-world.yml configuration file for the best experience.

    max-growth-height:
      bamboo:
        max: 0
        min: 0
      cactus: 0
      reeds: 0
    
    tick-rates:
      mob-spawner: -1
    

About

Skyblock core plugin for MLP

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages