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

    Survivorman

    I like this a lot. Its just what I was looking for and works great.
    Thanks!
     
  3. Offline

    IronWill1991

    There's a bug. I was using http://wimbli.com/minecraft/Nether_1.2_unofficial.zip plugin at Simple Nether Portal forum. When I use the old portal at the outside world, it teleported me to the new portal at Nether. I dig about 15 blocks straight down and found my old portal. I went into the old portal and it teleported me to a brand new world. The loading new world became too much, so I crashed.

    EDIT: I also create a portal in Nether and it also teleported to brand new world which I just deleted earlier.
     
  4. Offline

    akrieger

    Sounds like the 'normal' world's name isn't "world", which it has been as far as I've known. You'll need to edit the config yml file to set the normal world to be whatever your normal world is called. In the root directory of craftbukkit, there should be a "netherWorld" directory, a "world" directory (this would be generated by my plugin, based on what you've said), and a third directory which would be your regular world. Edit the config file to have that world's name as the "normalWorld" property, then try it again.
     
  5. Offline

    IronWill1991

    I couldn't find the config.yml file. I looked all over your files. I have config.yml file from old nether plugin.
     
  6. Offline

    akrieger

    If you downloaded the jar file by itself, then there won't be a config.yml file. Go to the source link, download it from there, and put it in a directory called "Nethrar" in the plugins directory.
     
  7. Offline

    IronWill1991

    It works! I have to create Nethrar directory. This time entering the old portal spawns me back to the outside world. But since entering the old portal in outside world spawns a new portal in nether. Entering the old portal in nether spawns a new portal 20 layers under in outside world.
     
  8. Offline

    akrieger

    That is intentional. My plugin uses strict math when placing portals. The vertical dimension does not get changed between worlds, only the horizontal ones. The old plugin you were using must have linked up the two portals at very different heights, so your old Nether portal was 'too far' to link to for my plugin.
     
  9. Offline

    IronWill1991

    I noticed that when I was using my old plugin. Your plugin does spawn a new portal at the exact same height and that's what I like. My only complain is that the cave where the new portal is spawned is pretty small and I have to dig around to see where am I at.
     
  10. Offline

    akrieger

    Well that's just luck of the worldgen :) Just so I can be sure, was I right that your normal world's name is something other than 'world'? Otherwise, I'll legitimately have to do some digging, cause I thought that the defaults for the case where you have no config.yml file should be the same as if you had the default config file I keep with the source or with the .tar.gz and .zip files.
     
  11. Offline

    IronWill1991

    Yeah, you're right about changing the config.yml. I have download it and change the normal world name to my current world name.
     
  12. Offline

    gamerluke

    Could you make a video of how to setup and use?
     
  13. Offline

    midders

    Only the .jar download link is working for me.
    Can you fix the files with config? SOunds like a plugin I want to try out.
     
  14. Offline

    vilmar1992

    i cant see the fireballs of the ghasts...only when they explode on me :(
     
  15. Offline

    akrieger

    Bukkit / Craftbukkit / SMP problem, not my problem. See the 'not issues' section of the first post.
     
  16. Offline

    midders

    Hey, I got the config from github. Didnt see that before.
    All working, Nice plugin, thanks a lot.
     
  17. Offline

    cr0sis

    If anyone uses Minecart Mania, this plugin also works flawlessly with it. You just have to remember to power both obsidian blocks the cart travels over with redstone, on the surface AND nether world portals.

    +++ Works an absolute treat, thanks for this +++
     
  18. Offline

    GMFreak

    Whenever anyone from my server, including me, returns to the real world, we fall through the void and die, and I have to teleport to someone in order to, well, not die. /:
     
  19. Offline

    akrieger

    @midders: that's a github problem. Download the jar file, get the config through the source link. I'll fix the packages later when I have computer access.

    @cr0sis: you shouldn't need to power the obsidian, the minecart 'hits' the portal before it derails, but Minecart Mania might break that.

    @GMFreak: are you running build 617 or later? While I never died from falling, I have had the sensation of falling on teleport on older builds when I had lag. It would eventually load all chunks, though. Unfortunately, there is nothing (I believe) I can do. Since build 617, chunks seem to load starting with the player's chunk, which would help avoid this, but I could be wrong.

    Regardless, this is something that has been reported for all Nether portal plugins, and is really due to the Nether being hacked into the default server by craftbukkit. Forcing chunks to stay loaded might also help.

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

    cr0sis

    Yeah unpowered obsidian is a catcher block in minecart mania, so it stops the cart until/unless it's powered.

    Only takes 2 redstone torches per pair of portals :)

    I guess if you use anything other than obsidian for it's launcher and catcher block capabilities there's no problem.. but I was just heads-upping anyone else who left it as it is originally.
     
  21. Offline

    akrieger

    I'm not really certain what would go into the video. You download the .jar file, put it in your plugins directory like any other plugin. You download the config.yml file, put it in a directory called "Nethrar" in your plugins directory, like any other plugin. You play Minecraft, make, light, and use Nether portals like in SSP. You can even ride a minecart into the portal and it'll teleport you and the minecart!

    Oh, interesting. I didn't know that. Thanks!

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

    cr0sis

    So who do we lynch around bukkit to make it so that ghasts aren't invisible? It's not really a problem, but considering you've got the nether working in SMP almost flawlessly, I'd say they owe it to you to give your plugin the justice it deserves XD
     
  23. Offline

    thefinaldegree

    Great plugin, works great on the latest build [617].

    Would it be possible to detect if the nether world exsists upon load, and if not, generate it?
    Because it kinda lags out the entire server and disconnects players if it has to generate the nether when moving through the portal.
     
  24. Offline

    akrieger

    No idea - it's probably an interaction between Bukkit adding Nether support to the SMP server and the SMP server going "?? I don't know how to deal with this :<"

    Possibly. The plugin already generates the nether world on server / plugin initialize if the world does not exist, but I have no idea what sort of stuff Bukkit does when that happens. The sort of disconnection behavior you're experiencing should only happen once - once the chunks are generated, assuming your players are roughly in the same area in the real world, then the server shouldn't have to generate many more chunks afterwards.

    Download links all work now, github finally stopped complaining about my .zip file >.>

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

    PandaVidya

    Request: Permissions support. I would love to have only one group of users can use the nether
     
  26. Offline

    Vend

    I went through the nether portal, and ended up appearing 20 blocks underground and was buried alive. My friend tried saving me, but wasn't quick enough. Only happened once so far, but I lost all my items and stuff.

    Not sure if this is a known problem or not, or what caused it.
     
  27. Offline

    akrieger

    @Vend: There seems to be an issue with first-time teleports and the server having to generate and load chunks. I'm investigating ways to mitigate this, but this is me trying to apply a band-aid to a server wound, and I'm not really certain anything I try will work for the reasons I expect, if at all.

    There was a counterpart portal on the other side, yes? If there was no portal, then that's actually a problem.
     
  28. Offline

    Vend

    Me and my friend have gone to the Nether about 20 or so times...so everything was already generated and everything. We've spent about 30 minutes there in total.
     
  29. Offline

    akrieger

    Strange - the only thing I can say is, transient client/server failure. The Nether certainly isn't properly implemented yet, so... Sorry to hear that you suffered from it :( Like I said, I'm looking into things which might help prevent this in the future.

    Done. Download v1.1, set Permissions node "nethrar.use". Enjoy :)

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

    JeffJitb

    I am having the same problem as GMFreak on my server. When a player comes back from the nether (only happens on return) the player chunk never loads =( this isn't 100% of the time but it is quite common. While I found a work-around by making the portal in two chunks, one chunk will never load unless I disconnect.

    [​IMG]

    I didn't fall but the chunk would never load. Used craftbukkit v 617, 635 and 640 to no avail with this same occurrence, And I have no other plugins atm.

    If you have anything to suggest for a smoother transition I would love to hear it!

    Also, sometimes when the counterpart portal is made in the nether, it will be suspended in air to the point where I would die if I attempt to walk off.
     

Share This Page