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

    IronWill1991

    Is it possible to add delay like the vanilla nether? So, we can see the wobbly effect and able to walk through it without being teleported.
     
  3. Offline

    MAKroy

    Looking forward to version 2.1. The old version didn't like something on my 1.8.1 server, but happy to hear you're still working on it. Will test it out asap and report back.
     
  4. Offline

    akrieger

    Not in this version / iteration. It's just not architected to do this. I've tossed around the idea of a "NethrarLite" that would do this, but it's not in the works.
    Sorry to hear that it didn't work - let me know if you find out more about it. I spent this weekend relaxing after the sprint I had at work this past week, cause I've been working 6 out of 7 days the past several weeks.
     
  5. Offline

    MAKroy

    Nethrar is working once more on my server, having reinstalled it today. Have updated a number of other plugins (including pex) since I first tried, otherwise, not sure what report. I'll give your dev build and/or 2.1 release a shot as soon it's ready. Enjoy your weekends!
     
  6. Offline

    akrieger

    Update: Nethrar has been worked on (gasp)! I've got one bug to work out, then I'm putting up 2.1.

    Also, Nethrar is moving over to BukkitDev / bukget, so this thread will be 'deprecated' soon. Be aware.

    2.1 is out.

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

    MikeA

    When I use a nether portal, or anyone on my server, they just stand in it and don't teleport. I've tried setting permissions on and off, using the correct nodes but noone can teleport to the nether, not even me (OP).

    Could you try to figure out what's wrong? I'm using 1185 and it starts up with my server.
     
  8. Offline

    akrieger

    First off, I'm going to need some information. Any error messages in the log? Can you pastebin for me the contents of your portals.yml file, worlds.yml file, and config.yml file? Did you install just the jarfile or did you download one of the packages and install the contents? Can you also copy and paste for me whatever the server prints out when starting up?

    Also, if it's a server the public can access, mind if I hop on to help figure things out?
     
  9. Offline

    G1R Productions

    Wait, this confuses me is this just like Pinapp -- you can config which block type of portal takes you to each world.
     
  10. Offline

    akrieger

    Optionally, yes. If you don't want custom blocks, then you don't have to configure anything. I'll try to make some pictures to illustrate this later, and add them to the bukkitdev page I have for Nethrar. Is there anything in particular I can explain more?

    I believe the difference between this and Pinapp is that in Pinapp, the whole portal gets made out of a certain block type, but for Nethrar, it's just the two top corner blocks. The rest of the portal is the same obsidian frame.
     
  11. Offline

    Shamgar

  12. Offline

    akrieger

    You'd think that BukkitDev would alert me in some way when a ticket is filed against me. I'll look into it hopefully this weekend. Can you send me your worlds.yml and config.yml files, as well as a description of the worlds you have and what you intended them to be like?
     
  13. Offline

    G1R Productions

    Cant get worldblocks to work here is my config
    Code:
    world_nether:
        scale: 1
        peaceful: false
        environment: nether
        respawnTo: world
        destination: world
        worldBlock: 49
    world:
        scale: 8
        environment: normal
        destination: world_nether
        worldBlock: 4
     
  14. Offline

    321thedon

    im having trouble with making portals for my 3rd world. can someone please explain these portals to me?

    Please help
     
  15. Offline

    akrieger

    Worldblock 49 is obsidian, so that won't actually work - Nethrar considers obsidian to be 'default' and ignores it. It was too complicated to special case it, but if needed I can try and see if I can make it work.

    Cobblestone, on the other hand, should work, but if you only have two worlds then there is no point. If you have additional worlds, then they need to be included in the Nethrar configuration to work properly.

    Can you paste for me your worlds.yml file, so I can take a look? Getting portals to a 3rd world will either involve having a cycle in worlds (eg. world A -> world B -> world C), or setting up special world blocks for each worlds. Which do you want to do?

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

    321thedon

    world_nether:
    scale: 1
    peaceful: false
    environment: nether
    respawnTo: world
    destination: world
    world:
    scale: 8
    environment: normal
    destination: world_nether
    Ironheade:
    scale: 8
    peaceful: true
    environment: normal
    respawnTo: world
    destination: world
    worldBlock: 42
     
  17. Offline

    akrieger

    Make sure you format the file exactly as it is here. The spaces are important. Also, copy/paste me the output when you start your server, that should tell me what worlds are being loaded and how.

    http://pastebin.com/usfHG2r2

    Then, in either world, build a portal with iron blocks in the top two corners of your portal, like this:

    Code:
    IOOI
    O  O
    O  O
    O  O
    AOOA
    The "I" blocks are iron blocks, the "O" blocks obsidian, and "A" is anything. Then that portal should link to Ironheade.
     
  18. Offline

    des1n5ekt

    i think, that this plugin is messing with the xp (resetting to 0) when entering and/or leaving the nether...
     
  19. Offline

    akrieger

    This plugin does nothing with xp, that would be a problem with CraftBukkit not correctly teleporting players. Not really important because CB isn't updated to 1.0.0 yet.
     
  20. Offline

    des1n5ekt

    thx for the fast answer ;)
    then ill have to wait for a more stable build (i am using 1493, not recommended build) although it worked with an older unrecommended build.
     
  21. Offline

    cartman-2000

    That looks like a client side bug, if you get some xp in the world you port to or reconnect you'll see the level you had before.
     
  22. Offline

    akrieger

    Thanks for the clarification!
    If that's true, you may wish to report that to the Bukkit staff so they can look into fixing it.
     
  23. Offline

    arjunyg

    How does The End integrate with all of this?
     
  24. Offline

    akrieger

    When Bukkit updates for 1.0.0, "Skylands" is going to be replaced with the End. Your old Skylands maps will no longer work (indeed, they won't even load unless you change the environment to normal!). Otherwise, the end counts as just another Environment type (I expect), so if you set up a custom worlds.yml file, and list one of them as having environment: the_end, then that world will be the End and you can create portals to it, assuming you set things up the right way.
     
  25. Offline

    brown34

    here is my config. but when im nether to faction, portal on the sky.
    sorry for my english. how can i solve this problem

    Code:
    normal_nether:
        scale: 1
        peaceful: false
        environment: nether
        respawnTo: normal
        destination: faction
    normal:
        scale: 8
        environment: normal
        destination: serbest
    serbest:
        scale: 1
        peaceful: false
        environment: normal
        respawnTo: normal
        destination: faction
    faction:
        scale: 5
        peaceful: false
        environment: normal
        respawnTo: faction
        destination: normal_nether
     
  26. Offline

    arjunyg

    this is what should happen (where portals go)
    WorldMap.png
    are you saying that the portals physically end up in the sky?
    are they over an ocean? if they are then that is supposed to happen

    or do you have any other plugins that try to deal with portals installed?

    no...

    to get to then end in vanilla, you find an end portal and go in to it, these function differently from nether portals (you right click the blocks that outline it with ender eyes -- the inactivated portals are spawned by the server in strongholds)

    then you jump in and you cannot go back without killing the ender dragon or dying

    so you will need to have something for the configuration like

    Code:
    destination_nether_portal: world_nether
    destination_end_portal: world_the_end
    so i guess you didn't understand how the end works
    well i hope this helps you :)

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

    akrieger

    I'm just talking about how Nethrar will interact with the changes. The Environment.SKYLANDS value has been removed and replaced with Environment.THE_END. This means that in 1.0.0, the 'skylands' worldgen is no longer available. If you try to just change the environment type to THE_END, your Nethrar portals, which one led to a Skylands world, will lead to a End dimension. I perfectly understand how the End is supposed to work in a vanilla sense.
     
  28. Offline

    Mishrathium

    I searched every multi-world plugin I could find - tried them and disliked them all.

    Then I found yours and I completely love it! Such a wonderful contribution amidst far too many plugins/developers that try to make their mods 'Swiss army knives' and end up being incomplete and incompatible. You kept it simple and it works flawlessly! Thank you so much for this!
     
  29. Offline

    akrieger

    Thanks! Glad you enjoy it!
     
  30. Offline

    arjunyg

    ok, so that makes sense.
    i guess what im saying is that i will need a plugin to handle the end the same way nethrar handles the nether
    i would love it if nethrar would be updated to handle end portals as well as nether portals (i dont want to have it set up so you make a nether portal with a worldblock or something which specifies that you are going to the end)

    This will probably take awhile right? Especially since CB isn't really finished for 1.0.1.

    thx,
    arjunyg

    PS: if you didn't notice already (you probably did) there is an RB out for 1.0.1
     
  31. Offline

    akrieger

    Nope, I just noticed now. I'll update for 1.0.1 hopefully soon, although no guarantees. I have a bunch of work to get done before the weekend, and then I'm flying away on vacation (although I'll have internet).

    Why do you need Nethrar to handle the End? So you can have multiple worlds all with different Ends?
     

Share This Page