diff --git a/src/codechicken/enderstorage/EnderStorage.java b/src/codechicken/enderstorage/EnderStorage.java index 57ba383..4bd0434 100644 --- a/src/codechicken/enderstorage/EnderStorage.java +++ b/src/codechicken/enderstorage/EnderStorage.java @@ -39,6 +39,7 @@ public class EnderStorage public static Item personalItem; public static boolean disableVanillaEnderChest; public static boolean removeVanillaRecipe; + public static boolean anarchyMode; @EventHandler public void preInit(FMLPreInitializationEvent event) { @@ -52,6 +53,7 @@ public void init(FMLInitializationEvent event) { loadPersonalItem(); disableVanillaEnderChest = config.getTag("disable-vanilla").setComment("Set to true to make the vanilla enderchest unplaceable.").getBooleanValue(true); removeVanillaRecipe = config.getTag("disable-vanilla_recipe").setComment("Set to true to make the vanilla enderchest uncraftable.").getBooleanValue(false); + anarchyMode = config.getTag("anarchy-mode").setComment("Causes chests to lose personal settings and drop the diamond on break").getBooleanValue(false); EnderStorageManager.loadConfig(config); EnderStorageManager.registerPlugin(new EnderItemStoragePlugin()); diff --git a/src/codechicken/enderstorage/common/BlockEnderStorage.java b/src/codechicken/enderstorage/common/BlockEnderStorage.java index 4656268..c45aa9a 100644 --- a/src/codechicken/enderstorage/common/BlockEnderStorage.java +++ b/src/codechicken/enderstorage/common/BlockEnderStorage.java @@ -3,7 +3,6 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import java.util.Random; import codechicken.lib.raytracer.RayTracer; import codechicken.lib.raytracer.IndexedCuboid6; @@ -109,8 +108,11 @@ public ArrayList getDrops(World world, int i, int j, int k, int meta, ArrayList ret = new ArrayList(); TileFrequencyOwner tile = (TileFrequencyOwner) world.getTileEntity(i, j, k); - if (tile != null) - ret.add(createItem(meta, tile.freq, tile.owner)); + if (tile != null) { + ret.add(createItem(meta, tile.freq, EnderStorage.anarchyMode ? "global" : tile.owner)); + if(EnderStorage.anarchyMode && !tile.owner.equals("global")) + ret.add(EnderStorage.getPersonalItem()); + } return ret; } diff --git a/src/codechicken/enderstorage/storage/item/ItemEnderPouch.java b/src/codechicken/enderstorage/storage/item/ItemEnderPouch.java index 764ffaf..5a04de8 100644 --- a/src/codechicken/enderstorage/storage/item/ItemEnderPouch.java +++ b/src/codechicken/enderstorage/storage/item/ItemEnderPouch.java @@ -2,6 +2,7 @@ import java.util.List; +import codechicken.enderstorage.EnderStorage; import codechicken.lib.render.SpriteSheetManager; import codechicken.lib.render.SpriteSheetManager.SpriteSheet; import codechicken.enderstorage.api.EnderStorageManager; @@ -51,7 +52,12 @@ public boolean onItemUseFirst(ItemStack stack, EntityPlayer player, World world, stack.setItemDamage(chest.freq); if(!stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound()); - stack.getTagCompound().setString("owner", chest.owner); + + if (!EnderStorage.anarchyMode || chest.owner.equals(player.getCommandSenderName())) + stack.getTagCompound().setString("owner", chest.owner); + else + stack.getTagCompound().setString("owner", "global"); + return true; } return false;