myUltraWarps
This very efficient warp plugin has so many features that your head may just implode, and with THE FEATURE MATCH GUARUNTEE, if you find a warp-related feature that this plugin doesn't have, just tell me and I'll add it to the future features list! It's that easy!
My goal is to give you a warping plugin to ensure that you never need any other warping plugin ever again. With this plugin, you can do some much more than just warp. You can customize the messages for each warp that appear when someone warps to it or tries to and doesn't have permission. I'm a perfectionist and I use this plugin on my own Minecraft server, so you can be assured that this plugin works and it works well.
The full feature, command, permissions, and future features lists are linked to this page below. They're very long, but don't be intimidated. You don't have to read all of it. :P
features
^Click me to see all the cool features myUltraWarps has to offer. Remember: you don't have to read everything. It's a long, long list. :)
commands
^Click me to see all the cool commands you can use!
permissions
^Click me to see all the permission nodes this plugin has. Note that we have myultrawarps.user and myultrawarps.admin for easy setup!
the config.txt
^Click me to get help with the config.txt. It's not as complicated as it looks!
known bugs
Though you can teleport with vehicles, you can't teleport between worlds yet. That's CraftBukkit's fault. I would love it if you could help me convince CraftBukkit to fix this stupid bug! I have not been able to find any workarounds; I have tried everything and everything else. I tried reporting the bug, but they have been persistent in ignoring me for weeks now. They even marked my first report as "resolved" when it wasn't and I had to remake it. We need to force them to listen to us! Please help by going here, making an account, and posting a comment! I would really appreciate it!
future features
^There are even more features yet to come listed here!
source code
As per some users' request, I have published the full source code for myUltraWarps on GitHub. Click the heading above to go see it and/or download it for free. If you're one of those people who hates waiting for Bukkit to approve the newest version of myUltraWarps (and I don't blame you if you are), you can download the source code that will be updated immediately with every new released version, compile it using Eclipse or some other J.D.K., and replace the stuff inside the myUltraWarps.jar with the new source code. (Remember to update the plugin.yml, too!)
other plugins
myGuardDog
- Griefers can go find a different server to grief on.
myPluginWiki
- This is like the Minecraft Bukkit developer's Library of Congress.
donations
^I run a Minecraft server myself and it costs a good amount of money each month to have it hosted, so if you love this plugin, you can click the link above and donate to show your gratitude! Every cent helps!
my server
^I know that most of you here are Bukkit server admins yourselves, so you probably won't be interested in this, but I have a server. If you're interested, I put a link to our website here. Our server is hosted by FragNet and is up 24/7. It's a basic Survival freebuild server with a few basic plugin modifications. Building is vanilla, but everyone can warp freely (using myUltraWarps). I have written almost half of the plugins on the server and we're moving toward having all the plugins written by me. There are some plugins of mine on that server that aren't even on Bukkit yet. If you feel like visiting, please do! We love new people!
comments
If you have any opinions, ideas for new features, bugs to report, or anything else, pleeeeeeeeeeeeeeeeeease post a comment below! Also, if you feel inclined to be harsh, I won't take it personally. Feel free.
Have fun ultra-warping!
@ryvix
Oh. I see. It's trying to load a chunk from an asynchronous thread from the AsyncPlayerChatEvent when chunks should be loaded on sync threads. The scheduler only works on sync threads. That's why whoever you're quoting there told you I should put it in a scheduler.
The weird part about that, though, is that I've been using that on the server without a schedule or anything and I haven't received any errors like that. Tomorrow I think I'm going to finish testing the new config setup and if don't find any bugs, I'll release a v7.4. If you still get the error, tell me.
You mentioned that you were using Spigot instead of CraftBukkit. That probably has something to do with this asynchronous thread problem since it's never come up for me on CraftBukkit. If the error still occurs, I may look into testing with Spigot as well as CraftBukkit.
When this project was new I read about the "binding" feature that teleports players when clicking a button or walking over a pressure plate.
Right now I'm not finding it anymore. What do I need to do? :)
EDIT: fixed it, searches for bind but it's called "link". I'm very sorry guys
"Its calling .teleport from the AsyncChatEvent. It should schedule a sync task instead. "
This seems to work for me:
Getting this error when teleporting via this plugin (myUltraWarps v7.3) which doesn't happen when teleporting in other ways: http://pastebin.com/ANB05Vm7
It may only happen when players don't have their bed spawn location set, and it may only happen when teleporting from a creative world to a survival world. Can't be 100% sure about either though.
I should also mention that I also tried commenting out the loadChunk lines from it so the line numbers might be slightly off but I believe the line 1466 is the one that says player.teleport(to);
Other than that it is all 7.3.
And after investigating some more in the logs I found this error which seems to be related when a player tried warping to one of their warps: http://pastebin.com/NQAsu6VL
This particular server is using Spigot build 695 at the time of this and apparently would have crashed if it were using CraftBukkit instead.
Hi, guys. I came to a realization about the /to and /from request system: the configurable questions are silly. Since whether or not people should be able to teleport to people (/to) or teleport people to them (/from) without asking permission from the target player or not is clearly a permission question, I should let the permissions systems handle it. In the next version, I'm going to make those settings permission nodes: myultrawarps.to.norequest and myultrawarps.from.norequest. Setting these permissions to "true" will give the player or permissions group permission to use /to or /from, respectively, without asking permission from the target player.
The first time you load the new version of myUltraWarps, do not worry about the old config. It will simply act like those configurable questions about teleportation requests do not exist. It will not cause errors. You do not have to anything except possibly change your permissions settings to include these two new permissions.
In their place, I will be adding a new configuration question. It will ask if you want people to automatically teleport to their home when they respawn or not, as requested by MarioG1. Sorry it's taken me so long to get around to that, Mario. It should be good to go soon, though.
Sound good?
I also have some news for anyone who looks at the source code for this plugin. 1) I'm adding Javadoc notations. A friend of mine showed me how to make them, so I'm gonna be adding Javadoc notations to every method in myUltraWarps. 2) That same friend also showed me that I can change the location of my source code on Eclipse, so now I don't have to copy and paste the source code to put it on GitHub. Therefore, I will be updating the source code on GitHub much more often. Finally, 3) that same friend may also be able to help me with some of my plugin programming here. We'll see.
Have fun ultra-warping!
@REALDrummer
Towny does this sort of thing for me already on the main server but for servers without Towny that sounds pretty cool. Good stuff =)
Hey, guys, I just released an experimental version of myGroundsKeeper! It repairs creeper, Ghast, and Wither damage slowly over time and cancels Enderman block interactions so they can't move blocks around randomly. It will keep your server map looking pretty and prevent mob griefing while not completely eliminating the consequences of getting hit by a creeper. It's just awaiting approval. I've published the source code on GitHub. Check it out!
@REALDrummer
Cool, no prob
Sorry. Wait. I should point out that that the new revamped config stuff isn't ready yet. Don't try to use it. It's a work in progress.
@REALDrummer
Awesome, thanks =)
@ryvix
Okay, well, I tested warping, changing, saving, and loading with quotes in the warp messages for restricted and unrestricted warps. I can't find any errors whatsoever. My best guess is that in the version that I'm using in my tests, I already fixed any bugs in that area. That's the same hypothesis I have for the reason that error showing on start up on both of our servers isn't appearing in my tests. In the newest version, I completely revamped the config settings setup. I'll update the source code so you can see. Whatever the issue was, the revamping probably took care of it.
@ryvix
Well, looking at the code, I did notice that a quote in the name could cut the name off at that quote, so I fixed that. Other than that, I couldn't find any name-related issues. I then made a warp with a "?" mark in the name and one with a ":" in it. Warping to them worked without errors; saving the warps with them worked without errors; loading the warps with them worked without errors; and restarting the server with them worked without errors. I don't think the "?" or ":" or any other weird characters should cause any problems except the small quote issue I mentioned earlier, which I fixed. There may still be a few cutoff issues with quotes in no warp and warp messages. I'll test for that, but I don't think other punctuation should be an issue.
@REALDrummer
Just normal stuff mostly. One of the warps had a : in it which might have messed some things up. Some had ? in it which may also have messed up.
@ryvix
What kind of weird names? You mean copying characters from websites and stuff that are outside basic ASCII keys?
We have to add a filter to warp names. People are making strange named warps and messing the file up.
Actually, we should filter any user input that goes in there.
@REALDrummer
No worries =) Everything seems to still work ok, nobody is complaining anyway.
@ryvix
I don't believe this. I just found that error in my server logs. How could I not know that errors were appearing in the start up on my own server? [facepalm] They never appeared in my testing for some reason. Shoot. I'll have to figure that out. Unfortunately, I have a big test and lots of big assignments for school coming up, but I'll check it out as soon as I can.
@REALDrummer
Thanks for the detailed post =)
I don't seem to have a cool down time player.
I think you are right though, it kicks out of the rest of the onEnable function.
I have a theory that it could be due to it having errors and not saving the file properly in the first place when players have no death points saved or something like that. Because I just got this error when shutting down: http://pastebin.com/b5ptXAZz
@OgStyle
Hey, OgStyle, have you been able to get back on your server? Is /link still not working?
@ryvix
Ah, yes. Good point about the teleportation requests. Yeah. That's another thing. I just mean people could receive multiple requests at once from one person. If someone were to send a new one before the first one was answered or timed out, then yes, I would just make it tell the person trying to send another request "You already sent [player] a teleportation request. Be patient." Oh, wait, idea... Either we could do it just like that or make it send the player they're trying to request a kind of "nudge" - just a message saying "Hey, [player] is still waiting on an answer. Can they teleport to you?" Of course, to avoid spam, the nudging would only work once per request, then it would tell them to be patient if they sent addition requests to that person.
Concerning the error there, there are two possibilities. One is like you said: the error may be causing the current operation to stop and it may not even be loading the temporary data. However, I thought that internal errors like that worked like a "return;" line only on the method they popped up in. I could be wrong, but if I'm right, that would mean that the error could mess up the config loading, but it shouldn't have any effect on the temporary data loading since those are two separate methods. On the other hand, I could be wrong and it could just stop the entire onEnable() method, and since loading the temporary data does come after loading the config data (which is where the error is coming from), then it's possible. The second possibility is less likely. It's possible that there's some sort of security measure or readability coding that doesn't allow myUltraWarps to delete files. I don't know much at all about Linux or your specific setup, but I don't think that's very likely. It's probably the first thing.
My suggestion would be to check in the "individual settings" section of the config and see if there's a player called "cool down time" listed there. There was an error in v7.something that made it read "cool down time" as a player. I fixed that error in v7.3, but it could still be there in your config from that previous version. If you find a section under "cool down time" as a player, try deleting it. If all else fails, delete your config file and reload it.
Right after a server restart before you warp anywhere, can you use /back or /death? You should be able to because the temp.txt contains everyone's warping and death histories, but if that doesn't work, then that will tell us for sure that it isn't loading the temp.txt data at all.
When I'm programming, I don't just change the part of the code I'm working on. I tend to wander around the code and fix bugs in lots of different parts, so I think whatever this bug is, I've already fixed it in the version I'm running, which is going to be v7.4 once your bug here and OgStyle's are worked out and I add respawn at home configurability for MarioG1, which I am close to finishing.