[INACTIVE][TP/FUN] NetherGate v0.56 - Just Like Single Player! [803]

Discussion in 'Inactive/Unsupported Plugins' started by NathanWolf, Feb 4, 2011.

  1. Offline

    NathanWolf

    NetherGate - A plugin that uses multi-world to create a completely automatic Nether experience.

    If you're using Essnetials, go no further.

    Essentials breaks NetherGate in strange and frustrating ways, I'm not going to support it anymore. I'll try and get this resolved by NG beta, at which point I'll remove this message.

    [​IMG]


    Use
    To use NetherGate, drop the required jars in your plugins folder.

    Then you can create and light a portal to travel to the nether!

    Downloads
    Grab elBukkit.zip to get all of my plugins- take out the ones you don't want.

    For more details on NetherGate, or for individual jar downloads, see the NetherGate entry on bukkit's wiki.

    Tip Jar
    If you really love my stuff, and you're feeling generous, I'd more than appreciate a donation.

    Go here if you're interested!

    Changelog
    View changelog on github
     
  2. Offline

    NathanWolf

    Yeah, I know! I have yet to troll the forums, and I don't want to bug DinnerBone... I'm would assume the intention is for all worlds to follow the properties set in world.properties, eventually.

    I don't think there's anything programatically I can control to keep them from spawning, though (other than to write a plugin just for that - assuming that the entity spawn events are working).

    If it helps, I have been having a lot of fun fighting back with magic! Until entity targeting works it's next to impossible to hit them with a fireball, an arrow can sometimes make it. I usually just wall them off with blob or something. And heal is my friend.

    But, yeah, generally I have not been surviving long there!
    --- merged: Feb 8, 2011 11:28 PM ---
    Actually, I think once the undo system from Spells is integrated, I'll just use that - so the block will auto-undo after a minute or so.
    --- merged: Feb 8, 2011 11:29 PM ---
    It uses the built-in Bukkit multiworld functionality. I'm not going to be supporting anything like that :) You'll have to move your maps into the your server folder.
    --- merged: Feb 8, 2011 11:29 PM ---
    Right in the server root, "next to" plugins. If you unzip the zip file, the directory structure is how it should be in your server root.
     
  3. Offline

    iSushi

    Then I can't use it. It's in the server folder, just that it's in folders in the server folder :p ... I think you maybe already support it. It's Dynamic Maps that's giving me an error. I'll test it right away ;)

    If not I'll need to modify it myself to work. And that'll be a pain in the ass. Well not first plugin I gotta do that with.
     
  4. Offline

    NathanWolf

    Huh? I'm so confused....

    Multi-world is built in to bukkit. As far as I know, worlds must all be in a folder in your server root- that's how it is in minecraft, that's probably how it is in Bukkit...

    If you're going to be modifying code, it won't be mine- you'll have to dig into Bukkit and Craftbukkit!

    If you want, try creating world with a pathname- maybe it works. Who knows?
    --- merged: Feb 9, 2011 12:11 AM ---
    Oh, also- don't expect dynmap to work with multi-world! There's a lot of work to do in that area, I think.
     
  5. Offline

    iSushi

    lol... What I'm doing is in the vanilla version as well ;)

    level-name=Maps/omnomnom

    Om nom nom is the name of my generated map. And "Maps" is a costom folder that I put my maps in (the vanilla version makes the folder if it doesn't exist)
    if you set the lever-name that way it's built up this way: rootfolder (where craftbukkit is) / [folder] / Map / Map files.

    Reminds you of anything?... It's how systems work. All systems work that way. Anyways, if your using the built in function thats with craftbukkit. It works :p

    Just thought you took it the same way the "Towny" plugin uses, saving stuff in the folder for the map files. But you don't so it works fine :)
    --- merged: Feb 9, 2011 12:14 AM ---
    I didn't expect dynmap to work with multi-world. I disabled it temporally. Still testing your plugin ;)
    --- merged: Feb 9, 2011 12:26 AM ---
    Yes!, it works pretty well! :) I only get tons of errors in my console. Want me to send them to you?... The plugin in general seems to work. Just those errors ^^

    EDIT: Those errors causes some spawn bugs, on teleportation etc.
     
  6. Offline

    NathanWolf

    Interesting- yes, please do!

    I can also try putting some worlds in sub-folders myself and see what's up...
     
  7. Offline

    Hakix

    I would rather a wait time before teleporting, like in single-player. Also, it's annoying dying in the Nether and spawning in the Nether again. Could you make it so that you span back in the main world?
     
  8. Offline

    NathanWolf

    I kind of agree, but I'd want to make it optional. It would preclude things like momentum preservation, minecart portalling, etc.

    And, honestly, I'd kind of want to wait until I have access to the screen effects used when that happens- I'm assuming that would probably come in along the lines of the sky-changing API, but maybe not.

    Otherwise, there's no way to tell that it's working while you wait there, which could be a little frustrating.

    I also agree- I'll need to track each player's home world- I could auto-set it to the world you first portal from. I can provide console commands later on to change it for yourself and for other players (two separate commands, each with different Permissions nodes)

    Which brings me to my next point... you're all going to have to delete your .db files next time you update (or issue a few console commands that I can provide if you have data you're worried about losing)

    I imagine most of you don't, but if you've set up some kind of custom world configuration already like I've got on my server, let me know and I'll walk you through migrating your data.

    Which will hopefully be in the next couple of days... depends on how much time I get to work on it, as always. And it will have Permissions support!
     
  9. Offline

    Lookatmego

    hey man could u help me out??i do /nether and get all the help commands like all the commands and i do '/nether create world hell' and it just gives me template or gives me nothing i do '/nether go' and gives me again template...anything i must do before that?
     
  10. Offline

    NathanWolf

    You have to be in the ops.txt file (for now) to use the /nether commands- could that be the problem?
     
  11. Offline

    Lookatmego

    no i am an op and i have * in permissions so so far every plugin ive used ive been able to use it without a problem just this 1 keeps giving me template and this erro:
    SEVERE: Could not pass event PLAYER_QUIT to Persistence
    java.lang.NoClassDefFoundError: Lorg/bukkit/util/BlockVector;
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
    at java.lang.Class.getDeclaredFields(Class.java:1760)
    at com.elmakers.mine.bukkit.plugins.persistence.core.PersistedClass.bind(PersistedClass.java:86)
    at com.elmakers.mine.bukkit.plugins.persistence.Persistence.getPersistedClass(Persistence.java:367)
    at com.elmakers.mine.bukkit.plugins.persistence.Persistence.getPersistedClass(Persistence.java:346)
    at com.elmakers.mine.bukkit.plugins.persistence.Persistence.get(Persistence.java:169)
    at com.elmakers.mine.bukkit.plugins.persistence.core.PersistenceListener.onPlayerQuit(PersistenceListener.java:37)
    at org.bukkit.plugin.java.JavaPluginLoader$2.execute(JavaPluginLoader.java:128)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:60)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:213)
    at net.minecraft.server.ServerConfigurationManager.c(ServerConfigurationManager.java:94)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:525)
    at net.minecraft.server.NetworkManager.a(SourceFile:236)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:71)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:104)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:283)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:209)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:512)
    Caused by: java.lang.ClassNotFoundException: org.bukkit.util.BlockVector
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
    ... 19 more
     
  12. Offline

    NathanWolf

    Ahh... what build of CraftBukkit are you running?

    If you don't have BlockVector, I don't think you have multiworld, either. The latter came after the former in the Bukkit codebase.
     
  13. Offline

    OkinKun

    I just updated to 289 and got v0.13 of this just now, and it's no longer working. I keep getting this error looped over and over at server startup, and things don't shutdown properly either.

    Command(PluginCommand.java:124) at com.elmakers.mine.bukkit.plugins.persistence.dao.PluginCommand.getSub
     
  14. Offline

    NathanWolf

    Hmmm- can you please PM me the entire error?

    Also, try deleting any .db files in your plugins/Persistence folder (with the server shut down).

    Failing that- well, I did push a bad jar earlier, accidentally- but I thought I'd fixed it.

    I'm hoping to get a release out tonight with Permissions support, so I'm going to push on and then have you try that one- but you can try the deleting db's thing, you'll have to do that anyway when you upgrade (sorry)
     
  15. Offline

    Dreadreaver

    please dont do so many unnecessary features right off the bat when you havent even implentet the most basic ones! you promise "just like single player" and there is still no gate on the other side if you build one and what about the 8x scaling in nether?

    sry for getting all raged and stuff but this is annoying me a lot actually as Im following every change here since the beginning and the only things I still need for my server from this plugin are still not implemented yet and you talk about permissions (which would destroy the reason for having gates at all!) and stuff. please dont try to run before you actually learned how to crawl :S

    I do not in any way mean to offend you or anything ... its just, Im waiting for this now since MultiWorld is implemented in Bukkit and this plugin here shows much promise .. dont bloat it with too many features and spoil it.
    I dont need wands spells or anything, just normal NetherGates LIKE IN SINGLEPLAYER. ofc this is about what you want and need, afterall its your plugin, but please, please do a good nether before actually doing so many other things like multiworld because there is already Wormholes, MultiVerse, ServerPort and another one I dont recall.
    But none of them have simple gates like in singleplayer and I bet on you implementing this and still nothing here but talk about some features already present in other plugins but not the core features soooooooo argh

    think you get it.. thank you and sry if I got you worked up as well ;)
     
  16. Offline

    NathanWolf

    Update- yeah, this is something very broken, bad infinite recursion. Sorry, I'll have a new version up very soon!
    --- merged: Feb 9, 2011 7:01 AM ---
    What "unnecessary features" are you talking about? Are you talking about permissions? Permissions is important to people. If you don't like it, ignore it -gates are all public by default.

    Not that it's necessarily any of your business, but I just finished Permissions integration with Persistence, so there is zero work involved (literally) in supporting Permissions at this point. Yes, I do have other plugins, yes I do work on them, and no I don't care if that offends you in some way.

    Believe me, I know how to run just fine, thanks.

    This plugin, in its multi-world form, has existed for about 3 days now. Settle down.

    I don't take offense, never do- but I will say that you're coming off a bit unnecessarily aggro. Maybe go vent some frustration, and come back?

    Sorry, other plugins, other people who care about them, only one of me.

    Plus, I wanted it. And, if there's a feature I want, what you want is pretty much going to wait.

    Now, I'm really confused- do you still want the terraforming functionality? There is no real nether without multiworld- so that one's not really a "secondary" feature.

    There is already a "good" nether, a great one in fact- Notch's nether. Are you saying you really want me to invest more time in my crappy nether-in-a-box? Because that's way not top priority here.

    The only things missing are the scaling and auto-pairing. It's really not a big deal, so you can't use it for fast travel yet.... I imagine you can wait a day or two more.

    It's coming. I need Persistence support to manage the complex data involved in linking up portals. Creating the actual structure on the other end is not the problem, keeping track of every portal created is the difficulty.

    I'm not worked up, but I am exhausted and my brain is melty... so, sorry no update tonight- hopefully tomorrow evening. (I do also have a day job, btw... this doesn't pay the bills.)

    Update

    I did push what should be a fixed jar, though- if you're having that horrible recursion issues, please re-download the zip and re-install at least NetherGate.jar and Persistence.jar.
     
  17. Offline

    Spooner

    I personally think you're asking a bit much of the man. You act like multi-world support being out for 3 days is a long time. Be patient, he's doing this from his own good will and really shouldn't be pressured to do so.
     
  18. Offline

    Archironus

    I'm having a similar problem to OninKun
    Just before i updated to the latest version it was working fine

    I'm getting

    at com.elmakers.mine.bukkit.plugins.persistence.dao.PluginCommand.getSubCommand(PluginCommand.java:124)

    Over and over in the imput/output, it eventually stops but the gates don't seem to work and neither do quite a few of the /nether commands

    I'm using the latest version from the main post. I'd really appreciate any help with this or a fix. Thanks

    EDIT: Seems like persistence is failing to load at all
    "[INFO] Persistance version 0.27 failed to initialize"

    I've re-downloaded and re installed several times, clearing the databases and testing with different plugins set up. no difference that i could see
     
  19. Offline

    TotempaaltJ

    I love this plugin and it's exactly what I've been waiting for.
    Just one question:
    In your to-do it says that you still have to create portals automatically on the other side and that the quick-travel thing still isn't ready. How are these coming, since I think those are the most important features for creating a sp-like experience. :)
     
  20. Offline

    hansudo

    Hi,
    it was discussed before a bit earlier. This plugin ist about 3 days old. And NathanWolf has a daytime-job and some more addons. He first wants to do the permissions-things in nethergate so it is a save way to use the addon, and some bugfixes. :)
     
  21. Offline

    TotempaaltJ

    Damn, I was reading this entire topic but stopped half-way, I guess I shouldn't have. Anyway, thanks. :)
     
  22. Offline

    heeen

    Chiming in to say this looks promising! I'm looking forward to the fast travel functionality first, and portal duplication functionality second.
    I think this plugin should keep permissions to a minimum.
    This plugin has to check for building permissions when travelling through a portal would create a portal in already occupied or restricted zones.
    Maybe it could fire creating blocks events for the exit portal blocks and if they are cancelled by another plugin, cancel the travel or travel and not create an exit portal. This way you have less interdependencies for people who like to keep their installations simple.
     
  23. Offline

    phenomX4

    Same problem here..
     
  24. Offline

    NathanWolf

    Hey, everyone- I really thought I'd fixed this last night by rolling back to an old version- I pulled the jars off my public server, so if the ones in the zip are broken, then I guess I also accidentally pushed a bad build to my server :(

    Anyway, that problem is definitely fixed in the source at least, and I really apologize. I was really tired last night trying to get some things working, and I did something really dumb (really simple infinite recursion mistake), and apparently pushed that code everywhere afterwards.

    Unfortunately, I was having this one little annoying problem with worlds auto-binding last night that prevented me from releasing a real update- I kept getting trapped in the nether, would keep re-targeting to itself, for some reason.

    If I can get that figured out soon-ish, I'll release a new update later today. If not, I'll revert from github or something so I can put back the old version.

    Sorry again.... Another big problem with this is that I always version my jars and save old versions, for just this reason. But, I haven't been doing that since I started packing everything up in a zip, since there's no common version# for it.

    Guess I'm going to make a zip version#, and start doing that- because not having a known good version to roll back to is, like, a really bad thing :(
    --- merged: Feb 9, 2011 2:17 PM ---
    Thanks for having my back everyone :)

    A note about permissions- I did not want to release a version of NetherGate that auto-creates matching gates without permissions. That will be a (eventually undoable) destructive action, Just Like In Single Player.

    Until I can integrate with some sort of world protection, giving gate creation ability to only the people you trust is about the only way you're not going to end up with a gate in the middle of your house or something. I'm going to do my best to put it somewhere "safe", but you know- stuff happens.

    Even if it's someone you trust, there's no telling where you're going to pop out when you portal... but, still, I think being able to remove everyone's default ability to create gates anywhere they please is important. Especially if those gates cause other gates to create themselves at an essentially random location in a world that's not even visible to the player... yeah, I think permissions is important :)

    Ok, got to get to work- I'm hoping to look at this on break sometime today and get a fix up before the evening.

    Thanks for your patience...
    --- merged: Feb 9, 2011 2:22 PM ---
    Agreed- fast travel functionality I am hoping to get in today. I iwas hoping to get it in yesterday but I ran into some annoying technical problems and got too tired to figure it out :)

    Also agreed- there's a post in here somewhere where I outline the nodes I plan to support, I think that's still basically right on. Currently, there are only permissions for the "nether" command, but there will be two more for creating and using portals.

    It will be completely optional, and disabled if Permissions is not present. (e.g. everyone can use anything... so be careful about that)

    Exactly- just have to figure out which world-protection plugin I need to integrate with, now :p

    That's a very interesting idea!

    I could just try placing the first block (the ice/obsidian block i place now- which will just be obsidian in this case), and if that fails, bail on the whole thing.

    I like this, a lot. Going to give it some thought (once things are working again...)! Thanks =D
     
  25. Offline

    Fischkopf

    Great, hope you can fix this soon :) finally want to try the NetherGates :D
    And mistakes can happen, even simple recursion mistakes .... especially at a late hour ;) so don't be to worked up about it, at least you are doing all this just out of fun/kindness/whatever
     
  26. Offline

    NathanWolf

    Thanks for the support :)

    There is a fixed zip up now- it should really be fixed this time, I just pushed forward and got my data issues worked out instead of trying to roll back, since I apparently completely failed to save an old version of the jars.

    So, that's new code- but I'm not going to bump the version number until location mapping is working.. since this is pretty much the release I meant to make last night, before I broke everything ;)

    Please update, and you'll have to delete your db files- but hopefully not again, I think I've thought of everything I need to be tracking.

    Speaking of, just to ease your minds a bit (I hope)- now that've got a place to put all the data I need to track (I added "home world" per-player, btw) and the persisting isn't horribly broken, I've got data for both the current world and the target world when you tp.

    This world data includes, for each of the two worlds:
    • spawn location
    • center offset
    • relative scale
    • target location
    So, now it's just math :) That's several transforms to get right, but it shouldn't be too hard once I get a chance to sit down and do it, now that I've got the data I need.

    Thanks for your patience, everyone :) Hopefully the current version will get you back working for now, and fast-travel will be coming soon.
    --- merged: Feb 9, 2011 4:07 PM ---
    Ok, while I'm here, and before my meeting (no time to get any real work done right now), I'm going to give a bit more info about Permissions, since there is technically a limited version of it in the "current release" (which is really a half-done release, but better than a broken release):

    Each "nether" command and sub-command gets its own Permission node- NetherGate.commands.nether.<etc>. That's all the nodes for now, because that was free thanks to Persistence :) It's a two-minute job to add a couple more manual permission checks within NetherGate to prevent someone from using a portal or creating a portal.

    So, here's how it will work- there are basically two ways NetherGate can function (for now):

    Without Permissions
    If you don't use Permissions, NetherGate will continue to function as it does now, basically:
    • No one(*) has access to any of the "nether" commands
    • Anyone can use or create a gate
    * - When I say "no one" I mean normal users, not ops (from ops.txt) See below for more on this.

    With Permissions
    • Basically the same as above, except Permissions drives everything- so you need permission on a node to do anything in NetherGate.
    * /su :

    For the purposes of NetherGate, I suggest you set yourself up as a normal user, not an admin! That way, you can test out how it works for your players.

    When you need to use admin commands (such as the nether commands), use the "/su" command to toggle your super-user status on and off. Only real ops (from the ops.txt file) have access to "su". Also, an op will start out in SU state by default (though your state is persisted, of course, so this is really only first login)

    This is Persistence functionality, so it only works on Persistence-enabled plugins (NetherGate and ProtectedDoors right now, I think is it)

    Anyway, "/su" works whether or not you're using Permissions.

    Make sense?

    I hope this works with everyone's plans, I think it's pretty flexible.

    Ok, will be back later!
    --- merged: Feb 9, 2011 4:30 PM ---
    Ok, since you're all so anxious, and I've got testing code up anyway!

    elBukkit-test.zip

    That has a test version of the location scaling code in it, which I can't test. If it doesn't seem to work, delete your db's and try again- I wasn't actually even assigning world scales before- the auto-nether world will now default to 1/8, you can change it in nether.worlds ...

    I can't actually test this, but I have it up on my public server if you want to try it before downloading.
     
  27. Offline

    alexgeek

    Eesh, I tried it, spawned in lava and died, respawned somewhere safe in the nether. Made a new portal, went through and ended up in the middle of knowhere ha.
    But at least it works now :)
     
  28. Offline

    Archironus

    Thanks very much, the new version works [​IMG]
     
  29. Offline

    NathanWolf

    BTW- dunno if anyone is handy at vector math, but feel free to Check My Work: :D

    Code:
    public BlockVector mapLocation(NetherWorld from, NetherWorld to, BlockVector target)
        {
            Vector transformed = target;
    
            // First, offset to center on local spawn (making sure there is one set)
            BlockVector fromSpawn = from.getWorld().getSpawn();
            if (fromSpawn != null)
            {
                transformed = target.subtract(fromSpawn);
            }
    
            // Apply additional offset
            transformed = transformed.subtract(from.getCenterOffset());
            // Scale
            double fromScale = from.getScale();
            double toScale = to.getScale();
            if (fromScale != 0 && toScale != 0)
            {
                transformed = transformed.multiply(fromScale / toScale);
            }
    
            // Unwind
            transformed = transformed.add(to.getCenterOffset());
    
            BlockVector toSpawn = to.getWorld().getSpawn();
            if (toSpawn != null)
            {
                transformed = transformed.add(toSpawn);
            }
    
            return new BlockVector(transformed);
        }
    --- merged: Feb 9, 2011 5:06 PM ---
    Sweet! Very glad to hear it... I had a rough night last night :)
    --- merged: Feb 9, 2011 5:06 PM ---
    I actually just cheated a bit while waiting for a conf call to start and jumped on my public server to check it.

    I had the same problem! I would humbly suggest Wand+Spells, use blob while holding some lightstone or netherrack or whatever. Then, if you end up in lava cast blob real quick. You'll die, but there'll be someplace to stand next time! Also, if you're quick with the wand, you can have phase and blob equipped, make the blob, and get back. If you have some water nearby to jump in, you may even survive :)

    Don't make the mistake of casting blob without holding a block of some kind- I've done this a couple of times accidentally. You just make a big blob of lava, not helpful.

    Anyway, there'll be a real portal platform waiting on the other side soon to solve this problem for real :)

    So, the good news is, I'd say initially the location mapping algorithm is working somewhat! I think, at least on my server, the ratios are backwards- so my main world is actually the fast travel world. Not ideal! :)

    I'll make sure to fix that before release...

    Anyway, I think that's a good sign - I actually have a custom (moved) spawn location on my public server's main world, and I noticed that I could portal from there, and it took me to the nether's spawn area- which is what's supposed to happen.

    Side note: I moved my spawn when I changed my map from single player to multi, to set up a common area instead of the spawn being right by my first house. So, in order to support hooking my portal network back up later, I've provided an additional offset for each world- I think this will fix this issue for me, and it means for flexibility for you :)

    Thanks for bravely trying this, btw, @alexgeek :)
     
  30. Offline

    DREAD_XI

    I keep getting failed to teleport........... Crap I want this sooo bad........ [​IMG]
     
  31. Offline

    NathanWolf

    hmm... try shutting down your server, delete /plugins/Persistence/*.db and restart.

    You may want to wait ~15 minutes or so- I think I'm going to flip the location ratio and run with this as an official release :D
     

Share This Page