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


    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.

    • 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, 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)
    # Set to true to use Permissions, otherwise everyone gets
    # all permissions.
    usePermissions: false
    # Set to false to use builtin vanilla respawning behavior.
        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)
            environment: normal
            destination: world_nether
            scale: 8
    # 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='']here[/URL].
    Permissions (open)
    # Allows usage of Nethrar portals.
    # Allows usage of Nethrar teleportation.
    Commands (open)
    # 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.
    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 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 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


    I've set it to 0, 2, 4, 8, and something >20 just to see if it made a difference. The persistence of the portal is the only thing that changed (it exists > 0).
  3. Offline


    Are you going from the normal world to the nether, or vice versa? How far away is the portal from "spawn"? Does the console / server log send any messages about "Can't keep up, did the server time change?" or anything like that? What other plugins are you using?
  4. Offline


    Yes, from normal to nether and back. I'm pretty sure the portal is in the spawn chunk. I'm testing on a fresh install with only 670 and the nether plugin, nothing else. My process was to generate the maps, restart the server, jump in and admin myself some obsidian and the flint/steel.

    Based on your mention, I'd bet my problems are because I'm in the spawn chunk.
  5. Offline


    It's possible? I'm not entirely certain what happens if you try to portal into the spawn chunk. I was more concerned that you were trying to portal into the Nether from far away from spawn, or from far into the nether back into the real world, then the server lags and might crap out trying to generate the chunks so far away, cause for some arcane reason the farther away it is from anything previously generated, the worse it lags. See if you get the same issue away from spawn, I'm curious.

    Edit: I have no issues at spawn. Hm.
  6. Offline


    I'm having the same issue everywhere. At least it's consistent...

    I'm running Windows 7 x64, if that makes any difference. Occasionally I do get the "Can't keep up!" messages, but it's not consistent.

    Edit: I'm wondering if it might be my computer. It seems that it doesn't load the chunk I teleport to when I die or use a portal. By putting the portal a few chunks over, it does load properly when I die, but not when I jump through it. By that same token, chunk I should start on doesn't load properly.

    I wonder if there's a way to trigger reloading of the chunk a player's supposed to spawn to after they've respawned...
  7. Offline


    I tried it, and it works great! I'm not getting any errors, and this is the first nether plugin that allows the use of 2 maps at the same time. Previous plugins I have used only loaded 1 map at a time, so whenever one person goes to te nether, everyone goes (map switches). but this plugin works great!!! :D
  8. Offline


    There is? So, the only thing I've seen consistent between all error reports is, essentially, things don't load when they should. The only thing I can think of which would cause this is the server being told to load or unload things, while it's busy loading or unloading, and just throwing up it's hands and going "screw you man."

    Are you running the most up-to-date version of Java? That might also cause issues. I'm just can't do anything to help people, cause there aren't enough (reports!) of failures, and plenty enough people with total success stories. I mean, heck, I test on a Linux box running the server, which may or may not affect results.

    "Can't keep up!" Messages usually indicate the server getting stuck in some sort of IO - whether loading stuff to/from disk, or over the network. If they don't coincide with your problems, then I can't read into it.
  9. Offline


    I've figured it out. Attempting to run the server and client on the same system really pisses off everybody involved. Especially since they're running from the same disk.

    Edit: Though, it would seem my 6 year old laptop may not up to the challenge of running the client...
  10. Offline


    Yeah, that'll do it! :D Glad to hear you figured it out. Good luck finding a way to run the client and server simultaneously while still be playable! :/
  11. Offline

    Dillon Austin

    is there a way to remove monsters
  12. Offline


    You would have to try some admin plugin which lets you do that sort of thing - even turning on the server in "peaceful" mode doesn't even get rid of Ghasts and stuff :(
  13. Offline


    Where is the config file supposed to go?
    I had it in the plugins folder with the jar, and I set forceloadradius to 4... but it still says:
    07:48:18 [INFO] [NETHRAR] Forcing chunks to stay loaded in a radius of 0 around
    I also set respawn listen to false, yet it says:
    07:48:17 [INFO] [NETHRAR] Listening for player respawns.
    So I must have it in the wrong location. It would be nice if the plugin automatically generated the configuration file for you, placing it in the correct directory.
  14. Offline


    All Bukkit plugins that use the config file setup that Bukkit provides, which mine does, look for their config files in a directory by the same name. So, in plugins/ , you'll have Nethrar.jar, a directory called Nethrar/ , and then the config file will be in Nethrar/ , so the paths will be plugins/Nethrar.jar and plugins/Nethrar/config.yml.

    The .zip and .tar.gz files come with the config file in the directory already; all you have to do is unzip / untar the file into the plugins/ directory.
  15. Offline


    Ah okay, thanks. :)
    Still think having the mod automatically create the config file would be awesome though, but it is working now.

    EDIT: /home and /spawn commands don't teleport you to the normal world either.
    Would be cool if this could be fixed, or at least have a /world command added to switch worlds...
  16. Offline


    What plugins are you using that give /home and /spawn commands? tkelly's MyHome works for me and my friends. In either case, the fault lies with those plugins not correctly handling players being in a different world, not with my plugin for putting them there :p I might add a /nspawn command which will take players to the "normal" world for whatever nether you're in.
  17. Offline


    I'm using SpawnControl for /spawn

    and MultipleHomes for /home

    Both claim to have multi-world support, so I don't understand :-S
  18. Offline


    Do not use a plus sign in the RB version, you should state the latest tested version.
  19. Offline


    Is the problem that they take you somewhere in the Nether, or don't work at all?

    Looking at SpawnControl, it is actually working as intended - there are separate spawn locations for each world, using /spawn won't take you between worlds, on purpose.

    Looking at MultipleHomes, I can't see offhand whether it will work or not. However, MyHome by tkelly works just fine for us.
  20. Offline


    Thank you for this plugin! I just installed it and tried walking through a gate and ended up in a Nether cave, so I assume it works fine.

    I have one question however that I didn't see asked: Would it be possible to mask the transition between worlds with a loading screen, like in SSP? And would that have to be a client side mod?
  21. Offline


    Would it be possible? Probably, but with far more effort than would honestly be worth for anyone (the code involved would likely go far beyond the sandbox of Bukkit and Minecraft). Would it have to be a client side mod? There would almost certainly have to be something done on the client-end to interface with the transition, yes.
  22. Offline


    I see, thanks for the answer. Perhaps it's something that Mojang implements when/if they add server portals in the future then.

    Again, thanks for making this. I really appreciate the minimalistic approach.
  23. Offline


    Hm, coulda sworn I replied to this post. Must have forgotten to send my reply, sorry. :-P
    Anyway the problem IS that it takes me somewhere in the Nether, I suppose that makes sense that they both use different home/spawn sets for the Nether... but it would be nice if it didn't.
    I'd get MyHome, but I'm looking more for a 'warp' feature... and the multi-home function in the plugin I have now is great.
    Maybe I'll scrap it and use the MyHome one anyway, or maybe I can find another warp/multi-home plugin that DOES properly work with multi worlds.
  24. Offline


    No spawn changers on my server, 1.4.01 server edition, and finding players being spawned wherever - regardless of if they die in nether or not.

    Would appreciate some help with this.
  25. Offline


    "Wherever" meaning, what - they always spawn in the normal world, but in random places? They spawn in random places in the nether? Does each player spawn in a different place, but always the same place for that player?
    Did you set "listen.respawn" to "true" in the config file, and the config file is correctly installed at "plugins/Nethrar/config.yml"? What plugins are you using? One of them may be incorrectly interfacing with Nethrar - but if you have installed the config file, and set the setting to "false" (there will be output to the server log/console saying "[NETHRAR] Not listening for player respawns."), then it is not directly my plugin's fault that your players are going everywhere.
  26. Offline


    Apologies - was pretty damn tired when I posted.

    When players started to spawn at places other than their beds or the world spawn point, I disabled all mods (runecraft, craftbook, nethrar) by removing their .jar and plugin folder contents, and then "turned them on" in cycle in order to isolate what is the cause.

    Nethrar, alone other than craftbukkit, causes the issue. I have found this exists with the config.yml set to both listen.respawn true and false. It's the only thing I have altered, other than my 'normal' world name, which was originally given a different name in the server creation.

    By "wherever", I mean just that. I have players who die in the normal world spawning halfway across the map, with no common factor - one might spawn in midair, over a tundra biome chasm, or they might appear in a desert biome, or in the middle of another player's "mining chamber". The same happens with the nether (one lucky player was on a 1x1 block of netherrack in the middle of a lava ocean, with ghasts about). Unfortunately, then the next and rather unusual thing happens.

    The starting world is not necessarily the one you may end up in. Players dying in the real world may end up in the nether, and visa-versa. This is a problem I've been poking at as well, in order to see if I can override it, as Nethrar is, simply put, the best implementation of the nether for SMP that I have found (no slash commands, portals simply 'work'). Unfortunately, attempting to use other "home/spawn setting" plugins doesn't bring any resolution - nethrar seems content to sit on them and bash them into line.

    The other interesting thing is that unlike when a player is using an incorrect version of java, there are no error messages on the CLI. Something like this would give me the impression that it would be bringing about [WARNING] or [SEVERE] messages.
  27. Offline


    Whewy. That sounds nasty. A couple more questions, although really they're more for my reference than anything else:
    a) What version of CB are you using?
    b) Can you acertain that, on the CLI, Nethrar says "not listening for player respawns" when you set it to false in the config file?
    Once you get that back to me, I'll get cracking on debugging it. I'll also make a special jar file for you that explicitly removes the code that listens for player respawns, so that it is impossible for Nethrar to affect player respawns, as welll as adding some debug prints to better indicate what Nethrar is doing in this whole mess. That'll have to wait for morning, though.
    Something I suspect, but can't prove, is a possible interaction between beds and Nethrar. I know that beds were (supposedly?) fixed in 1.4 so that player spawn points move to the beds, but I haven't yet tested this with Nethrar. I also know that some people were having issues with beds being broken in CB. Maybe there's some crazy edge case with people in different worlds, beds, and CB all dancing and falling down together?
  28. Offline


    It's alright, nicely timed response is nicely timed!

    On a hunch, I tried loading the server with craftbukkit by itself, no plugins. Same issue is coming up, except that now there's no longer nether spawning.

    Then checking it out (I have CB 677 loaded) it seems they're only updated for server 1.4, not 1.4_01.

    That would quite possibly be what's causing the issue, and my apologies for the fuss. Though I'm confused how it seems to stabilize with Craftbook or Runecraft present.

    Time for me to roll back my server...

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


    I just tried this and it works pretty well, seems to be the best implimentation of the nether so far that i've tried, even with the fast travel and auto-generation of portals on the other side, works great. +diamonds
  30. Offline


    w00t! Diamonds! Thanks :)

    Seeing how 677 is a recommended build, I should test it. Results soon. Hope the rollback helps!

    It's possible both runecraft and craftbook do something with player spawns, although I seriously doubt it.

    Tested on 677, could not reproduce the problem in any configuration :( I guess try downloading the jarfile again, see if it does it with a new jarfile?

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


    @akrieger Thanks, I'll be trying to figure that out over this weekend, but after reinstalling craftbukkit, then rolling back to 1.4, then rolling craftbukkit back to 670, it's not fixed. Removing craftbukkit altogether fixes the issue - 1.4 and 1.4_01 vanilla don't have this problem.

    I do have some good news! Using Nethrar with listen.Respawn=true, I can get the game to force a spawn into one particular location about 5 hours from the main world spawn.

    Then, with a mash of Runecraft portaling, the game now spawns players near a handy teleporter to get back. So now, I'm looking to get the 'listen to respawn location' set to wherever the player has set as a bed.

Share This Page