summaryrefslogtreecommitdiff
path: root/common/bspkrs/briefcasespeakers/item/ItemThiefGloves.java
blob: 292ace23205952e2828e7d9421936781fe52c4a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package bspkrs.briefcasespeakers.item;

import java.util.Iterator;
import java.util.Random;

import cpw.mods.fml.relauncher.ReflectionHelper;

import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.village.MerchantRecipe;
import net.minecraft.village.MerchantRecipeList;

public class ItemThiefGloves extends ItemBase
{
    public Random rand;
    public ItemThiefGloves(int par1)
    {
        super(par1);
        this.setCreativeTab(CreativeTabs.tabTools);
    }
    
    @Override
    public boolean itemInteractionForEntity(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, EntityLivingBase par3EntityLivingBase)
    {
        if (par3EntityLivingBase instanceof EntityVillager)
        {
            EntityVillager villager = (EntityVillager) par3EntityLivingBase;
            int wealth = (Integer) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "wealth", "field_70956_bz");
            boolean needsInitilization = (Boolean) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "needsInitilization", "field_70959_by");
            int timeUntilReset = (Integer) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "timeUntilReset", "field_70961_j");
            MerchantRecipeList buyingList = (MerchantRecipeList) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "buyingList", "field_70963_i");
            if(buyingList!=null)
            {
                Iterator iterator = buyingList.iterator();
                while(iterator.hasNext())
                {
                    MerchantRecipe recipe = (MerchantRecipe)iterator.next();
                    while(!recipe.func_82784_g())
                    {
                        par2EntityPlayer.inventory.addItemStackToInventory(recipe.getItemToSell());
                        //villager.entityDropItem(recipe.getItemToSell(), 0);
                        //villager.dropItem(recipe.getItemToSell().itemID, recipe.getItemToSell().stackSize);
                        recipe.incrementToolUses();                         
                    }
                    //villager.useRecipe(recipe);
                    ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 10, "timeUntilReset", "field_70961_j");
                    ReflectionHelper.setPrivateValue(EntityVillager.class, villager, true, "needsInitilization", "field_70959_by");
                }    
            }         
            villager.dropItem(Item.emerald.itemID, wealth);
            ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 0, "wealth", "field_70956_bz");
            return true;
        }
        else
        {
            return super.itemInteractionForEntity(par1ItemStack, par2EntityPlayer, par3EntityLivingBase);
        }
    }
    
}