Ejemplo n.º 1
0
  @Override
  public void onInteractEntity(PlayerInteractEntityEvent event, PlayerDetails details) {
    Player player = event.getPlayer();
    Entity entity = event.getRightClicked();
    if (EntityNBT.isValidType(entity.getType())) {
      EntityNBT entityNBT = EntityNBT.fromEntity(entity);
      player.sendMessage(
          ChatColor.YELLOW + "Information about " + EntityTypeMap.getName(entity.getType()) + "");
      for (NBTVariableContainer vc : entityNBT.getAllVariables()) {
        player.sendMessage("" + ChatColor.LIGHT_PURPLE + ChatColor.ITALIC + vc.getName() + ":");
        for (NBTVariable var : vc) {
          String value = var.getValue();
          player.sendMessage(
              "  "
                  + ChatColor.AQUA
                  + var.getName()
                  + ": "
                  + ChatColor.WHITE
                  + (value != null ? value : ChatColor.ITALIC + "none"));
        }
      }
      player.sendMessage(ChatColor.YELLOW + "Extra information:");

      boolean extra = false;
      if (entityNBT instanceof MobNBT) {
        float[] chances = ((MobNBT) entityNBT).getDropChances();
        String[] names = {"head", "chest", "legs", "feet", "hand"};
        player.sendMessage("" + ChatColor.LIGHT_PURPLE + ChatColor.ITALIC + "Drop chance:");
        for (int i = 0; i < 5; ++i) {
          player.sendMessage(
              "  " + ChatColor.AQUA + names[i] + ": " + ChatColor.WHITE + chances[4 - i]);
        }
        extra = true;
      }
      if (entityNBT instanceof VillagerNBT) {
        VillagerNBT villagerNBT = (VillagerNBT) entityNBT;
        player.sendMessage("" + ChatColor.LIGHT_PURPLE + ChatColor.ITALIC + "Trades done:");
        int i = 1;
        for (VillagerNBTOffer offer : villagerNBT.getOffers()) {
          player.sendMessage(
              "  " + ChatColor.AQUA + "trade " + i + ": " + ChatColor.WHITE + offer.getUses());
          ++i;
        }
        extra = true;
      }
      if (!extra) {
        player.sendMessage("none");
      }
      event.setCancelled(true);
    } else {
      player.sendMessage(ChatColor.RED + "Not a valid entity!");
    }
  }