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)

-
View User Profile
-
Send Message
Posted Dec 15, 2011Ugh, had the damage- bug again, today. :(
-
View User Profile
-
Send Message
Posted Dec 15, 2011Thought I'd point out that going form one world set to another, then back while having a spout-item turns it into flint.
I had some stainedglass and it was turned into flint. No major loss, but did catch me off guard.
-
View User Profile
-
Send Message
Posted Dec 14, 2011Ok i'm having a problem and i was wondering if this is a know problem that more people have. Or if it is just something i did.
ok, i have 4 worlds. 'world, world_nether, survival, survival_nether' when switching between world and survival the inventory changes like it is supposed to. When switching from world to world_nether OR from survival to survival_nether they should keep their inventory and that also works correctly.
BUT when switching from the nether back to the overworld they get their inventories back the way it was when they first entered the nether world. And when they then go back to the nether their inventory is still the same.
so.. 20 cobble in overworld, you go to nether and still have 20 cobble. you place 10 cobble in the nether, go back to overworld, and you have 20 cobble again! you go back to nether and you still have 20 cobble.
Which will allow players to build a lot in the nether by often switching from overworld to nether.
So anyone else having problems with this?
EDIT: Ok after searching for a while i figured out that the plugin changed my config file. The worlds that used to be in the groups where replaced with 'dokeepinv: false'
-
View User Profile
-
Send Message
Posted Dec 14, 2011@CarrotCodes Then what about deleting every tool (can be in- game, too) and giving them a new one?
-
View User Profile
-
Send Message
Posted Dec 14, 2011@efstajas
The issue in the first place was removing damage data incorrectly, I'm afraid I don't think there's much I can do :(
-
View User Profile
-
Send Message
Posted Dec 13, 2011People on my server have been making a large amount of reports of lost inventories. Is it possible that this could be interfering with the Scavenger plugin? (For on-death inventory retention).
-
View User Profile
-
Send Message
Posted Dec 13, 2011Okay, there still seem to be some problems. When I logged in today and changed a world, my enchanted diamond sword didn't have any damage, again. It had only a little before.
Another bug I found: Splash- Potions turn into normal potions when changing the world.
Edit.: We've done some further research and found out that only items that were crafted before the bug fix have this bug (not getting any damage at all). Items crafted after the fix seem bug- less. Maybe you could include a little script which removes all damage data from the inventories?
-
View User Profile
-
Send Message
Posted Dec 13, 2011Can someone explain to me the config file. I do not understand the whole groups thing. Im just trying to create shared inventory between 3 worlds and make sure that people that go to the 4th world thats creative do not take inventory to it or out of it. Please help
-
View User Profile
-
Send Message
Posted Dec 13, 2011@cal27 @CarrotCodes confirmed
-
View User Profile
-
Send Message
Posted Dec 12, 2011@CarrotCodes
Build #50 fixed it for me, thanks!
-
View User Profile
-
Send Message
Posted Dec 12, 2011@CarrotCodes Will try at next server restart.
-
View User Profile
-
Send Message
Posted Dec 12, 2011@CarrotCodes
I will try it now.
edit.: Sorry, I had trouble connecting to the internet yesterday, so I decided to sleep. I just tested it a little, but as far as I can see, everything works fine, except armor. I have a pair of diamond shoes enchanted with protection 1, and they don't get any damage at all.
But thank you! :)
-
View User Profile
-
Send Message
Posted Dec 12, 2011@h0us3cat
Does build #50 work for you?
-
View User Profile
-
Send Message
Posted Dec 12, 2011I have found a bug? player has a damaged tool in survival world. players goes to other world where the same type of tool has no damage. players goes back to survival the damage of that damaged tools get reset.
Is this this? https://github.com/Drayshak/WorldInventories/commit/b641e0857476a8aadc8fcee1882706d92a52782f
edit: nvm https://github.com/Drayshak/WorldInventories/issues/19
-
View User Profile
-
Send Message
Posted Dec 12, 2011@efstajas
I removed a potential source of issues, could you download build #50 and let me know if it fixes things? Cheers.
-
View User Profile
-
Send Message
Posted Dec 12, 2011@Drayshak:
I've only used the plugin since Saturday, which is the same time I installed Bukkit for 1.0. I didn't notice it until some time Sunday, and I'm not sure if I had updated Bukkit by that time.
-
View User Profile
-
Send Message
Posted Dec 12, 2011@CarrotCodes
I personally didn't have the problem before the enchantment- fix, I think. I could be wrong though. I migrated from MultiInv around that time so I'm not sure.
-
View User Profile
-
Send Message
Posted Dec 12, 2011@silentdojo
No, I deleted Spout and won't use it until the bukkit team releases an RB. I'm happy to hear that I'm not the only one with this problem, though. I'm sure it will be fixed soon and until then, well... My players are kind of enjoying it. :D
@CarrotCodes
Thank you. I hope you're able to fix it soon. I didn't open a ticket on github yet because I wasn't sure if it was your plugin (I have about 40). Good luck :)
-
View User Profile
-
Send Message
Posted Dec 12, 2011@cal27
Is this a new issue, or was it always there? I might know the problem if it emerged recently.
-
View User Profile
-
Send Message
Posted Dec 12, 2011@silentdojo I'm having the same problem as @efstajas. I'm using the latest version of WI on CB 1587 and Spout 644