Warptastic
Description:
We had a recurring issue with using various warp plugins, which left many of our players trapped in the ground below the warp location.
So I developed warptastic to resolve the issue, have since expanded upon it, and decided to share. Warptastic has an editable warp effect duration, which will hold the player just above the warp location for the configured number of seconds before dropping them safely.
This allows the chunk around the player to load before safely completing the warp process. Warptastic allows server owners to create public server-warps, each user to create a configurable number of public and private warps, warps accessible via warp signs, and permits admin to create warps on behalf of others, which exceed that users limits. Warptastic also keeps track of how often users use different warps, and can use this information to list the warps by popularity.
Of course, there are other features; and you can configure it's precise behaviour using the config options and relevant permissions. If you're using CommandBook,Essentials, MyWarp or xWarp and wish to import your warps you can do so by copying either your warps.csv(Commandbook), your warps folder(Essentials), or your warps.db(MyWarp/xWarp) into warptastic's plugin directory, and running the relevant /fixwarps import command.
/fixwarps -cmdbook
or
/fixwarps -essentials
or
/fixwarps -mywarp
or
/fixwarps -xWarp
Importing warp records:
To import warp records from either CommandBook, Essentials, MyWarp or xWarp copy your warps.csv(Commandbook), your warps folder(Essentials), or your warps.db(MyWarp/xWarp) into warptastic's plugin directory and run the relevant /fixwarps import command.
(warps.db for MyWarp/xWarp will require renaming before proceeding, see /fixwarps menu for details.)
/fixwarps -cmdbook
or
/fixwarps -essentials
or
/fixwarps -mywarp
or
/fixwarps -xwarp
Editable Group Warp Limits:
You can now specify a different number of maxwarps for different groups.
Simply create the permission nodes in the config.yml and apply the corresponding permission (warptastic.limit.#) to the desired group.
If groups are inheriting permissions from other groups, be sure to disable the inherited warptastic.limit.# permission before applying a new limit permission.
For more information see Here
Warp Signs
Place the phrase [Warp] (Phrase is configurable in config.yml) on the first line of a sign, and the warp name on a following line.
(You can include a description of the warp if you like, just as long as it occurs on any line after the warp name) You can use any warp on a sign, however if you'd like the warp to be only accessible by using the sign you can make the warp a sign-only warp with /setwarp -sign <warpname>
Installation:
1. Download the .jar
2. Place the .jar in your plugins directory
3. Restart the server Configuration:
MaxWarps.LimitNodes - Define your warptastic.limit.# permission nodes here.
WarpSignTitle - What title a sign should have to make it a WarpSign.
WarpEffect - Toggle the warp effect (Nausea) when warping
WarpEffectDuration - Time for the warp to finish (IN SECONDS) (wait for chunk to load)
Commands:
• /warp - Main Menu
• /warp reload - Reload config and data storage
• /warp <warp> - Warp to a location
• /warp <warp> <player> - Warp player to a location • /warps <page#>- List all warps
• /warps -pop <page#>- List all warps by popularity
• /warps -s <page#>- List all Server-warps
• /warps <player> <page#> - List a player's warps
• /mywarps <page#> - List your warps only
• /warpinfo <warp> - List warp details • /setwarp <warp> - Create a new Public warp
• /setwarp -p <warp> - Create a new/Toggle Private warp
• /setwarp -s <warp> - Create a new Server warp
• /setwarp -sign <warp> - Create a new/Toggle Sign warp
• /setwarp [-p/-sign] <warp> <player> - Create a warp for another user
• /fixwarps - Update your warp records
• /delwarp <warp> - Delete a warp
• /clearwarps <player> - Clear all of a players warps
Permissions:
warptastic.warp - Use warps
warptastic.warp.other - Warp other player to a location
• warptastic.warp.otherworld - Allow player to warp between worlds warptastic.setwarp.public - Set Public warps
warptastic.setwarp.private - Set Private warps
warptastic.setwarp.other - Set warps for other users (ignore limits) warptastic.limit.# - Editable warp limits as defined in config.yml
warptastic.limit.unlimited - Ability to set an Unlimited # of warps (included in warptastic.admin) warptastic.list - View list of warps
warptastic.list.pop - View list of warps by popularity
warptastic.list.other - View list of player's warps warptastic.makesign - Ability to make warp signs
warptastic.breaksign - Ability to break other people's warpsigns (included in warptastic.admin) warptastic.signonly.bypass - Ability to bypass using a sign for signonly warps warptastic.info - Return information about a warp
warptastic.admin - Manage warps and ignore limits
warptastic.warp.<warpname> - Allow player to bypass warp privacy warptastic.fix - Update warp records
To Do:
• Access list for private warps
• Clean up the menu / command help
Thankyou for your support! :D Recent Change-Log:
We had a recurring issue with using various warp plugins, which left many of our players trapped in the ground below the warp location.
So I developed warptastic to resolve the issue, have since expanded upon it, and decided to share. Warptastic has an editable warp effect duration, which will hold the player just above the warp location for the configured number of seconds before dropping them safely.
This allows the chunk around the player to load before safely completing the warp process. Warptastic allows server owners to create public server-warps, each user to create a configurable number of public and private warps, warps accessible via warp signs, and permits admin to create warps on behalf of others, which exceed that users limits. Warptastic also keeps track of how often users use different warps, and can use this information to list the warps by popularity.
Of course, there are other features; and you can configure it's precise behaviour using the config options and relevant permissions. If you're using CommandBook,Essentials, MyWarp or xWarp and wish to import your warps you can do so by copying either your warps.csv(Commandbook), your warps folder(Essentials), or your warps.db(MyWarp/xWarp) into warptastic's plugin directory, and running the relevant /fixwarps import command.
/fixwarps -cmdbook
or
/fixwarps -essentials
or
/fixwarps -mywarp
or
/fixwarps -xWarp
Updating from a version earlier than 0.3?
In version 0.3 data storage was changed from YAML to SQLite.
if you're updating from Warptastic 0.2 or earlier, remember to type '/fixwarps -update' to upgrade your user records from the old YAML to the new SQLite data storage.
You only need to run this once.
Importing warp records:
To import warp records from either CommandBook, Essentials, MyWarp or xWarp copy your warps.csv(Commandbook), your warps folder(Essentials), or your warps.db(MyWarp/xWarp) into warptastic's plugin directory and run the relevant /fixwarps import command.
(warps.db for MyWarp/xWarp will require renaming before proceeding, see /fixwarps menu for details.)
/fixwarps -cmdbook
or
/fixwarps -essentials
or
/fixwarps -mywarp
or
/fixwarps -xwarp
Editable Group Warp Limits:
You can now specify a different number of maxwarps for different groups.
Simply create the permission nodes in the config.yml and apply the corresponding permission (warptastic.limit.#) to the desired group.
If groups are inheriting permissions from other groups, be sure to disable the inherited warptastic.limit.# permission before applying a new limit permission.
For more information see Here
Warp Signs
Place the phrase [Warp] (Phrase is configurable in config.yml) on the first line of a sign, and the warp name on a following line.
(You can include a description of the warp if you like, just as long as it occurs on any line after the warp name) You can use any warp on a sign, however if you'd like the warp to be only accessible by using the sign you can make the warp a sign-only warp with /setwarp -sign <warpname>
Installation:
1. Download the .jar
2. Place the .jar in your plugins directory
3. Restart the server Configuration:
MaxWarps.LimitNodes - Define your warptastic.limit.# permission nodes here.
WarpSignTitle - What title a sign should have to make it a WarpSign.
WarpEffect - Toggle the warp effect (Nausea) when warping
WarpEffectDuration - Time for the warp to finish (IN SECONDS) (wait for chunk to load)
Commands:
• /warp - Main Menu
• /warp reload - Reload config and data storage
• /warp <warp> - Warp to a location
• /warp <warp> <player> - Warp player to a location • /warps <page#>- List all warps
• /warps -pop <page#>- List all warps by popularity
• /warps -s <page#>- List all Server-warps
• /warps <player> <page#> - List a player's warps
• /mywarps <page#> - List your warps only
• /warpinfo <warp> - List warp details • /setwarp <warp> - Create a new Public warp
• /setwarp -p <warp> - Create a new/Toggle Private warp
• /setwarp -s <warp> - Create a new Server warp
• /setwarp -sign <warp> - Create a new/Toggle Sign warp
• /setwarp [-p/-sign] <warp> <player> - Create a warp for another user
• /fixwarps - Update your warp records
• /delwarp <warp> - Delete a warp
• /clearwarps <player> - Clear all of a players warps
Permissions:
warptastic.warp - Use warps
warptastic.warp.other - Warp other player to a location
• warptastic.warp.otherworld - Allow player to warp between worlds warptastic.setwarp.public - Set Public warps
warptastic.setwarp.private - Set Private warps
warptastic.setwarp.other - Set warps for other users (ignore limits) warptastic.limit.# - Editable warp limits as defined in config.yml
warptastic.limit.unlimited - Ability to set an Unlimited # of warps (included in warptastic.admin) warptastic.list - View list of warps
warptastic.list.pop - View list of warps by popularity
warptastic.list.other - View list of player's warps warptastic.makesign - Ability to make warp signs
warptastic.breaksign - Ability to break other people's warpsigns (included in warptastic.admin) warptastic.signonly.bypass - Ability to bypass using a sign for signonly warps warptastic.info - Return information about a warp
warptastic.admin - Manage warps and ignore limits
warptastic.warp.<warpname> - Allow player to bypass warp privacy warptastic.fix - Update warp records
To Do:
• Access list for private warps
• Clean up the menu / command help
Thankyou for your support! :D Recent Change-Log:
0.4.3
- Fixed warpsigns exploit [write sign title manually, permission no longer needed]
- Added warptastic.warp.<warpname> permission to allow users/groups to bypass warp privacy and use the specified private warp.
- Added warptastic.warp.otherworld permission to allow users to warp between worlds
0.4.2
- Fixed user restrictions for toggling private/public warps
- Fixed warps list listing other players private warps
- Added warp import for xWarp
- Fixed warp conversion for MyWarp & xWarp on windows systems (requires renaming db file as specified in /fixwarp menu)
0.4.1
- Fixed setwarp for other player saying the player's name instead of owner's name
- Updated warpdata conversion to new DB format
0.4
- Added check on /warp to ensure target world is loaded
- Added /clearwarps (warptastic.admin / warps owner)
- Added /warpinfo (warptastic.info/warptastic.admin/warp owner)
- Added signonly option for warps. Sign-only warps can only be used via a sign.
- New Permission warptastic.signonly.bypass (use sign-only warps without a sign)
- Fixed bug when warping another user to non-existant warp, no notification that warp does not exist.
@Odiumxxx
Sorry, but i removed the plugin, but i do want to use it.
And i would just do /warp spawn
I have op permissions
Log: http://pastebin.com/WsmYsyG9
@Gunnerrrrr
You're going to have to provide a more detailed error report.
For instance,
What is the full command you're executing which is producing an error?
have you imported warps?
do you have op permissions or is the command being executed by user?
etc.
Can you also provide a more detailed error log?
Thanks. :D
http://pastebin.com/gCea8vBA
And the warp does not work.
Hi, just started to use this and I really like it, especially being able to limit the number of warps. I have two suggestions if possible.
1. When you type /warps or /mywarps, could you have it so that if you don't type a page # it will just go ahead and display the first page?
2. Could you add a "Back" command, ie /warpback that will warp you back to the last place you warped from?
Thanks, Scott.....
can you please try to: do like every one can on use 1 command for every one can use and for admin you can do example: /setwarp op (warp)
Could you add a config setting to disable the nausea effects completely? We are having an issue with multiverse and your plugin. Often when warping between worlds the effect will get stuck and stay on for more then a minute and it would be really helpful if we could just disable it in the config.
@modaldialog
Thanks for your feedback & great suggestions. :)
I'll definitely implement the first two.
In regards to the essentials warp-names not being properly sanitized on import, I'm glad you mentioned it.
While I ran some tests with both essentials and mywarps, I was unaware that essentials allowed warp-names which included a either ', " or space character.
In the next update I'll be sure to expand the warp name sanitizing to essentials imports as well.
(in hindsight it should've been included initially, regardless of my ill-informed conclusion.)
Thanks again for your input. :)
please help with permissions
Is there cooldown/warmup here?
Is there a way to disable the nausea effect before/after warping?
Great job on this, the import feature makes this a no-brainer compared to similar plugins.
I notice on your TODO list you have "Menu & Command Cleanup", so you may already be planning some of this, but I'd like to suggest some tweaks to make it easier to use and more like existing warp commands:
1. All commands should consider the page number optional and just assume page 1 when not present.
2. If a particular command has zero pages to display, don't display an error/usage message, just display an "empty page 1"
3. The /warp command without a parameter after it should basically alias to "/warps 1" (that is: display first page of public warps)
One last note: I noticed another user posted just "SQL injection" and did not really explain his issue. On importing my Essentials Warps, I noticed one failed that happened to have a single-quote in the warp name. My guess is that user input is not being properly "sanitized" for SQL. This is real simple to do, just make sure anything you get from an "unsafe user" has been searched for the single-quote character (') and replaced with TWO single-quotes (''). In good conditions this problem just causes errors, in malicious cases it can be a bad security issue.
Thanks again for the solid plugin, please keep up the great work!!
Hey there! Great Plugin, I've been looking for pretty much exactly this for a while now. :) One Question: Is there a way to modify imported Warps from lets say Essentials, so one can assign some of them as private to dedicated players. So far we accumulated a big messy pile of warps that now would need to be sorted to their respective creator. Would this be able from console or if not, is there a way to safely edit the database file? Thanks!
Dukey
@Odiumxxx
Thanks for the fix.
@HexaDroid
fixed in 0.3.7
@Gunnerrrrr
Setwarp: swarp
Delwarp: dwarp
Bug report!
I have a group with only this permission: warptastic.setwarp.private
Wich means they can't do /Setwarp.
Altough they can do /setwarp -p warpname And then again /setwarp -p warpname
with this method they can toggle their private warp to public... even if they don't really have permission to make a puclib warp.
Hey I just got this error in the console and was wondering if you know what it is....
[WARNING] Task of 'warptastic' generated an exception java.lang.IllegalArgumentException: Cannot make player fly if getAllowFlight() is false at org.bukkit.craftbukkit.entity.CraftPlayer.setFlying(CraftPlayer.java:828) at me.odium.warptastic.commands.warp$5.run(warp.java:138) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:533) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
I don't know how many times it has shown as this is the first time I have seen it.
@Austinface
That's on the ToDo list, available sometime after the 1.3 rewrite.
Is there a way i can set an ammount of warps to each group of players on my Minecraft server?
@PanCienisty
Yes it works