[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

    Ok, I geeked out on this and had to share :) I put a giant wool superblob at my nether spawn, or at least where spawn takes me in the nether. Then I used MCMap Live (LOVE this program!) to find it with the X-Ray view.

    However, though I expected it somewhat, the real take-away, for me, was how huge and sparse my map is now. Yikes! So, without further ado- here's what happens to your world when you use it for testing fast travel (and I've been doing crazy stuff like setting scales in the thousands....)

    [​IMG]

    Ok, it's a little overhwelming, I know- but that top-left view was as far zoomed out as I could get. I'm assuming I dont have more map than that....

    It's not quite powers-of-ten zooming from there, but I think you can see what kind of crazy scales we're dealing with.

    And I did find my original stuff - you an see it in the most zoomed-in view! And, then, there's my superblob- so I'm actually not to far away. Time to do some explorin! I want to set my home to that place when I find it, so I can get back there no matter what I do to the world scales...

    Ok, bedtime :) Hope you all are having as much fun with this as I am :)
    --- merged: Feb 14, 2011 9:08 AM ---
    I just double-checked the plugin.yml, and .30 is definitely the current version- I just released it not too long ago, so you may want to update (or just keep god mode on ;))
     
  3. Offline

    heeen

    I wasn't able to test .30 yet, but a few suggestions:

    add rows in world table:
    "platformMaterialWater" - what to place if portal would land you on water, so you can set this to ice or cobble or obsidian
    "platformMaterialLava" - same thing for lava. you can set this to netherack for the nether and obsidian or cobble for world.

    can you add a simple "search for portal in area that would lead to this portal" code? My suggestion (pseudocode):
    Code:
    vector source_p1=portalBlockWhichWasEntered.position;
    vector source_p2=findAdjacentPortalBlock(source_p2); //two portal blocks wide in a normal portal
    
    
    
    vector v1 = findPositionInTargetWorld(source_p1);
    vector v2 = findPositionInTargetWorld(source_p2);
    
    
    searchloops: {
    for(y_offset=0; y_offset<127; y_offset++) //search from player height up AND down
    for(x=v1.x; x+=v1.x - v2.x; x != v2.x)
    for(z=v1.z; z+=v1.z - v2.z; x != v2.z) //search area spanned by portal blocks horizontally
    {
        if(targetWorld.BlockAt(x,source_p1.y+y_offset,z).type==PORTAL) //search up
        {
            targetPortal=targetWorld.BlockAt(x,source_p1.y+y_offset,z);
            break searchloops;
        }
        if(targetWorld.BlockAt(x,source_p1.y-y_offset,z).type==PORTAL) //search down
        {
            targetPortal=targetWorld.BlockAt(x,source_p1.y-y_offset,z);
            break searchloops;
        }
    }
    } //end of searchloops block
    
    if(targetPortal)
        teleDest=findAirAround(targetPortal) //need this?
    else
        teleDest=v1; //just the scaled position - no magic
    
    if(!teleDest)
        createAirPocket(teleDest); //to be sure?
    
    teleportPlayer(teleDest);
    
    If I have the time I'm going to try to code this myself later.
     
  4. Offline

    NathanWolf

    Ok, real quick- I just re-uploaded 0.30 with a small change- I turned off the tp-on-death.

    For me, it was causing me to not be able to physically click the respawn button (very weird). I'd have to disconnect and reconnect on death.

    I'll look into it- I'd like this functionality, but until I can safely tp you after death, it'll have to be on hold!
    --- merged: Feb 14, 2011 9:22 AM ---
    Interesting- I like the idea of this being specified per-world, that makes a lot of sense. Good suggestion, thanks!


    The problem with this is fast-travel. You can't find portals if you want to support fast travel, you have to pair them and track them.

    That's basically the only big remaining item left before this plugin is feature-complete, but it's a very big item.
     
  5. Offline

    heeen

    The search is exactly for fast travel. From the real world to the nether, 8x8 real blocks lead to one nether block.
    so if you travel from one of those 8x8 blocks, you're going to end up in the same block. The other way round, you have to search the 8x8 blocks to find if the player traveled from a portal there. a portal is 2 blocks wide, which gives you a search area of 8x16. Additionally, you have to consider the vertical position because you search for a place to stand instead of just creating the portal mid-air.
    I'd do this the first time the player moves through the portal and cache it per portal thereafter.

    For tracking - how do you account for 2 world portals leading to the same netehr portal - which do you choose?
     
  6. Offline

    NathanWolf

    Scale is configurable :) Searching gets really out of hand it you set the scale to 1024 - see my screenshots above.

    The first time time a portal is used (by a player with auto-bind/create permission), a pair is created on the other side and they are bound.

    If a portal already exists at that spot (I'll know, because I'm tracking them) the portal will point to the existing one, but the existing one will remain unchanged (pointing to wherever it was originally bound).

    Just like in Single Player :)

    Hope that assuages your fears ;) My source is on github, so of course you're always welcome to pull it down and whip up a custom build for yourself- it's going to take me a little bit to get portal tracking up and running....
     
  7. Offline

    Windwaker

    Ummm... what do you mean by nuke? [​IMG]
     
  8. Offline

    Fischkopf

    The nuke command ;)
    /nether nuke <type | all> <world> : Kill all ghasts (or whatever) in the target (or current) world.
    --- merged: Feb 14, 2011 5:41 PM ---
    @Nathan:
    Just for information, for now everything works pretty fine .... but I have scaling off because it has often a pretty strange behaviour ^^ but just if I want to try around a bit, what would be the perfect scale?

    And have you anything that you need tested or tried out again? Have a bit spare time at the moment :p
     
  9. Offline

    Windwaker

    Thank you kind sir. [​IMG]
     
  10. Offline

    Vytaan

    Thanks for the reply :)

    Yeah, I noticed lately that when I 'destroyed' my WarpGate portal. it would still teleport me. So apparently it just teleports you at certain coordinates, the portal itself doesn't really do anything. So I guess, like you said, I can replace it with some random block if I want a WarpGate portal, and make a real portal if I want to use NetherGate! :D
     
  11. Offline

    NathanWolf

    Awesome! Wish I could say the same about the spare time- this is actually a rare "from my work computer" post :p

    The default scale for a nether world will be 8 when it's working- basically, the little "research" I've done so far (beyond my experience with the nether in single-player) all comes from the Minecraft wiki. You can see here, on the Nether page, it talks about the scale being 1:8.

    So, I think that's what I'll do- each nether world you create will be a 1:8 fast travel world by default (relative to a normal world- transit between nether worlds will be "normal", since they're the same scale).

    To answer your question, if you want to play around with the current scaling algorithm, do this:

    Code:
    /nether scale world world 1
    /nether scale world nether 8
    Things will be a little wonky, certainly different- but they shouldn't be too crazy. Nothing like how I got my map to be the way it is in the screenshot I posted yesterday...

    Anyway, if that gets too insane for you, just do this to put it back:

    Code:
    /nether scale world nether 0
    You only need one or the other to be set to zero for scaled travel between those two worlds to be disabled (skipped, essentially- location mapping will be strictly 1:1, and won't account for moved spawn positions or anything fancy like that).

    Sadly, no time for Nathan means no new features to play with yet- but if you just keep fielding the easy questions for me in here, and get started playing with scaling, that'd certainly help a lot! :D

    Thanks for all your diligence! It's great to see people as excited about this plugin as I am.
    --- merged: Feb 14, 2011 11:30 PM ---
    Yup!

    I don't really support that, I think I could, but I don't think I want to just to keep things core to the single-player experience.

    Maybe one day, once there's nothing left to improve with the basic mechanics...

    (There's always something to improve...)
     
  12. Offline

    Spooner

    Welp, for several updates I see the scaling feature added or fixed, and yet it never works for me. I type '/nether scale world nether 8' and it says "re-scaled to 8.00" and nothing changes. That and in the latest bukkit update the portals back don't work.
     
  13. Offline

    seanth

    Would it be possible to extend things to allow mobs to go through nether gates? It feels like something like that might be another plugin that communicates with this one.

    On a similar note, it'd be nice if it were possible to allow grass to spread through nether gates. So if you had grass on one side of the gate, and dirt on the other, there would be a slim chance that grass would spread onto the dirt in the nether.
     
  14. Offline

    FuzzeWuzze

    Huge bug, not sure if it was fixed. Not sure what version i had honestly but it was the latest as of sometime Saturday evening.
    The jars
    Nethergate (74,799 bytes)
    Persistence(465,272 bytes)

    When i enable this, if someone dies in the "real" world all of their items are gone. I noticed when i died with the mod on it was almost like my body was getting teleported somewhere when i died. When you go back to where you died there are no items. Needless to say people on my server werent happy losing all of their diamond items when some creeper got them or they fell off their building.

    Deleting the mod and restarting the server, problem gone away. Cant use this mod till fixed(obviously).
     
  15. Offline

    phaed

    Everyone seems to be dying and showing up dead with all their stuff at spawn on the regular world. Also permissions dont seem to be working, regular members are creating gates.
     
  16. Offline

    NathanWolf

    You've also got to change the default world scale to 1 to turn on scaling... not sure how well it's working, though, and even if it's working perfectly, it'll be hard to set up a paired portal with it turned on.

    When you say the portals back don't work, do you mean that the portals in the nether won't take you to world, but world's portals take you to the nether? If so, you can try "/nether target world nether world" and see if that fixes it.
    --- merged: Feb 15, 2011 6:45 AM ---
    Cool ideas!

    I've thought about tp'ing mobs, but I think there would just be too much lag involved- maybe someday I can do something to "fake it", so they only do it when a player is actually there to see it happen :)
    --- merged: Feb 15, 2011 6:46 AM ---
    They're not gone, they're wherever the player was when they died, just like normal- or they should be.

    I do you the kindness of tp'ing you back to spawn in your home world when you die... I think I may just turn this feature off, it seems to cause more confusion/bug reports than it's worth. Have fun stuck in the nether! ;)
    --- merged: Feb 15, 2011 6:50 AM ---
    BTW, came here to point out that for everyone who's been telling me that /nether go takes you to spawn always, well, you're right :p

    I have no idea why yet, I just noticed it while playing now. I've been doing all my testing with actual portals lately, so I hadn't really seen this happen.

    Will be fixed in 0.32, I'm sure.
     
  17. Offline

    heeen

    Is it possible that this plugin doesn't play nice with Essentials? when I walk into a portal I get into the nether, but the code I hacked into Nethergate doesn't show, but when I do /nether go it shows up...
     
  18. Offline

    Fischkopf

    Yeah your map WAS crazy .... think about the size of the map if the whole map would be explored :-o
    Maybe a little game .... who has a 1 GB map first? [​IMG]

    No time for Nathan -> no features for Fischkopf to play with [​IMG]
    And no problem =D happy that I can help ;) and yeah I'm pretty excited because I love this plugin ^^ the Nether is a pretty cool feature and I hope there will be maybe some materials for tools just found in the Nether or some new features in the future on Notch's side

    But yea, I will play around a bit with scaling .... and I'll be your "Easy-Questions-Answer-Monkey" ^^

    *wave* haha :D
    Take a guess who was one of them pointing this out =P
     
  19. Offline

    NathanWolf

    Notch's map data is sparse, so may map is actually still only about 15MB or something (ok, to be fair, that was it's zipped size, but still).... you're gonna have to do a lot of walking (portals or not) to get to a 1GB map ;)

    Agreed! The Nether is awesome, but it's kind of a shame you can't do more with the stuff you find there- though, I will say that glowstone is just about my favorite block, and if you didn't already know this, you should be using slowsand (soulsand, whatever) to pad your docks, because it won't break your boats.

    So, there is some cool stuff over there- just nothing to craft with :(

    Cool! Good luck! :D To be perfectly honest, I actually think it's working... it's just that you can't easily line up portals with it turned on, until I track them.... so, really, that's the main reason it's still off by default at this point :) So, hopefully, you could really have some fun with that- like I said, if you want to line up a portal pair with scaling on right now, start on the Nether (fast-travel) side- it'll be easier.

    Also, note that you don't have to use a nether world for fast-travel! I had a serious facepalm moment when I realized this myself :p It wasn't until after I'd already implemented "nuke", which probably could've waited if I had been testing in a normal world! :D

    Anyway, just thought I'd point that out....

    Dunno why I should even have had to guess ;)

    Well, yeah, thanks for that- no idea why that is, it's all the same code, yadda yadda. Pretty much since I fixed the "portal" spell to not leave portals lying around (it doesn't do that anymore, btw- I made Spells' undo system just hang unto it until the chunk loads again- assuming, for now, that you don't restart the server before I get a chance to clean it up...)

    Anyway, since that's been working so well, for testing I never use "/nether go" or the phase spell (which, really, should and do seem to be identical in behavior)- I just use the "portal" spell so I can be sure that what I'm testing will match what happens with a real portal, but I don't have to, you know, do the work :)

    I will get "go" and "phase" fixed, but I don't consider those core enough functionality that I need to jump right on it, I'm sure you understand. They still take you to the right world, at least ;)

    Thanks again for testing! I got a little sidetracked, apparently my permissions node names were all wrong- probably true for this plugin, too, I need to check. It may just be "Nether" instead of "NetherGate"- anyone using those?

    I've finally got Permissions set up on my laptop now, so I'm going to start testing those and adding the new pnodes I keep talking about- at least the one I can do before portal tracking.
     
  20. Offline

    Windwaker

    Thanks a lot. My members have been looking for me to get something like this for a long time and I didn't think until recently it was possible. [​IMG]
     
  21. Offline

    NathanWolf

    It wasn't, until pretty recently! (< 2 weeks ago!)

    Glad you enjoy- it's still WIP, of course, but it's really getting there, I think! :D
     
  22. Offline

    Insomniac

    Just a little more info with my portal miss-alignment issues.
    After changing settings around and diving through Portals like a mad man:

    Setting my world to have scaling of "0" gives it the same behaviour as the old version and puts me exactly infront of my original portal. (which is in a great location)

    Setting both worlds to scale 1, gives 1 to 1 scaling but seems to set the origin it calculates based on differently. Which is why I got 3 different portal locations like this.

    I think that when scaling is off completely, it uses the middle of the spawn area as its origin (much like when you start a new world normally), but with scaling turned on it seems to use the "top left corner" of the original grid of chunks generated, i.e chunk 0. Hope that helps!
     
  23. Offline

    NathanWolf

    Interesting- it might!

    The idea is that things are centered around (0, 0, 0) with scaling off.

    With scaling on, I try to center things around spawn- you can see where I think your spawn is with "/persist list global.world.world".

    I thought that, normally, this would be (0, 0, 0) by default- but it seems like maybe there's something wrong with that?

    Thanks for digging! I'm hoping to play more soon myself....
     
  24. Offline

    Shadow771

    Hmm, also, I'm not 100% sure it is this plugin, but whenever I use the TP that comes with General, it says wrong syntax, apparently wanting me to type it like a default TP. Could this plugin be causing that?
     
  25. Offline

    NathanWolf

    Huh, I really thought I'd answered this!

    Not, as in "why are you asking again?", but as in I typed up and answer and hit "Post Reply" and it's not here. Hrm! :\

    Anyway, I'm not entirely sure what you mean, but NetherGate shouldn't be interfering with the commands from any other plugin.

    I don't know how "tp" works in General, but the actual command may do some really weird/bad things if it's not written for multi-world, especially if you and the person you're teleporting to/from are in a different world!
    --- merged: Feb 15, 2011 8:26 PM ---
    Anyway,

    I found it!

    I had to share- I'm so excited :) I had found some "artifacts" previously, so I had been confident I could find my old Nether hub again- but so far, nothing! Even since finding it in MCMap, I hadn't been able to locate it... the Nether is just so darn vertical- it's impossible to actually find anything in there!

    So, today I was heading to some semi-remote place to portal over and test tree withering (I think leaves are supposed to change to a unique texture over time if you plant a tree in the nether... wanted to test that out).

    And, lo!

    [​IMG]

    Stairs in the Nether!

    I built them, of course, a long time ago. Now it's just a matter of tracing this (once, very dangerous) path back to my hub. I remember this area, it's kind of an extension of the core hub, it goes way off to the edge of my main map, or what used to be the edge, anyway.

    So, it used to be very dangerous. In single player (and here, without /nether nuke or magic), you basically can't use the Nether for fast travel until you've done the work of building a completely enclosed hub. The ghasts are just too .... tooo.. much. They're just too much.

    --- merged: Feb 15, 2011 8:28 PM ---
    Guh, this is so much easier with magic... I remember this being such a long, treacherous journey...
     
  26. Offline

    Ousmeister

    Hmm, i seem to be having a problem. I'm using the permission nodes
    - 'NetherGate.commands.nether.sethome'
    - 'NetherGate.commands.nether.home'
    in Niji's Permissions, but the players on my server still cannot use the commands. What wrong with it here?
     
  27. Offline

    NathanWolf

    [​IMG]

    I'm in!

    Sorry for all the screenshot spam, but I'm really very excited about this.. plus, you know, it's my thread so :p

    ;)

    Ok, just going to run up real quick the rest of the way, set my nether hub as my home (so I never have to find it again, even if I change scales! Woot!), and then my lunch break's over. Back to work!
    --- merged: Feb 15, 2011 8:42 PM ---
    Real quick, wanted to mention that the main entry portal to my nether hub is still activated! Crazy stuff... I wonder if all my portals over here are still lit up... I guess I don't see why not! Cool!

    After work, I get to find out where it points now...
    --- merged: Feb 15, 2011 8:44 PM ---
    Hrm- can you try "NetherGatePlugin" instead of "NetherGate"?

    That may be wrong, in which case I need to update the docs- and I definitely need to test this myself. I'll try it out tonight, if I can- I actually have Permissions set up on my dev machine now, at least... finally!
    --- merged: Feb 15, 2011 8:48 PM ---
    Hm- also, you could try giving them permission to use NetherGate.commands.nether as well- they might need that to use any of the sub-commands. Not sure, again, I really need to test this- sorry :(
     
  28. Offline

    Ousmeister

    I tried changing it to NetherGatePlugin and still no effect, my players still cannot use the command, and after changing it to 'NetherGate.commands.nether' with the seperate subcommand nodes, they still couldn't use it :(. They can use the - 'NetherGate.portal' nodes fine, just not the commands. Thanks for updating the spells so the commands nodes work now though :D.
     
  29. Offline

    NathanWolf

    Yeah- it's probably a similar issue :(

    I'll get to the bottom of it and release a 0.32 ASAP - hopefully tonight. We'll see... having... teething issues... :(
     
  30. Offline

    Phase

    Admins and such can use the nether portals, but normal users can't.

    I've tried:
    NetherGate.portal.use
    NetherGate.portal.nether.use
    NetherGate.portal.nether.use (where nether is the name of the world)
    Nethergate.portal.*

    and none of them are working, any ideas?

    Edit: Forgot to mention:
    This server is running Craftbukkit version git-Bukkit-0.0.0-406-g7b86244-b325 (MC: 1.2_01)
    This server is also sporting some funky dev build of Bukkit!
     
  31. Offline

    NathanWolf

    Ok, not sure what's going on- I did fix a minor Permissions thing in Persistence while debugging Spells permissions- but the main problem there, I thought, was with Spells.

    At any rate, it seems to work as expected on my dev server- so I just re-published 031 again- it'll have the new Persistence, so I guess if that's where the bugfix was, you'll be good. Make sure to update both jars (Persistence and NetherGate).

    Here's what my config.yml looks like (the relevant bits):

    Code:
       Wizard:
            default: false
            info:
                prefix:
                suffix:
                build: true
            inheritance:
                - Default
            permissions:
                - Spells.commands.spells
                - Spells.commands.cast
                - Spells.cast.blink
                - Spells.cast.portal
                - NetherGate.portal.use
    
    users:
        NathanWolf:
            group: Wizard
            permissions:
    I tried first without "NetherGate.portal.use"- I could cast "portal", make a portal, but nothing happened when I walked through it.

    After adding that last pnode, I did the same thing, and it took me to the nether.

    So, let me know what you find using the very-latest zip file! It will still say 0.31 at runtime, I didn't actually change any code, so I didn't bump the version number either :p
     

Share This Page