Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ItemSaphireSword extends ItemSword{
- private static final String TAG_MYTAG = "tag_flyffmc";
- private static final String TAG_PLAYERNAME = "tag_playername";
- private static final String TAG_PLAYERUID = "tag_playeruid";
- private static final String TAG_UPGRADE = "tag_upgrade";
- private static int upgrade = 0;
- private static int range;
- public ItemSaphireSword() {
- super(FlyffMc.saphireToolMaterial);
- this.setUnlocalizedName("saphireSword");
- this.setMaxDamage(2);
- }
- @Override
- public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) {
- String uid = getNBTTag(stack, TAG_PLAYERUID);
- if (uid.equals("-") && !player.worldObj.isRemote) {
- setNBTData(stack, player);
- return super.onLeftClickEntity(stack, player, entity);
- }
- else if(uid.equals(player.getUniqueID().toString()) && !player.worldObj.isRemote) {
- return super.onLeftClickEntity(stack, player, entity);
- }
- else if (!player.worldObj.isRemote) {
- player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Dieses Item ist Seelengebunden"));
- return true;
- }
- else {
- return true;
- }
- }
- @Override
- public void addInformation(ItemStack stack, EntityPlayer playerIn, List<String> tooltip, boolean advanced) {
- tooltip.add("Dieses Item gehört: " + getNBTTag(stack, TAG_PLAYERNAME));
- if(upgrade >= 1) {
- tooltip.add("Stufe: " + upgrade);
- }
- }
- @Override
- public void onCreated(ItemStack stack, World worldIn, EntityPlayer playerIn) {
- if(!playerIn.worldObj.isRemote) {
- checkUpdate();
- if (getRandomZahl() == 2 && upgrade < 10) {
- addOneToUpgrade();
- setNBTData(stack, playerIn);
- }
- //Hier liegt das Problem!
- else {
- stack.setItemDamage(2);
- }
- }
- }
- public static void addOneToUpgrade() {
- upgrade++;
- }
- public int getRandomZahl() {
- int zufallszahl = (int) ((Math.random()*range)+1);
- return zufallszahl;
- }
- public static void checkUpdate() {
- switch (upgrade) {
- case 0:
- range = 2; //50%
- break;
- case 1:
- range = 2; //50%
- break;
- case 2:
- range = 3; //33%
- break;
- case 3:
- range = 3; //33%
- break;
- case 4:
- range = 3; //33%
- break;
- case 5:
- range = 4; //25%
- break;
- case 6:
- range = 4; //25%
- break;
- case 7:
- range = 5; //20%
- break;
- case 8:
- range = 5; //20%
- break;
- case 9:
- range = 6; //17%
- break;
- default:
- break;
- }
- }
- private static void setNBTData(ItemStack stack, EntityPlayer player) {
- NBTTagCompound data = new NBTTagCompound();
- data.setString(TAG_PLAYERNAME, player.getDisplayNameString());
- data.setString(TAG_PLAYERUID, player.getUniqueID().toString());
- data.setInteger(TAG_UPGRADE, upgrade);
- stack.setTagInfo(TAG_MYTAG, data);
- }
- private static String getNBTTag(ItemStack stack, String tag) {
- if(stack.getTagCompound() != null) {
- NBTTagCompound data = stack.getTagCompound().getCompoundTag(TAG_MYTAG);
- return data.getString(tag);
- }
- else {
- return "-";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment