WorldInventories
WorldInventories
Discontinued
As of 11/05/2013 I'm no longer working on this project. I haven't played vanilla/Bukkit in a very long time, updates are becoming tedious and break often requiring rewrites, and I'm not enjoying development any more. The last uploaded version for 1.5.1 works fine (aside from the importing), and there's a chance it will also work across updates, but moving to another plugin, such as MultiInv, is highly recommended - you should also be able to import settings in to it.
Description
Switch any of the following player information when teleporting between groups of worlds:
- Inventory,
- Armour,
- Ender Chest contents,
- Potion effects,
- Health,
- Hunger,
- Experience,
- Game mode.
Player information is separated in to small YAML files (that you can edit) based on groups. Designed to be fast, simple and easy to use.
Want to keep existing player information? Use the vanilla import option as outlined in the configuration example. Players will get a blank inventory by default if you don't import data first!
Need to chat, notify me of a bug, suggest a feature or try and get some help? Go to the IRC channel! (information down in Links)
How to use
Simply put WorldInventories in the Bukkit plugins folder, run it once, edit the config file it creates. An example is included below (with an explanation of each configuration option).
Any worlds not included in groups share a "default" group.
Changes in 1.7.0
Importing support for files previous to v5 has been dropped. This was necessary to clean the project up (just look at the GitHub page if you want proof!) and make it easier to maintain. If you need to import previous to this, use 1.6 as a go-between. Vanilla importing still works fine.
Other changes and additions:
- Added message hiding granularity (hide specific message types, on login for example),
- Added language support,
- Massive code cleanup,
- Event priorities changed a bit, should improve compatibility with other mods,
- Built against 1.5.1,
- Added API - tell me if you would like something added to it!
A note about the dev builds: All importing is currently broken. I'm fixing vanilla importing, it will involve using the OpenInv plugin to load offline player inventories. OpenInv is optional and only required when doing the vanilla import.
Language support
As of 1.7.0 a new file, langs.yml, will be created on the first plugin run. A new configuration option, "language: en_GB" will also be generated.
To add a new language:
- Run the new version once, it'll generate lang.yml in the same place as config.yml, and add "language: en_GB" to the config as a default,
- Open lang.yml, copy one of the sections and call it something (preferably the country code),
- Set "language" to whatever you called it, save,
- Either do "/wireload language" or restart the server, check the console to see if there were any errors when trying to load your new language.
If you add a different language please let me know, I can add it to the defaults!
Why no SQL support?
For a plugin like this, it isn't necessary. Files are very, very small (you'd probably hit 10kb for a player with a completely full inventory), load extremely quickly and are fast to copy and backup as they are.
If you disagree with me, provide a performance report to me on IRC (there are lots of plugins to profile performance) and I'll think about it again.
Configuration example (with explanations)
Version 1.7.0
# A "group" is a collection of worlds which will share an inventory. # In this example there are two groups, a creative and a survival group # Each group has an overworld and a nether, which will share an inventory # Inventory switching examples # Scenarios when the inventory will not switch: # creative_overworld to creative_nether # survival_nether to survival_overworld # survival_end to survival_overworld # Scenarios when the inventory will switch: # creative_overworld to survival_end # survival_nether to creative_nether groups: creativegroup: - creative_overworld - creative_nether survivalgroup: - survival_overworld - survival_nether - survival_end # Add a player to the "exempt" collection to make this plugin ignore them completely # No saves, loads or anything else done by this plugin will apply to them until you remove them from the list exempt: - exampleplayer - exampleplayer2 # This is deprecated as of 1.7.0 - use message-hidden at the bottom instead! # donotifications: true # Set this to true to make WorldInventories attempt to import MultiInv data # Automatically sets itself to false when an attempt is made domiimport: false # Set "miimportmode" to the integer identifier of the mode WI should import from (eg, 0 for MI survival) miimportmode: 0 # Set to true to make hearts, food level, experience and such track with inventory dostats: true # If a save interval is specified below, set this to false to stop it from outputting to the console outputtimertoconsole: true # Set to anything above 30 to make inventories/stats save automatically every x seconds saveinterval: 0 # Set "do78import" to true to force a conversion of the pre build 78 files for use in newer versions # Automatically resets itself to false on an attempt do78import: false # Set "do141import" to true to force a conversion of the pre version 1.4.1 files for use in newer versions # Automatically resets itself to false on an attempt do141import: false # Set "dovanillaimport" to true to attempt an import of the items and stats stored in players player.dat file # Set "vanillatogroup" to the group you want to import to. If blank it will use the default group. dovanillaimport: false # When this plugin loads it will automatically try to convert pre build 78 files and add "auto78updated: true" to this file if successful # When this plugin loads it will automatically try to convert pre version 1.4.1 files and add "auto141updated: true" to this file if successful # Set "dogamemodeswitch" to true and add groups to gamemodes as per the example to enforce gamemodes # SURVIVAL, CREATIVE or HARDCORE at the time of writing (follows Bukkit's names) gamemodes: default: SURVIVAL creativegroup: CREATIVE survivalgroup: SURVIVAL dogamemodeswitch: false # Below are 1.7.0 and above # Set language to something stored in lang.yml language: en_GB # To hide a particular message type, set any of these to true message-hidden: died-message: false changed-message: false nochange-message: false loaded-message: false
Commands & Permissions
There are two commands as of 1.5.7:
- /wireload: Reloads the configuration,
- /wiexempt [add/remove] [player]: Add or remove the player from the exemptions list (whether the plugin does anything to their information specifically, e.g. when they switch a world).
In 1.7.0 the reload command changed slightly:
- /wireload [all/language]: Reloads the entire configuration or just the language.
There are also two permissions:
- worldinventories.reload: Allows the use of the /wireload command,
- worldinventories.exempt: Allows the use of the /wiexempt command.
Licenses
This work is distributed under the BSD 2-Clause license. Read the license
This plugin also uses XStream. Read the XStream license
Links / Download
Bukkit require me to include this notice when linking Jenkins builds, like the one below.
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
- Source code
- Available in the BukkitDev downloads!
- No beta builds.
- Issues / known bugs
- IRC - EsperNet #worldinventories
- Donate
Use IRC for new build notifications, telling me about issues and getting faster help!
(Only shows stats for version 1.4.1 and above)
Question. With all the issues with CB lately, causing so much fun for developers.
If I removed World Inventories for a time. Would players logging in still have the same inventor they had before I removed the plugin? As in, when the log in after the plugin is removed, they would have the same inventories they had when the last logged out with the plugin installed.
The reason I'm thinking of removing WorldInventories, I'm using a plugin called DiabloDrops, which would basically ruin all players if I continued to use WorldInventories after 1.4.6.
The only work around I can think of is having all player deposit their items into chests before logging out and updating the server.
Just had a thought to fix the meta data issue. Could you do something that used chests for players that has meta data items?
@dropposite
It's in the "Links / Download" section ;) #150 is the one you want for 1.4.6. If you'd rather wait for BukkitDev to check it, it should be up tomorrow.
hmm, i dont see a download link here.
Build #150 has been uploaded as a somewhat stable dev build. Tested by a few people and works fine (including importing) with one important exception:
Items with metadata from the previous version (1.5.9, with written books, for example) will break that player's import. You'll have to either remove the items before upgrading, start again for that player, or manually remove the item from the XML files. I've spent hours trying to work around it and I can't. Sorry :(
The bug doesn't affect anybody else - even if you get exceptions whilst importing, they are per-player only. Other player's data should be fine.
@gumgumpuntnl
Unfortunately I'm really having trouble trying to fix this particular issue.
It will only fail for people that have an item with the 'new' metadata: books seem to be the main problem. The only way to fix it right now is manual, remove the entry for the book from that particular file and import again.
Players for which an exception is not thrown will have their inventory imported fine.
<<reply 1136966="">>
bukkit 1.4.6 version is #2554
WorldInventories v1.6.0-dev #148
Still error's:
0:34:21 [INFO] [WorldInventories] Starting pre 15 build inventory import...
0:34:36 [SEVERE] com.thoughtworks.xstream.converters.ConversionException: org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
---- Debugging information ----
message : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
class : java.util.LinkedHashMap
required-type : java.util.LinkedHashMap
converter-type : com.thoughtworks.xstream.converters.collections.MapConverter
0:34:36 [2]/org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
line number : 11
0:34:36 [1] : java.util.ArrayList
0:34:36 [1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
0:34:36 [2] : me.drayshak.WorldInventories.InventoriesLists
0:34:36 [2] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
version : null
-------------------------------
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
0:34:36 [SEVERE] at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
0:34:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
0:34:36 [SEVERE] at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1058)
0:34:36 [SEVERE] at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1042)
0:34:36 [SEVERE] at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1006)
0:34:36 [SEVERE] at com.thoughtworks.xstream.XStream.fromXML(XStream.java:948)
0:34:36 [SEVERE] at me.drayshak.WorldInventories.Import15Helper.load15PlayerInventory(Import15Helper.java:32)
0:34:36 [SEVERE] at me.drayshak.WorldInventories.WorldInventories.import15Data(WorldInventories.java:717)
0:34:37 [SEVERE] at me.drayshak.WorldInventories.WorldInventories.onEnable(WorldInventories.java:991)
0:34:37 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
0:34:37 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
0:34:37 [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
0:34:37 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.CraftServer.loadPlugin(CraftServer.java:278)
0:34:37 [SEVERE] at org.bukkit.craftbukkit.v1_4_6.CraftServer.enablePlugins(CraftServer.java:260)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.j(MinecraftServer.java:321)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.e(MinecraftServer.java:300)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.a(MinecraftServer.java:259)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.DedicatedServer.init(DedicatedServer.java:149)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:399)
0:34:37 [SEVERE] at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849)
0:34:37 [SEVERE] Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
0:34:37 [SEVERE] at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
0:34:37 [SEVERE] at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
0:34:37 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:70)
0:34:37 [SEVERE] at com.thoughtworks.xstream.converters.collections.MapConverter.putCurrentEntryIntoMap(MapConverter.java:90)
0:34:37 [SEVERE] at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:78)
0:34:37 [SEVERE] at com.thoughtworks.xstream.converters.collections.MapConverter.populateMap(MapConverter.java:72)
0:34:37 [SEVERE] at com.thoughtworks.xstream.converters.collections.MapConverter.unmarshal(MapConverter.java:67)
0:34:37 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
0:34:37 [SEVERE] ... 47 more
0:34:37 [SEVERE] [WorldInventories] Failed to convert luc_12345.inventory.v4.xml in group survivalgroup
0:34:38 [INFO] [WorldInventories] Attempted conversion of 4 groups including: 1482 inventories, 1118 Ender Chests and 1072 player stats.
0:34:38 [INFO] [WorldInventories] Initialised successfully!
@gumgumpuntnl
Taking a look at it now.
Edit: Could you try #148 and let me know if it works?
http:ci.drayshak.co.uk/job/WorldInventories/148/
<<reply 1136851="">>
Sorry, i don't have IRC.
Still some error's.
bukkit 1.4.6 version is #2554
WorldInventories v1.6.0-dev #147
23:55:07 [INFO] [WorldInventories] Starting pre 15 build inventory import...
23:55:35 [SEVERE] com.thoughtworks.xstream.converters.ConversionException: org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
---- Debugging information ----
message : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
class : java.util.LinkedHashMap
required-type : java.util.LinkedHashMap
converter-type : com.thoughtworks.xstream.converters.collections.MapConverter
23:55:35 [2]/org.bukkit.craftbukkit.v1_4_5.inventory.CraftMetaItem
line number : 11
23:55:35 [1] : java.util.ArrayList
23:55:35 [1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
23:55:35 [2] : me.drayshak.WorldInventories.InventoriesLists
23:55:36 [2] : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
version : null
-------------------------------
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
23:55:36 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
23:55:36 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
etc.
@rbos
@gumgumpuntnl
That's odd, works for me. Try this one? I might just have to give up on transferring potion effects.
Can either of you get on IRC? Could be faster to fix like that.
fixing with rbos now
Got a bunch of import errors. Starting with:
and then a few thousand of the following before I did ^C
bukkit 1.4.6 version is #2554
WorldInventories v1.6.0-dev
Sorry, getting this error's:
22:50:52 [INFO] [WorldInventories] Starting pre 15 build inventory import...
22:50:55 [SEVERE] com.thoughtworks.xstream.converters.ConversionException: potioneffecttype : potioneffecttype
---- Debugging information ----
message : potioneffecttype
cause-exception : com.thoughtworks.xstream.mapper.CannotResolveClassException
cause-message : potioneffecttype
class : org.bukkit.potion.PotionEffect
required-type : org.bukkit.potion.PotionEffect
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /playerstats/potioneffects/potioneffect/type
line number : 12
22:50:55 [1] : java.util.ArrayList
22:50:55 [1] : com.thoughtworks.xstream.converters.collections.CollectionConverter
22:50:55 [2] : me.drayshak.WorldInventories.PlayerStats
version : null
-------------------------------
22:50:55 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
22:50:55 [SEVERE] at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
22:50:55 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
22:50:55 [SEVERE] at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
22:50:55 [SEVERE] at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
22:50:55 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
22:50:55 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
22:50:55 [SEVERE] at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
etc.
Holy comments batman.
Bad news: the new 'safeguard' system breaks the file save format for every update, trashing the saves with each update.
Good news: I spent today rewriting the save system. There is a new save format that should not break. If it does, it's because Bukkit changed something major about items. It uses YAML (like the configuration files), so is still readable and fast as far as I can tell.
Double good news: I removed the CraftBukkit dependency so it won't automatically break (refuse to start) on every Minecraft update. This might break vanilla importing but I wanted to get a build out quickly.
Important: This version includes an automatic importer for 1.5.x files. It will run when you use the new plugin for the first time. If you get errors whilst importing, tell me about them! Things that might not transfer include book data, potion effects and such (I can't help this, sorry).
I need testers! If you can, please backup your files and try the version in this comment. I tried it locally and it works fine but that doesn't mean it will work for you!
http:ci.drayshak.co.uk/job/WorldInventories/143/
No luck with the 1.5.9 beta build under Spigot build 345 (1.4.6-R0.1)
09:02:08 [SEVERE] Could not load 'plugins/WorldInventories.jar' in folder 'plugi ns' org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: net/mi necraft/server/v1_4_5/World at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230) at org.bukkit.craftbukkit.v1_4_6.CraftServer.loadPlugins(CraftServer.java:272) at org.bukkit.craftbukkit.v1_4_6.CraftServer.<init>(CraftServer.java:250) at net.minecraft.server.v1_4_6.PlayerList.<init>(PlayerList.java:52) at net.minecraft.server.v1_4_6.DedicatedPlayerList.<init>(SourceFile:11)
Omg I need this so badly right now. Thousands of players waiting.
please update for 1.4.6
multiinv crashes on my server everytime, only this plugin works(but it doesnt work) My issue isnt so much controlling inv in worlds right now, its dealing with players loosing entire inventories in the other worlds if i dont have this plugin.
The MultiInv guy said he's working on updating WorldInventories import, so go check out MultiInv.
ok i tried and received this error. hope it helps
[INFO] This server is running CraftBukkit version git-Bukkit-1.4.5-R1.0-b2543jnks (MC: 1.4.5) (Implementing API version 1.4.5-R1.0) 2012-12-20 23:06:45 [SEVERE] Could not load 'plugins\WorldInventories-v1.5.9-beta.jar' in folder 'plugins' org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:255) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:132) at org.bukkit.craftbukkit.v1_4_5.CraftServer.loadPlugins(CraftServer.java:229) at org.bukkit.craftbukkit.v1_4_5.CraftServer.<init>(CraftServer.java:207) at net.minecraft.server.v1_4_5.ServerConfigurationManagerAbstract.<init>(ServerConfigurationManagerAbstract.java:52) at net.minecraft.server.v1_4_5.ServerConfigurationManager.<init>(SourceFile:11) at net.minecraft.server.v1_4_5.DedicatedServer.init(DedicatedServer.java:111) at net.minecraft.server.v1_4_5.MinecraftServer.run(MinecraftServer.java:398) at net.minecraft.server.v1_4_5.ThreadServerApplication.run(SourceFile:856) Caused by: java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(Unknown Source) at java.util.zip.ZipFile.<init>(Unknown Source) at java.util.jar.JarFile.<init>(Unknown Source) at java.util.jar.JarFile.<init>(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:243) ... 8 more
I hear u LEOcab.... the only plugin that isnt working with the new build is WorldInventories. And the only plugin that my server cant run without, is WorldInventories. I dont want to use another plugin, as I have tried them with poor results.
@rsmKaelub Multiverse-Inventories has WorldInventories support, but I don't know what version of WI. Probably an old one since MVI hasn't updated since 1.3.2. :/