[FUN/INFO] PointsOfInterest v0.6.0 - Add Points of Interest (POIs) and find ones nearby [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Cardmeister, Jun 12, 2011.

  1. Offline

    Cardmeister

    PointsOfInterest

    Version: v0.6.5

    Now on DevBukkit!


    This plugin allows players to create in-game Points of Interests (POIs) and allows other players to find them!

    Features:
    • Create Points of Interest and give them names.
    • Find closest Points of Interest, including distance and directions.
    • See all Points of Interests belonging to a specific player.
    • Select a specific Point of Interest for quickly getting updated directions.
    • (For Admins) Uses sqlite as database as a small, zero-configuration db solution.
    Sample:

    [​IMG]


     
  2. Offline

    kahlilnc

    A video would be amazing?
     
  3. Offline

    Zarius

    Looks great! :D Can this be linked in with the compass now the compass api is working?

    Also, would it be possible to have different scales of POI's? Like large (2000 dist), medium (1000 dist), small(300 dist). eg. players could have 2 large, 4 medium and 10 small POI's.
     
    Cardmeister likes this.
  4. Offline

    Cardmeister

    Now, that sounds like it deserves a #1 spot on my TODO list! I am not familiar with the compass API, but if there is a point of reference you give me (example code, documentation, etc) then I would appreciate it!

    Hmm... I'm not sure I understand the question here. Currently a POI is a single position in the world. Are you proposing some sort of radius concept?

    Unfortunately, I would land squarely into "newb" in terms of videos; but I like to learn new skills! :)

    I'm not promising anything, but what sort of information would you like to see in the video?

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

    Zarius

    Haven't played with the code myself yet but the source code for one of the first to use the new/fixed api is available for this plugin (Azimuth).

    No, just a "weighting" as in a large POI would be visible in your list from (configurable) say 2000 blocks away whereas a small POI would only appear in your list at (again, configurable) 500 blocks away. Even a very small at say 100 blocks could be good for towns/cities.

    I'd like to be able to add lots of little POI's for my spawn town (town hall, jail, armoury, etc) but not have them appear if you're a few hundred blocks away from town. Whereas I'd place single large POI for "Spawn Town"
    itself.

    ? I'm not sure what addition information a video would show at this stage - I think the screenshot pretty much says it all.

    Also, I don't like having to watch through a 5,10,15 minute video to try and work out how something works so I'd hope that any demonstration video was entirely optional.
     
  6. Request: Permission nodes
     
  7. Offline

    Zarius

    Seconded :) Don't want everyone on the server able to add POI's - perhaps something like the "Residence" plugin where each group might have different limits on the amount of poi's allowed?
     
  8. Offline

    Cardmeister

    @Joy, @Zarious: As far as permissions, I will start out with adding a "only ops can add" option. That will be quick to implement (hopefully tonight) and then I will look into what "Residence" does and work on more granular control. At least this way people can start rolling it out with limited access and then broaden access once better controls are in place. I will post my ideas for permissions on here for some feedback as soon as I finish initial research on it.

    I'm sure whatever path I take, I will be leveraging the (seemingly) widespread Permissions plugin.

    @Zarius: I will check out Azimuth to see what I can learn from it for compasses (Now #2 under ops-only setting). As far as the radius is concerned, I think that is an inverted approach to what I have now, but I kinda like it.

    So right now, all POIs have a location and when you search you can see everything within "x" distance. This other approach says that the POIs themselves have a "visibility distance" associated with them. So if you are more than "y" meters from the POI, it will be considered out of range.

    That may actually obviate the need for the distanceThreshold configuration; instead we have separate configurable visibility distances for "close, far, distant". Permissions could also be built to limit who could build each -- for example, only moderators can build "distant" POIs.

    Maybe /poi search could also take in a filter... so it skips over "close" POIs and only returns "distant" ones.

    Thoughts?
     
  9. Offline

    Cardmeister

    Version 0.5.4 is out!

    As of 0.5.2, adding POIs is restricted to ops by default.

    Version 0.5.4 adds ability to reload config file without restart.

    More on the way!
     
  10. Offline

    Cardmeister

    Download link now points to a zip file that also includes a copy of config_help.txt.

    The Zip file is also named to include the version number.

    Permissions should be coming soon!
     
  11. Offline

    olimoli123

    Wow, this is nice. any pics?
     
  12. Offline

    Cardmeister

    Thanks for the feedback!

    As far as the pics go... I just don't want to lengthen the original post with a bunch of screen captures of everything or things that I think might be relevant. My general recommendation is that folks drop it onto a test server and just try it out. If that's not possible, and you want to see something specific please let me know and I will gladly provide some samples here, or through another medium. :D

    To Everybody Visiting:

    I know I've been saying "Permissions coming soon" for a while, now. Unfortunately, sometimes the rest of life slows these things down. I should have some more "free" time this upcoming week so I will do my best to get Permissions support in there.

    In general, I'm thrilled at how many people have downloaded the plugin! I don't know how many of those downloads represent actual users, but I would LOVE to hear people's feedback (positive or constructively-negative)! So often, the ideas and (constructive) criticisms of the users are what make projects amazing!

    Thanks!

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

    Zarius

    Plugin is great, haven't really had time to start using it yet though. Would love to see integration with Dynamp similar to Landmarks. Also would love to see a bigger icon if possible with text :)
     
  14. Offline

    Cardmeister

    Update on permssions:

    I'm happy to say that Bukkit has added in permission support... I will most likely abandon support for the plugin-based permissions in favor of the Native permissions. I will make a final decision after I learn more about the native version.

    Yay for Bukkit!

    Permission support is very easy now, thanks to Bukkit!

    I expect to have basic permissions in place within a couple of days.

    The next version will NOT be compatible with bukkit before build #1000, so plan accordingly.

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

    Cardmeister

    So yeah... my paying job sort of got in the way of that "permissions in the next couple of days" plan... But *that* project is over(ish), so back to the fun stuff!

    Permissions have been implemented and are going through testing now.... expect an update soon!

    Version 0.5.5 has been released!

    Permissions are now implemented!

    An API has also been released for interaction by other plugins!
    (Contact me for details, largely undocumented except for comments in the code).

    Link to source code has been posted!

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

    Cardmeister

    Posted some basic instructions for API usage -- see link in original post.
     
  17. Offline

    Cardmeister

    New version released -- v 0.6.0

    Notable changes:

    Custom permission nodes can now be created to allow different maximums for different players.

    Configuration help is now in the same file as the configuration. This should make configuration changes more intuitive.

    The "addRestrictedToOps" configuration option was removed. The permissions added in version 0.5.5 restrict adding to ops by default. This behavior is can be overridden using a compatible permissions plugin. I realize (now) that this may be inconvenient for a server which does not use a permissions plugin, so I'm willing to add a similar option back in to control the default behavior. However, since I don't know if anybody really needs this option, I will only add it back by request only. If nobody wants it, then I'd rather keep the code that much lighter.

    As always, feel free to post questions, comments, and requests!

    Enjoy!
     
  18. Offline

    imoneofthem

  19. Offline

    Gabriel Crowe

    Can I request sign interaction?

    I was teaching myself java just to write a plugin like this one but it looks like you beat me to the punch.

    I am trying to remove typed commands from my server to encourage greater usability. I want [an admin] to be able to place a sign with [POI] on the first line and its name on the second. This sets a poi.

    Then I want a sign that says: [DIRECTIONS] on the first line and the matching name on the second.

    When a user clicks on the 'directions' sign with a compass it then points to the matching POI. This woud let our resident mods mark points of interest and build signposts signposts to let residents easily navigate to specified locations. It would give true use to the compass.

    Basically, i dont want people typing commands. It means admins and mods need to explain over and over.
     
  20. Offline

    Cardmeister

    Can you elaborate a little?

    What did you have in mind?

    I did consider using sign placement as a POI creation mechanism. I currently have no experience with keeping track of in-game blocks (such as signs), but I know it is possible...

    You've definitely got my gears turning on this one, so let's explore it further... I think we can assume that the same add/remove/remove-others restrictions apply, only in terms of building or breaking a "POI" sign.

    Would you want to disable typed commands entirely, or just offer this as an alternative?

    Would it be reasonable to have your mods manage the POIs through typed commands (presumably more isolated group of people which would not need to be constantly re-trained)? That would reduce the need to keep the POI data linked to physical objects in the world. We would then just need a mechansim to create signs which point users towards a POI.

    The biggest challenge with relying solely on compass navigation is that (last time I checked), there is no way to make the compass "work" in nether worlds. There is also a high risk of conflict with other compass plugins. Once PointsOfInterest takes control of the compass, what is the mechanism for releasing it (e.g. returning it to standard functionality)?

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

    Gabriel Crowe

    I'd still like to have commands i think, just compasses and signs as an extra.

    We dont even have to use the compass. You could also make signs orient themselves in such a way that an arrow on them points to the right place.

    Something like this simple [manually placed] example:
    http://www.gabrielcrowe.co.uk/uploads/poi-idea-1.png
    http://www.gabrielcrowe.co.uk/uploads/poi-orientation-example.png

    As you can see in the second pic, if the edge of the sign points towards the POI then it'd be easy to find it, even over kinda large distances, no compass required, just some maths.

    on a side note, if you can stack the signs, then you can actually create hubs for directions.

    I know this is a silly example, but you could stack them like this:
    http://www.gabrielcrowe.co.uk/uploads/silly-stacked-signs-example.png

    ...and the distance might be good too, if there is space on the sign.

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

    Cardmeister

    I like that idea! ... and the stacked sign idea is not silly... I had the same thought! But I don't think you can stack signs in MC... hmm... will have to test that later.

    As an initial pass, I can definitely set up something that points a sign towards a POI. I can even write a distance on the sign.

    The only thing I need to look into is how many characters can fit on a single line of a sign... the POI name max is currently 24 characters. I don't have access to MC right now, but I will see how many "M"s fit on a line as soon as I do. Hopefully 24 will fit.

    I will draft a rough feature set in a little while... I have a few companion changes in mind to go along with this.

    Thanks for the input!!
     
  23. Offline

    Gabriel Crowe

    This page was interesting, i dont know if its the way its done now. i'm having trouble finding any docs at all:

    http://forums.bukkit.org/threads/the-sign-update-bug-continued.3819/#post-49426

    This one is part of the source of 'DuckShop' That uses signs and reads the lines to create special signs.

    https://github.com/chrisyco/ducksho...ava/tk/allele/duckshop/signs/TradingSign.java

    this might help too.

    http://www.gabrielcrowe.co.uk/uploads/signs-max-text.png

    row 1 for the command '[POI]/[DIRECTIONS]'
    row 2 and 3 for the poi name split if necessary?
    row 4 for the arrow

    Also, we can stack signs on our server just fine. :)
    http://www.gabrielcrowe.co.uk/uploads/stacked-signs-test.png

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

    Cardmeister

    At a glance, it looks like I can get something from each of those... I'll be using a database to record the data, but it gives me a foundation to work from.

    Okay, so this seems like a good time to make some changes I've been toying with... so here's a rough list.
    1. Enforce name uniqueness.... I don't know why I thought the average user would want to select by id... even though it is shorter, it is not as intuitive. So I want to enforce name uniqueness and allow interaction with POIs by name OR id. For directional signs, this is important because that's what the name is what is going to be on the sign.
    2. New actions:
      • /poi rename oldName newName
        • Will auto-update related signs.
      • /poi move poiName
        • maybe not in initial release
        • Will move a POI to current location.
        • Will update distance/direction on related signs.
      • /poi signs poiName
        • Important for server maintenance
        • probably second release.
        • Need a way to list unlinked signs.
        • List locations of all signs for a given POI.
    3. New permissions:
      • poi.sign.direction.add (add directional signs for your POIs)
      • poi.sign.direction.add.others (add directional signs for other players' POIs)
      • poi.sign.direction.remove (remove directional signs for your POIs)
      • poi.sign.direction.remove.others (remove directional signs for other players' POIs)
      • poi.sign.direction.list (list directional signs for your POIs)
      • poi.sign.direction.list.others (list directional signs for other players' POIs)
      • poi.sign.direction.* (all of the above)

    Sign setup:

    -----------------
    [POI Directions]
    MySuperCoolPOI
    -----------------
    |
    |


    Converted into:

    --------------------
    Point of Interest
    MySuperCoolPOI
    Cardmeister
    1245 m --->
    ---------------------
    |
    |

    We can visit creating POIs with signs after this is functioning, to keep the changes manageable. (Only me, in my spare time, on this plugin :) )
     
  25. Offline

    Gabriel Crowe

    Excellent, but please remember that some people will be denying their users access to this. Like me.

    When you are coding it, please make a config that lets me disable the name of the player on the third line. I wont be interested in having my username everywhere and neither will any of my mods. :)

    Could 'Point of Interest' Also be configurable in the config? some people may not be English.
     
  26. Offline

    Cardmeister

    Both fair points... but it turns out not all of that would fit anyway. With a hard limit of 15 characters per line (found it on the wiki), going to have to support two lines for POI name. Not the most visually appealing, but I think it is better than truncating.

    That then scraps the owner name.

    I think the best option will be as follows:

    --------------------
    Poi_Name_With_
    _wrapping
    --------->
    1000 m
    --------------------

    Which also removes the label. We could probably keep the label and put the distance and arrow on the same line... but that might be a little cluttered.

    I'll try to put some intelligence into the split. Since spaces are not allowed (for now), I will try to split on _ or capital letter.
     
  27. Offline

    Gabriel Crowe

    use a dash?

    --------------------
    [HEADER]
    Poi Name With-
    wrapping
    1000m ----->
    --------------------
     
  28. Offline

    Gabriel Crowe

  29. Offline

    Cardmeister

    Thank you. I was out of town this past weekend, but I hope to get some keyboard time over the next couple of days to get moving on this.
     
  30. Offline

    Gabriel Crowe

    I wish i was a better java programmer or i'd use your api and write something myself, lol.
     

Share This Page