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
Sorry, but where is /etc folder? Thanks!
@MrCobayo
Open the /etc/my.cnf file and change the max_connections variable. I'd still recommend taking a look through your plugins and trying to work out which one's using so many connections though.
EDIT: If you're on shared hosting you might have to ask your provider to do this for you.
hello, how increased limit of SQL?
@MrCobayo
"Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20]"
Your SQL server has reached its connection limit, and you'll need to either increase this limit or remove some of your plugins that depend on SQL.
My server is crash with your plugin
... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) org.bukkit.event.EventException 2012-05-01 15:14:50 [SEVERE] Could not pass event PlayerMoveEvent to Ports ... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) org.bukkit.event.EventException 2012-05-01 15:14:49 [SEVERE] Could not pass event PlayerMoveEvent to Ports ... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) org.bukkit.event.EventException 2012-05-01 15:14:48 [SEVERE] Could not pass event PlayerMoveEvent to Ports ... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) org.bukkit.event.EventException 2012-05-01 15:14:47 [SEVERE] Could not pass event PlayerMoveEvent to Ports ... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303) org.bukkit.event.EventException 2012-05-01 15:14:46 [SEVERE] Could not pass event PlayerMoveEvent to Ports ... 20 more at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:247) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnection(PooledConnectionQueue.java:307) at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue._getPooledConnectionWaitLoop(PooledConnectionQueue.java:329) Caused by: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true ... 10 more at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) at net.robinjam.bukkit.ports.PlayerListener.onPlayerMove(PlayerListener.java:38) at com.avaje.ebeaninternal.util.DefaultExpressionList.findList(DefaultExpressionList.java:201) at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findList(DefaultOrmQuery.java:906) at com.avaje.ebeaninternal.server.core.DefaultServer.findList(DefaultServer.java:1468) at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Unsuccessfully waited [1000] millis for a connection to be returned. No connections are free. You need to Increase the max connections of [20] or look for a connection pool leak using datasource.xxx.capturestacktrace=true at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.Packet10Flying.handle(SourceFile:126) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:209) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459) Useful Links
Main Site Demo Panel Control Panel Twitter Facebook Terms of Service About Us Contact Us Frequently Asked Questions Services Stock Overview Legal Services
Game Servers Web Hosting $30/yr Unlimited Web Hosting Dedicated Servers Support
@VoltLLC Facebook [email protected] Support Tickets Blog / Status Updates Pingdom Network Status
Volt Host provides progressive server solutions in Europe and USA with a friendly and customer-oriented product support ethic. Average Support Response Time 14 hours and 16 minutes
Players Online 1979
Network capacity 13%
Hey am loving this plugin. Great alternative to another long time region port plugin that I will not name. We are moving over to this one instead. One thing I might suggest is a config to change how often the "The port will depart in XXXX". Gets a bit spamy. Would like to able to configure it to like 30 seconds or something.
Edit - never mind I just saw your future features "Control the speed of the port ticks" :)
contest!
But i want to remove this message, because that site is only "going" and I will not teleport you anywhere.
Sorry for my english
@MrCobayo
Give the port a destination? ;)
I'm planning to add message customisation at some point, but I've been kinda busy IRL recently. Sorry about that.
Hello! How to disable messages "THE PORT HAS NO DESTINATION" thanks!
@kahlilnc
Ah, I see. To be honest, I have no ETA for version 0.2. Hopefully I should have something ready within the next 2 weeks or so. Stay tuned! :P
@robinjam
Oh it works with 1.2.4 using it now. But I was curious on a ETA for the other future updates and implements. :D
@kahlilnc
It might still work with 1.2.4, I just haven't had chance to test it yet. Any chance you could to it for me? :P
ETA on upcoming update? :(
@Wookieguy
It already works on 1.2.3, I just forgot to update the file description :P
@OriginalMadman
Which profiler are you using to measure CPU usage?
Hmm... My server couldn't keep up and it seems ports (default config - untouched) eats a lot of cpu - the most out of all my plugins - in certain intervals for a few minutes). There were no error messages, and ports was not in active use yet.
love your plugin guys
Looks really neat. I might have to add it for a balloon tour or two around the world :)
Just as a curiosity, do you have an estimate on when you will be able/want to release a Minecraft 1.2.3 update?
@Gogosjon
CraftBukkit wasn't able to connect to your MySQL server. Try restarting it (sudo /etc/init.d/mysql restart), and then restart CraftBukkit.