Inactive [MECH] MultiInv V2.4.1 - Per World Inventories [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Pluckerpluck, Feb 17, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Silarn

    Just want to say that for some reason my exemption (keeping inventory across all worlds) is no longer working. Not sure if this started with 2.3.2 or some other plugin update. It still properly links inventories between world sets, however.
     
  2. Offline

    rockraven500

    Alright, so I'm not sure what changed, but it's working now, so how would I go about sharing to 3 worlds? world1_nether = world1
    world1_sky = world1?
    and if i did this, would I also need to enter if i went directly from one the next:
    world1_nether = world1_sky?
     
  3. Should be:
    Code:
    world_nether = world
    Adventure = world
    or
    Code:
    world= world_nether
    Adventure = world_nether
    And I'll see what I can do with the different system

    nope... and I can see why that would cause confusion...
    Code:
    world1_sky = world1
    world1_nether = world1
    is all you need.

    Definitely going to change the config method...

    I'll have a look at the group system today. If that's not possible (for whatever reason) I'll switch to the number system (because sharing more than 2 worlds may lead to confusion atm).
    Main reason I haven't done anything already is that I created the shares.properties before I'd realized there was built in config for bukkit. So I'm using java's Properties methods when I really should get round to switching to using the config methods because they're much more complete than my methods.

    P.S. Any changes I do make will correct themselves. No need to change anything yourself if you have correct config.

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

    Keri

    ignore list does not work for me now since update to 2.3.2
     
  5. Offline

    Jdbye

    Found a bug:
    With Multiverse Nether portals you can bring inventories between worlds you're not supposed to, I don't know why multiworld inventories work fine in all other cases than this but it seems you can consistently bring inventories between worlds you're not supposed to every time you use a multiverse nether portal. I had to remove Multiverse-NetherPortals for the time being until this bug is fixed. I hope no one who has realized it has used it to bring their creative inventory to survival.

    One suggestion to improve the plugin is to make it double check that the correct inventory is loaded when a inventory change event occurs. Therefore even if you somehow got the wrong inventory in a different world it would find out as soon as you tried to pick up or use any of the items, and disallow using it or load the correct inventory before picking up the item. I guess that might require Spout but it still is something worth looking into (make Spout optional though). I don't know if that event is very high frequency though, it might not be a good idea if it is.

    Additionally (and more importantly), it should double check that the correct inventory is loaded when saving a inventory so that you won't overwrite the correct inventory with a duplicated one, since at that point irreversible damage is done, plus that even if you implemented the previous suggestion above people could still log out after transferring their inventory to a world they're not supposed to, and bypass the check since when they logged back in it would think it was the correct inventory. Adding a check when saving to see if it's saving to the same world as it was loaded from should be a simple task (but might not be as I don't know exactly how your plugin works) and would at least stop people losing their inventory when they somehow manage to duplicate a inventory from a different world.

    Also, as some people suggested, having the old inventory formats auto convert to the new format would be much better than having to use the manual converter (both the inventories.data format and the older players.data format). Most plugins that change their formats at some point have a automatic converter to convert to the new format. I've already converted my players.data and didn't keep the old ones, but if you need the inventories.data I still have it.

    Honestly multiworld inventories is something that should have been added to Bukkit itself at the same time multiworld support was added. If it was integrated into Bukkit it would be lower level than plugins and therefore always work properly assuming it was correctly coded (and it could be made to use the player.dat files from other worlds, though I do like how much easier your format is to edit). It makes sense to have multiworld inventories, having multiworld support with no multiworld inventory support doesn't make much sense to me. It takes away a lot of the point in multiworld support. It could still have plugins to control which worlds share inventories with which (and without such a plugin everything would be shared like it is now), much in the same way Multiverse handles everything multiworld related and you need it or another multiworld plugin to actually use multiple worlds, though the actual multiworld support is in Bukkit itself, but the plugins would be simpler and there would be no chance of them not working properly since all they would do was tell bukkit "this world shares inventory with this world" and it would comply, and that functionality could be in the multiworld plugins themselves so you would have all configuration in one spot and in case the plugin wasn't working the extra worlds wouldn't be loaded at all so you still couldn't bring items to worlds you're not supposed to.

    That would also make something like two worlds both sharing inventory with a third world, and it remembering which world you last came from and only letting you take items back to that world from rather easy. I imagine that's harder to do with a plugin such as this, but it would be a really neat feature if you could add it (only needing one nether instead of one per world in order to be able to get nether items on all worlds would significantly decrease server load, right now I only have one nether linked to survival because I don't really want to double my amount of worlds just to be able to get nether items on worlds people rarely use)
     
  6. looking into it now.

    1) I will look into that bug though I don't see why it would happen.

    2) The problem is the moment after the teleport the inventory is out of my hands. I don't know what other plugins may be doing with the inventory. Because I don't have full inventory control (and never will) I just change the items in the inventory on teleport and let bukkit work the system. Because of this I can tell which inventory the player SHOULD have, but I have no idea what it may have changed to at any moment after the teleport.
    Because of that, there is no way to double check if they've duped an inventory. If they've cheated the system first time then they win. Sad but true.
    (p.s. unless spout can catch plugin created inventory changes... then it may be possible.. not sure)

    3) I'll do auto convert. It's harder to convert the inventories.data files because I haven't been storing versions and so don't know when it's being used etc... but the old player.data I should be able to auto convert.

    4)Sharing from two worlds to a third world wasn't exactly hard (it's a bit harder now because of how I've set it all up, but still doable). The reason I never implemented it is because I would have to do some CRAZY monitoring of items to stop transferring items. Think about it. You (from survival) meet someone in nether from creative. They drop items, you pick up items, you have creative items, you take your items back to survival.
    I suppose I could work out a method to do it if you REALLY want it.
    It would require spout (probably, because of chest inventories) but I THINK I could monitor every item dropped and only allow people to pick up items (or take from chests) items that are from their world (with a message if the item is unobtainable).
    Overall it's not a very nice scenario. I have no idea of the server load that monitoring every item would take.
    Your choice though. Note: I'm gone for a week in 2 days. Trying to fix the bugs atm, so this wouldn't be priority.
     
  7. Offline

    Jdbye

    2. Not everyone has other plugins that affect the inventory though, so you could still add it as an optional feature for those who don't. Pretty sure the only inventory affecting plugin I have is MultiInv. I assume Spout will catch any inventory changes no matter where they come from, but I don't know.

    4. I didn't think of that, it sounds like it would be a problem (and definitely require Spout) and probably cause a lot of extra server load. It would be a nice feature to have though, but it doesn't seem viable unless it's integrated in Bukkit. Though, when any plugin hooks the inventory event, isn't it already monitoring every item? Since you can't selectively choose in which cases you want to actually trigger the event, you have to do manual checks in the hook. If it was threaded, I imagine it would not have much of an impact on the server performance either way though, as Minecraft pretty much only makes proper use of one CPU core, so plugins can use the other ones for anything they want (assuming the server isn't single core...). With only one of the cores on the i7 920 the server is using actually being utilized properly, I wouldn't mind extra server load if it wasn't on the main thread (and therefore not causing lag)

    Edit: And yeah.. I always edit my posts lots of times because I always think of something more to add after I've posted it. Better than octodecuple posting I guess (I had to google to find out that word :p)
     
  8. Offline

    uncovery

    Can you change the message "you are on the master ignore list" please? Something like "You keep your inventories across worlds"? This sounds more like you are being ignored by the admin and is very confusing.
     
  9. Trying to fix today... before I leave...

    2) I'll add a 5 second/item pickup/item place confirmation if you want. It shouldn't be too hard. But if the system is tricked when changing world, there's a chance it will get fooled again.

    4) It's less about the event. It's that I'd have to monitor itemDropEvents and chest inventories and monitor the inventory of what people brought into the world. I'd then have to keep a record of which items came from which worlds by storing the item IDs somewhere. However, these item IDs would change over reloads and such so I'd have to somehow work out where the items came from over a server restart. The spout bit would only be needed for the chest inventory part as it's the only way to hook it atm.
     
  10. Offline

    Jdbye

    It would be nice if you added that, though it seems very unlikely to me that it would be tricked again (as long as it's the only inventory related plugin) since it would just be a check against what world it expects you to be in, and what world you are actually in, and if they don't match, it's safe to assume that at some point a cross-world teleport wasn't caught by the plugin, and save the existing inventory and load the correct one, so unless some other plugin changed the existing inventory there shouldn't be any chance of it being tricked.


    Seems like it would work around any current and potential future issues with inventories carrying over to worlds they're not supposed to, unless another plugin conflicts, but conflicts are to be expected with some kinds of plugins, so you shouldn't have to sacrifice security to lessen the risk of conflicts, especially as conflicts can still happen, they're just less likely to. Most people aren't going to have plugins that conflict with each other, and if they do the problem is usually easy to find by just temporarily disabling plugins with similar functionality as the one that won't work properly. And honestly, it's not a very good idea to have more than one inventory manipulating plugin at the same time.

    Make sure if you add it though, to also do the check on logout so people can't bypass the fix by just logging out after having somehow gotten their inventory over to a world in a different share.

    As for Multiverse-NetherPortals, it must be doing the teleport in a different way that your plugin isn't catching. Might be a good idea to check how it does the teleporting in case it's an easy fix.
    Edit: I checked quickly, and it's using the portal event (which extends the teleport event), just changing the destination:
    and getNewTeleportLocation does:
    So I suppose you'd want to catch that event AFTER MultiVerse has modified the destination. I have the per-world nether disabled, but for those that have it enabled, I assume MultiInv would currently load the nether (or corresponding normal world if already in nether) inventory no matter which world the nether portal actually went to, since in Multiverse-NetherPortals you can set destinations per world, and I assume MultiInv actually DOES catch the event, but before Multiverse does so.
     
  11. Damn... failed to update this in time. I still have internet when I'm away but my work is only up to date on my home pc... if I can find a way to access it I'll update the plugin if I have time. Otherwise I'm very sorry for not patching this...

    And btw, I definitely catch the event after MultiVerse as I checked with Rigby myself about that. But it's strange, because after one version I suddenly had people getting a null error (which is what happens if you portal before the destination is set). That was when I checked with Rigby about the event orders... I thought it was just a freak incident though. So I'll have to check this myself... if I get time I'll work it out over the next week. But I don't have my own laptop. I'm sharing, so I may not get much online time.... plus I'm going to be in the South of France... so I won't have too much incentive to work... sorry about that.

    Edit: Also, my plugin shouldn't be tricked first time... that's a bug in itself. Having a bug regularly being caught by a fail-safe is bad practice. Sure I'll add it, but I definitely should never have to rely on it. If anything that should be a fail-safe for new bukkit versions.

    Edit 2: I'll set up bukkit-dev at some point as well
     
  12. Offline

    Jdbye

    Well yes, but you can never know what might change in future Bukkit versions, or what weird things plugins might do that will confuse MultiInv, and in those events it's good to have a failsafe. Under normal conditions with a known compatible Bukkit build it should always work properly, but if it doesn't (and as I've experienced it doesn't always), having a failsafe will avoid any damage being done, and that's what matters.

    And it's fine that you didn't have time to update it, I have no rush with Multiverse-NetherPortals and otherwise the plugin seems to work perfectly fine at this point in time (though you can never know what will happen in the future). Since Multiverse is a rather popular plugin though, it's likely that someone else might use MultiInv and Multiverse-NetherPortals together too and get the same problem, so it might be a good idea to add a warning in the first post or something until it's fixed.
     
  13. Offline

    Poe

    I dont want to make a creative world as it would cause more lag...but can you make it so when you leave a certain area it saves or clears your inventory for that area? I have a little flat land for creative stuff and its a pain to keep having to do /give for all the materials people need. If you could do this that would be great :D
     
  14. I've seen another plugin that does that. Bit busy so can't link at the moment though, search around.
     
  15. Offline

    Poe

    i searched around and found nothin. name?
     
  16. Dammit, I can't find it, but i'm pretty sure there is one out there, maybe try opening a thread on it?

    EDIT: Found it about 10 seconds later: ZDInv
     
  17. @Jdbye @Pluckerpluck

    I've been adding some new events to MV2, would a "PortalDestinationChanged" event be useful?
     
  18. It's odd because onPortalEvent should return the right destination assuming Multiverse changes it during the event (and as long as it's not in the monitor priority).

    On that note, how does MultiVerse (still used to the capital V) change the portal destination... as in, where would a PortalDestinationChanged event occur?
     
  19. Offline

    EmWserver

    can't seem to get my nether to load
    Code:
    2011-08-31 15:45:55 [INFO] [MultiInv] Sharing Undiscovered to Planet_nether = Undiscovered Planet is invalid
    2011-08-31 15:45:55 [INFO] [MultiInv] Shared worlds loaded with no errors
    this is my config

    Code:
    Hellworld = Undiscovered Planet
    Undiscovered Planet_nether = Undiscovered Planet
    edit: Hellworld work fine with Undiscovered Planet, it is only when i put Undiscovered Planet first does it not work
     
  20. Offline

    Celtic Minstrel

    So, it needs to support spaces in world names.
     
  21. Offline

    GoTheRedSox

    Hey I am wanting to get this for 1.8 and I have some questions...
    Will it work for 1.8?
    Is this compatible with multiverse?
    Ty [pig] [arrow] [furnace] [cookedmeat]
     
  22. Offline

    EmWserver

    yes it is compatible but see my post above if you have worlds with spaces in the names. it works wonderfully with it however, for the worlds without spaces
     
  23. I don't know about 1.8 (not sure anyone knows yet), but it's working fine with Multiverse on my server
     
  24. Offline

    Poe

    THANKS A TON but next time tag me with @Poe so i know you posted this
     
  25. Offline

    Kaosvf

    Hi,
    why don't you use http://dev.bukkit.org/ that the people can subscribe to updates via e-mail?
    Regards.
     
  26. Ah yep, sorry.
     
  27. I am using that... I'm on holiday atm so it's just a basic account with the latest file uploaded. But there's defiantly MultiInv on devBukkit
     
  28. Offline

    Kaosvf

    found, thx.
     
  29. Offline

    GoTheRedSox

    K thnx man
     
  30. Offline

    Strange_ice0

    Thank you SO MUCH for this plugin! I couldn't find it anywhere (until i checked multiverses FAQ):p
     
Thread Status:
Not open for further replies.

Share This Page