MultiInv
What is MultiInv
MultiInv is a plugin that gives players a separate inventory for every different world running on the server. You can share inventories over chosen worlds and some players can be ignored entirely. With this power it is possible to have multiple worlds running on one server, but keeping them totally segregated from one another.
MultiInv can also separate health over certain worlds allowing for total separations of a world on a server.
If MultiInv refuses to work and you can't change inventories, it's because you have the wrong version of the TuxTwoLib or forgot to deny yourself the permission multiinv.exempt!
Update for UUIDs and 1.7.9 (there will be no support for 1.7.8 or below due to game breaking bugs) are here! Download will be available as soon as Bukkit Dev approves it.
MultiInv and MobArena are currently not compatible! Make sure users can only join a mob arena from the same world group!
Starting with MultiInv 3.2.1 we now require the library TuxTwoLib to maintain compatibility across various minecraft versions
Video Tutorial
Features
- Separate world inventories
- Create groups of worlds where the inventory is shared between them
- Separates XP, food, health, potion effects, and EnderChest inventory per world/group of worlds.
- Option to ignore certain players completely (permissions based)
- Can import Multiverse-Inventories/WorldInventories saved inventories.
- Option to use mySQL instead of flat files.
Forums/Problems
The forums for this plugin (at the top of the page) are the best place to go if you have any questions that aren't just general comments (such as "I hat you" or "I love you"). There I can see which problems have been replied too and who still needs help.
Using MultiInv with BungeeCord
Since BungeeCord requires servers to be in offline mode it's sometimes hard to acquire a reliable UUID if Spigot/BungeeCord isn't configured correctly. Here are the settings you will need to change:
In the BungeeCord config.yml make sure ip_forward is set to true
On the server in the spigot.yml make sure bungeecord is set to true
By setting these two options BungeeCord will be able to pass the correct UUID to the servers. Please note that if you are sharing inventories across multiple servers that this feature is still in beta and may not always work.
Commands
- /multiinv reload - Reloads config files.
- /multiinv import - Imports flat files into a mysql database.
- /multiinv mvimport - Imports Multiverse-Inventories into MultiInv, with the database that you have selected. (You will need to have the Multiverse-Inventories plugin installed when doing the import, just make sure to remove it afterwards)
- /multiinv miimport - Imports WorldInventories into MultiInv.
- /multiinv mcimport - Import Minecraft player files into MultiInv. (Only useful when you've got existing player data and you are enabling the SaveInventoryOnQuit option)
- /multiinv mcexport - Exports MultiInv player data for the default world into the default world in Minecraft format.
Permissions
- multiinv.reload - Permission to use the reload command
- multiinv.import - Permission to use the import command
- multiinv.mvimport - Permission to use the mvimport command
- multiinv.mcimport - Permission to use the mcimport command
- multiinv.mcexport - Permission to use the mcexport command
- multiinv.exempt - Exempts player from inventory switch (If your inventory is not changing, deny yourself this permission in your permissions manager!!!!)
Configuration
^That's a link up there
Updating from MultiInv 2.x to 3.x
- Delete your old config.yml file in the plugins/MultiInv directory
- Start the server with the new plugin
- Rename the Worlds folder to Groups under the plugins/MultiInv directory.
- Rename shares.yml to groups.yml
- Cut the creativeGroups section out of groups.yml and paste it at the end of config.yml
- Edit the config.yml to your prefrences
- do: /multiinv reload
- If you are moving to the mysql database do: /multiinv import
- You're done, enjoy!
Links
When, Where, and How are the Inventories Saved?
Old forum page (Includes old version links)
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.
Jenkins Dev Builds
Source Code
Please note, that while I (Tux2) am maintaining this plugin you must file bug reports under the tickets section. If you're having a problem, try replicating it in the latest version of MultiInv as it could already be fixed! Also, if you want your problem to be addressed please make sure to include the MultiInv version, the TuxTwoLib version, your config.yml and groups.yml files contents as well, (even if it is a comment asking for help) If you do not follow these guidelines your comment may be deleted without warning!

Stats provided by Plugin Metrics
-
View User Profile
-
Send Message
Posted Dec 21, 2012@Tux2 It doesn't do anything. It just sits there, no messages. Tried from both ingame and console. :I
-
View User Profile
-
Send Message
Posted Dec 21, 2012Not sure if this could be down to MultiInv, but players sometimes randomly just.... die and their items duplicate.
-
View User Profile
-
Send Message
Posted Dec 21, 2012@LEOcab
do: /multiinv miimport
Sorry, I forgot to mention that. Also, yes, it works with the 1.4.6 dev builds. Just make sure players don't have fireworks in their inventories when changing worlds!
-
View User Profile
-
Send Message
Posted Dec 21, 2012@Tux2 I put both of those files in my plugins folder (MultiInv b96 and the WorldInventories in your dropbox) and then launched my server (1.4.5-R1.0). No startup errors, w00t. Now how do I import my inventory? :P
Also, will this work with the 1.4.6 dev builds?
-
View User Profile
-
Send Message
Posted Dec 21, 2012@Stuntweed
Oops, sorry about that. This build should fix the error: http://build.yu8.me:8080/job/MultiInv3/96/
-
View User Profile
-
Send Message
Posted Dec 21, 2012@LEOcab
I didn't forget EnderChests. ;) At the moment I'm having to use a modified WorldInventories because of unexplained XStream errors. What's funny is that me and drayshak hang out together in IRC bouncing ideas off of eachother. Well, here it is: http://hg.tux2mc.com:8080/job/MultiInv3/95/ I've got a pull request open to him for the modifications, but until then you can use this version of WorldInventories on CraftBukkit version 1.4.5-R1.0: http://dl.dropbox.com/u/35110620/WorldInventories-v1.5.9-beta.jar
-
View User Profile
-
Send Message
Posted Dec 21, 2012@Tux2
Using the v1.4.6-b2 of TuxTwoLib and CB#2551
http://pastebin.com/RwWV6wXC
-
View User Profile
-
Send Message
Posted Dec 21, 2012@Tux2 You're the best! :D
Btw, don't forget to get ender chests. I updated WorldInventories once and it cleared all of my players' ender chests. Also, MultiVerse-Inventories clears them on import. I don't know why there's such bad luck with inventory plugins and ender chests. :(
-
View User Profile
-
Send Message
Posted Dec 21, 2012@LEOcab
World-Inventories import I don't think is working at the moment. Give me about an hour or two to update it to the latest changes.
-
View User Profile
-
Send Message
Posted Dec 21, 2012How do I import from WorldInventories? They haven't updated to 1.4.5-R1/1.4.6 yet so I'm switching over to MultiInv, except I don't see the WI import command...
-
View User Profile
-
Send Message
Posted Dec 20, 2012@Erik058
Update to the latest version and install TuxTwoLib.
-
View User Profile
-
Send Message
Posted Dec 20, 2012I updated to 1.4.6 and getting this error 21.12 03:41:06 [Server] INFO Gamerologist has connected! 21.12 03:41:06 [Server] INFO ... 11 more 21.12 03:41:06 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 21.12 03:41:06 [Server] INFO at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 21.12 03:41:06 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) 21.12 03:41:06 [Server] INFO at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:70) 21.12 03:41:06 [Server] INFO Caused by: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.inventory.CraftItemStack 21.12 03:41:06 [Server] INFO at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:849) 21.12 03:41:06 [Server] INFO at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:427) 21.12 03:41:06 [Server] INFO at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:494) 21.12 03:41:06 [Server] INFO at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:224) 21.12 03:41:06 [Server] INFO at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:530) 21.12 03:41:06 [Server] INFO at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) 21.12 03:41:06 [Server] INFO at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run(CraftTask.java:53) 21.12 03:41:06 [Server] INFO at uk.co.tggl.pluckerpluck.multiinv.player.DeferredWorldCheck.run(DeferredWorldCheck.java:27) 21.12 03:41:06 [Server] INFO at uk.co.tggl.pluckerpluck.multiinv.listener.MIPlayerListener.savePlayerState(MIPlayerListener.java:205) 21.12 03:41:06 [Server] INFO at uk.co.tggl.pluckerpluck.multiinv.player.MIPlayer.saveInventory(MIPlayer.java:64) 21.12 03:41:06 [Server] INFO at uk.co.tggl.pluckerpluck.multiinv.inventory.MIInventory.<init>(MIInventory.java:36) 21.12 03:41:06 [Server] INFO java.lang.NoClassDefFoundError: org/bukkit/craftbukkit/inventory/CraftItemStack 21.12 03:41:06 [Server] WARNING Task #42 for MultiInv v3.2.0 generated an exception 21.12 03:41:06 [Multicraft] gamerologist ran command Message of the Day 21.12 03:41:06 [Connect] User Gamerologist, IP 72.192.31.30 21.12 03:41:06 [Server] INFO Loading mcMMO spout.yml File... 21.12 03:41:06 [Server] WARNING No Permissible injector found for your server implementation! 21.12 03:41:06 [Server] WARNING Unknown server implementation being used! 21.12 03:41:06 [Server] INFO n;;10;0 21.12 03:40:53 [Server] INFO Connection reset 21.12 03:40:53 [Multicraft] Skipped 12 lines due to rate limit (30/s) 21.12 03:40:51 [Server] INFO /76.30.213.81:65075 lost connection 21.12 03:40:51 [Server] INFO at java.lang.Thread.run(Thread.java:722) 21.12 03:40:51 [Server] INFO at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 21.12 03:40:51 [Server] INFO at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 21.12 03:40:51 [Server] INFO at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) 21.12 03:40:51 [Server] INFO at org.bukkit.craftbukkit.v1_4_6.scheduler.CraftTask.run(CraftTask.java:53) 21.12 03:40:51 [Server] INFO at com.earth2me.essentials.storage.AbstractDelayedYamlFileReader.run(AbstractDelayedYamlFileReader.java:37) 21.12 03:40:51 [Server] INFO at com.earth2me.essentials.storage.YamlStorageReader.load(YamlStorageReader.java:47) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.Yaml.load(Yaml.java:423) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:480) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:128) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.constructor.BaseConstructor.constructDocument(BaseConstructor.java:142) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.constructor.BaseConstructor.constructObject(BaseConstructor.java:183) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.construct(Constructor.java:331) 21.12 03:40:51 [Server] INFO at org.yaml.snakeyaml.constructor.Constructor$ConstructYamlObject.getConstructor(Constructor.java:321) 21.12 03:40:51 [Server] INFO at com.earth2me.essentials.storage.BukkitConstructor.getClassForNode(BukkitConstructor.java:418) 21.12 03:40:51 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:284) 21.12 03:40:51 [Server] INFO org.bukkit.plugin.AuthorNagException: 21.12 03:40:51 [Server] WARNING Method "public Plugin loadPlugin(File, boolean)" is Deprecated, and may be removed in a future version of Bukkit 21.12 03:40:51 [Server] INFO Query running on 108.61.54.138:25585 21.12 03:40:51 [Server] INFO Starting GS4 status listener 21.12 03:40:51 [Server] Startup Done (10.972s)! For help, type "help" or "?" 21.12 03:40:51 [Server] INFO Server permissions file permissions.yml is empty, ignoring it 21.12 03:40:51 [Server] INFO [Factions v1.6.9.4] === ENABLE DONE (Took 296ms) === 21.12 03:40:51 [Server] INFO [Factions v1.6.9.4] Successfully hooked to WorldGuard. 21.12 03:40:51 [Server] INFO [Factions v1.6.9.4] Successfully hooked into LWC! Integration is currently disabled, though ("lwcIntegration")
-
View User Profile
-
Send Message
Posted Dec 20, 2012@Lakesideminecraft
Version 3.2.3 of MultiInv is incompatible with anything below 1.4.5-R1.0.
-
View User Profile
-
Send Message
Posted Dec 20, 2012Getting is error on 1.4.5-R0.2 I have TuxTwoLib
18:21:35 [SEVERE] Could not pass event PlayerChangedWorldEvent to MultiInv v3.2.3 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:341) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) at net.minecraft.server.ServerConfigurationManagerAbstract.moveToWorld(ServerConfigurationManagerAbstract.java:408) at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:387) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:230) at net.minecraft.server.Packet10Flying.handle(SourceFile:136) at net.minecraft.server.NetworkManager.b(NetworkManager.java:290) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:113) at net.minecraft.server.ServerConnection.b(SourceFile:39) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.r(MinecraftServer.java:595) at net.minecraft.server.DedicatedServer.r(DedicatedServer.java:222) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:493) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:426) at net.minecraft.server.ThreadServerApplication.run(SourceFile:856) Caused by: java.lang.NoSuchMethodError: org.bukkit.inventory.ItemStack.hasItemMeta()Z at uk.co.tggl.pluckerpluck.multiinv.inventory.MIItemStack.<init>(MIItemStack.java:49) at uk.co.tggl.pluckerpluck.multiinv.inventory.MIInventory.<init>(MIInventory.java:36) at uk.co.tggl.pluckerpluck.multiinv.player.MIPlayer.saveInventory(MIPlayer.java:58) at uk.co.tggl.pluckerpluck.multiinv.listener.MIPlayerListener.savePlayerState(MIPlayerListener.java:197) at uk.co.tggl.pluckerpluck.multiinv.listener.MIPlayerListener.onPlayerChangedWorld(MIPlayerListener.java:91) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:339) ... 16 more
-
View User Profile
-
Send Message
Posted Dec 20, 2012@DiamondShepherd
It's a permanent solution, although at the moment the only thing that needs it is the API for getting offline player inventory. A way to keep the amount of plugins down as well, if you really want, is to make the folders Tux2/TuxTwoLib in the MultiInv plugin, then place the TuxTwoPlayer.class in that folder. Then edit the plugin.yml and remove: "depend: [TuxTwoLib]". You will need to copy/paste that class over every minecraft version however.
-
View User Profile
-
Send Message
Posted Dec 20, 2012@DiamondShepherd
It's a permeant plugin requirement due to bukkit changes and handles. As stated to the right also 'Required dependency'.
-
View User Profile
-
Send Message
Posted Dec 20, 2012But i'm trying to keep the amount of plugins to a minimum, is it a temporary fix or a permanent solution?
-
View User Profile
-
Send Message
Posted Dec 20, 2012@DiamondShepherd
Install version 1.4.5-R0.3-b2 of the TuxTwoLib along with the latest version of MultiInv (I already addressed all those issues...) http://dev.bukkit.org/server-mods/multiinv/files/23-v3-2-3/
-
View User Profile
-
Send Message
Posted Dec 20, 2012Huge issue. MultiInv doesn't work anymore. Error on startup:
2012-12-20 12:33:23 [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 12:33:23 [SEVERE] Could not load 'plugins/MultiInv.jar' in folder 'plugins' org.bukkit.plugin.UnknownDependencyException: TuxTwoLib at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:195) 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)
-
View User Profile
-
Send Message
Posted Dec 20, 2012@Tux2
Oops, small bug fix for custom potions: http://dev.bukkit.org/server-mods/multiinv/files/23-v3-2-3/