SkyBukkit
SkyBukkit
General
SkyBukkit seamlessly brings SkyBlock to Bukkit servers. It allows players to easily and effectively play SkyBlock alone or with their friends on any Bukkit server, even when a survival world already exists.
For example, on a standard Bukkit server, a player might decide that he has had enough survival gameplay for the day. By simply typing “/island home” the player can teleport to his completely-separate SkyBlock and get to work there. Furthermore, the player would automatically have his inventory, armor, xp, hunger, health, saturation and exhaustion switched, just like he had logged onto another, SkyBlock-dedicated, server.
This same player could then just use “/island spawn” to jump right back into his normal survival environment, while all of his items, etc. are switched back.
While plugins like this do already exist, they all have far fewer features and those projects are outdated with their authors vanished off of the face of the earth. This project attempts to remedy the problem, while offering a server experience like no other.
This plugin has been re-written completely from scratch to achieve maximum performance and compatibility on Bukkit servers.
News
SkyBukkit Release v0.6.0
Release v0.6.0 contains a number of accessibility fixes.
SkyBukkit Release v0.5.14
Release v0.5.14 removes some super-hacky CB-dependant code, amoung other things.
SkyBukkit Release v0.5.13
Release v0.5.13 contains serveral technical fixes as well as some anti-cheat item duplicaiton protection.
Use
Prerequisites
SkyBukkit depends on WorldGuard for it's island protection ability. Please ensure you have it (and WorldEdit, which WorldGuard depends on) installed.
You are also probably going to want to install a plugin like MultiVerse, which will allow you to create a separate world for SkyBlock instances.
PLEASE NOTE: It is highly inadvisable to make your SkyBukkit world an existing survival world. If you do, it will create a host of problems, for example:
- When a player creates a SkyBlock, a giant area of land will become un-editable by other players, as it infringes on their protected SkyBlock land area.
- When a player deletes a SkyBlock, a giant area of land from sky to bedrock will be deleted, creating a massive void pit.
Instead, a separate world should be created (using a plugin similar to MultiVerse) which is using the cleanroom world generator.
Introduction
Simply place the plugin in the standard Bukkit plugin directory and it will automatically generate its configuration the next time the server is run. The default configuration is fine for normal use, but feel free to tweak it for a unique server experience (all available options are available below).
Players simply use “/island create” to create their own SkyBlock instance. They are automatically teleported to their new island and their inventory is switched for them. To delete or replace the SkyBlock they use “/island destroy” or "/island replace" respectively.
Say a player wanted to invite his friend over to his SkyBlock so they could play together. Said player would use a party. Just by typing “/island invite <friend>” they can create a new party and invite the friend to join. The friend would accept or decline the invitation be using “/island accept” or “/island decline”, respectively. The friend could leave at any time with “/island leave”.
That is just a snapshot of all available commands. They, with their accompanying descriptions and permission nodes, can be found further down.
Configuration
Please Note: All of the below configuration options are compulsory. If any are omitted, they will be re-generated next time the server starts.
Name | Default | Description |
---|---|---|
center: x: | 0 | X co-ordinate of where the center island should be placed. |
center: z: | 0 | Z co-ordinate of where the center island should be placed. |
pvpEnabled: | false | Whether or not PVP is allows on islands. |
switchInventories: | true | Whether or not SkyBukkit will auto-switch inventories. |
world: | world | Name of the world where the islands should be stored. |
partyMaxSize: | 0 | The maximum number of players allowed in a single party if INF (0) |
islandHeight: | 128 | Y co-ordinate of where newly-generated islands should be placed. |
islandSpacing: | 120 | Distance between generated islands. |
islandSize: | 100 | Size of the protection “bubble” between SkyBlocks. |
items: | (LIST) | List of all items in the SkyBlock chest. |
items: id: | (INTEGER) | ID of an item in the chest. |
items: dmg: | (INTEGER) | Damage value of an item in the chest. |
items: qty: | (INTEGER) | Quantity of an item in the chest. |
A sample configuration file containing the default values can be found below:
center: x: 0 z: 0 pvpEnabled: false switchInventories: true world: world partyMaxSize: 0 islandHeight: 160 islandSpacing: 120 islandSize: 100 items: - id: 287 dmg: 0 qty: 12 - id: 327 dmg: 0 qty: 1 - id: 352 dmg: 0 qty: 1 - id: 338 dmg: 0 qty: 1 - id: 40 dmg: 0 qty: 1 - id: 79 dmg: 0 qty: 2 - id: 361 dmg: 0 qty: 1 - id: 39 dmg: 0 qty: 1 - id: 360 dmg: 0 qty: 1 - id: 81 dmg: 0 qty: 1 - id: 323 dmg: 0 qty: 1
Commands
Please Note: Wildcard *s are valid in permission nodes. Commands may also be prefixed with the alias /is instead of /island.
Command | Permission | Description |
---|---|---|
/island create | skybukkit.island.create | Create a new SkyBlock. |
/island destroy | skybukkit.island.destroy | Destroy your current SkyBlock. |
/island replace | skybukkit.island.replace | Replace your current SkyBlock. |
/island home | skybukkit.tp.home | Teleport to your SkyBlock, and save your inventory. |
/island spawn | skybukkit.tp.spawn | Teleport to the main world, restoring your inventory. |
/island invite <player> | skybukkit.party.invite | Invite <player> to your SkyBlock, creating a party. |
/island kick <player> | skybukkit.party.kick | Kick <player> from your party. |
/island promote <player> | skybukkit.party.promote | Make <player> the party leader. |
/island accept | skybukkit.party.accept | Accept a pending invitation. |
/island decline | skybukkit.party.decline | Decline a pending inviation. |
/island leave | skybukkit.party.leave | Leave your current party. |
/island leader | skybukkit.party.leader | Display your party leader. |
/island members | skybukkit.party.members | Display your party's members. |
/island admin destroy <player> | skybukkit.admin.destroy | Destroy <player>'s SkyBlock. |
/island admin tp <player> | skybukkit.admin.tp | Teleport to <player>'s SkyBlock. |
/island help | N/A | Display this help message. |
Download
The latest plugin build can be downloaded here.
Latest Changes
Features
- More feedback towards players when using commands or playing
- Perform check when issuing /island home
- Resend Chunks When an Island is created/destroyed.
- Extreme Server Tick Lag. Do the "heavy-lifting" in a worker.
- Max Players per Party
- Configurable Items and Quantities
- Option to disable inventory management
- Added /is command alias
- Shortened all "/island party *" commands to just "/island *"
- Deny disallowed players entry
- /island world -> /island spawn
- Leave the sky when you use /island leave
- Go to the sky when you use /island accept
- Inform implicitly promoted players that they have been promoted
- Inform party members when a member leaves their party
- Inform promoted players that they have been promoted
Bug Fixes
- Enabled maven resource filtering for plugin.yml
- Removed super hacky cb refs
- Changed pom
- Fixed maven dependancies
- Fixed a fatal island creation bug
- Fixed an entity removal bug
- Fixed an island protection bug
- Fixed an island respawning bug
- Fixed another island respawning bug
- Fixed a island creation tick lag bug
- Fixed teleportation and other random bugs
- Fixed protection regions not being removed
- Save WG Regions
- Fixed syntax errors
- Fixed potential CCE
- Made config error messages more user-friendly
- Spelling error correction
- Fixed Deserialization NPE
- Fixed Island Un-Protection Exceptions
- Made party max sizes work
- Fixed another NPE
- Fix docs
- Fixed party commands
- Fixed NPE
- Fixed spelling
- Properly color player names
Planned Features
v1.0.0
SkyBukkit is in a preliminary phase, so please feel free to file a ticket for any feature requests you may have.
How Can I Help?
The plugin is developed solely by me in my free time so:
- If you are a developer would like to contribute to this project, or any of my other projects, please PM me or email me at [email protected].
- If you are a not developer but would still like to contribute somehow, please consider donating. Donations are highly valued and much appreciated.
About
Developer: Keeley Hoek (escortkeel)
Hm, teleporting to someone else's island seems fixed if you jump off their island. You will then spawn on your personal island.
How can i import islands from Skyblock Co-op plugin?
Halp! It not working you need to fix etc. etc.
No really, you are doing a marvelous job with this plugin and v 0.57 improved the experience quite a bit since people can now teleport off and on the island properly. We are really happy with the plugin right now.
If you can fix the chat thing, it would be superb.
Another note though, island destroy generates an internal error on our server. I may be able to dig up a console error from that later on if you're interested.
EDIT: I need to add yet another note. It seems the teleporting still is not working 100%. People still keep teleporting to empty islands when doing island create, and plunging to their deaths because of that, only to respawn on the correct island. Another item of concern with teleporting is that when I do an /island create, I end up on someone else's island from time to time. Most likely the position of this island has not been flagged as "occupied".
Keep up the good work so far! I can't wait to see this plugin running smoothly.
hey, i have a question, would it be possible to make the /spawn command to exectute /island world because i run a deadicated skyblock server and i dilike haveing to contiuesly tell players they have to type /island world insted of /spawn, maybe make it a config option?
Please seriously Fix it :/ Same problem like rebel24 and we can not play :/ People came to server and until somebody crate a new island it's ok but after every body must reloging for 10 times it a minute, Because a chat is not wokring. Seiurls quiucky, thanks really much.
error with 0.5.7 all i changed was the world that it uses.
Chat does scroll and update though, weird.
Command logging also shows that I didn't send a command when I did, several times. Could this be an issue with the "worker thread"
No error log, but on skybukkit when you create an island and play, the chat and commands stop working till you relogin on some occasions, this is a serious issue? Fix please :3 :P
@Relicum
Will do. In the next version, players will spawn above their island.
@JuCu00
Hi JuCu! :)
I'd be happy to help with that exception. Would you mind replying to this post with the entire contents of the stack trace?
As for you second problem, you need to make sure that you hav eset the correct world name in the config. :)
@John__B
Ahh new there was something I forgot to suggest and that was it. I never understood why the bedrock is always placed there. Personal i would more the bedrock as you suggest and have them TP to 1 block above the island to allow an even higher chance on landing safely on the island.
@Relicum
Not always true. Im running 8gb ram amd 3.2ghz quadcore ..yada yada yada.. and sometimes people still fall into a void when teleporting back. which is why i made the suggestion to move spawn point to center of island. no fall offs.
Hi Keeley
This is not really a feature request it is just an observation from other SkyBlock plugins that have gone inactive. If a server is low on memory or is running on poor hardware. When a player is transported back to their island sometimes they will end up falling into the void. This occurs if the island is not in an area where other players are currently on their island's so chunks that contain the players island are not loaded, the chunk doesn't load in time and the player reaches the island before the chunk has loaded fully, hence they fall into the void, when this does happens you can actual lookup wards and see the island load. A solution may be to put a slight delay on the TP and to allow the chunk to load thus the player always ending up on their island. Am not sure if you do this already but is something to watch out for.
Am more than happy to make an installation video for you if that would help cut down on the number of setup issues some server owners may be experiencing. Just my way of giving back something for all your efforts on this plugin. Please just PM me.
Hello. I've some critical problem with this plugin. In the latest version (0,5,6) I have problems with creating party ( when u type /island party leave, /island party accept in Log shows: org.bukkit.command.CommandException unhandled exception executing command "island" in plugin Skybukkit ) But when the config is clear ( partyMaxSize: is default 0 ) in games shows: Party too small etc. Second problem is spawn point of newest skyblock it seems that when somebody start a new skyblock he land in the big hole under his island. I'd add that i'm using mix of MultiVerse and Cleanroom generator which make an world connected to skyblocks. I'd love to have an answer. Best wishes Jucu00
@escortkeel
Yes, also, i'm not sure if its a bukkit issue, but when a user creates an island, the blocks slowly build and ticks drop to very low numbers causing them End Of Stream and having to relog. And everytime after another 2 minutes the ticks go down again.
@iDeViLxD
What about during island creation? Do you get lag there too?
@Relicum
Hey Relicum!
You are completely correct. I'll fix that right away. :)
Hi Keeley
Just giving the plugin a test run and works like a dream. The only problem I have is the the WG protection regions do not get saved to the regions.yml file. So all region protection is lost on a restart. Unless I call /rg save on a time schedule. Also by doing that it won't remove the region on the island being destroyed.
The server is dedicated to SkyBlock , the default world is called world where the user will spawn into first time, I have used MV and Cleanroomgenerator to create the second world called skyworld, I have changed the world name in skybukkit config.yml. Everything works perfectly I can create destroy replace add party members no problem my TPS stays at 20 all the time. It just never actually saves the region to the WG skyworld regions.yml file unless I run it manually. I have had the same problem with all the SkyBlock plugins i have tried, but non have been as bug free as yours. For that I congratulate you. Is there something obviously wrong with what I am doing ??? I have half a dozen servers all which use worldguard regions in some shape or form and have no problems. Or is it intentional that the regions are only stored in memory ??
Any help would great fully be appreciated. Once again great work.
Edit - Going though your code you use the WG RegionManager to add the region which gets added to memory but you never call the save method on the regionmanager to save it to disk so it can persist after a restart. But i could be completely wrong.
Regards Relicum
@iDeViLxD
How much ram do you run by any chance. If you are operating on low ram, like say 1-2gb you are basically ALWAYS going to get lag when someone makes an island or even worldedits. Either that or you are on 1.2.5 worldedit. If so get the new 1.4.X one
I run my server with ALOT of ram for a server (8GB). That means I can host about 200ppl with my FIos quantum plan!