Inactive [TP/HOME/WARP] Waypoint v1.6.4(beta)- Teleportation points, home, spawn, and warp management. [1609]

Discussion in 'Inactive/Unsupported Plugins' started by miyoko, Jul 12, 2011.

  1. Offline

    miyoko

    Notice!

    THIS PLUGIN IS OLD AND VERY VERY OUTDATED. DOWNLOADS ARE NO LONGER AVAILABLE, AND SUPPORT FOR THIS PLUGIN HAS BEEN DROPPED. IF YOU NEED A SIMILAR PLUGIN, PLEASE USE ZPort


    Waypoint - simple teleportation point and home/spawn/warp management plugin:
    Version: v1.6.4 beta

    NOT YET UPDATED FOR 1.2

    *New in 1.6: modular command hookins, reworked command system, SuperPerms, ????*

    Waypoint is an easy teleportation point management and home location
    management plugin. You can create teleportation points to go back to later
    as well as share privately with other users. You can also create public warps that only certain groups of users can access.

    Waypoint's Features:
    • Add/delete waypoints for later access
    • List all of your waypoints simply
    • Share your points privately with other users
    • Points are private, and only accessable by you, unless shared
    • Multiworld support
    • Permissions/SuperPerms/OP support with strict nodes.
    • Home location management
    • Home location is automatically set to the bed you last exited (only if enabled in config.)
    • Create and manage public warps
    • Control which groups of users can access these warps
    • Save/Load the spawn points for all of your worlds
    • Selective showing of warps (you only see what you can access.)
    • Teleport easily between worlds
    • Create and import other worlds
    • Create and teleportation signs to travel to warps or world spawnpoints
    Download: JAR | SRC
    Development build (bleeding edge): JAR
    Integrity (CI): Waypoint project

    If you like my work, please consider sending a dollar or two my way so my little development company can pay for a server to do work and testing on :)
    [​IMG]

    For those of you that want to contribute, or even just watch progress get made on this, check this out: http://phabricator.maio.me/project/view/1/

    Phabricator: Source Code/Collaboration

    Commands:
    • /wp add <name> -- add a waypoint to your list
    • /wp del <name> -- remove a waypoint form your list
    • /wp tp <point> -- teleport to your point
    • /wp invite <player> <point> -- send an online player an invite to your point
    • /wp accept <point> -- accept an invite to a point
    • /wp decline <point> -- decline an invite to a point
    • /wp list -- list of all of your points
    • /home -- teleport to your home
    • /home set -- set your current location to your home
    • /spawn [world] -- teleport to the world's spawn point
    • /spawnadmin <save|load> [world] -- save or load the spawn point of the specified world
    • /spawnadmin set -- set the spawn point of your current world
    • /warp [warpname] -- teleport to the specified warp, if you have access
    • /warp add <warpname> -- create a public warp with the default permissions
    • /warp del <warpname> -- delete a warp you own
    • /warp set <warpname> <owner|permission|or a custom value> <newvalue> -- set property values in the warp's metadata
    • /warp list -- list all warps that *YOU* have access to
    • /warpadmin <set|del> <warp> [key] [value]
    • /tp <player> [target] -- teleport to another player, or teleport one player to another.
    • /tphere <player> -- ejects the target from a vehicle (if applicable) and teleports that player to you.
    • /tploc <x,y,z> -- teleport to a set of coordinates.
    • /world [worldname|create|import|list] -- displays what world you are in and your current position, or if given a worldname, teleports you to that worlds spawn.
    Installation and Configuration:
    Download the jar file and drop it into your minecraft server's plugins/
    folder and reload/restart the server. The configuration will be
    automatically created for you.

    Teleportation Signs:
    To create a teleportation sign, you must format it like this:
    Code:
    Line 1: [WP:WARP] or [WP:WORLD]
    Line 2: world name or warp name
    Line 3: (optional) description # maybe economy cost at some point soon
    Line 4: (optional) description
    
    It is case insensitive btw.

    Configuration options:
    'set_home_at_bed': set this to true if you want your home to be reset
    whatever bed you get out of.
    'autoupdate': check for updates and download upgraded jars automatically
    'warp.groups': permission groups for warps
    'warp.string': message sent to user after teleporting to a warp, %w is warpname, %p is playername
    'limits': self-explanatory.

    Permissions Nodes: (should each be self-explanatory)
    • waypoint.basic.add
    • waypoint.basic.delete
    • waypoint.basic.teleport
    • waypoint.basic.invite
    • waypoint.basic.invite.accept
    • waypoint.basic.invite.decline
    • waypoint.basic.list
    • waypoint.debug.config_node_test << debugging *ONLY*
    • waypoint.home -- you *must* add this if you want to be able to use home commands
    • waypoint.home.set
    • waypoint.home.set_on_bed_leave
    • waypoint.admin.spawn
    • waypoint.admin.spawn.set
    • waypoint.admin.spawn.save
    • waypoint.admin.spawn.load
    • waypoint.admin.warp
    • waypoint.admin.world.create
    • waypoint.admin.world.import
    • waypoint.teleport.teleport -- for general teleportation actions
    • waypoint.teleport.location -- for coordinate-based teleportation
    • waypoint.teleport.here -- for teleporting players to you
    • waypoint.spawn -- you *must* add this if you want to be able to use spawn commands
    • waypoint.warp -- you *must* add this if you want to be able to use warps
    • waypoint.world -- you *must* add this if you want to be able to use /world
    • waypoint.world.teleport
    • waypoint.world.list
    • waypoint.world.access.<worldname> -- more info on this below
    • waypoint.warp.access.<permission category>
    • waypoint.warp.create
    • waypoint.warp.delete
    • waypoint.warp.list
    • waypoint.sign.link.create
    • waypoint.sign.link.use
    • waypoint.sign.link.delete
    • waypoint.sign.warp
    • waypoint.sign.world
    • waypoint.cost_exempt.teleport -- teleports do not cost a single dime.
    Known Bugs:
    • Set home at bed is not disabling, ever. Currently looking into it. T3
    If you find a problem, report it at Github.

    Permissions Setup:
    Here is a sample Permissions 2.7.4 configfile with Waypoint's nodes already set up, and a user set up to give an example. Change it to your liking.

    << Thanks Pr0Failure :D

    World Access
    As of about 1.6.1, I added a few new things that implement a whole "world access" type schema of features. Players will NEVER be able to access a world unless they have the "waypoint.world.access.<worldname>" or "waypoint.world.access.*" permissions. I will add a configuration option to disable this, but for now, it's always on. If you want to effectively disable it without a config option and your permissions system supports inheritance, simply place the "waypoint.world.access.*" node at the lowest level and it should filter up through everything that inherits that or its children. I only added this because I felt it would be handy in the case of servers wanting to prevent griefing in creative worlds, but leaving whitelisting off, and just spawning all new users in the spawn world, but not letting them traverse your minecraft universe of worlds. There will be a config option to turn this off soon. By the way, if you didn't catch the gist of what I was really saying, this prevents ALL teleporting between worlds (only if you don't have the permissions for that world) no matter what you use to teleport. This catches events at a low level and checks each user's permissions as they change worlds. But enough about this.

    Bugs and Errors
    If you get a "An internal error has occurred" message when you use a command, * PROVIDE A TRACEBACK PLEASE. * (hint: a traceback is the error code in the server console that shows the error and its callers)
    And for those of you that didn't read this text, maybe this image will catch your attention:

    [​IMG]

    TODO:
    • Fix PermissionsEx not being detected correctly.
    • Rewrite command structure again with sk89q's command framework.
    • Add configuration options to disable various things.
    • Clean up core support code (me.pirogoeth.Waypoint.Core.*)
    • OpenAuth integration in the future?
    Changelog:
    Version 1.6:
    • Completely rewrote the command parser from the ground up.
    • Added SuperPerms support
    • Split commands apart into categories (much cleaner for anyone who works through the code)
    • (Supposedly) Fixed NPE from LoadWorlds during plugin load.
    Version 1.5:
    • Rewrote the configuration loader and put it in its own class
    • Restructured config storage
    • Added new warp limitations
    • Added an autoupdater
    Version 1.4.5
    • Fixed warp permission loading and detection
    Version 1.4.4
    • Fixed the internal errors spewed on /warp set
    Version 1.4.1
    • Removed some unneeded imports
    • Removed some unused variables
    • Now using String.format in checkperms
    Version 1.4
    • Added warp management
    • Restructured most of the config file formatting.
    • Homes-per-world (you can have one home per world now.)
    • Added spawn management
    • Added backup/restore of world spawn points
    Version 1.3
    • Added home support
    • Fixed configuration node bugs
    Version 1.1
    • Added invite support
    Version 1.0
    • Wrote all base code
    And some thanks.
    Definitely got some big thanks here, especially to Pr0Failure, who been testing the crap out of this, even during its magical beta stages. And some more thanks to all of you that put up with me not being around for weeks on end due to school. And thanks to others who at one point sent in a pull request to fix something I had missed. I love you all, you're a very supportive community :) Also, some big thanks to Ctark who's been following this like crazy and even digging through my messy code to find nodes to help others while I'm not around :) Again, THANK YOU ALL <3
     
  2. Offline

    Smokie23

    This jar here works for me. I can "/warp add <warpname>" and also "/wp add <waypointname>". I'm not sure why it doesn't work for profailure. Here is a complete list of plugins I tested this jar with.
    CustomDifficulty, LWC, NoCheat, OpenInv, PermissionsBukkit-1.2, PlgSetspawn, Ptweaks.v1.6, Register-1.5, SimpleHelp, Waypoint, WorldEdit, WorldGuard, iConomy, iConomyChestShop, simpleprefix
     
  3. Offline

    miyoko

    No errors or anything..?
     
  4. Offline

    Pr0Failure

    I'll try re-dl'ing the fix you gave me later.
     
  5. Offline

    miyoko

    Mmk.
     
  6. Offline

    Pr0Failure

    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'warp' in plugin Waypoint v1.6.3
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:165)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:378)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:757)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:722)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:715)
        at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:180)
        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:93)
        at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:550)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
    Caused by: java.lang.NullPointerException
        at me.pirogoeth.Waypoint.Commands.Warp.run(Warp.java:88)
        at me.pirogoeth.Waypoint.Waypoint.onCommand(Waypoint.java:139)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
        ... 14 more
    I'm thinking it's Spout maybe?
     
  7. Offline

    miyoko

    Ok, this problem shouldn't even be happening. It makes absolutely no sense. Look at what the line is. It's impossible. Do you have any warps?
     
  8. Offline

    Pr0Failure

    WAIT, I MIGHT HAVE FIGURED IT OUT! TO TESTING!

    Is there a way to enable unlimited warps/waypoints? Because if you enable: false in the "limits" you get the error that occured there.

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

    miyoko

    There's the problem then. I'll go fix the broken shitzen.

    I think I'm literally going insane. I just wrote up a whole freaking differential revision for this problem. http://phabricator.maio.me/D1

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

    Pr0Failure

    -facepalm
    Give me the new jar and I'll test again.
     
  11. Offline

    miyoko

  12. Offline

    Pr0Failure

  13. Offline

    miyoko

    I tested it too and saw that. This is good.
     
  14. Offline

    Pr0Failure

    Now (as usual) ideas/plans for the next version? Lol.
     
  15. Offline

    miyoko

    Already? ;-;

    Well, a `/wp reload` command as well as `/back` or `/wp back`
     
  16. Offline

    Pr0Failure

    xD Lol sorry, I'm a little hyper/impatient. I'm always waiting for the "full version" to make a video even though a plugin never has a "full version"
     
  17. Offline

    miyoko

    Well, you'll get to see me making progress through all the emails phabricator will probably send you as I create and finish tasks and fuck with shit. Unless you don't want to see. Then I just won't CC you on everything :p
     
  18. Offline

    Pr0Failure

    Just more spam I get to sort through xD I don't mind it.
     
  19. Offline

    miyoko

    Lol. Maybe you could write some documentation on the wiki in phabricator while I work on these maniphests. (PS: the wiki is Phriction) :p
     
  20. Offline

    Smokie23

    list of what permissions do. You have alot of permissions and some sound like they do the same thing, this makes it a bit confusing.

    Your idea about a cost to use TP sign is good idea. I would use that feature on my server.
    Would you be able to implement a cost to use a command? so it would cost to use /home or /wp add etc. I'm looking for more money sinks for my economy :) many ways to earn cash but looking for ways to remove cash from economy.
     
  21. Offline

    miyoko

    I can work on writing up a new list of permissions and their related functions. And the economy crap is going to be implemented soon. Just not yet. Maybe within the next 2-3 versions. Seeing as I release a new version every couple weeks, it's probably gonna be pretty soon.
     
  22. Offline

    Pr0Failure

    I'm actually enjoying the emails I'm getting surprisingly enough.
     
  23. Offline

    miyoko

    You mean the ones about the tasks I'm creating? :p
     
  24. Offline

    Pr0Failure

    Pretty much. Mind adding a new document "Waypoint OP" So that I can edit it to look somewhat decent/simpler for new users. (aka so I can clean up commands/node definitions)

    Or I could use one of them since they're both empty.
     
  25. Offline

    miyoko

  26. Offline

    Ctark

    Cooldown timers for /warp and /wp tp?
    Either that or something where you have to wait xx seconds since last taking damage.
    Stops warping away from combat in a pvp world....
    Just an idea, and LIMITS!!!!!!!! YAY!
     
  27. Offline

    Pr0Failure

    Btw that 1.5 video is at like 11.3k view lmao. I think it's time for a new video xD I'll get one up this weekend. Latest of Monday. (I'm going to be out of town/away from internet access so I won't be able to host my server to make the video)
     
  28. Offline

    miyoko

    There's already a plugin that prevents warping away from combat...and I can try to look into the cooldown timers. I'm just semi-reluctant to do them, because the only way I know how to do them is with Bukkit's async threads in the scheduler. And the reason is because there's a possibility that a few too many threads may get opened on bigger servers. How I just envisioned the timers working: After a user teleports, their username is dropped into an ArrayList and a cooldown thread is started, which removes the users name from the list when the timer is up. But if you had a cooldown of say, 10 seconds, and had, say, 30 people (theoretically) playing on your server, and 15 of them decided to teleport somewhere all within the time frame of about 10 seconds. That's at least 10 asynchronous threads running parallel to the main server thread as well as any other async threads run by other plugins. That may not make sense to anyone else, but it kinda worries me. With a lot of async tasks and stuff running, the server may freak out...that's my only true worry. But I can try it.

    Disregard that. I'll try it. I reread the scheduler programming stuff.

    I checked the views on it the other day andit was up around 11k. I was modestly surprised. I think this post has somewhere around 10k views. But only 500 replies. People are probably mad from the lack of download link.

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

    Pr0Failure

    You should update it to the recent 1.6.3 that works. It's confirmed that everything works and is stable.
     
  30. Offline

    miyoko

    I just did.

    @Pr0Failure

    Oh, since you're registered on phabricator now, if there's anything you absolutely want me to do on Waypoint, open up maniphest and create a new task and assign it to me and just leave the priority at 'needs triage'. Just thought I'd let you know :p

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

    Pr0Failure

    Alright sounds good.

    Also I need to know what the correct environment inputs are for Waypoint.

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

Share This Page