[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

    Afforess

    Nice! I'm always impressed by your work NathanWolf.
     
  3. Offline

    NathanWolf

    Also... I'm not sure how to disable mob spawning in the other worlds- it doesn't seem to respect the no monsters setting. This may be a known issue, maybe they'll resolve it somehow or give us an api, at which point I could give you all configuration commands.

    In the meantime... uh... watch out for those ghasts!
    --- merged: Feb 8, 2011 5:35 AM ---
    Thank you very much!

    This plugin is very rough... I've been working my butt off getting Persistence release-ready, mainly ... NetherGate is, like, stupidly simple at the moment. Should get cooler over time :)

    The really silly thing is that, since I'm not even tracking portals yet, all that persistence work isn't even really being used!

    This plugin will create and populate a whole lot of data right now, but very little of actually does anything NetherGate-related at the moment.. other than keeping track of worlds, which is, I guess, important.. :)

    Anyway, I always appreciate the compliments! You guys are great.
     
  4. Offline

    Spooner

    Well, first notes, without the location mapping and no auto gates being created, it has a tendency to dump you in lava. The fact that map scaling isn't there (walk 8 times farther in the nether than the normal world) takes away from some of it's luster. Otherwise great job, I very much look forward to future updates. :D
     
  5. Offline

    NathanWolf

    I hope that DinnerBone doesn't take this the wrong way, but I'm really enjoying the button and sign-smashing frenzy I'm having on all my gates right now... :)
    --- merged: Feb 8, 2011 5:41 AM ---
    Apparently the private-network-access Stargate I had in my house now points to a little sealed-in pocket in the Nether... I smell secret "basement"!! :)

    Seriously, though, don't get too attached to your portal locations just yet... though I guess you could always just map your worlds 1:1, that's what it's doing now.
    --- merged: Feb 8, 2011 5:42 AM ---
    BTW- the disintegrate Spell... very handy for fixing a mis-placed obsidian block.
    --- merged: Feb 8, 2011 5:44 AM ---
    Also, Spells users- as soon as I get it integrated with Persistence, I'll be adding a couple new spells that are, perhaps, relevant to your interests :)

    phase : Go to the next world, using the same mapping rules as if there was a portal where you're standing (won't create a portal on the other end)
    engage (or something.... ) - activate the target portal... the flint+steel is cool and all, but it just feels a bit more "magicky" to wave my wand at the thing and have it spring to life!
    --- merged: Feb 8, 2011 6:34 AM ---
    Totally agreed! Map scaling is my #1 top priority once I have the actual portal mapping working.

    And, yeah- when i create the portals, I will of course also create an obsidian ground layer if necessary, just like in single-player. It does try to find a spot for you to stand- but sometimes, in the nether, it's all lava, all the way down and air, all the way up.
     
  6. Offline

    QQCucumber

    To get around the whole sky issue, maybe you could make it so the sky has a layer of bedrock and netherrack at the top?
     
  7. Offline

    NathanWolf

    Some other devs have reported being unable to break or place blocks in the nether- I think there's a ticket open for it. It sounds like the problem resolves if you go back and forth a couple of times- but I imagine it would mean you'd be stuck there on your first visit, if so (can't place blocks, can't build a portal!) If you're an op, there's "/nether go", but if not... well, you'd be stuck!

    I haven't experience this myself, but it may be due to only sheer luck- I just played on my public server with another person, and she had the issue- couldn't place blocks.

    Let me know what you find....

    Hopefully I get a chance to work on this more this week- I am anxious to get the scaling/mapping working.
    --- merged: Feb 8, 2011 6:39 AM ---
    Oh, also- I wanted to say this, hopefully some of you may think it's cool, find it's useful.

    I've got my old Nether map, so I intend to do my best to get the location mapping algorithm as close to the original as possible- if I can get my portal network to link back up, I'd say that's a job well done. Not sure I'll be able to get completely there, but hopefully I can come close- and it's nice that I have a nice set of portals that have matching pairs already in the "right" places to test with!

    So, yes, this is a big priority- the Nether has always been about fast-travel for me, so I want to get that working ASAP.

    Plus, until the mapping is there, I wouldn't really want to create any linked portals, knowing they won't link up later when everything moves around.
    --- merged: Feb 8, 2011 6:41 AM ---
    I think the Nether is entirely encased in bedrock.

    Actually, I'm sure of it- I've had the respawning glitch on me a couple of times already (not my fault, I'm assuming?) and ended up "on top" of the Nether. It's a giant bedrock plane, it's crazy.

    Anyway- the sky being visible in the screenshot is mainly due to my render distance.

    I think DinnerBone may have mentioned that they were working on getting the red sky working in the hellworlds, but I could be wrong- it may be some core API thing that we just don't have access to.
     
  8. Offline

    Rigby90

    If I remember rightly he mentioned that there's nothing they can do as it's apparently Client Side. Something about when you login Server sends what kind of environment (Nether/Normal) you're in, and then never does again.
     
  9. Offline

    QQCucumber

    Yeah, you're thinking of hearing the explosions globally.
     
  10. Offline

    Nuuudel

    Can all playe r on the server create a portal? or only Admins. ? Or can the Admin give rights to build the Portal?
     
  11. Offline

    NathanWolf

    There's a big ole' "Permissions" section in the OP :)

    For now, anyone can create and destroy portals- there is no BlockListener in here, I don't react to the player doing anything other than moving through a portal.
    --- merged: Feb 8, 2011 11:59 AM ---
    0.12 is a minor, but handy update!

    Thanks to Spooner for testing- this one's for you :)

    It will now check and see if it could only find lava or water, it will make a single obsidian or ice block for you to "safely" stand on (a relative term if you've just portalled to the nether in the middle of a big pool of lava... but at least you don't die as long as you're careful!)

    I'm thinking of keeping this functionality for "/nether go" and the phase spell- but of course I do still plan to make a platform for the actual gate once I am creating new ones.

    The auto-gate-pair-creating feature is going to be optional somehow, by the way (via a config file or console command). I'm also going to try and use my undo system when placing portals, so you can revert it back later, if someone makes a portal that happens to link up to the inside of your living room or something.

    I could also make it so you could move portals around eventually- maybe at least just send one up to the next best place above where it is now.

    Better permissions and some some of integration with an area protection plugin would definitely be two good future features.
     
  12. Offline

    Kane

    CraftBukkit: master Dinnerbone * a852aa0 (3 files in 2 dirs): Implemented new Server methods (getWorld + changes to createWorld) - http://bit.ly/dFQC4V
     
  13. Offline

    Sol

    NathanWolf, you sir win at life.

    Awesome plugin taking advantage of the new bukkit addition.

    Easy to install, worked first go. Looking forward to replacing all of those damn brazier fires now with Netherrack since logs no longer infinatly burn (I'm guessing due to bukkit modifications)!

    Awesome work man.

    Just a suggestion you may or may not add (it may be better to suggest it to the creator of the other plugin I am about to mention) but;

    I use the Guestbook plugin (found here on the forums) which is easily the best thing to use to protect your server from "tourists". They can still log in, but can't do anything to destroy the world etc... any chance you could make it so people NOT on the guestbook can't use portals?

    Thanks in advance :D

    ~Sol
     
  14. Offline

    NathanWolf

    I know (especially from my previous experience with Spells) that permissions are a Big Deal to people, and rightly so.

    After a lot of consideration, I think I'm going to integrate Permissions when I get a chance (Spells, too). I'll transition to built-in bukkit permissions (with backwards Permissions compatibility, for a while, if necessary) when they're ready.

    That's the current plan, anyway- this subject is something of an "up in the air" thing for me :)

    However they're implemented, here's what I currently plan for NetherGate (in terms of permission nodes):

    • Permission to use portals (only works on portals that are already paired)
    • Permission to use unpaired portals
    • A permission that specifies that gates used by this player will auto-create a pair
    • Permission to use the various nether admin commands
    • Fine-grained permissions using named portals / portalareas
    I do not plan on preventing players from destroying portals. I've been thinking about it, and I think I this is best left to a world-protection plugin.


    All of the above can be implemented very cleanly- I think NetherGate will continue to be BlockListener-free, which is honestly something of a surprise to me.

    I'm hoping this will keep things super efficient- if you ever suspect NetherGate to be lagging things, please let me know.

    I tried to keep the event-driven logic very tight. It listens for player movement- first it checks to see if you've moved blocks (as an early-out- Bukkit, unlike hMod, sends move events for movement within a block).

    I then checks to see if the player is in a portal block- if they're not, I do a quick check to see if they had been previously teleporting- if so, I flip that player's state (this is needed to prevent you just bouncing back and forth between portals once they're paired).

    If they are in a portal, I teleport 'em. Since I'm not managing portal blocks myself, all I have to do is check for a block type- so no expensive lookups into the portal data to search for nearby portals, or anything like that.

    That's basically all the logic there is in this plugin, the rest of it is just the details of mapping positions, and (eventually) auto-creating gates.
    --- merged: Feb 8, 2011 1:05 PM ---
    Looks like he may be automatically checking for duplicate world registrations now- he warned us devs about that, so NetherGate's already covering it on its own- a belt+suspenders is never a bad thing, though :)

    I'm still getting that strange "player moved unexpectedly" console message from time to time- it seems to be harmless, but I'm guessing there are still some things to work out internally with multi-world. It's a pretty freaking huge change considering the base server software doesn't really support it yet!
    --- merged: Feb 8, 2011 1:06 PM ---
    Thanks for that, by the way! [​IMG]
     
  15. Offline

    jessenic

    So, how is this working with the WarpGate mod? It uses nether portals too.
     
  16. Offline

    NathanWolf

    It's probably not! :)

    I imagine one-portal-plugin-per-server is pretty much how you should go.

    Functionally, they will not get along at all- you'll probably get tp'd twice, but whicheveer plugin has the lowest priority would work, if I had to guess.

    And then, from a gameplay perspective, even if they did work- it's very confusing to have two different kinds of portals that operate completely differently in the same world. This is more a matter of opinion, I suppose- but the functionality is a bit different.

    I'd say keep using WarpGate or ServerPort if that setup works for you- I don't mean to replace them or even compete, not at all- I just, personally, want something a little different for my server, and that's the niche that NetherGate fills.
     
  17. Offline

    jessenic

    Ok, What if I replace the warpgate portal blocks with water? I think warpgate just checks the player location and teleports when the location is same where the gate was set. I'm not sure though.
     
  18. Offline

    NathanWolf

    If WarpGate can handle that (and then it's a better man than I! ;)), that would definitely work.

    Basically, NetherGate makes the assumption that portal blocks are un-natural and only exist in portals.

    If you were to, say, spawn a portal block into the world and walk through it, it would go ahead and teleport you. The portal frame is just for decoration, really :)

    In fact (Spells stuff follows), I'm been thinking about the phase spell, and I thought it'd be much cooler to summon a frame-less portal instead of switching worlds directly- a 2x3 plane of portal blocks. You could then just walk through it (or, even better, let your friends walk through it!).

    I'd use the (uh, currently-broken) auto-undo system to remove it after a few seconds.

    I'm so excited about this idea that I am considering going and doing it real quick- so please forgive me if I don't get a NetherGate update out quite as quickly as I would (still should be soon, though!)
     
  19. Offline

    jessenic

    Ok, I tried it on my test server and it works. But I can't make the water to stay in the warpgate :S
    Maybe I'll make the warpgates use iron blocks or like that as a frame and nethergates use normal nether gates :)
     
  20. Offline

    NathanWolf

    Ha! LOL - yeah, I guess unless WarpGate handles that in some special way, that would be a problem... heh, didn't think about that.

    Hm... maybe try snow?

    I'm trying to think of other blocks you can walk through that don't, you know, flow :)
    --- merged: Feb 8, 2011 5:03 PM ---
    Hey, I guess I forgot to announce this here, but the latest Spells has NetherGate integration!

    I now include Wand and Spells in the zip- sorry if that feels presumptuous, I promise it's purely a matter of it making life much easier for me in terms of deployment- Just delete Wand.jar and Spells.jar if they offend you ;)

    Anyway, there are now two new spells: phase and portal. I ended up doing both :)

    The portal spell uses my current portal-creation testing code for NetherGate, which isn't working entirely yet. I need to play with BlockPhysics more, which is NetherGate work- but I wanted to get this version of Spells out there, because it's useable, and very fun!

    I mentioned this in the Spells thread, but I'm just gonna say it again because the idea tickles me in such an evil way

    If you really want to treat a griefer on your server right take them on a "little walk". Tell them you just installed NetherGate, and you want to show them something....

    Then, cast portal and tell them to walk through- follow them, or phase if the portal closes too quickly.

    Then, enjoy their appreciation of the Nether for a bit, especially if they haven't ever seen it.

    Take them on a tour, find some ghasts, maybe incite a pigman riot...

    Then, phase the heck out of there, and leave the sucker permanently trapped!

    Unless he stumbles across a portal home, I don't think there's a way back- you respawn at the Nether spawn point when you die.

    Fun fun fun!

    Obviously, for the purposes of this story, we'll assume that portal was working right, and that NetherGate was functional, such that all gates weren't inherently one-way to begin with (eliminating the need for portal to make this work).

    Ok, thanks for indulging me- back to work now :)

    EDIT: As fun of a story as this is, once NetherGate has permissions, using multiple levels of worlds based on griefness would actually be a really elegant anti-grief solution.

    Your trusted members could use any portals. By default, people get dumped in GriefWorld (which doesn't have to be a hellworld- you don't gotta be mean about it!).

    There can be a bunch of portals in GriefWorld, but only the nice people can use them to go to the safe worlds.

    I'm really starting to like this idea. I'm sure it's been done with ServerPort a zillion times, but, you know, I'm still excited :)
     
  21. Offline

    Fischkopf

    At first, I really like all your Pluging Creations :D
    Exspecially Spells is one thing I really love ..... great for having fun.

    But I have one Question, do you ever plan on implementing transportation in a world or will Nethergate always be for World-Nether transportation?
     
  22. Offline

    NathanWolf

    Great question!

    So, now you get a very long response.... :D

    I do still plan on allow intra-world travel (if I'm using that word right...)!

    It's going to work just like the original plans for NetherGate. This is all backburned right now, and I want to get back to Spells once core NetherGate is working, so I make no guarantee as to when any of the following will get done... it'll likely come out in phases, though, something like this:
    1. Allow use of "/nether create area <areaname>" to create a PortalArea, using the existing "fake nether" terraforming code. Note that this command is actually available now, but it doesn't really do anything useful beyond terraforming, and may or may not be functional ATM, I haven't had reason to play with it since multi-world was released :)
    2. Add more admin commands for managing PortalAreas and Worlds, and as well as naming and managing specific portals (to create one-off special case portals).
    3. Allow some way (two-point cuboid-style selection, probably) to define PortalAreas on your own, without having to terraform an underground area.
    4. Maybe provide more terraforming options? I really enjoyed working on that code, and it would need to be worked on more to get released enough for #1 anyway- so adding biome support would be really cool.
    That's pretty much it for the long-term NetherGate roadmap- the short-term should be pretty clear given the previous discussions and posts.


    Let me expand on the PortalArea more, to make sure it's what everyone has in mind, and we're all on the same page-

    A PortalArea can be of any size, theoretically. Right now, I cache them by chunk- but I don't think that will work long-term, since I need to be able to look up an area by its external (target) area as well as its internal area- and once the location scaling is working, the target area could be quite large. So, I'm probably going to have to implement chunk spanning if I want to keep caching that way... anyway, I'm hoping I don't run into performance problems that make this difficult- I figure if Cuboid, WorldProtect, etc can do it then I should be able to as well! :)

    For all intents and purposes, from a portal perspective, a PortalArea behaves just like a World- it's got a relative scale, it's got an auto-target which could, for a World or PortalArea, be another World or PortalArea.

    Portals placed inside of a PortalArea behave the same way- they'll link up using the scale of the PortalArea and its target, along with some center points (spawn/center by default, but I'd like to make them moveable).

    You can have however many PortalAreas in however many Worlds you want.

    The thing with Portals- once they're created, they're kind of their own thing. Portals inside of PortalAreas are managed (so I know whether or not to link to a PortalArea when you create a portal, instead of linking to the default world of wherever you are).

    Otherwise, once a portal linkage is created, it's bound that way and persisted. That means that if you were to change the rules of the world, or create a PortalArea around that portal, it wouldn't be affected- it will still point to the portal it was originally bound to.

    This also implies what I said above, you can re-link portals to your heart's content, since they maintain their own target. This should actually be available pretty soon* (re-linking portals, not PortalAreas), at least via raw MySQL editing.

    By "pretty soon", I guess I basically mean "When I get portals actually linking together, by nature you'll be able to reconfigure them" - that's basically the whole idea behind Persistence. :)
    --- merged: Feb 8, 2011 6:42 PM ---
    Oh, and finally- while I'm tooting my own "Persistence" horn, there is actually quite a bit you can already do with NetherGate, if you're willing to get your hands dirty! Try this:

    Code:
    /nether create world FunWorld
    /nether create world GriefWorld
    You could then use SQLite Manager (or some other tool, that's just what I use because it's simple and cross-platform) to edit global.db.

    Look in the "world" table, and notice the "targetWorld" field. Modify that to your heart's content....

    Now, I haven't tested this, but you could try (and I am going to try) null'ing out GriefWorld's targetWorld, and then linking FunWorld and World1 (or whatever your default world is named, it should be in there if you've portalled at least once) together.

    If you set up GriefWorld to be your default world, then you've basically got the setup I describe above- except that no one, ops or otherwise, could use portals in GriefWorld. You'd have to issue a "/nether go FunWorld" to get out.

    Anyway, if you're going to play with this, it may be best to do it with the server shut down- though you could try a "persist reload global.world" from the server console (or in-game). I haven't tested this much yet!

    And, also- make sure your targetWorld matches the name of a world in the worlds table! Create your worlds in-game first, then change the targets around. (Though, if you're really feeling saucy, there's no reason you can't add rows directly to that table, I guess...)

    One final note- I don't think NetherGate ever issues a persistence.save. Persistence itself only saves on shutdown and player login/logout. So, you either need to logout or use "persist save" to force a save before you'll see recently-created data in your database.

    Ok, that's all for now - I'll let someone else chime in :)
     
  23. Offline

    majorcyto

    You are correct they submitted a report to Mojang for help with this.
     
  24. Offline

    NathanWolf

    Sweet! Thanks for letting us know, that's very cool. Mojang is great- they have a lot on their plate, but I'm sure they'll get it to us eventually.
     
  25. Offline

    Fischkopf

    Whoa ..... a pretty giant answer [​IMG]
    So the, i'll use your word creation, intra-world travel will come but for now you have no real idea why ... good so i'll have to use some other plugin for that.
    But I hope you will implement it "pretty soon" ;) and i'm really exited what you will bring is next with NetherPortal and your other plugins :)
     
  26. Offline

    NathanWolf

    I should clarify...

    intra-world travel will come soon. It's really on the near-term list, so before all that PortalArea stuff.

    You'll be able to re-link portals, or create one with an admin command, so that it targets a specific world, or link it to an existing named portal.

    When that comes, you'll easily be able to set up two portals in the same world that link to each other, or set up a daisy chain of portals to various places in your world. Portals don't really need to be paired or symmetrical in any way- they just point to another portal.

    PortalArea is something different, something more- a way to basically make all of that kind of stuff above happen automatically- so, depending on where you are, a portal (created the normal way) may point to a different place.

    Portals build the normal way are always going to automatically bind- so I'm trying to make that system as flexible as possible so you can do whatever you want with ti.
    --- merged: Feb 8, 2011 8:08 PM ---
    Wow, I'm really liking this idea! So much so that, realizing I can actually get this set up on my public server remotely... I just did it :) I went ahead and set up four worlds on my server, 2 normal and 2 nether, they each point to one another.

    One pair contains the default world and is for new users, one pair is for my existing small group of friends that comes to play.

    Meaning, now I finally feel comfortable making it public as in public as opposed to just "has a public URL". I still haven't gotten any kind of protection mods installed since moving from hMod, so I've been a little wary..

    But now I have no fear! Come one, come all!

    I think it'll be a fun way for people to come and try out the latest spells and portal tech. It now occurs to me that, somehow, I have neglected to make a "default" group in Spells' permissions, so I'll be doing that soon.

    So, please, come visit!

    mine.elmakers.com

    Yeah, not exactly "security through obscurity" :)

    I've got dynmap set up at http://mine.elmakers.com, it's not multi-world compliant, but since you'll be in the default world it may still work fine. If you see me on the map, and I'm not actually there- i'm probably in a different world :)

    Also, I don't have minecraft handy, so I can't really test this ATM - I did basically what I described above, ssh'd global.db back and forth while the server was shutdown- no errors on startup, so I assume everything worked ok :)

    (really bad assumption, actually, since worlds are loaded on demand, so not until someone portals...)

    Anyway- have fun!
    --- merged: Feb 8, 2011 9:18 PM ---
    Update :)

    I got a chance to jump on my server and try this out, and it turns out I made a pretty crucial mistake and I want to share!

    From what I can tell, if you create a nether world on top of an existing (normal) world, it will overwrite that world! Yikes!

    I'm not sure about the converse, but I imagine it's true- if the world type doesn't match what you asked for in createWorld(), it will create a new one and overwrite the one that's there.

    So- if you're trying to import an existing normal world, make sure to use "/nether create world normal", and be sure to back up your world data first- I hope that goes without saying :)

    Same applies for directly editing the db, like I did- I needed to change the "type" from 1 to 0. 1 is a nether world, 0 is a normal world.

    Oops! All fixed now, though. As soon as I get a chance to get default Spells permissions working, you all can come and wreck up the place with some crazy magic :)
     
  27. Offline

    Fischkopf

    Ah great .... then i was really misunderstanding you .... sorry English is not my native language and after a long text the true meaning often fades a bit from my mind ^^ haha [​IMG]
    But great if the intra-world travel is coming soon, I'm looking forward to it
     
  28. Offline

    KillerBunnys122

    Is there a way to remove the ghasts?

    Getting blown up by nothing isn't all that fun.
     
  29. Offline

    Spooner

    Sweet action, thank you VERY much, nice to see that you're a listener. And it is a good idea for configuration on auto gates. :)
     
  30. Offline

    iSushi

    How does this plugin work?, if it touches my maps I can't use it. Since I use rootfolder/maps/(map)
    Then you'll need support for maps in folders. :)

    Since I use eeet~
     
  31. Offline

    Sammy_Kpatrix

    Where do I put the lib folder...
     

Share This Page