Inactive [TP] NiftyWarp v1.2 - Warp/Home plugin based on privacy/visibility of warps [1000]

Discussion in 'Inactive/Unsupported Plugins' started by Nifty Monkey, Jun 26, 2011.

  1. Offline

    Nifty Monkey

    ******** NOTICE ********

    NiftyWarp is no longer following or updating this forum thread.
    For all support, please use the BukkitDev site.

    ******** NOTICE ********
    NiftyWarp - A warp/home plugin that allows for private, listed, and unlisted warps.
    Version: v1.2
    CraftBukkit Version: 1000

    NiftyWarp was written because I wanted to create and manage warps in a way that was easy, but that didn't end up in a giant, cluttered-up list for everyone on the server. However, I didn't want to simply create personal warp lists only because I wanted the make sure it was easy for people to be able to share access to their warps if they so chose.

    Features:
    • Warp Types
      • Create "listed" warps that are visible and useable by anyone.
      • Create "unlisted" warps that are invisible to others, but still useable by anyone.
      • Create "private" warps that are invisible to others, and only useable by you.
    • Change warp type for easy sharing with others.
    • Simple home warp creation and usage (e.g. /home, /sethome)
    • Cross-World Warping
    • Clearly see which warps are yours and which ones belong to others
    • Configurable default type
    • Permissions support (and three non-permissions-plugin options as well)
    Dependencies:

    Permissions 3.x (Optional) - tested with 3.1.3
    also works with Permissions 2.x (Optional) - tested with 2.7.4


    Feel free to post feature suggestions in this thread!
    Commands (open)
    In order to be able to function alongside other warp plugins, all of the main commands are unique to NiftyWarp and prefixed with "nw". However, for ease of use, I've also included quite a few common and intuitive aliases. Here are the commands listed using the aliases people are most likely to use. Below them are the main command and other alternates if you need to use this in conjunction with another addon.

    /addwarp <warpName>
    Add a warp
    - Command: /nwadd
    - Alternates: /nwa, /addwarp, /createwarp, /setwarp

    /deletewarp <warpName>
    Delete a warp
    - Command: /nwdelete
    - Alternates: /nwd, /deletewarp, /removewarp

    /sethome
    Set your home warp (currently just makes a warp named "home")
    - Command: /nwhomeset
    - Alternates: /nwhs, /homeset, /sethome

    /home
    Warp to your home (currently just warps to your "home" warp)
    - Command: /nwhome
    - Alternates: /nwh, /home

    /listwarps <worldName> <private | unlisted | listed>
    Get the list of warps. You can use asterisk for world to get all worlds if specifying type.
    - Command: /nwlist
    - Alternates: /nwl, /listwarps

    /renamewarp <warpName> <newWarpName>
    Rename an existing warp
    - Command: /nwrename
    - Alternates: /nwr, /renamewarp

    /setwarptype <warpName> private | unlisted | listed
    Set the privacy/visibility of a warp after creation
    - Command: /nwset
    - Alternates: /nws, /settype, /setwarptype

    /warp <warpName>
    Use a warp
    - Command: /nwwarp
    - Alternates: /nw, /nww, /warp

    /warptocoord x y z <worldName>
    Warp to a specific coordinate
    - Command: /nwwarptocoord
    - Alternates: /nwwtc, /nww2c, warptocoord, warp2coord, wtc, w2c

    Permissions (open)
    Permissions Plugin Nodes

    User:
    These permissions are for managing and using your own warps. Easy setup is to just set 'niftywarp.use.*' for your users.

    niftywarp.use.add
    niftywarp.use.delete
    niftywarp.use.home
    niftywarp.use.homeset
    niftywarp.use.list
    niftywarp.use.rename
    niftywarp.use.set
    niftywarp.use.warp
    niftywarp.use.warptocoord

    Admin:
    These permissions will allow you to delete/rename/set other people's warps. Add the 'niftywarp.admin.*' for all of the admin functionality.

    niftywarp.admin.delete
    niftywarp.admin.rename
    niftywarp.admin.set

    Permissions 3.0 users

    3.0 (and 3.0a+MP) seem to have some issues that I can't seem to work out just yet. Best bet is to use one of the non-Permissions-plugin rulesets defineable in the NiftyWarp.yml file (see the Quickstart README for details)

    Non-Permissions-Plugin Rulesets
    • ops-only - means only Ops can use this plugin's commands.
    • ops-for-admin - means only Ops can use the admin type functionality (such as renaming other people's warps).
    • ffa - or Free For All ... means anyone can use any commands/functionality
    Upcoming Features (open)
    Planned:
    • Configurable Safety
      • Safely placing you when the warp loc is inside a block
      • Safely placing you when warp loc is now over lava
      • Safely placing you when warp loc would cause you to fall to your death
    • Configurable namespace
    • More /listwarps options
      • Admin:
        • See all warps by type (private/unlisted/listed)
        • List a specific person's warps (including private)
        • (and a few more ideas I have)
    • Warp Import/Export routines
    • iConomy Support
    Likely:
    • Warp sharing (e.g. /sendwarp)
    • Warp copying (e.g. /copywarp)
    • Help command (e.g. /nwhelp)

    Changelog:
    Version 1.2
    • Updated to 1.7.3 server support (build 1000)
    • Added ability to warp to a coordinate (x,y,z,world)
    • Added a "maximum warps" per user config option. Defaults to 20
    • Added destination chunk loading before warping
    • Added filters to the ListWarps command (world and/or type)
    • Added basic internationalization for in-game messages. Currently, German is supported. Will add more on request
    Version 1.1
    • Updated to 1.7.2 server support (build 953)
    • Simple home warp creation and usage (e.g. /home, /sethome)
    • Permissions overhaul
      • Permissions 2.x support
      • Better Permissions 3.x support
      • Three new non-Permissions-plugin based options
    History (open)

    Version 1.0
    Initial functionality:
    • Add warp
    • Delete warp
    • List warps
    • Rename warp
    • Set warp type
    • Warp
    • Permissions support
     
    Vhince and OptimusAlive like this.
  2. Offline

    Nifty Monkey

    That's cool. I'm nearly done with v1.2 ..... will probably release tonight or tomorrow. Was it just the world filter on the listwarps command that you were hoping for in this update?
     
  3. Offline

    Pr0Failure

    Yea pretty much lol.
     
  4. Offline

    Nifty Monkey

    Version 1.2 uploaded.

    In this update I added a first pass at internationalization. Right now, it's just for text that would show up in-game. I tested it out with German, and unfortunately, since I don't know German, I just used Google Translate. If anyone thinks they could translate it better than I Google Translate did and would be willing to give it a try, please feel free to translate this file and send it back to me.

    Also, if anyone wants this translated to their language, message me ... or better yet, translate the file to your language and send it to me and I'll include it in a quick point patch. Thanks.

    - Monkey
     
  5. Offline

    Tipo

    Hi.
    I can translate it better than Google Translate do it. Because i'm a native german speaker. Okay but my english is not the best, i hope you forgive me and if it something wrong please corrects me.

    Okay here is my try. First one is the personally version.

    Code:
    WARP_ADDED          = Warp erstellt: {0}
    WARP_DELETED        = Warp entfernt: {0}
    WARPED_TO           = Warped zu: {0}
    HOME_SET            = Home gesetzt
    NO_AVAILABLE_WARPS  = Keine Warps verfügbar
    WARPS_YOURS         = Deine Warps: {0}
    WARPS_OTHERS        = Andere Warps: {0}
    WARP_RENAMED        = "{0}" wurde umbenannt in "{1}"
    WARP_TYPE_SET       = "{0}"  erfolgreich gesetzt: {1}
    WARPED_TO_COORD     = Warped zu Koordinaten ->  x:{0} y:{1} z:{2} [{3}]
    
    ERR_ALL_WARP_SLOTS_USED = Du hast alle erlaubten {0} Warps gesetzt. Entferne einige wenn du neu setzten willst.
    ERR_WARP_NOT_FOUND      = Ein Warp mit diesem Namen wurde nicht gefunden {0}
    ERR_INVALID_WORLD       = "{0}" ist kein gültiger Welt
    ERR_INVALID_WARP_TYPE   = "{0}" ist kein gültiger Warp-Typ
    ERR_INVALID_COORDINATE  = Ungültige Koordinaten angegeben - x:{0} y:{1} z:{2}
    ERR_PERMISSION_FAIL_1   = Du hast keine Berechtigung, um diesen Befehl zu verwenden.
    ERR_PERMISSION_FAIL_2   = Frage einen Administrator um Erlaubnis für: {0}
    ERR_REMOVE_OTHERS_WARP  = Du hast keine Berechtigung zum Löschen anderer Warps.
    ERR_RENAME_OTHERS_WARP  = Du hast keine Berechtigung zum Umbenennen anderer Warps.
    ERR_SETTYPE_OTHERS_WARP = Du hast keine Berechtigung zum setzen von Typen anderer Warps.
    And the second one is formally version.

    Code:
    WARP_ADDED          = Warp erstellt: {0}
    WARP_DELETED        = Warp entfernt: {0}
    WARPED_TO           = Warped zu: {0}
    HOME_SET            = Home gesetzt
    NO_AVAILABLE_WARPS  = Keine Warps verfügbar
    WARPS_YOURS         = Ihre Warps: {0}
    WARPS_OTHERS        = Andere Warps: {0}
    WARP_RENAMED        = "{0}" wurde umbenannt in "{1}"
    WARP_TYPE_SET       = "{0}"  erfolgreich gesetzt: {1}
    WARPED_TO_COORD     = Warped zu Koordinaten ->  x:{0} y:{1} z:{2} [{3}]
    
    ERR_ALL_WARP_SLOTS_USED = Sie haben alle erlaubten {0} Warps gesetzt. Entfernen Sie bitte einige um neue erstellen zu können.
    ERR_WARP_NOT_FOUND      = Ein Warp mit diesem Namen wurde nicht gefunden {0}
    ERR_INVALID_WORLD       = "{0}" ist kein gültiger Welt
    ERR_INVALID_WARP_TYPE   = "{0}" ist kein gültiger Warp-Typ
    ERR_INVALID_COORDINATE  = Ungültige Koordinaten angegeben - x:{0} y:{1} z:{2}
    ERR_PERMISSION_FAIL_1   = Sie haben keine Berechtigung, um diesen Befehl zu verwenden.
    ERR_PERMISSION_FAIL_2   = Fragen Sie einen Administrator um Erlaubnis für: {0}
    ERR_REMOVE_OTHERS_WARP  = Sie haben keine Berechtigung zum Löschen anderer Warps.
    ERR_RENAME_OTHERS_WARP  = Sie haben keine Berechtigung zum Umbenennen anderer Warps.
    ERR_SETTYPE_OTHERS_WARP = Sie haben keine Berechtigung zum setzen von Typen anderer Warps.
    I hope i could help.
     
  6. Offline

    Nifty Monkey


    Thank you very much. That is very helpful. I'll include it in a patch soon.

    Can you tell me which one makes more sense to use for a plugin like this? Is personal or formal better to use for software?


    Vielen Dank!
    - Monkey
     
  7. Offline

    Tipo

    IMHO personal is better for software like games.
     
  8. Offline

    Freakdk

    So the plugin is running, but whenever I try a command it tells me I do not have permissions for it.
    I'm both OP and I have the owner rank that includes the magic '*' - and I still can't use it.
    I tried given me all of the permissions from your plugin and just the ones with a * - and it still won't work.
    Any clue on why this occoured? I'm positive that the permissions notes are placed correctly.
     
  9. Offline

    Nifty Monkey

    I'm going to take a wild guess (based on "Euro" and the "Minecraft Viewer") that you are hosted by Multiplay. This is my host as well and if that's the case I have to bad news and good news. The bad news is that I have had very little success with their version of Permissions. If you look at the bottom of the "Permissions" spoiler you'll see some comments about it. Unfortunately they've made modifications to released versions of the plugin and not responding correctly when I use it.

    The good news is that this is exactly why I decided to create a "non permissions plugin" set of config options.

    If you put the following into your NiftyWarp.yml file, you should be able to run just fine.
    Code:
    permissions:
        use-plugin: false
        ruleset: ops-for-admin
    
    There are also a couple of other rulesets available in the "Permissions" section of my main post

    If however you are not on Multiplay and really need permissions plugin to work, please let me know what version of the permissions plugin you are using.
     
  10. Offline

    Freakdk


    I'm running permissions 3.1.6 - and I really need a permission based privatewarp plugin, because this is a VIP feature on my server.
    Also no, I am NOT being hosted by Multiplay :D
     
  11. Offline

    Nifty Monkey

    Ok, I'll test it again asap.
     
  12. Offline

    Freakdk

    Sounds good :D

    This is my permissions file btw:

     
  13. Offline

    AlsoKnownAsJazz

    Great work on this! Pitching in my vote for a way to import warps.txt into this. I have a long list of warps to interesting places on my map from when we were running hey0 mod, and bukkit doesn't have warp built in so I just have a .txt file of coordinates. I'd even be ok with copying and re-formatting them into a different file for your mod to read, but doesn't seem like your mod uses a plain text file for the warp coords (assuming they go in the .db file, which makes sense).
     
  14. Offline

    burnouthero

    ill get it

    :mad:
    i got a problem
    its saying internal error

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  15. Offline

    Nifty Monkey

    Unfortunately, I'm on a business trip for a few more days, otherwise I'd have hit some of these issues by now. Will get to checking these out as soon as I can.

    In the mean time:
    Does your permissions file look like what you posted above, or does it have the proper spacing? I have seen issues with people having permissions fail if they don't have the proper spacing.
    Any chance you'd be willing to send me your warps.txt so I can get familiar with the format?
    Are there any errors in the server log when this happens?
     
  16. Offline

    burnouthero

    thanks

    in a good way

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  17. Offline

    AlsoKnownAsJazz

    Couldn't find a direct contact method (email, pm, etc) to send you the file, so here's a chunk of my warps.txt:

    lakehouse:172.4528712827419:69.0:-103.36039866755391:-1368.0237:16.200037:
    skybridge:652.7371625571915:105.0:1082.6697478247115:-17528.305:30.599865:
    toolbox:631.753460467073:70.0:1073.0017431883775:-16376.089:21.599499:
     
  18. Offline

    markyxl

    Hi, this happens when anyone is trying to /nws from private(default), i suspect this is happening because CraftBukkit is linked to database instead of file.
    Code:
    2011-07-28 10:25:24 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'nws' in plugin NiftyWarp v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:320)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:713)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:677)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:670)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:85)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: javax.persistence.OptimisticLockException: Data has changed. updated [0] rows sql[update nw_warp set warp_type=? where id=? and fully_qualified_name=? and name=? and owner=? and warp_type=? and world_name=? and x=? and y=? and z=? and pitch=? and yaw=?] bind[null]
        at com.avaje.ebeaninternal.server.persist.dml.DmlHandler.checkRowCount(DmlHandler.java:123)
        at com.avaje.ebeaninternal.server.persist.dml.UpdateHandler.execute(UpdateHandler.java:106)
        at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:105)
        at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.update(DmlBeanPersister.java:85)
        at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeUpdateBean(DefaultPersistExecute.java:110)
        at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:531)
        at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:557)
        at com.avaje.ebeaninternal.server.persist.DefaultPersister.update(DefaultPersister.java:430)
        at com.avaje.ebeaninternal.server.persist.DefaultPersister.forceUpdate(DefaultPersister.java:203)
        at com.avaje.ebeaninternal.server.core.DefaultServer.update(DefaultServer.java:1615)
        at com.avaje.ebeaninternal.server.core.DefaultServer.update(DefaultServer.java:1605)
        at com.avaje.ebeaninternal.server.core.DefaultServer.update(DefaultServer.java:1584)
        at net.niftymonkey.niftywarp.persistence.EbeanServerPersistenceProvider.update(EbeanServerPersistenceProvider.java:80)
        at net.niftymonkey.niftywarp.WarpManager.setWarpType(WarpManager.java:334)
        at net.niftymonkey.niftywarp.commands.SetWarpTypeCommand.onCommand(SetWarpTypeCommand.java:73)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    This is my bukkit.yml
    Code:
    database:
        username: ***MY_USERNAME***
        isolation: SERIALIZABLE
        driver: com.mysql.jdbc.Driver
        password: ***MY_PASSWORD***
        url: jdbc:mysql://***MY_SQLSERVER***:3306/***DBNAME***
    
    I can see the nw_warp table in the DB but the plugin seems unable to change any infromation in the database, /sethome fails the second time too, so does any removewarp etc...
     
  19. Offline

    Mr_Oklahomie

    Excellent plugin, I love it. If you could customize the amount of warps that each player in group (x) can make and group (y) can make, that would be brilliant. So per group player warp limits basically.
     
  20. Offline

    Nifty Monkey

    Sorry about the hiatus there. Was on a business trip.

    Yeah, that seems pretty simple. If you still want/need this real bad I'll work it into my next release. Otherwise I have some other additions I was hoping to make happen first. So yeah, let me know how high a priority this is for you.

    Yeah, I looked into it a bit and it's failing inside the EbeanServer.update() call. That's part of bukkit, so I'm not sure why it would be failing but it seems to be an internal piece I don't have access to. Have you had any luck getting this to work since your post?

    Thanks for the positive feedback and suggestion. I'll definitely look into implementing that in a future version.

    I noticed that all your permissions were left justified. Was that just what happened when you quoted it on the forum, or is that how they are in your permissions file?

    I only ask that because based on some playing with the Online YAML Parser, the two following properties texts create two significantly different output objects:
    Code:
    Owner:
    default: false
    info:
    prefix: '&d'
    suffix: ''
    build: true
    rank: 7
    inheritance:
    permissions:
    - '*'
    - 'niftywarp.use*'
    - 'niftywarp.admin.*'
    Code:
    Owner:
        default: false
        info:
            prefix: '&d'
            suffix: ''
            build: true
        rank: 7
        inheritance:
        permissions:
            - '*'
            - 'niftywarp.use*'
            - 'niftywarp.admin.*'
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  21. Offline

    27ace27

    Hi! I love this plugin, but I have just one suggestion. Can you separate the permission node for '.add' into (for example) '.add.private' , '.add.unlisted' , and '.add.listed' ? I want the players to have their own warps that they can share if they want, but I want the listed warps to be strictly important places on the server made by admins (spawnpoints, rules room, etc.).

    Also, perhaps you could add an option where if the worldname is not specified, it shows all the warps as opposed to an asterisk?

    Good job so far!
     
  22. Offline

    Freakdk

    Mine looks like the second one, I have done the permissions right
    Anyways I decided just to use PrivateWarp instead, though I would've really liked to use this plugin :(
     
  23. Offline

    AlsoKnownAsJazz

    Hmm, well, it's the only feature I'm really looking for, but there's what, only myself and one other person maybe that was looking for this? I've been without the warps this long, it's not urgent. :)
     
  24. Offline

    Nifty Monkey

    Well, that's too bad. Understandable though. If something doesn't work for me, I don't use it. I wish I knew why it isn't working for you even though it is working for many others.

    Ok, well I'll still try to get that into the next release. Should be in a week or so. :D
     
  25. Offline

    27ace27

    Could you also separate the permissions? :)
     
  26. Offline

    Thomas211

    Deleting warps doesn't work for me, I'm OP and host, and I have the permissions correct, but everything else works. It also seems to get confused with warps named close to the same thing. For Instance, I have a city and multiple warps in it (CityCenter, CitySouth, CityWest, CityMine) and whenever I try to go to CityCenter, it takes me to CitySouth. A bit odd, but not too much of incumbrance.

    Update: It all works.... Just messed up with the permissions :p and the location was messed up to. Everything works haha
     
  27. Offline

    Nifty Monkey

    Very good to hear! Thanks for using NiftyWarp!
     
  28. Offline

    chelben9

    how do i make it so i can add more then 20 warps the niftywarp config file is empty so idk how to change it
     
  29. Offline

    Nifty Monkey

    Paste this into your empty config file:
    Code:
    warps:
        max-warps: 20
    And then change the 20 to whatever value you want.
     
  30. Offline

    ohmydoddtv

    Can you make this compatible with permissionsbukkit? Or is it already and I'm just an idiot with permissions? xD
     
  31. Offline

    Nifty Monkey

    I haven't done that yet. It's the highest priority item on my NiftyWarp list of things to do.
     

Share This Page