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

    Jdbye

    Not really tired at all, so sleep will have to wait. However it's definitely being deleted on every server restart, as I can see the file size increasing when people log in but when I restart the server the file is cleared, and no "inventory loaded" messages appear the first time people log in afterwards. Bug in the cleanup routine, I guess?

    I don't blame you for the unreliability, by the way - it seems like plugins of this kind are doomed to be unreliable since there is no better way of doing things than overwriting player data when neccessary... at least for now.

    What if instead of naming saved inventories by the worlds in the share, you have a unique inventory name defined for each share in the shares.txt?
    It could perhaps be defined like so: inventoryname:world1,world2,world3
    That way the problem I was having could be avoided 100% guaranteed and the cleanup routine wouldn't screw anything up even if it did run too early.
     
  2. Offline

    bogboom

    Sorry, I posted in the wrong thread. Had both open and clicked the wrong one. :)

    P.S. Thanks For the great plugin!
     
  3. That's not a bad idea though I was trying to cut down on any user interactions (because a lot of mistakes can be made as the amount to configure goes up). You've given me a great idea about how to optimize my inventory system (very similar to what you suggested... can't believe I didn't think of it before). There's always the chance that I'll realize a flaw in it later though. Cleanup would still mess it up though. Imagine that the shares.txt doesn't load. Then it doesn't know that the inventory should exist still so it would delete it then save the new file... however, I know how to fix that... just make the inventoryname "Username World1" then map all the "minor" worlds to that world directly (as I currently iterate instead). That way world1 cleanup couldn't kill it....... I love you....

    ^ that was a rant used to help me remember but I feel bad deleting it...

    Anyway, until then, I think I fixed the problem. Ran cleanup before I'd actually importable inventories.data (something your method still couldn't counter... idiocy).

    If you're willing try this:
    http://bit.ly/etGksU <-1.3.4
     
  4. Offline

    Jdbye

    If the shares.txt doesn't load at all I would make it disable itself and tell the user to fix the errors in his shares.txt, that way no harm can be done from a incorrectly or partially configured plugin.
    1.3.4 has at least fixed the inventories.data being cleared, will have to wait until tonight t0 really know if it fixed the rollback bug, but so far so good.
     
  5. That's exactly what I added. I now wait to ensure that shares.txt is fully loaded before running the inventory cleanup. So if it never loads then the inventories are never cleaned up. However, I'm trying to decide whether the entire plugin should be inactive if it doesn't load, so all worlds share the same inventory (which ever one you logged of in), leading to inventories potentially being overwritten when it does load later. Or just using basic "per world" inventories where minor world inventories will be lost when the shares.txt loads. Personally I think I'm in favour of the latter (which is the current system)
     
  6. Offline

    Jdbye

    No rollbacks yet, I think it's safe to assume 1.3.4 has fixed the problem.
     
  7. Offline

    SweetCraft Girl

    Upon first use. This plug wiped everyones inventory on login and from then on in, everytime anyone logged out their invenetory was wiped.

    I put the main world on one line, the creative world on the second line like:

    New Arcadia
    SweetDreams

    Also tried without New Arcadia there.

    Running Bukkit [493]
     
  8. Offline

    Jdbye

    Nonshared worlds don't need to be added to shares.txt, try with a blank shares.txt
     
  9. It says in the first post. This doesn't work for worlds with multiple words in the name and truthfully I can't remember (and therefore have no idea) what happens if you use a world with multiple words. Though removing the inventory makes sense.... what are you using for multiple worlds. Did Multiverse add support for worlds with multiple names.

    When I update to 1.4.* I'm going to change the system I use to save worlds and I may add support for multiple words then. Until that time you'll have to rename the world if you want to to use this plugin.

    Also I haven't had the chance to test the latest recommended build but nothing changed that should break it.
     
  10. Offline

    Phaedrus

    @Pluckerpluck are you still planning on implementing a major/minor world?

    I think this would simplify the inventory management. for instance, on my server I have 2 separate build and survival worlds. But I want survival player to be able to go to the nether to collect items. wouldn't it be more simple if the main survival world were the major world, and the nether the minor world, so that anything gathered in the nether went straight into the survival world inventory?

    I haven't tried the new version yet, so maybe this is how it's working now kind of? I'm reluctant to change anything because I'm afraid of wiping inventories again. :s Nether portals aren't working right in multiverse right now, so i'm waiting to open the nether until multiverse gets updated. I hope by then shared inventories will work smoothly as well.

    By the way, The author of multiverse is thinking of implementing per-world inventories as well. Perhaps the two of you could get together and work something out. Two heads are better than one, and you'd have a larger testing base. The functionality could still be split out into separate jars. Just a thought.

    Keep up the great work!
     
  11. The MultiVerse author is... then I may need to talk with him, see what he plans to do...

    Also, If you were to update then you'd probably lose the inventories but I'm pretty sure it would now work. You also had MultiVerse loading before MultiInv didn't you... because it turns out that caused a major problem...

    Also, it is sort of major, minor world... but not properly... which I'm going to implement in the next big update. And if you update now then that larger update shouldn't require losing your inventory because I'm going to add conversion from it to the new one.
     
  12. Offline

    SweetCraft Girl

    Is it possible to add support for worlds with a space in their name?
     
  13. I'll try to work on it over the next week.
    --- merged: Mar 7, 2011 1:21 AM ---
    @SweetCraft Girl
    I've added multiple words per world now, so it should work.

    However, I haven't the time to test on the latest recommended build, though there's no reason why it shouldn't work.

    Also: I've completely revamped the save system. It's much more major/minor world oriented now and the code looks nicer too.

    As always, if you run into some freaking problem that I don't have feel free to destroy my hope of having a working plugin to help me actually attain a working plugin.
     
  14. Offline

    storma

    Shared inventories worked with 1.3.4 but it has stopped working again for me with 1.4.
     
  15. What! Seriously! Fixing... It was working before I posted it... I'm sure

    Edit: Very sorry, I'd uploaded the wrong jar file. Re-download from the same link and it should work now.
     
  16. Offline

    storma

    :) Thanks, your a champ.
     
  17. Great plugin but i get an error when loading it

    Recommended Build: 493
    Using Permissions, Multiverse, Essentials and more plugins

    18:48:50 [INFO] [MultiInv] Shared worlds loaded succesfully
    18:48:50 [SEVERE] java.util.HashMap cannot be cast to java.util.concurrent.ConcurrentHashMap loading MultiInv v1.4.0 (Is it up to date?)
    java.lang.ClassCastException: java.util.HashMap cannot be cast to java.util.concurrent.ConcurrentHashMap
    at uk.co.tggl.Pluckerpluck.MultiInv.MultiInv.deSerialize(MultiInv.java:253)
    at uk.co.tggl.Pluckerpluck.MultiInv.MultiInv.onEnable(MultiInv.java:67)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:414)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)

    Can you help ? Thnx!
     
  18. That looks like an old error. Quite early on I had to change the save file I used. So you'll have to delete the inventories.data for the plugin to work.... (That error makes me think that you're updating)

    Edit: Either that or you've gone and used an old inventories.data somehow.
     
  19. i Have indeed upgraded from 1.2 to 1.4.
    But if i delete the inventories.data file does that mean my player lose their inventory?
     
  20. Unfortunately yes... if you're willing to wait a bit (Should be done end of today (GMT)) I'll try and make a small conversion jar that will change the inventories.data to the new format. However, I can't remember exactly what changed since then so there's still the chance of it not working... tell everyone to put valuables in chests..

    Edit: Prepared much quicker than I though...

    Follow these steps:
    1. BACK UP you inventories.data (I can't test this because I don't have the old inventory file so if it doesn't work you don't want it to destroy the inventories)
    2. Remove the MultiInv.jar (whatever the version)
    3. Add InventoryConvert.jar and run server
    4. Watch the console for outputs from the plugin
    5. If it was successful try using new MultiInv version, if not, report back with error.
    inventoriesConvert.jar <- Here's the conversion jar. be sure to remove it after use (though it shouldn't harm anything)
     
  21. Offline

    Joseph Cruz

    I wish this plugin allowed permissions for admin through the "Essentials" plugins, I really would like that so my players could have a creative map to build w/e they want and give any item they want. Any way you could make this possible?
     
  22. Offline

    ehushagen

    I've been using this for a week or so now and it works perfectly - both I and the players on my server love it. Thanks a lot!
     
  23. Offline

    Phaedrus

    I think things are working smoothly now... crossesfingers
     
  24. thnx but i get this error while converting:

    14:28:49 [INFO] [InventoryConvert] Starting inventory conversion
    14:28:49 [SEVERE] java.io.EOFException
    14:28:49 [SEVERE] at java.i:confused:bjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
    14:28:49 [SEVERE] at java.i:confused:bjectInputStream.readObject0(Unknown Source)
    14:28:49 [SEVERE] at java.i:confused:bjectInputStream.readObject(Unknown Source)
    14:28:49 [SEVERE] at uk.co.tggl.Pluckerpluck.inventoryConvert.Convert.convert(Convert.java:58)
    14:28:49 [SEVERE] at uk.co.tggl.Pluckerpluck.inventoryConvert.Convert.onEnable(Convert.java:33)
    14:28:49 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    14:28:49 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:451)
    14:28:49 [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:217)
    14:28:49 [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
    14:28:49 [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    14:28:49 [SEVERE] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    14:28:49 [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    14:28:49 [SEVERE] at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    14:28:49 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    14:28:49 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    14:28:49 [INFO] [InventoryConvert] Shutting down...
     
  25. Working on that... Will try to find the problem... You definitely didn't have the MultiInv plugin did you?... I can't think why this error would come up... and the file is still readable...

    Edit: I MAY have fixed it based off some advice from someone on the internet. So try this
    http://bit.ly/hPUHc2 (Same link, new file). Hopefully it will work, if not can you post your inventories.data on the internet (upload it) and it will let me test properly.
    Sorry, If you're asking what I think you're asking it's down to the permissions plugins to control permissions on different worlds... I know that both Group Manager and Permissions can have different permissions on different worlds
     
  26. MultiInv wasn't enabled when i run this plugin. (Removed from plugins folder)
     
  27. Just in case you missed it, I edited the last post ^
     
  28. Code:
    20:47:20 [INFO] [InventoryConvert] Starting inventory conversion
    20:47:20 [SEVERE] java.io.EOFException
    20:47:20 [SEVERE]       at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
    20:47:20 [SEVERE]       at java.io.ObjectInputStream.readObject0(Unknown Source)
    20:47:20 [SEVERE]       at java.io.ObjectInputStream.readObject(Unknown Source)
    20:47:20 [SEVERE]       at uk.co.tggl.Pluckerpluck.inventoryConvert.Convert.convert(Convert.java:58)
    20:47:20 [SEVERE]       at uk.co.tggl.Pluckerpluck.inventoryConvert.Convert.onEnable(Convert.java:33)
    20:47:20 [SEVERE]       at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    20:47:20 [SEVERE]       at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:451)
    20:47:20 [SEVERE]       at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:217)
    20:47:20 [SEVERE]       at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
    20:47:20 [SEVERE]       at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    20:47:20 [SEVERE]       at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    20:47:20 [SEVERE]       at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    20:47:20 [SEVERE]       at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    20:47:20 [SEVERE]       at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    20:47:20 [SEVERE]       at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    20:47:20 [INFO] [InventoryConvert] Shutting down...
    Still doesn't work! So here's my Inventories.data file (renamed it to .txt so i could upload it.) If you still want the original gimme a sign :)

    Thnx for the support!
    All the plugin makers are so very nice around here :)!
     
  29. Offline

    Phinary

    any chance you can fix the glitch where people can spam q and switch items from world to world?
     
  30. Unfortunately this isn't a problem I can fix. Until bukkit add a WORLD_CHANGE event I can't do anything. Atm I check every second if a player has changed world. But with lag it doesn't actually check every second... As soon as they fix that I'll add it.
    Ok, I'll try and get that converted for you tomorrow (I'm assuming that the file works with the old version of the plugin).
     
Thread Status:
Not open for further replies.

Share This Page