Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for NightWorks

A simple plugin to swap adventure maps on-the-fly

Report AdventureWorld?

AdventureWorld

AdventureWorld is a plugin for PaperMC that handles the creation and playing of adventure type maps. Adventure maps are lacking in SMP due to most adventure maps being only able to be played through one time before needing to reset the world. That is where this plugin comes in. This plugin adds two new features to make the creation and playing of adventure maps easier.

Adventure Team

The first new feature is the Adventure Team. An Adventure Team consists of a name, a leader and a variable number of teammates. Teams are used to create a group of players who want to play together on adventure maps. Only the leader is allowed to choose the adventure the team will play. Players are free to join and leave the team at any time but if it is during an adventure the player will be removed from the adventure upon leaving the team. A team must be created to join any adventure map.

Adventure

The second new feature is the Adventure. An Adventure consists of a name, and a single world that serves as a template. When a team joins an Adventure, the template is cloned to create a unique world specifically for the team to play on. When the team leaves the adventure it is unloaded and destroyed. This leaves the template world untouched and removes the need to reset adventure worlds with each play through. Inventories are also cleared upon entering an Adventure and restored when the player or team leaves.

Defining Adventures

Adventures are defined in separate zip files located in the "adventures" directory located in the plugins data folder. Each adventure must follow a specific file structure in order to be considered valid. This file structure is as follows

/
    adventure.yaml
    maps/
        (Zipped worlds)

adventure.yaml is a yaml file that is used to describe the adventure. It's structure is as follows

# Name of the adventure
name: "Example_Adventure" # [Required]
worlds:
        # The world type that is used as the entry world
        #     for this adventure.
        # Ex.
        #     entry: "NETHER"
        #     Will use the world with the type "NETHER" as the entry world for this adventure
        entry: "NORMAL" # [Required]
        
        # One or more of the following sections
        # Valid values for keys are "NORMAL", "NETHER", "END"
        NORMAL:
            # Name of the world. This is used to locate the world zip file in the maps directory.
            # Ex. 
            #    name: "world"
            #    Will use the world found at "/maps/world.zip"
            name: "world" #[Required]

You can define multiple worlds as part of an adventure. You may be wondering does that mean multi-world adventures can be used. The answer is yes. Nether and end portals will correctly link to the correct worlds of the correct environment. This means a nether portal will link to the world that is specified of type NETHER and end portals will link to the world that is specified as type END. If a world is not defined with the correct type it will not allow the portal to be used.

The maps directory is where all of the required worlds must be zipped up and placed. They will be extracted when a team joins an adventure and loaded.

Commands

([] - Required, () optional)

Team Commands

/adventure team create [team_name] - Creates a new group with the given name /adventure team join [team_name] - Joins the team with the given name /adventure team leave - Leaves the current team /adventure team list - Lists all current teams /adventure team info (team_name) - Gets info about the team with the given name or the team the player is in

Adventure Commands

/adventure start [adventure_name] - Joins the Adventure with the given name. Only team leaders can use this command /adventure stop - Stops the current Adventure. Only team leaders can use this command /adventure list - Lists all available Adventures and the number of teams playing them /adventure info (adventure_name) - Gets info about the Adventure with the given name or the adventure the player is playing

Permissions

There are currently no permissions for this plugin

Example Config

# This world is the world that players will be teleported
#     to after they leave an adventure.
# Defaults to "world"
lobby-world: "world"

The only config option displayed in the example is "lobby-world". This option is used to define a world that players are moved to after leaving an Adventure.

Please post all issues or feature requests on the GitHub page for this plugin.

Disclaimer

I am in no way a professional Java or PaperMC developer. Using this is completely at your own risk. This entire project is based on the work of two others, who sadly both abondoned the project. As I wanted to have something like this myself to play around with a couple of friends, saw the abandoned projects, and decided to attempt to finish it myself. Learn some new stuff in the progress. I saw already some comments on the original Bukkit plugin page that there were some issues, I'm not sure how that would hold up.

I might try to fix reported issues and add some new features, I might not. I'll make sure I will respond to every issue or PR created, to make sure at least it won't be abandoned again. If you want to be a contributor, hit me up.

Credits

As I said, almost all of the work is done by two others. I just made it work with the latest version, got it out of its abandoned state and did some other cleanups.

https://github.com/smith61/AdventurePlugin (Original creator)

https://github.com/freddo256/AdventurePlugin (First fork and start of update to version 1.16)

Contributors

I'll add the GitHub/username of any user who has a merged PR to this list.

  • lessevv (NightWorks)

Information

CategoryWorld Management
Published onNovember 16, 2023
LicenseGPL
Downloads15
Stars2
Watchers1

Pinned Versions

Members