FastTravelSigns
FastTravelSigns: Simple Exploration/RPG-Friendly Warping
MC-Stats: Stats
Version 1.0.6 released. Requires Java 8 and Bukkit/Spigot 1.10+
Please report any Bugs or missing features as soon as possible.
Source-Code: GitHub
Tired of warp plugins that give your users access to a full range of public warp points as soon as they're given a certain permission? Want to encourage your users to explore rather than teleporting everywhere? Want to make them work a bit for their instant transportation? FastTravelSigns may be for you!
This plugin provides a means to create special [FastTravel] signs in your world, which your users may find and 'activate' by left-clicking them. At that point they may Fast Travel to them anytime. The idea here is that they have to get to a place before they may warp to it, similar to fast travelling in games like Oblivion and Skyrim (or even the Fly move in Pokemon!).
Features include:
- Very simple setup - most extra features are optional and it works great out of the box!
- SuperPerms/Bukkit Permissions support (Tested with PermissionsEX. See "Permissions" section below).
- Configurable cooldown between uses, and warmup before teleporting
- "Always on" automatic warp signs that will always be available to all players - Automatic signs are marked green on your list of available points!
- Economy support (Requires Vault)
- Signs are fully protected against removal by unprivileged users
- Growing list of handy administrative abilities
- You are now added to a sign if you enter a specific range
- Notifies admins if an update is availabile
- You can choose your destination in an inventory menu
- Uses the new UUID system
- Full support for SQLite and MySQL
- Signs can be shown on Dynmap
- Signs can be moved to new sign
Installation
You know the drill. Download FastTravel.jar and drop it into your plugins directory. If you wish to use the Economy support to charge your users for FastTravelling, also make sure you have installed Vault. This Plugin requires Java 8.
Run once to generate a default config.
YouTube
rmh4209 has made a handy Youtube video demonstrating installation and usage (still working but misses some features). And I made a YouTube video in german myself for a newer version.
Usage
See the Usage page.
Permissions
The following permissions can be given to control the use of the plugin. (Default is OP access for all permissions.)
- fasttravelsigns.use: Allows use of the /ft command to list travel points and to actually travel.
- fasttravelsigns.multiworld: Allows fast-travelling to points located in other worlds than the one the player is currently in.
- fasttravelsigns.create: User may create FastTravel signs (unauthorized ones are removed).
- fasttravelsigns.remove.own: User may remove FastTravel signs they created.
- fasttravelsigns.remove.all: User may remove all FastTravel signs, including ones they did not create.
- fasttravelsigns.list: Use the /ftlist command to list all FastTravel signs.
- fasttravelsigns.price: Use the /ftprice command to set the price to travel to a FastTravel point.
- fasttravelsigns.delete: Use the /ftdelete <point> command to delete it.
- fasttravelsigns.auto: Use the /ftauto <point> command to toggle whether or not it is "automatic", that is, "always on" and available to all players.
- fasttravelsigns.setpoint: Use the /ftsetpoint <point> command to set an alternate teleportation point for the sign.
- fasttravelsigns.reload: Use the /ftreload command to reload configuration and sign database.
- fasttravelsigns.overrides.cooldown: Allows user to bypass the cooldown setting if > 0.
- fasttravelsigns.overrides.allpoints: Allows user to teleport to every existing fast travel point, multiworld or not.
- fasttravelsigns.overrides.price: Allows user to bypass any costs for using fast travel.
- fasttravelsigns.overrides.warmup: Allows user to bypass the warmup setting if > 0.
- fasttravelsigns.clear: Allows user to clear all players from a sign.
- fasttravelsigns.remove: Allows user to remove a player from a sign.
- fasttravelsigns.setrange: Allows user to set the range of a sign.
- fasttravelsigns.save: Allows user to save the database.
- fasttravelsigns.update: Update notification will be shown on login.
- fasttravelsigns.menu: Allows the use of inventory menus /ftmenu.
- fasttravelsigns.show: Allows the usage of /ftshow and /ftshowrange.
- fasttravelsigns.convert: Alows the usage of /ftconvert [dbtype] to change the database system on the fly.
- fasttravelsigns.move: Allows the moving of a sign.
Known Issues
- Removing the block underneath or attached to a sign may result in the sign floating in midair.
- Occasionally a sign might be placed in such a way that users end up teleported to the ground below the sign. This does not have any obvious cause I can find yet. (Possibly fixed as of v0.4)
- If the sign is placed on a wall above ground level in a room, you may end up teleported to the room (or roof) above.
To-Do
- 1.1.0 - Might take a while
1.1.0 will drop support for files based databases. Either a SQLite or MySQL database will be used. This will enable me to add support for BungeeCord
Report any bug you find here: Issues
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.
For news follow me on Twitter: Follow here
Hi. Is there a way of hiding the sign without having to use setpoint? This would be handy. :D
Edit..
I just discovered that ANYONE with permission can change the setpoint. This isn't very safe.. I know that my players would move that around like a hide and seek game! eeek!
@craftycreeper
Can't wait for an update.
@someoneb
I fully intend to get around to this and other fixes in a week or so when I get my spare time back. Finishing up a college degree is a lot of work!
The always-active signs you speak of are an interesting concept and I'll look into that. Kinda verging into standard warp-plugin territory there, but then again I guess it might be nice to just have one plugin that does what you want rather than several.
request: would it be possible to make "allways active" signs players do not need to discover so that points like spawn, shoppingmall, ... would not need to be discovered beforehand, while all others do? (like type "public" on a sign's line 3)
Also please permit _ and - in locationnames
@musicmakerman
I'll see what I can do, sure :)
could you possibly add a warmup to the warp?
@gabriel11798
I marked it for 1.2.3-R0.1, but this build *ought* to be backwards compatible with 1.1R3 :)
@craftycreeper
When bukkit releases their stable build, I'll be your tester ;3
@gabriel11798
Let me know if 0.5.1 fixes the console spam when you left or right click a sign.
@craftycreeper
Nope and, i'm sorry, but i can live with it, it's no trouble at all. Just wanted the author to know :)
@gabriel11798
I simply cannot reproduce either of these issues you mention :( With such a large list of plugins, though, it's pretty difficult to even make a start guessing where the conflict lies. I do see the possible cause of the NullPointerException you posted earlier, so I'm going to push 0.5.1 to prevent that even though I can't make it happen myself - I am guessing it must be some kind of weird interaction with other plugins.
The plugin does support multiworld already, in theory - I have no trouble creating/using signs in the Nether, for example. Any errors on the console when this happens?
@gabriel11798
oh yeah, here's that list you wanted;
autogamemode automessage bookworm CFbanner CFworldmanager citizens citizenskins colored signs colorme craftbook dragonshouts ecocreature enderdragonstopper factions helpcommands heroicdeath herospawn ichat iconomy 5 infiniteplots jail jenchant kNohax log LWC mailbox mcmmo mobarena multiinv myhome mywarp no_smoking nocheat permissionsbukkit playerstatus plgsetspawn pluginspy register (i know) runecraft safecreeper showcase signlink simpolecensor simpleregionmarket spout stargate starterkit supplysign tele tent timeshift torcharrow ULP vault virtualchest voxelsniper welcomeme worldedit worldguard
(phew!)
@craftycreeper
it doesn't "not work" it just throws a error every time I left or right click in-game (i noticed it only happens to me since i am the only OP) also maybe add multi-world support? Whenever i make a fasttravel sign in a different world, it disappears rendering the sign "unusable" the sign itself it still there, but you cannot use it, as if it was never there.
@gabriel11798
Just tested FTSigns 0.5 on CB 1.2.3-R0.1, Vault 1.2.12, and I am having no trouble at all. Can you be more specific on how it is 'not working'?
@gabriel11798
All righty, I'll look into it soon.
A full plugin list would be handy though (e.g. /plugins), I suspect more than just Spout is in play here. I use WorldEdit on my server so I am fairly certain that's not the problem.
@craftycreeper
It works, it just throws a error every time someone left or right clicks. I'm using bukkit build 1.1-R3
Plugins (that i think interfere);
Spout Worldedit (the compass-teleporting feature)
That's about it, it also does not work with 1.1-R6 and above.
@gabriel11798
Is it not working? It should hopefully be without any changes, but if something is broken I'll fix it.
Incidentally, I don't know what caused the bug you previously reported - I suspect it's a weird combination of plugins working against each other. Can you give me a list of the plugins you have, if the bug is still happening?
Update? ;3
@craftycreeper
As a matter of fact, yes i do. It also whines about spout . . . which is completely irrelevant. Here's the error;
2012-02-28 23:52:46 [SEVERE] Could not pass event org.bukkit.event.player.PlayerInteractEvent to FastTravelSigns org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1026) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:187) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:157) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:570) at net.minecraft.server.Packet15Place.handle(SourceFile:39) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:552) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1024) ... 13 more Caused by: java.lang.NullPointerException at net.minebot.fasttravel.FastTravelUtil.isFTSign(FastTravelUtil.java:41) at net.minebot.fasttravel.listeners.FastTravelPlayerListener.onPlayerInteract(FastTravelPlayerListener.java:55) ... 17 more 2012-02-28 23:52:46 [SEVERE] Could not pass event org.bukkit.event.player.PlayerInteractEvent to FastTravelSigns org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1026) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:57) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:453) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:187) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:157) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:570) at net.minecraft.server.Packet15Place.handle(SourceFile:39) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:100) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:552) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:537) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor28.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$103.execute(JavaPluginLoader.java:1024) ... 13 more Caused by: java.lang.NullPointerException at net.minebot.fasttravel.FastTravelUtil.isFTSign(FastTravelUtil.java:41) at net.minebot.fasttravel.listeners.FastTravelPlayerListener.onPlayerInteract(FastTravelPlayerListener.java:55) ... 17 more
(the date may be a bit old, but i haven't updated this since i found the error {since it did nothing to affect gameplay} but yep, here ya go! :)
EDIT Another thing is when I have a fasttravel sign in a different world than the spawning one, it 'removes' the fastravel sign, but leaves the sign, but you cannot use it, as if it was never there.