[DEV/MISC] BootToInstance 0.2.4 - instanced worlds, Now with more craftbukkit overrides! [1000]

Discussion in 'Inactive/Unsupported Plugins' started by tehbeard, May 28, 2011.

  1. BootToInstance
    Version: 0.2.4
    The plugin is on hold for the foreseeable future, a serious flaw has been found in the way MC and bukkit work.

    since Mc is single threaded, loading up extra worlds kills performance. I don't have time to work on a solution, so the code is here for anyone to pick up.



    Description:
    BootToInstance is an plugin, designed to create instances in Minecraft. It is quite new, but is growing a little each day to suit the needs of the community.

    The current release is to test the waters for demand for this, as well as get a wider view of possible bugs and wanted features.

    What is an instance?
    An instance is a self contained copy of a world, that can be modified by players, torn up, destroyed, and then left. It can then be reverted (auto cleanup when players leave is planned) to it's original state for the next raiding party. BootToInstance can spoof a world, meaning you only need to config settings for that world and they should be applied to instanced worlds as well.

    Features:
    • Allows creating a self contained instance of a world, that does not require clean up afterwards
    • Can boot Multiple Instances from a single source folder.
    • Portals to take you to an instance.
    • Groups, Raid epic dungeons together!
    Limitations:


    some plugins may not work with BootToInstance,
    Because instances are spun up on the fly, MultiVerse will not allow portals and /mvtp to them. However, regular TP's will work if you use the instances ID (instancename_instancenumber, so 404 would be 404_0, 404_1 etc)

    However, I know that LWC and BorderGuard work, if you find anymore plugins that do/don't work let me know.

    You cannot instance from a world file that is loaded as a normal world. This is down to the session.lock file, so if you want a world to be editable and have instanced versions, you need two copies of the world (one for editing, one to be read by instances).

    how to use the commands:
    Colors screwed up, cba to wipe post and redo.
    /Command Action args
    /bti-portal
    actions:
    create
    Name Instance - name of portal, Instance name
    Location
    Portal X Y Z - Portal name, coords to enter in instance.

    /bti-group
    make - makes a group you own
    invite
    player - player name to invite
    accept - Accept an invite
    leave - leave
    remove
    player - remove a player
    clear - clears group

    /bti-exit - exit an instance.
    Download:
    Version 0.2.4 - RB1000 (MC1.7.3)
    Version 0.2.3- RB 860 (MC 1.6.6)


    Comments, feedback, (helpful) bug reports and ideas welcome!

    Planned Features
    Show Spoiler
    Show Spoiler
    Show Spoiler

    • portals to take people to Instances (or MV integration)
    • A party system for multiple people going into an instance Still stuff to add to it, per-instance group limits n such.
    • Reload world on last player leaving. Sorta done, need options with it
    • Cap on total instances
    • Cap per instance.
    • Personalised homes? - Credit to Avous.
    • API for other plugins.
    • Hibernate worlds to conserve CPU.

    ChangeLog

    Version 0.2.4
    • Various fixes for 1.7.3/RB1000
    • Maps won't work persist on Instanced worlds. This is because you cannot start worlds with the same UUID, thus we make each one be random. This will hopefully be fixed soon.
    • Added a cleanup routine, set to run every 5 minutes and unload all unused instance worlds.
    • There is a possible issue with RB1000 and the portal detection code, I may need to un-optimize to solve the issue. In the mean time I've left the debug message in.
    Version 0.2.3
    • Upgraded to RB860
    • Added groups
    • added /bti-exit command for leaving instances w/o logging out.
    Show Spoiler

    Version 0.2.2
    • A few bug fixes
    • added portal loading and saving.
    Version 0.2.1

    • Built for new RB 818, lot of internal changes to make it more expandable later
    Version 0.2
    • Added portals to worlds, changed commands.
    Version 0.1

    • Inital Release



    How to to help me.
    Bug reports are the obvious thing. Though confirmation of working/not working with plugins is greatly appreciated.

    Config file
    In lieu of a proper tutorial (Coming soon®), here is an example of the config file, with # comments about each part.
    In lieu of bukkit forum software spamming the code panel with size tags, a link to the text file on github.

    http://cloud.github.com/downloads/tehbeard/BootToInstance/config example.txt
     
    mattdh, Meldanor and thecoolwolf like this.
  2. Offline

    Mentioum

    Keen to see how this pans out - would use it for hosting multiple adventure maps on my server :)
     
  3. Offline

    Hagon94

    So, does this mean that the world on my server i can have portals that lead to other worlds, for example challenge / puzzple maps, that will clean itself after each entry? :D! Also, if so, is it possible to venture into these portals with " groups" ? And to configure when to reset, etc.? I'd love to kind of have " instances" like in WoW on my server. So that we can have set challenge maps with certain themes and portals leading to them in appropriate places arround our world.
    Please reply :D
     
  4. groups are planned, currently you can setup portals to instanced maps that will reset (the plugin prefers recycling used worlds over spinning up a fresh world and recycles when a player enters a portal).


    EDIT:
    Video tutorial should be up tonight. Microphone is busted, terrible to hear on video, in the process of purseuding an internet associate to read a script for the video.
     
  5. Offline

    rmb938

    +1 for party system!
     
  6. Offline

    MinasApátridas

    Really cool plugin, I like it a lot.
    I have some questions about it:
    This might sound stupid but... How can I exit a instanced world (without warps nor home)? Can I make a Multiverse portal?
    Another thing, when is a instanced world regenerated? and worldguard dont gets the spoofed name, gets the instance name of the world (with the leading _0) and the same with permissions.
     
  7. @MinasApátridas
    The method for the instance regen is as follows.
    Try and find an empty world not in use.
    Is it clean? (it can never be at this moment, could be cleaned in future versions ever X minutes or on leave instead of on request), if not clean it then give to user.

    if no empty worlds, and we still have space, spin up a new one.


    Exiting hasen't been done yet, I suspect MV portals may not work, but your welcome to try it and see if it works, if not I'll look into adapting the portal system to get into them to get out, but for now, logging out does the trick.


    WorldGuard and permissions you say? I'll get those on my test server and check them out. Could you post your config.yml from the BootToInstance folder for me to look at as well please?

    Edit:
    Found the issue with WorldGuard.
    In moving to RB860, I had to update the world loading code for generators and such (no support yet, possibly in the far future or via API).
    I forgot to reimplement the alias method call, so it wasen't setting it.
    It's fixed in 0.2.3, once groups are done I'll release, thanks for your help in finding this bug :)
     
  8. Offline

    MinasApátridas

    Cool, I've tried MultiVerse inside a instanced world, it works :)

    EDIT: It worked, but when I exited and entered the instance again, it doesn't :/
     
  9. Offline

    BangL

    omg omg omg that means the 0.2.3 release would be the one i could use productive.... cant wait for :cool:
     
  10. gah, without the login server I can't logon to do testing :(

    Groups are coded up, I need to run checks to ensure I squashed any show stopping bugs.

    Update: Groups are looking promising, still need to check some minor fixes, but my clients crashed and login is down again :(

    Lesson learned, don't try run Craftbukkit, Eclipse, and three MC clients.

    Planning to add a function to make return portals, they will require Alias' to work.
     
  11. Offline

    MinasApátridas

    Can't you make a return command, like /exit, or a configurable command (with permission node), so people dont have to disconnect (so they don't have to find the portal) In my server people can make home and warp and they exit your instances succesfully, when some1 enters again, enters the 1rst instance and everything is ok.
    I think your plugin is really awesome.
     
  12. I'll add /exit, seems kinda obvious now, i'll bundle it into 0.2.3 and push return portals back.

    Just adding some messages to the group code, probably didn't catch all edge cases, if you find bugs, post em here.

    0.2.3 is out, bug reports are welcome, it's not as finished as I'd like but it should hold for what you guys want now. I released early since I'm slammed for time till next week. Have fun and hunt bugs.

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

    MinasApátridas

    Downloading it! Cool!
    Hey, a detail. You posted Recomended Build 680 instead of 860 :p

    Feedback:
    Commands used:
    I used command /bti-group make nothing appears ingame, but this appears in console:

    Then used command /bti-group invite PLAYER and player received invitation (ok)
    Then PLAYER used command /bti-group invite accept and received this error in console:
    Then I tried to clean group with /bti-group clean and received this in console:
    Hope this helps! :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  14. it should be /bti-group accept, not invite accept. yeah i think i missed sending some player messages there.

    as for the null error, I think I found it, I removed the owner before they had cleared the group during the for loop. a fix in place, I'll release later tonight, at work at the moment.
     
  15. Offline

    nico0692

    when i type "/bti-instance start world test" he says me unknown console command ! what´s to do ?
     
  16. nico, it's moved to a new system, you define the instances in the config file not in game. Look under config file in first post and click the link.

    Portals can be made inside there as well, but it is not advised, it's easier to make those ingame.
     
  17. Offline

    nico0692

    ahhh oke!!! and what i have to write in config file ? can you make me a little test instance ?
     
  18. Read up on YML, then the config example should be easier to understand. i have no mic to do a video tutorial and I have a busy work schedule so a written tutorial might take a while.
     
  19. Offline

    nico0692

    okey than i must try around ;) you mean like this http://cloud.github.com/downloads/tehbeard/BootToInstance/config example.txt
    or ?

    my look like this :
    general:
    tmp-folder: instances/
    max-instances: 5
    portaltool: 341
    mode: fat
    version: 0.2.3
    instances:
    inst:
    name: test
    filename: world
    env: NORMAL
    alias: '404'
    max-inst: 5
    return:
    world: Paradise
    x: 0
    y: 70
    z: -80
    yaw: 0.0
    pitch: 0.0
    preload: 1
    portals:
    portal1:
    area:
    z1: -85
    y1: 68
    y2: 68
    z2: -84
    x2: 18
    x1: 18
    target:
    z: 0.0
    y: 0.0
    x: 0.0
    instance: test
    world: Paradise

    Paradise is my mainworld
    World is the instance world
    test is the instance

    who could be the error ?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 16, 2016
  20. is it indented? YML needs 4 space indentation per level.
     
  21. Offline

    nico0692

    jeah it is!
     
  22. Offline

    nico0692

  23. Ok, the only issue i can see is the target location for the portal (0,0,0). you can change this via /bti-portal location portal1 X Y Z in game. Try it and see if it works.
     
  24. Offline

    nico0692

    okey the target is now changed but when ich want to go into the portal nothing happens ?
     
  25. Do you get a "you entered" message?

    ok, tried the portal, and it seems to work. Have you tried building another portal elsewhere?

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

    BangL

    eerm it is not working for me anymore:

    when i go into the portal minecraft starts to load the instance, i get kicked and the Client tells me:

    Code:
    Disconnected by Server
    
    You moved too quickly :( (Hacking?)
    

    Serverconsole:

    Code:
    2011-06-16 23:40:13 [WARNING] BangL moved too quickly! Elapsed ticks: 18, Distance change: 4489.0
     2011-06-16 23:40:13 [INFO] BangL lost connection: user was kicked.
     2011-06-16 23:40:13 [INFO] [BootToInstance] Called!
    

    I already tried to deactivate ALL other plugins.. still the same! so it depends on bukkit.


    EDIT: i forgot to say: after a reconnect i am in the normal world.
     
  27. gaahh notch code strikes again. The "hacking?" error showed up once, but it won't reproduce! :mad:

    At least returning people out of instances on logout still works.
     
  28. Offline

    BangL

    well... sorry bro, it was my bad a bit.
    figured out this moment:

    i had wrong ccords for target position in instance.
    so i spawned inside of stone and dirt.
    but if the position is in air it works well. :)
     
  29. ah excellent, thanks for letting me know :) I'm gonna change default behaviour to the worlds spawn location as the portal target. should prevent this.
     
  30. Offline

    BangL

    ok i tested the functions now with some members, everything seems working fine so far, but one thing:

    we are getting random damage after leaving instances in normal world, but there are no mobs near us.
    one time even a creeper exploded and made a hole, but there was none creeper before.
    maybe mobs from instance world positions, doing dmg in wrong world?
     

Share This Page