Inactive [TP/MECH] Nethrar v2.3.1 - No-command minecart supporting Nether / multiworld portals [1.3.1]

Discussion in 'Inactive/Unsupported Plugins' started by akrieger, Apr 1, 2011.

  1. Offline

    akrieger

    Nethrar - Unrestrictive Nether / multiworld portals, with ridden and riderless minecart and boat support, and many options for the power server admin.

    Version: v2.3.1 (Dev v2.3.2a)

    Nethrar is a Nether portal implementation that aims for simplicity and as unrestricted usage as possible. Portals are created and used almost exactly like in SSP. Build a portal, light it on fire, and go! No commands, no required Permissions, and nothing else meta-gamey to use. Spatial compression is implemented, with configuration settings allowing varying ratios, even a Nether which is larger than the Normal world it is attached to! Portal pairs are automatically created, and even saved between reloads.
    Nitty gritty details (open)
    A somewhat conservative heuristic is used to link portals in the smaller world to portals in the larger world (the Nether is the 'smaller' world, usually), to avoid portal spamming the larger world. Additionally, portals will never destroy a pre-existing portal; rather, they will simply link to that portal.
    Stepping into a portal in one world will first try to find a portal to link to in the destination world, then build a new one if none is found. The tl;dr version of this search is "Is there a portal in the destination world, that, if newly created and stepped into, would link to this portal in this world?" If so, link to that portal, otherwise build a new one. What determines whether a portal in one world links to one in the destination world? Essentially, if the hypothetical 'perfectly positioned' counterpart, in the destination world, to the first world's portal would conflict / intersect with an existing portal in the destination world, then the already-present portal is chosen as the destination. Note that this overall strategy is to prevent creating portals unless absolutely necessary, but can make generating distinct unique portal pairs in close proximity difficult.
    If you really want to know what the name comes from, you can ask, but it's really not important.

    Features:
    • Drop-and-go: defaults provide full, basic SSP-like functionality for most servers. Just drop the .jar file into your plugins directory. Nethrar should now be able to guess most parameters, but if there is any doubt, check the generated worlds.yml file. **Current bug: due to changes in the way configurations work, the default worlds.yml file is no longer generated. This will get fixed in the next release.**
    • Total multiworld support. Whatever arbitrary world configurations you wanted, now you can have them.
    • Portals 'remember' their destination, so world loops are possible. For example, if I have it set up that portals from world A go to world B, and portals in world B go to world C, and then finally portals in C go to A, what would happen if I build a portal in A, which leads to B, and then step back through it? I will go back to A, not to C. This 'memory' is preserved with clean server shutdowns.
    • Facing, orientation, and when applicable velocity, are preserved going through the portal, for the smoothest transition possible for players.
    • Minecarts carrying players function seamlessly. Minecart tracks should lead to and from the portal on both sides, on the same elevation, for minecarts to work properly.
    • Minecarts can now go through portals riderless! Powered minecarts are not supported, but empty minecarts and storage carts both go in and out unassisted. For best results, use with the force-chunk-loading feature.
    • Boats can be driven through portals too! If you are linking between two water worlds, or a water and normal world, you can now paddle through between the two.
    • Chunk keep-alive: For servers strapped on disk IO, or lower-performance servers, teleporting can be a real bummer for everyone on the server. Nethrar can be configured to keep chunks loaded in a radius around portals, increasing RAM usage, but decreasing the amount of resulting lag from teleporting through portals.
    • World blocks: Each world can have a 'world block' assigned to it, like wool or a gold block or stone. If you create a portal with a particular world's world blocks in the top two corners, then that portal will link to that particular world. This lets you make permanent 'special' portals that go places regular ones won't.
    • Custom world generator support for any world.
    • Configurable settings include:
      • whether to use permissions or not.
      • whether to redirect respawns or not.
      • how many chunks around a portal to keep loaded.
      • whether to allow riderless vehicles.
      • how much debug logging to print (currently there is very little even at the most verbose setting, this is more for helping me with debugging).
    • It works.
    **** Important Note: You should turn off the default Nether functionality if you are going to use Nethrar. Failing to do so can cause random and unpredictable double teleports, teleport loops, or worse. Set "allow-nether=false" in server.properties, or add it at the end. This will notdelete your existing Nether, it will just prevent the portals from teleporting you if you stand too close for too long. ****

    Download Nethrar (.jar, config, worlds) (.tar.gz, .zip)
    Dev build: (.jar). Changes: see my post.

    Source (github) (LGPL licensed)

    Configuration / Installation, most people: Download Nethrar.jar. Put it in your plugins/ directory. For most people, this is enough.

    Configuration / Installation, fewer people: If you had trouble with worlds not being what you expect, or if you want more power, then do the following. The plugin will put a config.yml inside a directory called "Nethrar" in the plugins/ directory. Set the following parameters in config.yml for your particular server. Also, edit worlds.yml to describe the world setup YOU want for your server. Assign the relevant Permissions nodes as you see fit.
    config.yml (open)
    Code:
    # Set to true to use Permissions, otherwise everyone gets
    # all permissions.
    usePermissions: false
    # Set to false to use builtin vanilla respawning behavior.
    listen:
        respawn: true
    # Set to some number > 0 if you experience server-wide lag
    # when anyone teleports.
    forceLoadRadius: 0
    # Set to true to allow minecarts / boats to pass through a
    # portal without a Player passenger.
    riderlessVehicles: false
    # Set to 1 or 2 to increase the amount of console messages
    # Nethrar will show.
    debugLevel: 0
    
    worlds.yml (open)
    Code:
    world:
            environment: normal
            destination: world_nether
            scale: 8
    world_nether:
    # Note that the environment field is *required*
            environment: nether
            destination: world
            scale: 1
            peaceful: false
            respawnTo: world
    # Add more worlds here, or edit the ones above as you see fit.
    # For example, to make a loop of normal -> Nether -> SkylandsPlus -> first normal, do the following:
    # world:
    #        environment: normal
    #        destination: world_nether
    #        scale: 8
    #        worldBlock: 57
    #        ^ Any portal made with diamond blocks in the corners will link to 'world'.
    # world_nether:
    #        environment: nether
    #        destination: world_skylands
    #        scale: 1
    #        peaceful: false
    #        worldBlock: 42
    #        ^ Any portal made with iron blocks in the corners will link to 'world_nether'
    # world_skylands:
    #        environment: normal
    #      worldGenerator:
    #              name: SkylandsPlus
    #              args: if there were any args to pass to your world generator, they would go here
    #        destination: world
    #        scale: 8
    #        worldBlock: 41
    #        ^ Any portal made with gold blocks in the corners will link to the 'world_skylands'
    # Note that to make a SkylandsPlus world, you'll first need the SkylandsPlus mod, which you can get [URL='http://dev.bukkit.org/server-mods/skylandsplus/']here[/URL].
    Permissions (open)
    Code:
    # Allows usage of Nethrar portals.
    nethrar.use
    # Allows usage of Nethrar teleportation.
    nethrar.tp
    Commands (open)
    Code:
    # Teleports the invoking player to the destination world.
    # Places a single block of glass at the destination under the feet.
    /nethrar tp world 
    Not issues:
    • "I'm using MinecartMania and when I go through a portal I don't keep moving!" Obsidian is the default "minecart stopper" block in MinecartMania. Either power the obsidian block on both sides of the portal with redstone, or change the stopper block to be something other than obsidian.
    • Transitioning between worlds can be a little laggy. I am trying to mitigate this, the Bukkit devs and community are making great progress making teleports suck less, but there is nothing we know of that we haven't done to make things better. Sorry.
    • "Help I fall and sometimes die when I teleport between worlds!" Best thing I can say is: make sure you're running an up-to-date build of CraftBukkit, and it's lag-related, but it's nothing I believe I can solve any more than I have already tried.
    • "Why didn't I respawn at my bed?" Recent versions of CB should fix this, and Nethrar will support this soon as well even with respawn redirects.
    • "Help I am always respawning in the default world." Unless you are using Nethrar respawn redirects to keep people who die in one world to respawn in the same world, this is working as the Bukkit devs seem to want it to work.
    Known issues:
    • Chunks can sometimes, but less commonly with newer (860+) builds of CB, fail to load when transitioning between worlds, and only load on relog. Portals can also stop functioning when this occurs. Set "forceLoadRadius" in config.yml to something greater than 0 (reports say that 4 tends to work, I would recommend something between 2 and 4).
    • Camera orientation is not preserved when travelling through a portal in a minecart. I suspect some deeper issue with the server when putting a player into a minecart.
    Potential future development (open)

    • Pre-emptively generate or load chunks in the Nether which are 'known to be needed.'
    • Allow minecarts with any passengers to teleport between worlds. Works best with force-loaded chunks to enable physics with no players present.
    • Enable teleportation of *any* entity - animals, mobs, mobiles, etc.
    • Auto-link / generate nether for new normal worlds, as option.
    • Teleport delay. Obviously incompatible with vehicles.
    • Per-world End support., if possible.
    A note about future development: This is a side project first and foremost. Development was primarily driven by my and my friend's needs on our personal server, and future development will be heavily influenced by that. If there is sufficient demand by the general public and users, then I can implement other features, but I am not compelled or otherwise forced to do so. Just FYI.
    Changelog:
    Version 2.3.1:
    • 1.2.4-R1.0 support.
    • No major changes besides updating to remove deprecated API usage.
    Version 2.3:
    • 1.1-R3 API support.
    • Added support for custom world generators. Environment is still required, add key values worldGenerator.name to specify a world generator plugin, worldGenerator.args for additional args for the generator.
    Older changes (open)
    Version 2.2.1:
    • Removed 'physics!' spam.
    Version 2.2:
    • 1.0.1-R1 support.
    • Added support for teleporting to The End. Set the target world's enviroment to 'the_end' or the equivalent. Portals might not be able to be reignited once in The End, so beware!
    • Misc fixes and logging.
    Version 2.1:
    • Implemented world blocks. World can have an optional "worldBlock" property, an integer, defining a block ID for that world's "worldBlock." Any portal made with that block in the top two corners will link to that world.
    • Updated to use Bukkit builtin permissions. You must use a compatible permissions plugin to use this. Read http://forums.bukkit.org/threads/permissions-faq.25080/ for more information.
    • Still uses sync threads to do teleportation.
    Version 2.0:
    • Added easier drop-and-go installation code and support.
    • Added true multiworld support. See worlds.yml for syntax and examples.
    • Added per-world custom destination world.
    • Added per-world custom destination world for respawns.
    • Added command "/nethrar tp world"; Use it as a server admin to get between worlds to set up portals for people.
    • Added portal destination persistence to help with more complicated world setups.
    Version 1.5.1:
    • Fixed teleporting when riding a minecart so that everything happens in a thread, instead of half in a thread and half synchronously (it's not okay to be a passenger of a vehicle in another world, eh?).
    Version 1.5:
    • Fixed "moved too fast" issue causing disconnects. Unfortunate side effect: teleports exhibit just a wee bit of lag before actuall occuring once you hit a portal. Depends on the server's load at the time. This will have to wait for if/when the Bukkit team fixes the checks around that disconnect.
    • Riderless minecart teleportation! Hidden Netherworld logic, long-distance unassisted storage cart teleportation, possibilities abound! Supposedly will work great with Evercart.
    • Boats! Now you can enable your crazy multiworld water coaster. Not tested as thoroughly as it should have been, buyer beware...
    • Various refactoring to help prepare for Nethrar v2.0.
    Version 1.4:
    • Added option for it to always be night in the Nether (default true).
    • Changed Permissions support to default to false, change to true if you want to use Permissions.
    • Added chunk loading prior to teleporting through portals, to help alleviate more transition issues.
    • Nethrar now generates a config file if one is not found.
    • Added some checking around where Nethrar determines which block a player has interacted with, due to people reporting a situation where a player can be "in a vehicle" but either the vehicle, or it's location, are null. This will help prevent NPEs.
    Version 1.3:
    • Added configuration option to enable a 'peaceful' Nether, empty of Ghasts and Pig zombies.
    • Switched to using a more polite chunk unloading function.
    Version 1.2:
    • Added configuration option to keep chunks loaded in a variable sized radius around portals. Set "forceLoadRadius" in config.yml to > 0 if you are having issues with falling or with chunks not loading after transitioning.
    • Added "NethrarMinecartTeleportEvent" which is called after a player is teleported with a minecart. Plugin devs, listen for this event if your plugin does things with minecarts, and needs to know when minecarts suddenly move or get added/deleted.
    Version 1.1:
    • Added Permissions support for permission node "nethrar.use" - give users this permission to enable use of Nethrar.
    Version 1.0:
    • First release, with minecarts and conservative portal linking and configurable spatial compression, etc.



    If you like this, and you use Bitcoins, and you feel like being generous, send some my way at 1Lwcw5awgpHyrhpWd4qc3dKPaDHpttm1Vh . It doesn't have to be more than 0.001 BTC, I'm very much a penny BitCoiner, but the thought is appreciated :)
     
    iWeirdo, Lizardbones, woodzy and 6 others like this.
  2. Offline

    akrieger

    Who throws the error, Nethrar or Residence? Sounds more like Residence should be modified to load the world needed íf it's not found. I'll look into it, though.
    Bear in mind, with 1.6, everything is going to break, and break hard. I was hoping to get v2.0 of Nethrar out before 1.6, but I don't know if that will happen.

    Alternatively, try setting the "Global.MultiWorldPlugin" config variable to "Nethrar" and seeing if that helps. I believe that is the correct fix, since during the enable phase, Residences will load and enable that plugin if it isn't already loaded.

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

    Pjstaab

    Any chance to get storage carts to go through portals? The author of EverCart is polishing his code up soon and it would be epic to ship supplies through the nether.
     
  4. Offline

    akrieger

    v2.0 should support that, but it is less clear if it will work as nicely if there aren't players on the other side. Forceloadradius may be necessary for that.
    Edit: seems like EverCart would fix the chunk loading, so all I'd have to do is figure out the teleport. Heck, it might not even need a special teleport.
     
  5. Offline

    Pjstaab

    Sweet.
     
  6. Offline

    Lunar Delta

    I just want to say, I have been impressed with this plugin's speed and reliability. It has worked flawlessly since the moment I first used it. I truly hope you don't stop developing it due to 1.6 having nether, because I am certain yours is faster, more reliable, and probably easier on the server too.
     
  7. Offline

    akrieger

    Thank you! I really appreciate it :)

    The fact that vanilla 1.6 is, currently, slow as a glacier, and probably does portal linking / spatial compression in a brain-dead manner, then no, I do not plan to stop developing Nethrar. Plus, I was about || close to releaing v2 of Nethrar, but Notch beat me to it :p I might still release v2, so that people can use it and play around with it during the transition to Bukkit 1.6. Turns out, the yaml configuration system is obnoxious to work with >.>

    Edit: For example, I just walked 8 steps in the Nether and built a new portal. The new portal shouldn't link back to the first portal I made in the real world >.>
     
  8. Offline

    Pjstaab

    Yeah, i'm curious to how your plugin will work. So far it looks like there is just a nether option in the server properties and i'm just going to disable it there.
     
  9. Offline

    akrieger

    Teleportation is just broken right now. Make sure you back up your world files. I'm sitting on top of things, but so far things aren't looking good.
    If you want a hackish work around, rename your nether folder to be your world name with "_nether" appended. So, if your normal world is called "world", rename your nether world to "world_nether" and change the world names in the Nethrar config file, as appropriate.
     
  10. Offline

    Pjstaab

    I tried almost every combo but this one, i'll give it a whirl.

    Well I ended up not trying it since i'm not going to play anyway till bukkit's ready but do you think you could maybe do the same thing for the sky dimension thing? 303 found notch's code and implemented it into single player over http://www.minecraftforum.net/topic/57136-v164-303s-mods-sky-dimension-on-earth/

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

    akrieger

    It all depends on what Bukkit implements, but I don't think there should be a problem. I took a look at the new code and it seems like it should work.
     
  12. Offline

    Pjstaab

    Sweet, I like to hear that. Spatial compression of nether for uber overworld compression? Like 16:16:1
     
  13. Offline

    akrieger

    Whatever you want, the space ratio is configurable already :p
     
  14. Offline

    Pjstaab

    Skyworld portal rooms to nether portal rooms to the main world. Sounds like I need to get some more friends to come play with the 4 of us that play on my little server.
     
  15. Offline

    xorvious

    I know its a little early to know, but if we continue to use Nethrar, do you think we will get the benifits of the official nether such as visible ghast fireballs and no noise bleeding over?
     
  16. Offline

    akrieger

    Assuming Bukkit teleportation takes advantage of the official teleportation mechanics added by Notch, then I don't see why not.
     
  17. Offline

    caloletti

    Omfg! This is a very beautiful nether :)) generated by the plugin on 1.6.5...It's unstable on this version :|...hope bukkit will launch a stable version :D
     
  18. Offline

    akrieger

    Yeah, um, 1.6+ broke the world-thing pretty badly. What you can try doing is, if your primary world is called "world", then rename your nether world to "world_nether" in the config file, and also whatever world you want to be your nether world. That seems to work for me.
     
  19. Offline

    Pjstaab

    I end up in random places when I go through portals and there isn't even a matching portal where I end up so i've resigned myself to waiting for a RB.
     
  20. Offline

    Greylocke

    yeah... it would probably still work if portals were 'linked', but the the world ratio conversion really throws things off. It seems to be working on the inbound trip to the Nether, but not converting on the outbound [CB817] so most teleports land at whichever portal is closest to 0,0,0.

    I am looking forward to getting Nethrar back online again. The forced 8:1 ratio just doesn't work too well in an SMP environment.
     
  21. Offline

    akrieger

    CB817 actually has multi world teleport completely disabled. Nethrar and any other plugin which uses multiworld teleporting is completely nonfunctional at this time. They are aware of the issue and are looking into it.
    I am looking forward to getting Nethrar back online again. The forced 8:1 ratio just doesn't work too well in an SMP environment.
     
  22. Offline

    Greylocke

    true 'nuff. Just tried it: "Multiworld teleporting has been disabled for this world." With the [816] it was actually working better -- were much fewer chunk loading issues.
     
  23. Offline

    akrieger

    Working better, but still broken compared to 803. When Notch added official Nether support, he changed the way teleports and character tracking and everything work, so the Bukkit team basically has to start from scratch, afaict.
     
  24. Offline

    Pjstaab

    Now with a(n? is it a Recommended Build or is it Arr Bee?) RB i'm gonna give this a whirl with disabled built in nether.
     
  25. Offline

    OrtwinS

    Actually, I think it SHOULD work that way, so that newly created portals link to an existing portal if its THAT close.
    But since I have no real knowledge about how all of this actually works, I will trust your judgement about the vanilla portals being 'slow as a glacier', so I'll keep using this :D.


    So... with 818 Nethrar will simply 'take over' the native nether support and make sure my nether will work the same way it was?
    I have a group of people who built a network of nethergates for fast transport, it would be a shame if they would have to rebuild....
     
  26. Offline

    Greylocke

    Nethrar does take over, but there were some changes to the way that teleports function, so it probably isn't working just yet. In fact I just did some Nether tests with [818] and Nethrar through me into a loop, endlessly cycling between both worlds.
     
  27. Offline

    frog

    This happened for me too. Did your tests lead you to the cause or to how to stop it happening?
     
  28. Offline

    Greylocke

    yes. Turn off Nethrar. ;) Default portals are safe, but it seems like the return trip doesn't do the world compression correctly, so the further your World portal is from 0,0 the less likely that you'll return to it. But at least you get back.

    Give akrieger a little time with it. Now that a solid bukkit build is out, I'm sure he'll kick out a compatible version that works much better than vanilla.
     
  29. Offline

    OrtwinS

    Yea, I think I'll make the move to 1.6 tonight or tomorrow, and if things aren't worked out yet I'll just go without nether for some time.
    I'm goin to enable it when I'm sure my nether gets aligned properly.
     
  30. Offline

    akrieger

    Can one/both of you pm me your server addresses? So far the only problem I'm getting is a consistent "you moved too quickly" disconnect, which happens with basically every teleport, but no 'world looping' - are you saying you teleport in, and then on the other side you immediately teleport back, and back and forth and back and forth?

    Ok, @frog @Greylocke

    From testing I just did on Greylocke's server, the problem is a combination of using a 1:1 space compression, and also that teleportation is currently still broken, when teleporting between worlds. Basically, when you teleport between worlds, you don't change coordinates. If you're using a 1:1 space ratio, then there is a portal exactly where you teleport to, which causes you to teleport back and forth and back and forth...

    Note that traveling through the portal in a minecart will avoid this issue, for now.

    (reposting from the MultiVerse thread where I posted this).

    Teleportation mechanics changed a lot in the past couple patches, mostly because Notch added real Nether support, and thus his own teleportation functions. However, this added a bunch of problems to Bukkit, namely:

    1. You can teleport between worlds, but your coordinates will not be correct.
    2. Once in the target world, you can teleport to the location you wanted to be in just fine.
    3. The "moved too fast issue" is something the Bukkit team had solved before, and is now broken again. Plugin devs can work around it, but as a result, problem #1 appears. There might be a way to fix this as well, but it is likely hackish and terrible. Edit: yes, there is. You have to teleport the player *twice*; once to get them into the target world, again to get them to the right location.
    4. As it stands, you can't have more than one world of the same Environment, otherwise Bukkit will not do the right thing. When teleporting from one Environment to another, Bukkit will teleport you to the 'first' world with the destination Environment.
    Later on today I am going to try and fix the Bukkit problems and submit a patch to them, which should make most if not all of this irrelevant.

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

    Ratchet

    the teleporting seems to be fixed in 819 but i'm still getting booted from the server, does Nethrar need to be updated?
     

Share This Page