Ports
Ports
Ports allows you to define regions which transport players around the world instantly, or on a schedule of your choosing.
Your ports can be trains, planes, ships, portals, whatever you like. You are limited only by your imagination!
Important notices
- This plugin requires WorldEdit, and will not work without it.
- All pre-existing port data from Ports v0.2 will be unusable with Ports v0.3 and above. If you have a large number of ports set up, you can use the sql2yaml Ruby script to convert the database to the new format. If you need help, please feel free to private message me on BukkitDev.
- The current version should still work on 1.6. If you have any issues, please post a comment.
Quick links
- Downloads
- Source code
- Documentation
- Please donate if you've found this plugin useful, to help support future development.
- Bitcoin address: 19X4KjZ3kuuNJspad7qkTAfcLXpUkgdSK
Features
- Define activation zones using WorldEdit
- Customize the names of your ports ("This train will depart in x minutes", "This boat does not go anywhere!", etc.)
- Set up instant teleporters or ports that act on a schedule (every 5 minutes, every day, every week, whatever you wish)
- Bukkit Permissions support
- Full Multiworld support
- Per-port permissions for fine-grained control
- Ticket system
- Various localisation/translation options
How do I use it?
- Video tutorial
- Another video tutorial (thanks jckmcgraw!)
- A French video tutorial (thanks ThePico20!)
- Documentation
Upcoming features
- Economy support
- Dynmap integration
- Warmup/cooldown timers
- Support for non-cuboid activation regions
- Suggest new features here
it seems to have broken after 1.6, any chance for a fix?
I am getting a internal error when trying to create a port with all versions 0.3 and after. Previous versions still work fine. Still like the old version, but the ticket and permission system would be nice. Another thing that might be nice to add is a way of checking the times of a schedule to know when a port is going to activate. Based on most of the plugin features I would say a simple command like [/port check <port>] would be sufficient, and have it respond with the time left until the port activates. I have some ports that take a long time to activate, that would let someone keep track of it without running back and forth to the port to see if it is getting close to activating. Of course you would probably want to allow everyone to use that command.
@rodeyseijkens
Quite possibly... Looks like I have some debugging to do; thanks for the report.
Also sorry for the late reply, I've been kinda swamped with exams over the past 3 weeks. Now they're over I should have time to finally finish this plugin and release v1.0 :P
Is it possible that there could be something wrong with PortTicker?
Could not pass event PlayerTeleportEvent to PlotMe v0.13 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at org.bukkit.craftbukkit.v1_5_R3.entity.CraftPlayer.teleport(CraftPlayer.java:371) at org.bukkit.craftbukkit.v1_5_R3.entity.CraftEntity.teleport(CraftEntity.java:194) at net.robinjam.bukkit.ports.PortTickTask.teleportPlayer(PortTickTask.java:157) at net.robinjam.bukkit.ports.PortTickTask.run(PortTickTask.java:70) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:513) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.NullPointerException at com.worldcretornica.plotme.PlotManager.isPlotWorld(PlotManager.java:1047) at com.worldcretornica.plotme.listener.PlotWorldEditListener.onPlayerTeleport(PlotWorldEditListener.java:81) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 14 more
@robinjam
It was me, I was looking into the source of PlotMe first, but I narrowed it down to the point that it can't be your plugin too.
When teleporting no mather what kind of plugin the Location where you are going too will always be like the following:
Console Logged the onPlayerTeleport .getFrom() Location{world=CraftWorld{name=creative},x=66.6355571344171,y=69.0,z=53.923216600655856,pitch=73.34999,yaw=3.144539}
Console Logged the onPlayerTeleport .getTo() Location{world=null,x=-502.48482319290173,y=68.0,z=20 53.4563645029734,pitch=90.0,yaw=203.6914}
So the Location from the event.getTo() will always be world=null Teleporting to the world itself still works and functions like it normally would.
I tested it on bukkit 1.5.2_R0.1 Almost no plugins except: Multiverse-Core WorldEdit and a modified version of PlotMe to check for the onPlayerTeleport in console.
@zachbora
The code for v0.3.2 is here: https://github.com/robinjam/ports/tree/v0.3.2
Looks like they stepped into a port where the destination doesn't have an arrival location defined, and so player.teleport(null) was called which made CraftBukkit throw a fit. What's perplexing is that it's impossible to create a port without an arrival location since it uses your current location as the default.
Could you maybe ask the user to contact me so I can ask them what they were doing when the error occurred?
Thanks very much for the report, at any rate.
@robinjam Hello, someone submitted me an error on PlotMe and it seems caused by your plugin but looking at github and trying to match the lines in the error log isn't working. It's like your github wasn't the same version as 0.3.2. Could you help with this?
http://pastebin.com/uNRE57wh
Hey I have a feature to request, basically all what it does, is when u walk into an activation zone, a command is executed targeted on for instance on the player, this to make portals which allow players to join arena i.e /sudo {name} ma join Arena1 , that would be AWSOME!
@aug_88
Sounds like you have an activation region covering one of your arrival locations.
@deleted_8886818
The current version still works on 1.5.
Update please!
still working with 1.5.1 ;D
the plugin is bugged, every time i create 2 ports and link them, their departure times get synced, resulting getting teleported right back where you came from. sometimes it even loops,
however Yes i do know how to setup this plugin i have been using it for a long time now, this is something recent since 1.5 i believe
@kev3200
This plugin doesn't bypass the Bukkit API, so it doesn't usually need updating when a new version of Minecraft is released. In other words, the current version should work fine with 1.5.
That said, the next version of Ports is nearly done anyway so I'll be releasing that soon enough :P
@kev3200
Why? It works with 1.5, just try it, before you ask...
Please update to 1.5 as soon as possible. I realize it just came out, but my server can't update till this plugin does.
Little Feedback from me...I love this plugin (: ,never had any problems with it <3 , and i think SharkROAR's Idea is good too (: , would be great if you could add it (: , eh you don't need to if you don't want to :P, ofcourse (:
@robinjam
This is certainly a good way to put it, I'd appreciate this feature.
Of course you do not have to add fully custom departure schedules by any stretch of the imagination. After all, it is your plugin and I don't want to interfere at all. That was just something that came to my mind while creating the ports.
@SharkROAR
Interesting... I think one possible solution might be to add a "timezone" setting on each port where you can specify an offset. So for example if you wanted your ship to depart every day at midday you'd set the schedule to 24 hours and the timezone to 12 hours.
That would be a reasonably easy change to make, whereas adding fully custom departure schedules would mean rewriting a large chunk of the plugin. What do you think of this idea?
@robinjam
Think of the following example:
I want a ship to depart every 24 hours, but not on 6:00am. This is not possible right now, as the ticks always start from 6:00am.
It certainly is not a must have, but I think it'd be an overall improvement.