[INACTIVE][MECH/TP] Minecart Mania Teleport 1.2.4 - Continue rails anywhere [MMC 1.2] [953]

Discussion in 'Inactive/Unsupported Plugins' started by kroimon, Mar 5, 2011.

  1. Offline

    kroimon

    Minecart Mania Teleport - Continue rails anywhere
    Version: 1.2.4
    Requirements: Minecart Mania Core 1.2.8 and CraftBukkit 953 (these are the tested versions, others might be ok, too)

    As I currently have no time to maintain this plugin, I marked it as being inactive.
    If anyone wants to provide patches, please clone my github repository and send pull-requests and PM me, so I can make a new version and post it here!
    Sorry for those of you who used this plugin!

    Download:
    [Download JAR file]
    Read the Permissions section below!
    Source code on GitHub

    Description:
    This plugin allows you to teleport moving minecarts (even with passengers) to whereever you want.

    To create a teleporter you need to place two linked signs at the end of minecart tracks.
    These signs have to contain the words "cart" and "teleport" in their first lines (first line containing text, doesn't have to be the first line really) and a unique name representing this pair of signs in their second line (case-sensitive). After placing a sign, right click it for the plugin to create a waypoint (you should get a confirmation message here).
    After right clicking the second sign, any minecart colliding with one of the signs teleports it to the rails next to the corresponding other sign.

    Permissions:
    Important for version >=1.2.0
    If you're using a Permissions plugin, you have to set the following permissions:
    • minecartmania.teleport.create - Create a teleporter sign
    • minecartmania.teleport.break - Break a teleporter sign
    • minecartmania.teleport.use - Use a teleporter as a minecart passenger
    If no Permissions-style plugin can be found, permissions are disabled and everyone is allowed to do everything.

    Notes:
    • Due to a limitation in Bukkit, the plugin prevents teleporter signs from being destroyed/dropped when the block holding the sign gets destroyed.
    • The plugin tries to find the target rails in NSEW order around the target sign.
    Todo / Wishlist:
    • Allow the creation of teleporters which only allow certain minecart types (e.g. storage minecarts) or passengers (e.g. animals only)
    • Allow multiple entry signs to point to one single exit sign.
    Changelog:
    • Version 1.2.4
      • Small fixes.
    • Version 1.2.3 (1,357 Downloads)
      • Fix for MinecartManiaCore API change.
    • Version 1.2.2 (606 Downloads)
      • Fix for the rare souls around not using a Permissions plugin.
    • Version 1.2.1 (130 Downloads)
      • Tried to fix everything new in 1.2.0 ... I failed!
    • Version 1.2.0 beta (17 Downloads)
      • Load worlds when they are needed. This should fix problems with plugin load-orders.
      • Added support for permissions. You have to set these if you use a Permissions plugin! (if you don't use one, everything works as in previous versions - anyone is allowed to do anything)
        • minecartmania.teleport.create - Create a teleporter sign
        • minecartmania.teleport.break - Break a teleporter sign
        • minecartmania.teleport.use - Use a teleporter as a minecart passenger
    • Version 1.1.1 (781 Downloads)
      • Adapted new MinecartMania naming scheme
    • Version 1.1.0 (296 Downloads)
      • Changed the way a teleport with passenger works. Hopefully, this fixes multi-world and long-distance teleports until Bukkit gets fixed.
    • Version 1.0.2 (121 Downloads)
      • Adapted to API changes in Bukkit 465+ (CraftBukkit 563+)
    • Version 1.0.1 (565 Downloads)
      • Fixed a NullPointerException for the very few people who teleport stopped minecarts using another plugin
    • Version 1.0 (23 Downloads)
      • Initial release
     
    Pinkpixels, John Kapsis and Benie like this.
  2. Offline

    kroimon

    Already implemented, but I'm waiting for a new recommended build and for MinecartManiaCore to be updated :)
    Besides I'm busy with university atm, so this has to wait until ~Monday.
     
  3. minecartmainia has updated to ver.105 & I'm really wanting to continue my tests to see if I can get the long distance cart teleport working - I see you have a plugin update possibly ready for Monday .... that sounds great - I'll comeback & look then.
    I have found that there are several issues around minecarts teleporting at the moment - most of them are centered around bukkit, so as the bukkit team fixes the problems, I'm hoping your plugin will begin to work as advertised. I'm very hopeful that with the MCM update to 1.05 that long distance teleporting of an empty or storage minecart will work ok, and if the keep minecarts loaded function is working - which people seem to think it is, we'll be able to do long-distance teleporting & still have the cart do something at the other end.
    I believe the world to world teleport 'ghosting' effect, where you can see the cart, but can't interact with it, has yet to be addressed by bukkit.
     
  4. Offline

    kroimon

    Found some minutes to pack and upload a new build - 1.0.2 is up for CraftBukkit 563+ (Bukkit 465+).
     
  5. Came back & found your updated post - many thanks .......
    I've tested at length here (well. for the last 2 hours+ at least) with bukkit #572 and minecraftmainia 1.05. Unfortunately, I still can't get this to work long range if someone is not at the other end. I tried with minecarts remain loaded 'true' (which seems to be the default setting now anyway since I did a clean install of MCM 1.05 and that was how the setting was set) left a minecart spinning on a loop of track at point 'B', went back to point 'A' and sent an empty cart through the teleport sign to point 'B'. What should happen, is it should go round a small loop of track, and re-enter the teleport sign and arrive back with me at point 'A'. Currently, it doesn't. After a long and tedious process, I found the trigger point for the point 'B' chunk to load by having another player, block by block, approach point 'B' until my cart appeared. The other player is quite a distance from point 'B' (not counted the number of blocks yet - perhaps 60'ish) when the cart appears. I then had him move just out of range, sent another cart, and then had him move just back into range - and each time, success it works as soon as the player moves into range ! ..... but this still means having a player at the other end if you want the cart to do something - if you just want it to be waiting on a track when you get there, then no problem, that'll work. I'm not sure, but I assumed that @Afforess 'keep chunks loaded' was meant to achieve the same result of having a player in the same chunk - perhaps I'm wrong and it has another purpose ?
    Teleporting a player in a minecart is still a 'no go'. Having said that, I'm also using Wormhole Extreme and I've seen some people posting about going through a wormhole with a cart. I tried it, and the result was identical as when I tried it with the cart teleport signs - the world disolves around you and you end up in mid-air with no world, so I'm fairly sure this is still a bukkit issue and not this plugin's.
    Ah well, I can't do anymore until there's another update in either bukkit, or minecartmainia. ..... I'll give it another try as soon as there is .... and, not sure if these posts are helpful or not, if you don't want any more, please let me know and I'll just keep the test results to myself.
    ........... anyway, thanks for keeping the plugin up to date .......... its still useful for short-range teleporting of carts ..... and my fingers are crossed that @Afforess gets the 'chunks loaded' bit to work !
     
  6. Offline

    kroimon

    No, please continue posting your tests! I myself can't find the time to do these myself at the moment, and I hope that they may be helpful for someone (maybe @Afforess ;-) or one of the main devs) so that they might find what's going wrong...
     
  7. Offline

    Afforess

    Icephantom, I've done some basic testing and found the same thing as you.

    Here's the problem as I see it: Player teleporting is handled differently than entity teleporting. If you teleport an entity (e.g minecart) into an unloaded chunk, I don't think the minecart has a chance to load the chunk, it just get's unloaded and saved. If you teleport a person, the game is told to load that chunk, and send the client that information.

    Now with a player in a minecart, the game still treats the minecart like a entity, not a player, and so the chunks are never loaded, and no info is sent to the client.


    As to how to fix this.. something along the lines of what current player teleporting does now would need to be changed to support all entities.
     
  8. Is it likely that your 'keep chunks loaded' will assist at some point ? ....... or (as it sounds like), are we in the hands of the bukkit team to come up with an answer ?
     
  9. Offline

    Afforess

    Keep Chunks Loaded never even has a chance to work, because the minecart is unloaded because the minecart is teleported to an unloaded chunk.

    Yeah, someone (somehow, I get the feeling that this someone is me...) needs to fix it and submit a pull request.
     
  10. There will be more than myself that would be eternally grateful if you could achieve such a feat ...... and here was me asking you to take it easy, and now hoping you can pull off the programing dexterity of a god to sort out this little dilema ! ! ..... :oops: Your avatar pic provides confidence that you shall achieve this work of art ! ........ Good luck ......
     
  11. Offline

    Afforess

    @icephantom

    Thanks! I appreciate the well wishes.
     
  12. Offline

    0rk

    Ok ill check it out, thanks. :)
     
  13. Offline

    kroimon

  14. Offline

    Mopquill

    I love both this plugin and Minecart Mania, and I'm eagerly awaiting a fix on Bukkit's end to the long-distance problem. =]
     
  15. Offline

    Afforess

    It looks like Wormhole Extreme has figured out a workaround.
     
  16. Offline

    Benie

    Wormhole Extreme looks nice, but I personally don't need something that massive for a single track.
    Do hope this workaround might get this plugin working.
     
  17. Offline

    kroimon

    Nice, I'll have a look as soon as I'm back at my PC!

    Just uploaded the new version 1.1.0

    I had a look into how Wormhole X-Treme does passenger teleportation and mainly copied it (so all credit goes to Lologarithm, thanks man :cool:) which resulted in commit e33dc3de. He ejects the player before teleportation, teleports him as normal and creates a new minecart at the target location in which he places the player.
    I thought about that possibility before but was not sure if it could work :confused:

    I didn't change anything about how storage minecarts get teleported, so this might still be broken, and I can't guarantee there won't be any ghost minecarts anywhere ;) So: just give it a try!

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

    Raphfrk

    @kroimon

    Have you tried loading the target chunk using loadChunk() before teleporting. That could very easily simulate having a player present.
     
  19. Offline

    Afforess

    Saw your pull request, I'll look into merging it later on today. I asked the author of wormhole extreme to do this already, but I'd appreciate it if you did too - create an event to tell Minecart Mania that you just killed the old cart, and created the new to simulate teleporting. Otherwise, Minecart Mania will forget all the saved data on minecarts.

    See Here: https://github.com/alron/Wormhole-X...reme/event/StargateMinecartTeleportEvent.java
     
  20. Offline

    Mopquill

    I get this error upon loading the new version on git-Bukkit-0.0.0-544-g6c6c30a-b556jnks (MC: 1.3) :

    Code:
    10:23:04 [SEVERE] PLAYER_INTERACT loading Minecart Mania Teleport v1.1.0 (Is it up to date?)
    java.lang.NoSuchFieldError: PLAYER_INTERACT
            at net.sradonia.bukkit.minecartmania.teleport.MinecartManiaTeleport.onEnable(MinecartManiaTeleport.java:51)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:451)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:217)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:92)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:70)
            at org.bukkit.craftbukkit.CraftServer.reload(CraftServer.java:260)
            at com.earth2me.essentials.commands.Commandreloadall.run(Commandreloadall.java:34)
            at com.earth2me.essentials.commands.EssentialsCommand.run(EssentialsCommand.java:56)
            at com.earth2me.essentials.Essentials.onCommand(Essentials.java:586)
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
            at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:221)
            at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:380)
            at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Unfortunately, this plugin seems incompatible with the latest craftbukkit "recommended" build, and if I switch to a newer build (~600), around 8 plugins break, so, I have to stay here for a while.

    On the previous version of the plugin, I'd teleport correctly as far as the server was concerned, but, all chunks around me would unload, and my client-mod minimap would say I was at the same coordinates. If I logged out and back in, I'd have the new coordinates, and be on the other side of the teleport. On this version, I just crash into the sign. If I destroy a sign, your plugin notifies me, but if I try to remake it, it ignores my right-click.

    If you upload a 556- compatible version, I'd be happy to test it for you.
     
  21. Offline

    kroimon

    Cool :)
    Are you planning to use Maven in general? Because then I'd have some other commits for you that automatically create/fill in the plugin.yml when you use "mvn package" etc...

    Hm but then you'd have to compile against my plugin, don't you? Wouldn't it be easier if you provide a replaceMinecart(Minecart old, Minecart new) method I can call?

    The latest recommended build is #602 at the moment. Unfortunately I think you have to wait for all plugins to be updated before you can update to that build and use MM-Teleport as I don't have any older versions online, sorry...
     
  22. Offline

    Mopquill

    I was to understand that 556 was the latest stable recommended build of craftbukkit. If not, please explain to me what standard we're operating with here, as I wouldn't completely be understanding. As far as I've seen, they've been pretty much uploading every build as it comes, and it seems about as stable as SVN. the big one they were touting for a while was 556, and that seems to be what a lot of people consider to be stable.

    Ah, sorry, I see it now. 556 WAS the last one, though it was recently changed to 600, then 602. I'll upgrade, then, and then let you know.

    I must say, though, I don't care for their versioning. It's simply not intuitive to have like, three different 0.0.1 files that are all entirely different things. What is the point of that? Builds and revisions that are different should at the very least upgrade the most junior point version, especially if they are recommended. Plus, you shouldn't release tons of different builds under the same name. They should be whatever-buildXXX until they have it stable, and then go to their silly versioning. Personally, I prefer Major.Minor.Revision myself.

    Anyhow, sorry, I've digressed quite a bit. I'll let you know.

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

    Afforess

    I'm going to look into it this evening. So far, I've been doing it the lazy-man way, and letting Eclipse build it for me.

    Yes. Actually, I need to add that in anyway for the WormHole X-Treme event. I'll add it in next patch. It will be something like minecart.copy(Minecart minecart).
     
  24. Offline

    Mopquill

    It seems to work just fine on 602 with the latest Minecart Mania plugins. I must say, you guys are really on-the-ball. =]
     
  25. I'm looking forward to some more testing on the latest version - unfortunately, I can't move off #560 until Elevators gets an update - 70% of vertical transport is done via these, and I can't afford to have them broke ....... there is a post on his thread saying he's working on it though. ........
     
  26. Offline

    Badzilla

    I'm on 602 and elevators are working. I'm using MM elevators.

    Edit:
    602 is probably going to break a lot of other Plugins though.
     
  27. If you are talking about sign elevators within MM, I'm not - which is why the word 'Elevators' is in blue on my post, its a link to the Elevators thread .........
    If I'm wrong, please let me know ..........
     
  28. Offline

    Benie

    I just tested your plugin with CB Build 602 and the 1.06 MM suite. Long range inter-map (single map) teleporting works, for the most part. I see the view shaking and terrain slowly disappearing, then the cart shows up at the arrival teleport area.
    But it "leaves a hole" where the cart teleports to. Meaning, it makes a missing chunk in and around the arrival teleport area.

    Here's a picture, if it helps. Looks similar to the "missing chunk" bug of Minecraft Beta v1.2.02. As in, when you move away from it to let the chunks refresh, then come back, it fills back up (sometimes it takes awhile to);
    http://i54.tinypic.com/984sia.jpg
    I have the teleport on the right track. The issue is duplicatable.
     
  29. 1st chance I've had for extensive testing, so the latest results I have :
    Using bukkit #621 and MCM 1.06c.
    Tried teleporting a cart with me in it from point 'A' to point 'B' on the same world, some 300+ blocks apart, with no-one at the other end - WORKED PERFECT !! I arrived safely & still in the cart. I could still interact with the cart no problems at all. Tried this from point 'B' back to point 'A' - still WORKED PERFECT !!.
    Tried teleporting a cart with me in it from world 'A' to World 'B' with no-one in World 'B' - WORKED PERFECT !!
    I arrived at world 'B' still in the cart. I could still interact with the cart no problems at all !!! :D
    Tried the test posted previous - teleporting a storage minecart from point 'A' to point 'B' on the same world - no-one at point 'B', and at point 'B', the track loops round to bring the cart back through the same teleport sign to where I am at point 'A'. Again, and Amazingly ....... WORKED PERFECTLY !!! I pushed the cart off, waited, and within a few seconds, the cart reappeared back with me ......... truly outstanding work ...... this is the first time EVER that this has worked. Fantastic, and it now means I don't need anyone at the other end of the teleport for things to happen.
    Currently minecartmainia setting 'Minecarts to remain loaded' set to true (default setting).
    I have a few more tests to run now, to see if I can put some stuff in a storage minecart, have it teleport to my warehouse, unload itself via MCM's signs and come back to me down in my mine ....... This now opens up marvellous possibilities - i.e. to mine on any world, or be anywhere on any world, and you only need a few pieces of track, a minecart, and a sign to get what you are mining back to your warehouse. Leave one sign at the warehouse with no linking sign, go off mining somewhere (anywhere), when you're inventory is full, put down a linking sign to your warehouse, put down some track, send a storage minecart through with all the stuff you've just mined, when the cart gets back to you, just pick up the sign and track and you can continue mining - no more messy having to have nearby chests, no more having to leave where you are to go and empty your inventory anymore ..... Great !! .............
    Of course, I've still got to check that the minecart will empty itself, so that's my next job.
    You could also set up another linking sign at your warehouse for picking stuff up that you need ......imagine, sending a storage minecart through a teleport sign, and have it come back with items you need ....... tremendous !!!
    ....... many thanks for keeping going with this one ......... I'll post more results as I run more tests, but so far this plugin - now working as advertised ..... :D ...... many thanks ....... and also, even more thanks to @Afforess for MCM ......... great piece of kit these two combined !!! .....

    [Edit]
    Looked at Bernie's post above this one - haven't had this problem yet - although I do understand the problem - used to see it a lot before the amount of map files changed from thousands of files down to about 20 files in one of the updates a while back. Currently my test setup using 32bit Win server 2003 if that assists ....... client side, Win 7 64bit.
    Server using 32bit java ver 7 jdk, client using 64bit java ver. 7 jdk (Java 7 still in beta but available)
     
  30. Offline

    uoi100

    I downloaded the latest MinecartManiaCore and then downloaded this is and I got this error.
    Code:
    23:31:10 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-612-
    g4c7a9e7-b617jnks (MC: 1.4)
    23:31:11 [INFO] [Minecart Mania] Debug mode switched to NORMAL
    23:31:11 [INFO] [Minecart Mania] MinecartManiaCore version 1.08b is enabled!
    23:31:11 [SEVERE] Minecart Mania Teleport requires Minecart Mania Core to functi
    on! Disabled.
    Am I doing something wrong?
     

  31. Not by the looks of it, however, although I've done extensive testing on this plugin, I've not been able to go above Minecartmainia 1.06c, all the 1.07's and I've just tried the 1.08b, and thats the same, they all start spamming my server console with lots of errors - I've no idea why at the moment, but if I stick with 1.06c, things work fine - including this plugin. Might be worth asking @kroimon the plugin author if @Afforess has changed something significant in his MCM core program and this plugin no longer sees it as being present ?
     

Share This Page