Example #1
0
  public void a(NBTTagCompound nbttagcompound) {
    this.m(nbttagcompound.getFloat("AbsorptionAmount"));
    if (nbttagcompound.hasKey("Attributes") && this.world != null && !this.world.isStatic) {
      GenericAttributes.a(
          this.aX(),
          nbttagcompound.getList("Attributes"),
          this.world == null ? null : this.world.getLogger());
    }

    if (nbttagcompound.hasKey("ActiveEffects")) {
      NBTTagList nbttaglist = nbttagcompound.getList("ActiveEffects");

      for (int i = 0; i < nbttaglist.size(); ++i) {
        NBTTagCompound nbttagcompound1 = (NBTTagCompound) nbttaglist.get(i);
        MobEffect mobeffect = MobEffect.b(nbttagcompound1);

        this.effects.put(Integer.valueOf(mobeffect.getEffectId()), mobeffect);
      }
    }

    // CraftBukkit start
    if (nbttagcompound.hasKey("Bukkit.MaxHealth")) {
      NBTBase nbtbase = nbttagcompound.get("Bukkit.MaxHealth");
      if (nbtbase.getTypeId() == 5) {
        this.getAttributeInstance(GenericAttributes.a)
            .setValue((double) ((NBTTagFloat) nbtbase).data);
      } else if (nbtbase.getTypeId() == 3) {
        this.getAttributeInstance(GenericAttributes.a)
            .setValue((double) ((NBTTagInt) nbtbase).data);
      }
    }
    // CraftBukkit end

    if (nbttagcompound.hasKey("HealF")) {
      this.setHealth(nbttagcompound.getFloat("HealF"));
    } else {
      NBTBase nbtbase = nbttagcompound.get("Health");

      if (nbtbase == null) {
        this.setHealth(this.getMaxHealth());
      } else if (nbtbase.getTypeId() == 5) {
        this.setHealth(((NBTTagFloat) nbtbase).data);
      } else if (nbtbase.getTypeId() == 2) {
        this.setHealth((float) ((NBTTagShort) nbtbase).data);
      }
    }

    this.hurtTicks = nbttagcompound.getShort("HurtTime");
    this.deathTicks = nbttagcompound.getShort("DeathTime");
    this.attackTicks = nbttagcompound.getShort("AttackTime");
  }
Example #2
0
  public void b(NBTTagCompound nbttagcompound) {
    nbttagcompound.setFloat("HealF", this.getHealth());
    nbttagcompound.setShort("Health", (short) ((int) Math.ceil((double) this.getHealth())));
    nbttagcompound.setShort("HurtTime", (short) this.hurtTicks);
    nbttagcompound.setShort("DeathTime", (short) this.deathTicks);
    nbttagcompound.setShort("AttackTime", (short) this.attackTicks);
    nbttagcompound.setFloat("AbsorptionAmount", this.bn());
    ItemStack[] aitemstack = this.getEquipment();
    int i = aitemstack.length;

    int j;
    ItemStack itemstack;

    for (j = 0; j < i; ++j) {
      itemstack = aitemstack[j];
      if (itemstack != null) {
        this.d.a(itemstack.D());
      }
    }

    nbttagcompound.set("Attributes", GenericAttributes.a(this.aX()));
    aitemstack = this.getEquipment();
    i = aitemstack.length;

    for (j = 0; j < i; ++j) {
      itemstack = aitemstack[j];
      if (itemstack != null) {
        this.d.b(itemstack.D());
      }
    }

    if (!this.effects.isEmpty()) {
      NBTTagList nbttaglist = new NBTTagList();
      Iterator iterator = this.effects.values().iterator();

      while (iterator.hasNext()) {
        MobEffect mobeffect = (MobEffect) iterator.next();

        nbttaglist.add(mobeffect.a(new NBTTagCompound()));
      }

      nbttagcompound.set("ActiveEffects", nbttaglist);
    }
  }
Example #3
0
  public void a(NBTTagCompound nbttagcompound) {
    this.m(nbttagcompound.getFloat("AbsorptionAmount"));
    if (nbttagcompound.hasKeyOfType("Attributes", 9)
        && this.world != null
        && !this.world.isStatic) {
      GenericAttributes.a(this.bc(), nbttagcompound.getList("Attributes", 10));
    }

    if (nbttagcompound.hasKeyOfType("ActiveEffects", 9)) {
      NBTTagList nbttaglist = nbttagcompound.getList("ActiveEffects", 10);

      for (int i = 0; i < nbttaglist.size(); ++i) {
        NBTTagCompound nbttagcompound1 = nbttaglist.get(i);
        MobEffect mobeffect = MobEffect.b(nbttagcompound1);

        if (mobeffect != null) {
          this.effects.put(Integer.valueOf(mobeffect.getEffectId()), mobeffect);
        }
      }
    }

    if (nbttagcompound.hasKeyOfType("HealF", 99)) {
      this.setHealth(nbttagcompound.getFloat("HealF"));
    } else {
      NBTBase nbtbase = nbttagcompound.get("Health");

      if (nbtbase == null) {
        this.setHealth(this.getMaxHealth());
      } else if (nbtbase.getTypeId() == 5) {
        this.setHealth(((NBTTagFloat) nbtbase).h());
      } else if (nbtbase.getTypeId() == 2) {
        this.setHealth((float) ((NBTTagShort) nbtbase).e());
      }
    }

    this.hurtTicks = nbttagcompound.getShort("HurtTime");
    this.deathTicks = nbttagcompound.getShort("DeathTime");
    this.attackTicks = nbttagcompound.getShort("AttackTime");
  }
Example #4
0
  public Multimap B() {
    Object object;

    if (this.hasTag() && this.tag.hasKeyOfType("AttributeModifiers", 9)) {
      object = HashMultimap.create();
      NBTTagList nbttaglist = this.tag.getList("AttributeModifiers", 10);

      for (int i = 0; i < nbttaglist.size(); ++i) {
        NBTTagCompound nbttagcompound = nbttaglist.get(i);
        AttributeModifier attributemodifier = GenericAttributes.a(nbttagcompound);

        if (attributemodifier != null
            && attributemodifier.a().getLeastSignificantBits() != 0L
            && attributemodifier.a().getMostSignificantBits() != 0L) {
          ((Multimap) object).put(nbttagcompound.getString("AttributeName"), attributemodifier);
        }
      }
    } else {
      object = this.getItem().i();
    }

    return (Multimap) object;
  }