public void a(NBTTagCompound var1) {
    if (this.c == null) {
      this.d = var1;
    } else {
      this.b(var1.getList("Objectives", 10));
      this.c(var1.getList("PlayerScores", 10));
      if (var1.hasOfType("DisplaySlots", 10)) {
        this.c(var1.getCompound("DisplaySlots"));
      }

      if (var1.hasOfType("Teams", 9)) {
        this.a(var1.getList("Teams", 10));
      }
    }
  }
  protected void a(NBTTagList var1) {
    for (int var2 = 0; var2 < var1.getSize(); ++var2) {
      NBTTagCompound var3 = var1.getCompound(var2);
      String var4 = var3.getString("Name");
      if (var4.length() > 16) {
        var4 = var4.substring(0, 16);
      }

      class_awk var5 = this.c.e(var4);
      String var6 = var3.getString("DisplayName");
      if (var6.length() > 32) {
        var6 = var6.substring(0, 32);
      }

      var5.a(var6);
      if (var3.hasOfType("TeamColor", 8)) {
        var5.a(EnumChatFormat.getByName(var3.getString("TeamColor")));
      }

      var5.b(var3.getString("Prefix"));
      var5.c(var3.getString("Suffix"));
      if (var3.hasOfType("AllowFriendlyFire", 99)) {
        var5.a(var3.getBoolean("AllowFriendlyFire"));
      }

      if (var3.hasOfType("SeeFriendlyInvisibles", 99)) {
        var5.b(var3.getBoolean("SeeFriendlyInvisibles"));
      }

      class_awp.class_a_in_class_awp var7;
      if (var3.hasOfType("NameTagVisibility", 8)) {
        var7 = class_awp.class_a_in_class_awp.a(var3.getString("NameTagVisibility"));
        if (var7 != null) {
          var5.a(var7);
        }
      }

      if (var3.hasOfType("DeathMessageVisibility", 8)) {
        var7 = class_awp.class_a_in_class_awp.a(var3.getString("DeathMessageVisibility"));
        if (var7 != null) {
          var5.b(var7);
        }
      }

      this.a(var5, var3.getList("Players", 8));
    }
  }
 protected void c(NBTTagCompound var1) {
   for (int var2 = 0; var2 < 19; ++var2) {
     if (var1.hasOfType("slot_" + var2, 8)) {
       String var3 = var1.getString("slot_" + var2);
       class_awj var4 = this.c.b(var3);
       this.c.a(var2, var4);
     }
   }
 }
  public class_apc(WorldServer var1, NBTTagCompound var2) {
    this.c =
        new class_le(
            new ChatMessage("entity.EnderDragon.name", new Object[0]),
            class_oh.class_a_in_class_oh.a,
            class_oh.class_b_in_class_oh.a,
            false,
            true);
    this.e = Lists.newArrayList();
    this.g = 0;
    this.h = 0;
    this.i = 0;
    this.j = 0;
    this.k = false;
    this.l = false;
    this.m = null;
    this.n = false;
    this.d = var1;
    if (var2.hasOfType("DragonKilled", 1)) {
      this.m = var2.getUUID("DragonUUID");
      this.k = var2.getBoolean("DragonKilled");
      this.l = var2.getBoolean("PreviouslyKilled");
    } else {
      this.n = true;
      this.k = true;
      this.l = true;
    }

    if (var2.hasOfType("Gateways", 9)) {
      NBTTagList var3 = var2.getList("Gateways", 3);

      for (int var4 = 0; var4 < var3.getSize(); ++var4) {
        this.e.add(Integer.valueOf(var3.getInt(var4)));
      }
    } else {
      this.e.addAll(
          ContiguousSet.create(
              Range.closedOpen(Integer.valueOf(0), Integer.valueOf(20)),
              DiscreteDomain.integers()));
      Collections.shuffle(this.e, new Random(var1.K()));
    }

    this.f =
        class_anq
            .a()
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "       ", "       ", "       ", "   #   ", "       ", "       ", "       "
                })
            .a(
                new String[] {
                  "  ###  ", " #   # ", "#     #", "#  #  #", "#     #", " #   # ", "  ###  "
                })
            .a(
                new String[] {
                  "       ", "  ###  ", " ##### ", " ##### ", " ##### ", "  ###  ", "       "
                })
            .a('#', class_ano.a(class_ans.a(Blocks.BEDROCK)))
            .b();
  }
  public UseResult interactWith(
      ItemStack var1,
      EntityHuman var2,
      World var3,
      BlockPosition var4,
      EnumUsedHand var5,
      EnumDirection var6,
      float var7,
      float var8,
      float var9) {
    if (var6 == EnumDirection.DOWN) {
      return UseResult.CANT_USE;
    } else {
      boolean var10 = var3.getType(var4).getBlock().isReplaceable(var3, var4);
      BlockPosition var11 = var10 ? var4 : var4.shift(var6);
      if (!var2.a(var11, var6, var1)) {
        return UseResult.CANT_USE;
      } else {
        BlockPosition var12 = var11.up();
        boolean var13 =
            !var3.isEmpty(var11) && !var3.getType(var11).getBlock().isReplaceable(var3, var11);
        var13 |= !var3.isEmpty(var12) && !var3.getType(var12).getBlock().isReplaceable(var3, var12);
        if (var13) {
          return UseResult.CANT_USE;
        } else {
          double var14 = (double) var11.getX();
          double var16 = (double) var11.getY();
          double var18 = (double) var11.getZ();
          List var20 =
              var3.getEntities(
                  (Entity) null,
                  (AxisAlignedBB)
                      AxisAlignedBB.a(
                          var14, var16, var18, var14 + 1.0D, var16 + 2.0D, var18 + 1.0D));
          if (!var20.isEmpty()) {
            return UseResult.CANT_USE;
          } else {
            if (!var3.isClientSide) {
              var3.setAir(var11);
              var3.setAir(var12);
              EntityArmorStand var21 =
                  new EntityArmorStand(var3, var14 + 0.5D, var16, var18 + 0.5D);
              float var22 =
                  (float)
                          MathHelper.floor(
                              (MathHelper.clampAngle(var2.yaw - 180.0F) + 22.5F) / 45.0F)
                      * 45.0F;
              var21.setPositionRotation(var14 + 0.5D, var16, var18 + 0.5D, var22, 0.0F);
              this.a(var21, var3.random);
              NBTTagCompound var23 = var1.getTag();
              if (var23 != null && var23.hasOfType("EntityTag", 10)) {
                NBTTagCompound var24 = new NBTTagCompound();
                var21.d(var24);
                var24.copyFrom(var23.getCompound("EntityTag"));
                var21.f(var24);
              }

              var3.addEntity((Entity) var21);
            }

            --var1.count;
            return UseResult.SUCCESS;
          }
        }
      }
    }
  }