PortalLink
PortalLink
Latest Version: 1.0
Released: 11/2/13
IMPORTANT: Due to a bug in 1.4.7-R1.0, this plugin requires 1.4.7-R1.1 dev build #2630.
PortalLink allows Nether portals in custom worlds (i.e. not declared in server.properties
) to takes you between them and their respective "_nether" worlds, making multiple worlds even easier for players to use. You can also add custom links between certain worlds. These two worlds do not have to be a Nether and a normal world - you could link two Nether worlds, or two normal worlds - and the block ratio is correctly calculated for this situation! You can also disable the nether for specific worlds - e.g. if you have a creative world, you can stop players using Nether portals in it.
Features
- Fixes nether portal linking for multiple worlds
- Allows custom links to be declared between worlds, be it between a Nether and a normal world or the same type!
- All worlds referenced in custom links are loaded/created at startup to reduce the delay for players
- All worlds referenced when using the
/pl link
command will be loaded/created straight away - Allows user-defined worlds to have no Nether
- Includes in-game commands for creating, removing and reloading links
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
Commands
/pl link [-b] [-WhichNether] <World> <OtherWorld>
- Defines a new PortalLink. "b" sets the link to work both ways.WhichNether
is 0 by default - add 1 ifWorld
is a Nether world and 2 ifOtherWorld
is a Nether world (or 3 for both). If you do not, things may BREAK. You can use "\" to escape spaces./pl unlink <World> <OtherWorld>
- Removes a PortalLink. You can use "\" to escape spaces. IfOtherWorld
is blank, all links for World will be removed. Removed links are commented out inlinks.properties
./pl reload
- Reloads PortalLinks fromlinks.properties
.
(When adding a link it is automatically saved to links.properties).
Permissions
portallink.*
- Gain all permissionsportallink.link
(defaults toop
) - Allows a user to use the/pl link
commandportallink.unlink
(defaults toop
) - Allows a user to use the/pl unlink
commandportallink.reload
(defaults toop
) - Allows a user to use the/pl reload
commandportallink.notify
(defaults toop
) - Allows a user to be notified on new versions and whenever someone performs a reload
Configuration
PortalLink uses two files for configuration. The first is links.properties
, and is used to define where each world's nether portals should take you (if anywhere), and the second is config.yml
, which contains general plugin settings.
General Settings (config.yml)
deny-entity-portal
(defaults totrue
) - Allows you to disable entities travelling through portals. This is currently recommended, as Bukkit does not currently allow a plugin to distinguish between Nether and End portals for entities, so otherwise entities could go to the wrong worlds.check-updates
(defaults totrue
) - Whether PortalLink should periodically check for updated versions.
Disabling The Nether For Specific Worlds
Make sure allow-nether
is set to true
in server.properties
, and then for every world that you want to have the Nether disabled for, add a link to nothing (some-world=
) in PortalLink's links.properties
file.
Okay, so it isn't working "beautifully" anymore... It isn't creating a portal back for nether portals, and end portals just drop you out of the world, I am using ExtraordinaryBen's build.
I have rebuild the source with the latest 1.4.7 build 2623, but I haven't been able to test it yet. Will report back, even though I don't think anyone is reading this...
ExtraordinaryBen's build of PortalLink works beautifully still on 1.4.7. Nether and End portals.
@destr0yer41
Link Removed: http://www.mediafire.com/?073jj6g57rd625d
Built against Bukkit-1.2.4-R0.1 (Should work up to 1.2.5)
Reimplemented support for "the_end" worlds as I could not find the source for v0.7.0, and I've yet to test and make sure config is working properly. (However I'm fairly sure it'll work fine.)
If you have any trouble with my build feel free to contact me. ;)
Any update for portal link for 1.2.4
@lolleflikker
They have just pulled my request, so the next RB (either 1.1-R5 or 1.2) will contain the enums. I am uploading a new version that will support the new APIs when they are made available to the masses. Whatever version you run, the new version will not interfere with the end in the main world (I realised I could do that much without the new API), but the end portals in other worlds will take you to the nether. When you update to the newer version of CraftBukkit, these portals will take you to the main world's end. I shall now work on having different ends for each world, but thought it was best to upload this interim version.
Any news on this? :p
Ok, thanks for the help and information!
@lolleflikker
I see. I have considered making PortalLink allow you to link specific portals together, so when I have time I will try to add that. I know it does not use portals, but you could always tell players to use ButtonWarp (http://dev.bukkit.org/server-mods/buttonwarp/) to allow them to be taken to their own homes.
Well, with only one portal I spawn at that portal. But the problem is my players want to have their own nether portals (in their homes etc.). So if they are in the nether they want to go back to that portal and not to a portal in someones house.
@lolleflikker
Yeah, the plugin does not link specific portals - instead it links worlds, and then Minecraft/Bukkit sorts out which portal in that world you should go to. If you only have one portal in your main world, however, you should be returned to that portal. Have you specified a link in PortalLink's config between these two worlds?
@jrtc27: thanks for the information! So when I inter a portal on the main world, then I want to go back to that portal when I enter one in the nether. I thought this plugin made that possible, but now I'm thinking it was maybe another plugin.
I hope this can be added to this plugin?
@lolleflikker
So you entered from the main world? And did you create the portal to which you were teleported? If so, I'm afraid that is the way portals work - you are taken to the one closest to your equivalent location in the other dimension (with a ratio of 1 nether block to 8 normal world blocks).
When I use PortalLink and I enter the nether it works! But when I try to go back I'm teleported to a portal on the main world that I didn't enter before. Is this a bug? Or is it just not possible to make the player go back to the portal he entered?
@snowy007
Unfortunately the new API has not been released. I created a pull request to implement it a month ago (https://github.com/Bukkit/CraftBukkit/pull/629) but no news from the CraftBukkit team.
R3 has already been released and my users just figured out that the end portal isn't bringing them to the end. :P
Any more information of when this will be fixed? Has the craftbukkit team released that new API yet?
i have 2 suggestions.
Right now, i go to the nether using a portal i made in a secret room below my house. I get to the nether, do some stuff and go back through the portal. Back in the overworld i end up at a portal belonging to some other person....
It would be nice if i could create a portal to the nether and both portals would be linked together. So a portal in the nether always ends up to the same overworld portal and that overworld portal would always end up at that nether portal.
Next suggestion is to make the nether:overworld scale configurable.
I would really appreciate it if you could take a look at these suggestions.
@bigscary
No, it doesn't cause a problem - the Travel Agent is what finds/creates a Nether Portal, and if you look at the code for when the PlayerPortalEvent is called you can see that all PlayerPortalEvent handlers finish their code before the Trave Agent comes into play.
Hi jrtc, I see that you're using the documented ratio to set the "to" coordinates when going from nether to normal and vice-versa. Since the landscapes are different, isn't it possible that the player will teleport too high (in ceiling) or low (in blocks), causing death? Further, I understand the standard portal code often deviates from the exact proportions when there isn't room for the portal at the default location (or it's above a lake of lava).
I'm asking because I'm looking at the JavaDocs for the PlayerPortalEvent and there's near-zero commentary there to explain how it works. :) Any clarifications based on your experience? Does the "Travel Agent" mentioned in the docs come into play before or after the PlayerPortalEvent handlers finish their handling code?