diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-08-19 22:18:21 +0100 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-08-19 22:18:21 +0100 |
| commit | f6ae5fad892a5af6c72da4abc2b3df28fc00973d (patch) | |
| tree | 9111504ec3d35f214e354fcc48addd9fe9dad381 /src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java | |
| parent | 54ac09a452c0fa4da67c3d2f4528ae6ed8183c63 (diff) | |
Stuff
Higher Chance of stealing from villagers, fixed crash when curses are
disabled, stuff?
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java')
| -rw-r--r-- | src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java | 266 |
1 files changed, 130 insertions, 136 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java b/src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java index 5d47498..719bda1 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemThiefGloves.java @@ -26,140 +26,134 @@ import darkknight.jewelrycraft.util.JewelrycraftUtil; import darkknight.jewelrycraft.util.PlayerUtils;
import darkknight.jewelrycraft.util.Variables;
-public class ItemThiefGloves extends Item
-{
- public Random rand = new Random();
-
- public ItemThiefGloves()
- {
- super();
- setCreativeTab(CreativeTabs.tabTools);
- setMaxStackSize(1);
- setMaxDamage(10);
- }
-
- /**
- * @param stack
- * @param player
- * @param entity
- * @return
- */
- @Override
- public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase entity)
- {
- String villagerString = StatCollector.translateToLocal("info." + Variables.MODID + ".villager");
- if (entity instanceof EntityVillager){
- EntityVillager villager = (EntityVillager)entity;
- int wealth = (Integer)ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "wealth", "field_70956_bz");
- MerchantRecipeList buyingList = (MerchantRecipeList)ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "buyingList", "field_70963_i");
- int chance = 5;
- boolean areOtherVillagersAround = false, canTheySeeYou = false;
- AxisAlignedBB axisalignedbb = villager.boundingBox.expand(4.0D, 4.0D, 4.0D);
- List entities = villager.worldObj.getEntitiesWithinAABBExcludingEntity(villager, axisalignedbb);
- for(Object s: entities)
- if (s instanceof EntityVillager){
- areOtherVillagersAround = true;
- chance += rand.nextInt(2);
- if (((EntityVillager)s).canEntityBeSeen(player)){
- chance += 2;
- canTheySeeYou = true;
- }
- }
- if (villager.canEntityBeSeen(player)) chance += 5;
- if (player.isPotionActive(Potion.invisibility)) chance -= 0.8 * chance;
- if (player.capabilities.isCreativeMode) chance = 1;
- int steal = rand.nextInt(chance);
- if (steal == 0){
- villager.dropItem(Items.emerald, wealth);
- ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 0, "wealth", "field_70956_bz");
- }
- if (buyingList != null){
- Iterator<?> iterator = buyingList.iterator();
- if (steal == 0){
- while (iterator.hasNext()){
- MerchantRecipe recipe = (MerchantRecipe)iterator.next();
- int toolUses = (Integer)ReflectionHelper.getPrivateValue(MerchantRecipe.class, recipe, "toolUses", "field_77400_d");
- int quantity;
- if (recipe.getItemToSell().isStackable()) quantity = recipe.getItemToSell().stackSize * (7 - toolUses);
- else quantity = recipe.getItemToSell().stackSize;
- ItemStack s = new ItemStack(recipe.getItemToSell().getItem(), quantity, recipe.getItemToSell().getItemDamage());
- s.setTagCompound(recipe.getItemToSell().getTagCompound());
- if (player.inventory.addItemStackToInventory(s)) ;
- else villager.entityDropItem(s, 0);
- if (!player.capabilities.isCreativeMode) JewelrycraftUtil.addCursePoints(player, 5);
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + ": "+StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".villager.confusion") + " " + s.getDisplayName() + "!"));
- stack.damageItem(1, player);
- }
- buyingList.clear();
- ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 300, "timeUntilReset", "field_70961_j");
- ReflectionHelper.setPrivateValue(EntityVillager.class, villager, true, "needsInitilization", "field_70959_by");
- player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".whisper")+": "));
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess1")));
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess2")));
- player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess3")));
- }else{
- stack.damageItem(1, player);
- if (!player.capabilities.isCreativeMode) JewelrycraftUtil.addCursePoints(player, 25);
- if (player.isPotionActive(Potion.invisibility)){
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + " " +StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.fail")));
- }
- else{
- if (areOtherVillagersAround){
- if (!canTheySeeYou){
- player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.caught1")+" "+villagerString+" #" + villager.getProfession() + "."));
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + " "+StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
- return true;
- }
- else{
- player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.caught2")+" "+villagerString+" #" + villager.getProfession() + "."));
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + " "+StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
- return true;
- }
- }else{
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + " "+StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal1")));
- player.addChatMessage(new ChatComponentText(villagerString+" #" + villager.getProfession() + " "+StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
- return true;
- }
- }
- }
- }
- return true;
- }else return super.itemInteractionForEntity(stack, player, entity);
- }
-
- /**
- * @param stack
- * @param player
- * @param list
- * @param par4
- */
- @Override
- @SuppressWarnings ("unchecked")
- public void addInformation(ItemStack stack, EntityPlayer player, @SuppressWarnings ("rawtypes") List list, boolean par4)
- {
- if (!shouldAddAdditionalInfo()) list.add(EnumChatFormatting.GRAY + additionalInfoInstructions());
- else{
- list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.1"));
- list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.2"));
- list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.3"));
- }
- }
-
- /**
- * @return
- */
- public static boolean shouldAddAdditionalInfo()
- {
- if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) return true;
- return false;
- }
-
- /**
- * @return
- */
- public static String additionalInfoInstructions()
- {
- String message = StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.extra");
- return message;
- }
+public class ItemThiefGloves extends Item {
+ public Random rand = new Random();
+
+ public ItemThiefGloves() {
+ super();
+ setCreativeTab(CreativeTabs.tabTools);
+ setMaxStackSize(1);
+ setMaxDamage(10);
+ }
+
+ /**
+ * @param stack
+ * @param player
+ * @param entity
+ * @return
+ */
+ @Override
+ public boolean itemInteractionForEntity(ItemStack stack, EntityPlayer player, EntityLivingBase entity) {
+ String villagerString = StatCollector.translateToLocal("info." + Variables.MODID + ".villager");
+ if (entity instanceof EntityVillager) {
+ EntityVillager villager = (EntityVillager) entity;
+ int wealth = (Integer) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "wealth", "field_70956_bz");
+ MerchantRecipeList buyingList = (MerchantRecipeList) ReflectionHelper.getPrivateValue(EntityVillager.class, villager, "buyingList", "field_70963_i");
+ int chance = 1;
+ boolean areOtherVillagersAround = false, canTheySeeYou = false;
+ AxisAlignedBB axisalignedbb = villager.boundingBox.expand(2.0D, 0.0D, 2.0D);
+ List entities = villager.worldObj.getEntitiesWithinAABBExcludingEntity(villager, axisalignedbb);
+ for (Object s : entities)
+ if (s instanceof EntityVillager && ((EntityVillager) s).canEntityBeSeen(player)) {
+ chance += 1;
+ canTheySeeYou = true;
+ areOtherVillagersAround = true;
+ }
+ if (villager.canEntityBeSeen(player)) chance += 2;
+ if (player.isPotionActive(Potion.invisibility)) chance -= (0.8 * chance);
+ if (player.capabilities.isCreativeMode) chance = 1;
+ int steal = rand.nextInt(chance);
+ if (steal == 0) {
+ villager.dropItem(Items.emerald, wealth);
+ ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 0, "wealth", "field_70956_bz");
+ }
+ if (buyingList != null) {
+ Iterator<?> iterator = buyingList.iterator();
+ if (steal == 0) {
+ while (iterator.hasNext()) {
+ MerchantRecipe recipe = (MerchantRecipe) iterator.next();
+ int toolUses = (Integer) ReflectionHelper.getPrivateValue(MerchantRecipe.class, recipe, "toolUses", "field_77400_d");
+ int quantity;
+ if (recipe.getItemToSell().isStackable()) quantity = recipe.getItemToSell().stackSize * (7 - toolUses);
+ else quantity = recipe.getItemToSell().stackSize;
+ ItemStack s = new ItemStack(recipe.getItemToSell().getItem(), quantity, recipe.getItemToSell().getItemDamage());
+ s.setTagCompound(recipe.getItemToSell().getTagCompound());
+ if (player.inventory.addItemStackToInventory(s)) ;
+ else villager.entityDropItem(s, 0);
+ if (!player.capabilities.isCreativeMode) JewelrycraftUtil.addCursePoints(player, 5);
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + ": " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".villager.confusion") + " " + s.getDisplayName() + "!"));
+ stack.damageItem(1, player);
+ }
+ buyingList.clear();
+ ReflectionHelper.setPrivateValue(EntityVillager.class, villager, 300, "timeUntilReset", "field_70961_j");
+ ReflectionHelper.setPrivateValue(EntityVillager.class, villager, true, "needsInitilization", "field_70959_by");
+ player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".whisper") + ": "));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess1")));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess2")));
+ player.addChatMessage(new ChatComponentText(EnumChatFormatting.DARK_PURPLE + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".stealSuccess3")));
+ }
+ else {
+ stack.damageItem(1, player);
+ if (!player.capabilities.isCreativeMode) JewelrycraftUtil.addCursePoints(player, 25);
+ if (player.isPotionActive(Potion.invisibility)) {
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + " " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.fail")));
+ }
+ else {
+ if (areOtherVillagersAround) {
+ if (!canTheySeeYou) {
+ player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.caught1") + " " + villagerString + " #" + villager.getProfession() + "."));
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + " " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
+ return true;
+ }
+ else {
+ player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal.caught2") + " " + villagerString + " #" + villager.getProfession() + "."));
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + " " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
+ return true;
+ }
+ }
+ else {
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + " " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal1")));
+ player.addChatMessage(new ChatComponentText(villagerString + " #" + villager.getProfession() + " " + StatCollector.translateToLocal("chatmessage." + Variables.MODID + ".steal2")));
+ return true;
+ }
+ }
+ }
+ }
+ return true;
+ }
+ else return super.itemInteractionForEntity(stack, player, entity);
+ }
+
+ /**
+ * @param stack
+ * @param player
+ * @param list
+ * @param par4
+ */
+ @Override
+ @SuppressWarnings("unchecked")
+ public void addInformation(ItemStack stack, EntityPlayer player, @SuppressWarnings("rawtypes") List list, boolean par4) {
+ if (!shouldAddAdditionalInfo()) list.add(EnumChatFormatting.GRAY + additionalInfoInstructions());
+ else {
+ list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.1"));
+ list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.2"));
+ list.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.3"));
+ }
+ }
+
+ /**
+ * @return
+ */
+ public static boolean shouldAddAdditionalInfo() {
+ if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) return true;
+ return false;
+ }
+
+ /**
+ * @return
+ */
+ public static String additionalInfoInstructions() {
+ String message = StatCollector.translateToLocal("item." + Variables.MODID + ".thievingGloves.info.extra");
+ return message;
+ }
}
|
