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

    Zedducuis

    Haha I am special and a half apparently. Broke the default thing somehow. At first I was trying to make a fancy dancy setup but couldn't get it to work. So deleted everything re-installed it on default (just dropping th jar in plugins and turning off default nether portals) and I can't even get to the nether. The teleport command fails and the portals stop working.

    Hmm will keep playing with it haha. But figured that would make people feel better about their problems when they are real, unlike mine haha.
     
  3. Offline

    akrieger

    You might need to either delete worlds.yml or put in the default one. Someone else mentioned that the defaults weren't being properly auto-detected, which might cause problems. Actually, now that you mention it, if you turn off allow-nether, that might be precisely what is messing up the default world detection. Try either turning allow-nether to on, then starting it up, or put the default worlds.yml file in.

    Ok, updated the message in the thread about allow-nether=false vs true. Let me know if that works out for you.

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

    Zedducuis

    I did end up deleting the world.yml. and tried both allow-nether on and deafult no command line at all. with allow nether on did the instant teleport which is how your plugin is supposed to work I would guess haha, without the allow nether command line in the properties file it goes back to 5 second delay system. Not sure if that helps you any but thought you might like to know.

    Now all I need to figure out is why it seems to think the world I added doesn't exist haha. Probably just a typing error though.

    Thanks a bunch for your help.

    (oh and even after deleting the world.yml file, it never did auto create a default one. I had to manually add the default one.)
     
  5. Offline

    Chrisknyfe

    Does this plugin work at all with Multiverse-Netherportals, or do the two plugins conflict with eachother?
     
  6. Offline

    Neero

    I didn't get end portals in my secondary world to work. I just fall through. When I created an end portal in my primary world, it worked just fine.
    This isn't really a problem in your mod, but it would be nice to have that feature :)
     
  7. Offline

    akrieger

    The two will almost certainly conflict. In what way they will conflict, I don't know, because I haven't looked at the source for MV-NP.

    Yeah, as I said, I can work on it, someday. Work is hard and takes up a lot of time :/

    Actually yeah that does help. I think I figured out the problem, I didn't update all the places I was using configuration files correctly. I think I've got it figured out now. Weird that without allow-nether=true, it just fails. It should still succeed anyway. I'll need to look into it more.

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

    akrieger

    Version 2.3 is out. Now includes custom world generator support (finally >.<)! Check out the section about worlds.yml for details. tl;dr:

    add worldGenerator.name to the world spec, specifying the world generator name. worldGenerator.args for any additional args.
     
  9. Offline

    Ruinheart

    Hey I was wondering if I could get version 2.2 for bukkit build 1.0.1?
     
  10. Offline

    akrieger

    Yeah, http://dev.bukkit.org/media/files/562/713/Nethrar.jar should work (the bukkitdev 'files' page for Nethrar has all prior releases going back to v2.1). This one says it's for 1.1-R3, but I looked and there's no reason it shouldn't work for 1.0.1. Let me know, if it gives you problems I'll build you a new one just for 1.0.1.
     
  11. Offline

    akrieger

    For the concerned - Nethrar will only need a minor tweak for when 1.2 comes out. In fact, I've already made it, and will post it as a 'beta' download shortly.
     
  12. Offline

    Mishrathium

    awesome news Akrieger! Thank you for your hard work.
     
    akrieger likes this.
  13. Offline

    akrieger

  14. Offline

    Lizardbones

    The bold text is probably the best feature to have if you just want Vanilla functionality. You could actually plan out and setup a fast travel system using portals and you'd have some chance of creating something that made sense without having to create half a dozen random portals in random locations.
     
  15. Offline

    zild1221

    I didn't read this anywhere, but is there something wrong with carts through portals? It seems that I can't stay in a cart while going through a nether portal. When I attempt to, I get kicked out on the other side.
     
  16. Offline

    akrieger

    Are you using the new dev build or the old stable one? I have a suspicion I know what might cause that in the new one, but I want to make sure.

    Can you also look and see if there are any errors in your server log?
     
  17. Offline

    zild1221

  18. Offline

    akrieger

  19. Offline

    akrieger

    Ugh - due to some fail on my part wrt. minecraft backups, I can't find an unmodified 1.1 client jarfile anywhere (if someone wants to link me to one, I'd be very grateful!). I'm currently running 1.1, but it's been modloadered and mcforged so I can't connect to an unmodified bukkit jar, and I can't find the right versions of modloadermp and mcforge to make the two work together >.< So, until I either get an unmodded client jarfile, or I get a copy of the server jar from the server I actively play on, or CB 1.2 comes out, development is 'paused'. Hopefully this won't be long.

    Edit: I have unfailed. Carry on, citizens.
     
  20. Offline

    Mishrathium

    Which DEV link is the most current and most probable to work on 1.2.3 ?
     
  21. Offline

    akrieger

  22. Offline

    Mishrathium

    Thank you again Akrieger, for your excellent work and updates!

    on teleport between worlds - I "blue screen" with no errors in console.

    I am assuming maps are all converted to default new height - at least it appears so. Im not using any plugins to change it.

    Bukkit-1.1-R6-32-gf9e35f8-b2033 - your latest dev build
     
  23. Offline

    akrieger

    I can't repro your issue, it'd really help if you could get me those files (config.yml and worlds.yml).

    Try the most recent 1.2.3 beta build - http://dl.bukkit.org/downloads/craftbukkit/view/00851_1.2.3-R0.1/ -- it looks like you're using 1.1-R6, which is still the old format. Also make sure to use https://github.com/downloads/akrieger/Nethrar/Nethrar-dev2.jar (the '2' being the key), which I'm guessing you're using, but I want to make sure.

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

    Mishrathium

    Thank you akrieger - just to make sure - I am linking both startups

    (mine)Bukkit-1.1-R6-32-gf9e35f8-b2033jnks (MC: 1.2.3) (Implementing API version 1.2.3-R0.1)

    (yours)Bukkit-1.1-R6-33-gb66156b-b2034jnks (MC: 1.2.3) (Implementing API version 1.2.3-R0.1)

    I am no Dev - but I just wanted to show this since they both say 1.1-r6 for me. But I am using the top one - One build lower than the one you linked(bottom). I will try newer version soon and test then. Thank you again for your hard work!
     
  25. Offline

    akrieger

    Alright, I'll check it out tonight. I know Nethrar builds against Bukkit, I don't see why teleports should fail, although seeing how it's still a beta I'm not surprised.

    So when you say bluescreen, do you mean black screen? I tested and everything works as I expect it to. If you still have issues can you send me your worlds.yml and config.yml files?

    All - please read http://forums.bukkit.org/threads/craftbukkit-1-2-3-r0-1-is-now-available.63380/ when deciding whether to upgrade to 1.2.3-R0.1 or not. There is currently a bug where you can't interact with entities - this includes, say, minecarts you're riding in through a portal. You'll be able to get in, but soon after might not be able to get out without relogging. You have been warned.

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

    Lizardbones

    Fun With Nethrar!

    Fun With Nethrar!

    Here's something fun (and convenient) I did using Nethrar.

    I shut my server down and then modified my worlds.yml file.

    I added the following to my 'worlds.yml' file.

    # this will allow us to create point to point portals within the world
    world:
    environment: normal
    destination: world # Any portal made in world using the below block will go to world
    scale: 1
    peaceful: false
    respawnTo: world
    worldBlock: 01 # any portal made with stone in the corners will go to world

    I did this by copy/pasting my 'world_nether' entry, which looked like this (fix spacing for yml):
    world_nether:
    environment: nether
    destination: world
    scale: 1
    peaceful: false
    respawnTo: world

    Then I changed the name to 'world', the environment to 'normal', added a worldBlock and some comments. This seemed safe, because my nether portals were directed to the world and I wanted world portals directed to the world (if that makes sense).

    I started the server back up.

    The idea is that when you make a portal and put smooth stone in the corners, the portal will link to itself...the players won't be teleported anywhere except the other side of the same portal.

    I constructed two portals in game, using the smooth stone as the key stone. I fired them up and walked through them. I was 'teleported' to the other side of the portals, as if I had just walked through them. Then I shut my server down again modified my 'portals.yml' file. In there were entries for two portals, each of them going to themselves, like this (fix the spacing for yml):
    world;5:
    keyblock:
    - -65
    - 65
    - -194
    destination: world;5
    protected: false
    world;6:
    keyblock:
    - -65
    - 65
    - -198
    destination: world;6
    protected: false

    I changed the destinations of the portals to be each other. Like this (fix the spacing if you use this):
    world;5:
    keyblock:
    - -65
    - 65
    - -194
    destination: world;6
    protected: false
    world;6:
    keyblock:
    - -65
    - 65
    - -198
    destination: world;5
    protected: false

    I started my server back up and I had a very fast travel system between the two portals. If you look at the coordinates above, you'll see the I've setup a very fast travel system across a room. However, if the portals were 1,000 blocks apart the results would be exactly the same. Step into one portal, come out the other portal. I would be doing this after hours, possibly after my players setup some portals or something.

    Some warnings and caveats. I am positive this is an unsupported use of the plugin. I'm not sure you need to stop and restart the server, but when I was messing around with the portals.yml file and didn't stop/restart the server to make changes, all the portal names were changed in the file and my changes went missing. So stopping/restarting the server is part of my instructions. The server or the plugin could possibly overwrite the changes you make, breaking the fast travel system with no notice. The plugin itself or something in minecraft could change as well, again, breaking the fast travel system with no notice. I am reasonably sure doing this won't kill you where you sit, but that's the only thing I'm reasonably sure of.
     
  27. Offline

    akrieger

    Not necessary to have the worldblock - if you left it out, any portal made in world would link to... world. That's what the 'destination' line is for.
    The plugin only reads and saves the worlds.yml and portals.yml on startup and shutdown. Also note that the portals.yml file is a convenience only, designed for best-effort portal linking. If a version change happens, I'm happy to blow that away, which could result in all your portals unlinking. Also as you noticed, if you make changes while the server is running, then save, whatever the state the server is in is what is saved, overwriting your changes. Otherwise, have fun, and don't blame me if things explode or you get into infinite loops :p
     
  28. Offline

    Lizardbones

    Thanks for the info.

    Some of my best learning happens when I break things. Even if the learning is to not mess with things. :)
     
    akrieger likes this.
  29. Offline

    Mishrathium

    I must say - being able to use Nethrar to portal across the same world would be amazing - if there was a way to do it super easily. Love it!
     
  30. Offline

    Masterflapdrol

    nice avatar! :)
     
    Survivorman likes this.
  31. Offline

    Ross Gosling

    @akrieger

    minecarts cannot travel through the portals in 1.2.3-R0.2 Beta
     

Share This Page