View difference between Paste ID: z0ZF8REA and x3KHBSt3
SHOW: | | - or go back to the newest paste.
1-
package mod.poppy.MysticArtifice.items;
1+
package com.demoxin.minecraft.moreenchants;
2
3
import net.minecraft.entity.Entity;
4
import net.minecraft.entity.EntityLivingBase;
5
import net.minecraft.entity.player.EntityPlayer;
6
import net.minecraft.item.ItemStack;
7
import net.minecraft.item.ItemSword;
8
import net.minecraft.nbt.NBTTagCompound;
9
import net.minecraft.potion.Potion;
10-
public class ItemMagicSword extends ItemSword
10+
import net.minecraft.potion.PotionEffect;
11
import net.minecraft.world.World;
12
13
public class Item_MagicSword extends ItemSword
14-
		// TODO Auto-generated constructor stub
14+
15
	public ItemMagicSword(ToolMaterial p_i45356_1_) {
16
		super(p_i45356_1_);
17-
	public void onItemRightClick(ItemSword par1ItemSword, World par2World, EntityPlayer par3EntityPlayer)
17+
18-
    {
18+
19
	public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
20-
    }
20+
21
		// Make sure we're not going to get any NPEs by working on a tag compound that doesn't exist
22
		if(!par1ItemStack.hasTagCompound())
23
		{
24-
		if(!(par3Entity instanceof EntityLivingBase)) return;
24+
			// Create the tag compound
25
			par1ItemStack.setTagCompound(new NBTTagCompound());
26
		}
27
		
28
		// If we don't already have the tag set, we need to create it. Our tag name is katanaInvis
29
		if(!par1ItemStack.getTagCompound().hasKey("katanaInvis"))
30
		{
31
			// Create the initial tag.
32
			par1ItemStack.getTagCompound().setBoolean("katanaInvis", true);
33
		}
34
		else
35
		{
36
			// Toggle the true/false value of the tag.
37
			par1ItemStack.getTagCompound().setBoolean("katanaInvis", !par1ItemStack.getTagCompound().getBoolean("katanaInvis"));
38
		}
39
		
40
		// Return the sword to reflect the changes
41
		return par1ItemStack;
42
	}
43
	
44
	public void onUpdate(ItemStack par1ItemStack, World par2World, Entity par3Entity, int par4, boolean par5)
45
	{
46
		// Make sure we're gonna be able to cast safely.
47
		if(!(par3Entity instanceof EntityLivingBase))
48
			return;
49
		
50
		// Cast the basic Entity to a more specific EntityLivingBase, used for players and mobs
51
		EntityLivingBase user = (EntityLivingBase)par3Entity;
52
		
53
		// Make sure the ELB is holding an item.
54
		if(user.getHeldItem() == null)
55
			return;
56
		
57
		// Make sure the item they're holding is this one.
58
		if(user.getHeldItem().getItem() != this)
59
			return;
60
		
61
		// If there's no tag compound, we can assume they haven't ever toggled invisibility on, so no need to test any further.
62
		if(!par1ItemStack.hasTagCompound())
63
			return;
64
		
65
		// Make sure the key is valid to avoid NPEs, then check for that value.
66
		if(par1ItemStack.getTagCompound().hasKey("katanaInvis") && par1ItemStack.getTagCompound().getBoolean("katanaInvis") == true)
67
		{
68
			// The katanaInvis tag is true, add the effect for 1 second.
69
			user.addPotionEffect(new PotionEffect(Potion.invisibility.id, 20, 1));
70
		}
71
	}
72
}