AdventurePlugin
AdventurePlugin
AdventurePlugin is a plugin for bukkit 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 in version 2.1.1+ 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]
Savvy readers will notice that 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.
@theapple641
There is a new branch on the github (unix-zip-fix) that contains some extra logging information that should help figure out what the problem is. You can build it from there or download it from here. Run it and then post the log file and that should give me enough information to track down this bug. Log file is AdventurePlugin.log located in the plugin's data folder
@resitancedude
The config files are located in the plugin's data folder. Defaults to /plugins/AdventurePlugin
where is the conifg files
@smith_61
Ok i can help you test!
@theapple641
I don't have a mac to test on so i am not able to test any solutions to it. The solution I implemented for it makes it stop working on my computer and I still have no idea if that even fixes the problem. If you like I can build one with the fix and send it to you to see if it works.
I have check every week to see. You said you have a way to solve it. Can you solve it and make a small update?
Remember to work on the MAC problem too!
I want to update and work on this plugin, but school started up again and I am taking quite a few classes that are keeping me busy along with other projects. This project isn't on one of my priorities to work on right now. I hope in a couple weeks once I get those other projects near completion I can return to this, but I have no clue as to when that will be.
I really hope that this isn't dead yet (in a way of: No more work being done on the plugin) since the core of it is working absolutely beautifully.
Just quite a few things that can still be fixed/added to make it even more awesome ;)
Why no new updates so far, is there going to be a giant updates coming soon or there is a bug you still figuring how to fix?
@gabiliel
That is a bug/feature in Craftbukkit. It doesn't fully release all file resources right away when you unload a world. So when it attempts to clean up the world files it won't succeed and registers the files to be cleaned up on shutdown of the JVM. You will likely get lots of that spam with lots of adventures being played. I have an idea for fixing that but I still have yet to try it.
@cartose777
In the plugins data folder. Start the server with the plugin first and it should generate a default config file.
I find an example of how it works in the comments, but the archives are not being deleted it says that:
[WARNING] [AdventurePlugin] Unable to delete all files in tree for parent: .\yeah_TestAdventure_world_nether. Deleting on JVM exit. [WARNING] [AdventurePlugin] Unable to delete all files in tree for parent: .\yeah_TestAdventure_world. Deleting on JVM exit.
someone knows the cause, and the solution?
where is the config file?
This is a great plugin! Thank you so much for creating it! Keep up the great work!
can you make this have a no team/party needed feature?
can u make this have a random join team option?
@theapple641
If you check the github issue thread on this I posted a link to what I think is the problem. I don't use relative paths for files inside the zip file. Mostly i'm just missing a prepending / on all files inside of it. Which is odd because it works without them on windows but it seems that unix systems might require it.
@smith_61
I Think it is the software mac use to write the file and read the the file.
Mac use textedit
Windows use Word pad
If you want, I can help you test!
@theapple641
I would love to fix it but I still have very little clue as to what is causing the problem since that exact same zip file works on my computer with the same java and craftbukkit version and I do not have a Mac to test this on.
Please Fix that in the next update because i love the plugin because of it system and idea and i think it have great potential!
@theapple641
The only thing different from what I have is the OS. Anyone else that has this problem also running Mac OSX or a version of unix?