Package com.l2jfrozen.gameserver.templates

Examples of com.l2jfrozen.gameserver.templates.StatsSet


      }else{
        LOGGER.warn("[RaidInfoHandler][sendInfo] Raid Boss with ID "+boss+" is not defined into NpcTable");
        continue;
      }
      
      StatsSet actual_boss_stat = null;
      GrandBossManager.getInstance().getStatsSet(boss);
      long delay = 0;
     
      if(NpcTable.getInstance().getTemplate(boss).type.equals("L2RaidBoss")){
        actual_boss_stat=RaidBossSpawnManager.getInstance().getStatsSet(boss);
        if(actual_boss_stat!=null)
          delay = actual_boss_stat.getLong("respawnTime");
      }else if(NpcTable.getInstance().getTemplate(boss).type.equals("L2GrandBoss")){
        actual_boss_stat=GrandBossManager.getInstance().getStatsSet(boss);
        if(actual_boss_stat!=null)
          delay = actual_boss_stat.getLong("respawn_time");
      }else
        continue;
     
      if (delay <= System.currentTimeMillis())
      {
View Full Code Here


    String[] commandSplit = command.split(" ");

    if(commandSplit.length < 4)
      return;

    StatsSet newNpcData = new StatsSet();

    try
    {
      newNpcData.set("npcId", commandSplit[1]);

      String statToSet = commandSplit[2];
      String value = commandSplit[3];

      if(commandSplit.length > 4)
      {
        for(int i = 0; i < commandSplit.length - 3; i++)
        {
          value += " " + commandSplit[i + 4];
        }
      }

      commandSplit = null;

      if(statToSet.equals("templateId"))
      {
        newNpcData.set("idTemplate", Integer.valueOf(value));
      }
      else if(statToSet.equals("name"))
      {
        newNpcData.set("name", value);
      }
      else if(statToSet.equals("serverSideName"))
      {
        newNpcData.set("serverSideName", Integer.valueOf(value));
      }
      else if(statToSet.equals("title"))
      {
        newNpcData.set("title", value);
      }
      else if(statToSet.equals("serverSideTitle"))
      {
        newNpcData.set("serverSideTitle", Integer.valueOf(value) == 1 ? 1 : 0);
      }
      else if(statToSet.equals("collisionRadius"))
      {
        newNpcData.set("collision_radius", Integer.valueOf(value));
      }
      else if(statToSet.equals("collisionHeight"))
      {
        newNpcData.set("collision_height", Integer.valueOf(value));
      }
      else if(statToSet.equals("level"))
      {
        newNpcData.set("level", Integer.valueOf(value));
      }
      else if(statToSet.equals("sex"))
      {
        int intValue = Integer.valueOf(value);
        newNpcData.set("sex", intValue == 0 ? "male" : intValue == 1 ? "female" : "etc");
      }
      else if(statToSet.equals("type"))
      {
        Class.forName("com.l2jfrozen.gameserver.model.actor.instance." + value + "Instance");
        newNpcData.set("type", value);
      }
      else if(statToSet.equals("attackRange"))
      {
        newNpcData.set("attackrange", Integer.valueOf(value));
      }
      else if(statToSet.equals("hp"))
      {
        newNpcData.set("hp", Integer.valueOf(value));
      }
      else if(statToSet.equals("mp"))
      {
        newNpcData.set("mp", Integer.valueOf(value));
      }
      else if(statToSet.equals("hpRegen"))
      {
        newNpcData.set("hpreg", Integer.valueOf(value));
      }
      else if(statToSet.equals("mpRegen"))
      {
        newNpcData.set("mpreg", Integer.valueOf(value));
      }
      else if(statToSet.equals("str"))
      {
        newNpcData.set("str", Integer.valueOf(value));
      }
      else if(statToSet.equals("con"))
      {
        newNpcData.set("con", Integer.valueOf(value));
      }
      else if(statToSet.equals("dex"))
      {
        newNpcData.set("dex", Integer.valueOf(value));
      }
      else if(statToSet.equals("int"))
      {
        newNpcData.set("int", Integer.valueOf(value));
      }
      else if(statToSet.equals("wit"))
      {
        newNpcData.set("wit", Integer.valueOf(value));
      }
      else if(statToSet.equals("men"))
      {
        newNpcData.set("men", Integer.valueOf(value));
      }
      else if(statToSet.equals("exp"))
      {
        newNpcData.set("exp", Integer.valueOf(value));
      }
      else if(statToSet.equals("sp"))
      {
        newNpcData.set("sp", Integer.valueOf(value));
      }
      else if(statToSet.equals("pAtk"))
      {
        newNpcData.set("patk", Integer.valueOf(value));
      }
      else if(statToSet.equals("pDef"))
      {
        newNpcData.set("pdef", Integer.valueOf(value));
      }
      else if(statToSet.equals("mAtk"))
      {
        newNpcData.set("matk", Integer.valueOf(value));
      }
      else if(statToSet.equals("mDef"))
      {
        newNpcData.set("mdef", Integer.valueOf(value));
      }
      else if(statToSet.equals("pAtkSpd"))
      {
        newNpcData.set("atkspd", Integer.valueOf(value));
      }
      else if(statToSet.equals("aggro"))
      {
        newNpcData.set("aggro", Integer.valueOf(value));
      }
      else if(statToSet.equals("mAtkSpd"))
      {
        newNpcData.set("matkspd", Integer.valueOf(value));
      }
      else if(statToSet.equals("rHand"))
      {
        newNpcData.set("rhand", Integer.valueOf(value));
      }
      else if(statToSet.equals("lHand"))
      {
        newNpcData.set("lhand", Integer.valueOf(value));
      }
      else if(statToSet.equals("armor"))
      {
        newNpcData.set("armor", Integer.valueOf(value));
      }
      else if(statToSet.equals("runSpd"))
      {
        newNpcData.set("runspd", Integer.valueOf(value));
      }
      else if(statToSet.equals("factionId"))
      {
        newNpcData.set("faction_id", value);
      }
      else if(statToSet.equals("factionRange"))
      {
        newNpcData.set("faction_range", Integer.valueOf(value));
      }
      else if(statToSet.equals("isUndead"))
      {
        newNpcData.set("isUndead", Integer.valueOf(value) == 1 ? 1 : 0);
      }
      else if(statToSet.equals("absorbLevel"))
      {
        int intVal = Integer.valueOf(value);
        newNpcData.set("absorb_level", intVal < 0 ? 0 : intVal > 12 ? 0 : intVal);
      }

      statToSet = null;
      value = null;
    }
    catch(Exception e)
    {
      if(Config.ENABLE_ALL_EXCEPTIONS)
        e.printStackTrace();
     
      _log.warning("Error saving new npc value: " + e);
    }

    int npcId = newNpcData.getInteger("npcId");
    final L2NpcTemplate old = NpcTable.getInstance().getTemplate(npcId);
   
    if(old.isCustom()){
      activeChar.sendMessage("You are going to save Custom NPC");
    }
View Full Code Here

      ResultSet rset = statement.executeQuery();
      while(rset.next())
      {
        //Read all info from DB, and store it for AI to read and decide what to do
        //faster than accessing DB in real time
        StatsSet info = new StatsSet();
        int bossId = rset.getInt("boss_id");
        info.set("loc_x", rset.getInt("loc_x"));
        info.set("loc_y", rset.getInt("loc_y"));
        info.set("loc_z", rset.getInt("loc_z"));
        info.set("heading", rset.getInt("heading"));
        info.set("respawn_time", rset.getLong("respawn_time"));
        double HP = rset.getDouble("currentHP"); //jython doesn't recognize doubles
        int true_HP = (int) HP; //so use java's ability to type cast
        info.set("currentHP", true_HP); //to convert double to int
        double MP = rset.getDouble("currentMP");
        int true_MP = (int) MP;
        info.set("currentMP", true_MP);
        _bossStatus.put(bossId, rset.getInt("status"));

        _storedInfo.put(bossId, info);
        info = null;
      }
View Full Code Here

    {
      con = L2DatabaseFactory.getInstance().getConnection(false);
      for(Integer bossId : _storedInfo.keySet())
      {
        L2ScarletInstance boss = _bosses.get(bossId);
        StatsSet info = _storedInfo.get(bossId);
        if(boss == null || info == null)
        {
          PreparedStatement update2 = con.prepareStatement(UPDATE_GRAND_BOSS_DATA2);
          update2.setInt(1, _bossStatus.get(bossId));
          update2.setInt(2, bossId);
          update2.executeUpdate();
          update2.close();
        }
        else
        {
          PreparedStatement update1 = con.prepareStatement(UPDATE_GRAND_BOSS_DATA);
          update1.setInt(1, boss.getX());
          update1.setInt(2, boss.getY());
          update1.setInt(3, boss.getZ());
          update1.setInt(4, boss.getHeading());
          update1.setLong(5, info.getLong("respawn_time"));
          double hp = boss.getCurrentHp();
          double mp = boss.getCurrentMp();
          if(boss.isDead())
          {
            hp = boss.getMaxHp();
View Full Code Here

      }

      for(Integer bossId : _storedInfo.keySet())
      {
        L2ScarletInstance boss = _bosses.get(bossId);
        StatsSet info = _storedInfo.get(bossId);
        if(boss == null || info == null)
        {
          PreparedStatement update2 = con.prepareStatement(UPDATE_GRAND_BOSS_DATA2);
          update2.setInt(1, _bossStatus.get(bossId));
          update2.setInt(2, bossId);
          update2.executeUpdate();
          update2.close();
        }
        else
        {
          PreparedStatement update1 = con.prepareStatement(UPDATE_GRAND_BOSS_DATA);
          update1.setInt(1, boss.getX());
          update1.setInt(2, boss.getY());
          update1.setInt(3, boss.getZ());
          update1.setInt(4, boss.getHeading());
          update1.setLong(5, info.getLong("respawn_time"));
          double hp = boss.getCurrentHp();
          double mp = boss.getCurrentMp();
          if(boss.isDead())
          {
            hp = boss.getMaxHp();
View Full Code Here

    PreparedStatement statement = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection();
      L2ScarletInstance boss = _bosses.get(bossId);
      StatsSet info = _storedInfo.get(bossId);
     
      if (statusOnly || boss == null || info == null)
      {
        statement = con.prepareStatement(UPDATE_GRAND_BOSS_DATA2);
        statement.setInt(1, _bossStatus.get(bossId));
        statement.setInt(2, bossId);
      }
      else
      {
        statement = con.prepareStatement(UPDATE_GRAND_BOSS_DATA);
        statement.setInt(1, boss.getX());
        statement.setInt(2, boss.getY());
        statement.setInt(3, boss.getZ());
        statement.setInt(4, boss.getHeading());
        statement.setLong(5, info.getLong("respawn_time"));
        double hp = boss.getCurrentHp();
        double mp = boss.getCurrentMp();
        if (boss.isDead())
        {
          hp = boss.getMaxHp();
View Full Code Here

      }else{
        _log.warning("[RaidInfoHandler][sendInfo] Raid Boss with ID "+boss+" is not defined into NpcTable");
        continue;
      }
      
      StatsSet actual_boss_stat = null;
      GrandBossManager.getInstance().getStatsSet(boss);
      long delay = 0;
     
      if(NpcTable.getInstance().getTemplate(boss).type.equals("L2RaidBoss")){
        actual_boss_stat=RaidBossSpawnManager.getInstance().getStatsSet(boss);
        if(actual_boss_stat!=null)
          delay = actual_boss_stat.getLong("respawnTime");
      }else if(NpcTable.getInstance().getTemplate(boss).type.equals("L2GrandBoss")){
        actual_boss_stat=GrandBossManager.getInstance().getStatsSet(boss);
        if(actual_boss_stat!=null)
          delay = actual_boss_stat.getLong("respawn_time");
      }else
        continue;
     
      if (delay <= System.currentTimeMillis())
      {
View Full Code Here

    _currentSkill.enchsets1 = new StatsSet[enchantLevels1];
    _currentSkill.enchsets2 = new StatsSet[enchantLevels2];

    for(int i = 0; i < lastLvl; i++)
    {
      _currentSkill.sets[i] = new StatsSet();
      _currentSkill.sets[i].set("skill_id", _currentSkill.id);
      _currentSkill.sets[i].set("level", i + 1);
      _currentSkill.sets[i].set("name", _currentSkill.name);
    }

    if(_currentSkill.sets.length != lastLvl)
      throw new RuntimeException("Skill id=" + skillId + " number of levels missmatch, " + lastLvl + " levels expected");

    Node first = n.getFirstChild();
    for(n = first; n != null; n = n.getNextSibling())
    {
      if("table".equalsIgnoreCase(n.getNodeName()))
      {
        parseTable(n);
      }
    }

    for(int i = 1; i <= lastLvl; i++)
    {
      for(n = first; n != null; n = n.getNextSibling())
      {
        if("set".equalsIgnoreCase(n.getNodeName()))
        {
          parseBeanSet(n, _currentSkill.sets[i - 1], i);
        }
      }
    }

    for(int i = 0; i < enchantLevels1; i++)
    {
      _currentSkill.enchsets1[i] = new StatsSet();
      _currentSkill.enchsets1[i].set("skill_id", _currentSkill.id);
      //currentSkill.enchsets1[i] = currentSkill.sets[currentSkill.sets.length-1];
      _currentSkill.enchsets1[i].set("level", i + 101);
      _currentSkill.enchsets1[i].set("name", _currentSkill.name);
      //currentSkill.enchsets1[i].set("skillType",     "NOTDONE");

      for(n = first; n != null; n = n.getNextSibling())
      {
        if("set".equalsIgnoreCase(n.getNodeName()))
        {
          parseBeanSet(n, _currentSkill.enchsets1[i], _currentSkill.sets.length);
        }
      }

      for(n = first; n != null; n = n.getNextSibling())
      {
        if("enchant1".equalsIgnoreCase(n.getNodeName()))
        {
          parseBeanSet(n, _currentSkill.enchsets1[i], i + 1);
        }
      }
    }

    if(_currentSkill.enchsets1.length != enchantLevels1)
      throw new RuntimeException("Skill id=" + skillId + " number of levels missmatch, " + enchantLevels1 + " levels expected");

    for(int i = 0; i < enchantLevels2; i++)
    {
      _currentSkill.enchsets2[i] = new StatsSet();
      //currentSkill.enchsets2[i] = currentSkill.sets[currentSkill.sets.length-1];
      _currentSkill.enchsets2[i].set("skill_id", _currentSkill.id);
      _currentSkill.enchsets2[i].set("level", i + 141);
      _currentSkill.enchsets2[i].set("name", _currentSkill.name);
      //currentSkill.enchsets2[i].set("skillType",     "NOTDONE");
View Full Code Here

          int dawnScore = SevenSignsFestival.getInstance().getHighestScore(SevenSigns.CABAL_DAWN, i);

          // Dusk Score \\
          writeD(duskScore);

          StatsSet highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DUSK, i);
          String[] partyMembers = highScoreData.getString("members").split(",");

          if(partyMembers != null)
          {
            writeC(partyMembers.length);

            for(String partyMember : partyMembers)
            {
              writeS(partyMember);
            }
          }
          else
          {
            writeC(0);
          }

          // Dawn Score \\
          writeD(dawnScore);

          highScoreData = SevenSignsFestival.getInstance().getHighestScoreData(SevenSigns.CABAL_DAWN, i);
          partyMembers = highScoreData.getString("members").split(",");

          if(partyMembers != null)
          {
            writeC(partyMembers.length);
View Full Code Here

  private void fillNpcTable(ResultSet NpcData, boolean custom) throws Exception
  {
    while(NpcData.next())
    {
      StatsSet npcDat = new StatsSet();

      int id = NpcData.getInt("id");

      npcDat.set("npcId", id);
      npcDat.set("idTemplate", NpcData.getInt("idTemplate"));

      //Level: for special bosses could be different
      int level = 0;
      float diff = 0; //difference between setted value and retail one
      boolean minion = false;

      switch(id)
      {
        case 29002: // and minions
        case 29003:
        case 29004:
        case 29005:
          minion = true;
        case 29001://queenAnt
        {
          if(Config.QA_LEVEL > 0)
          {
            diff = Config.QA_LEVEL - NpcData.getInt("level");
            level = Config.QA_LEVEL;
          }
          else
            level = NpcData.getInt("level");

        }
          break;
        case 29022:
        { //zaken

          if(Config.ZAKEN_LEVEL > 0)
          {
            diff = Config.ZAKEN_LEVEL - NpcData.getInt("level");
            level = Config.ZAKEN_LEVEL;
          }
          else
            level = NpcData.getInt("level");

        }
          break;
        case 29015: //and minions
        case 29016:
        case 29017:
        case 29018:
          minion = true;
        case 29014://orfen
        {

          if(Config.ORFEN_LEVEL > 0)
          {
            diff = Config.ORFEN_LEVEL - NpcData.getInt("level");
            level = Config.ORFEN_LEVEL;
          }
          else
            level = NpcData.getInt("level");

        }
          break;
        case 29007: //and minions
        case 29008:
        case 290011:
          minion = true;
        case 29006: //core
        {

          if(Config.CORE_LEVEL > 0)
          {
            diff = Config.CORE_LEVEL - NpcData.getInt("level");
            level = Config.CORE_LEVEL;
          }
          else
            level = NpcData.getInt("level");

        }
          break;
        default:
        {
          level = NpcData.getInt("level");
        }
      }

      npcDat.set("level", level);
      npcDat.set("jClass", NpcData.getString("class"));

      npcDat.set("baseShldDef", 0);
      npcDat.set("baseShldRate", 0);
      npcDat.set("baseCritRate", 4);

      npcDat.set("name", NpcData.getString("name"));
      npcDat.set("serverSideName", NpcData.getBoolean("serverSideName"));
      //npcDat.set("name", "");
      npcDat.set("title", NpcData.getString("title"));
      npcDat.set("serverSideTitle", NpcData.getBoolean("serverSideTitle"));
      npcDat.set("collision_radius", NpcData.getDouble("collision_radius"));
      npcDat.set("collision_height", NpcData.getDouble("collision_height"));
      npcDat.set("sex", NpcData.getString("sex"));
      npcDat.set("type", NpcData.getString("type"));
      npcDat.set("baseAtkRange", NpcData.getInt("attackrange"));

      //BOSS POWER CHANGES
      double multi_value = 1;

      if(diff >= 15)
      { //means that there is level customization
        multi_value = multi_value * (diff / 10);
      }
      else if(diff > 0 && diff < 15)
      {
        multi_value = multi_value + (diff / 10);
      }

      if(minion)
      {
        multi_value = multi_value * Config.LEVEL_DIFF_MULTIPLIER_MINION; //allow to increase the power of a value
        //that for example, at 40 diff levels is
        //equal to
        //    value = ((40/10)*0.8) = 3,2 --> 220 % more
      }
      else
      {

        switch(id)
        {
          case 29001:
          {//queenAnt

            if(Config.QA_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.QA_POWER_MULTIPLIER;
            }

          }
            break;
          case 29022:
          { //zaken

            if(Config.ZAKEN_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.ZAKEN_POWER_MULTIPLIER;
            }

          }
            break;
          case 29014:
          {//orfen

            if(Config.ORFEN_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.ORFEN_POWER_MULTIPLIER;
            }

          }
            break;
          case 29006:
          { //core

            if(Config.CORE_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.CORE_POWER_MULTIPLIER;
            }

          }
            break;
          case 29019:
          { //antharas

            if(Config.ANTHARAS_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.ANTHARAS_POWER_MULTIPLIER;
            }

          }
            break;
          case 29028:
          { //valakas

            if(Config.VALAKAS_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.VALAKAS_POWER_MULTIPLIER;
            }

          }
            break;
          case 29020:
          { //baium

            if(Config.BAIUM_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.BAIUM_POWER_MULTIPLIER;
            }

          }
            break;
          case 29045:
          { //frintezza

            if(Config.FRINTEZZA_POWER_MULTIPLIER > 0)
            {
              multi_value = multi_value * Config.FRINTEZZA_POWER_MULTIPLIER;
            }

          }
            break;
          default:
          {
          }
        }

      }

      npcDat.set("rewardExp", NpcData.getInt("exp") * multi_value);
      npcDat.set("rewardSp", NpcData.getInt("sp") * multi_value);
      npcDat.set("basePAtkSpd", NpcData.getInt("atkspd") * multi_value);
      npcDat.set("baseMAtkSpd", NpcData.getInt("matkspd") * multi_value);
      npcDat.set("baseHpMax", NpcData.getInt("hp") * multi_value);
      npcDat.set("baseMpMax", NpcData.getInt("mp") * multi_value);
      npcDat.set("baseHpReg", (int) NpcData.getFloat("hpreg") * multi_value > 0 ? NpcData.getFloat("hpreg") : 1.5 + (level - 1) / 10.0);
      npcDat.set("baseMpReg", (int) NpcData.getFloat("mpreg") * multi_value > 0 ? NpcData.getFloat("mpreg") : 0.9 + 0.3 * (level - 1) / 10.0);
      npcDat.set("basePAtk", NpcData.getInt("patk") * multi_value);
      npcDat.set("basePDef", NpcData.getInt("pdef") * multi_value);
      npcDat.set("baseMAtk", NpcData.getInt("matk") * multi_value);
      npcDat.set("baseMDef", NpcData.getInt("mdef") * multi_value);

      npcDat.set("aggroRange", NpcData.getInt("aggro"));
      npcDat.set("rhand", NpcData.getInt("rhand"));
      npcDat.set("lhand", NpcData.getInt("lhand"));
      npcDat.set("armor", NpcData.getInt("armor"));
      npcDat.set("baseWalkSpd", NpcData.getInt("walkspd"));
      npcDat.set("baseRunSpd", NpcData.getInt("runspd"));

      // constants, until we have stats in DB
      // constants, until we have stats in DB
      npcDat.safeSet("baseSTR", NpcData.getInt("str"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      npcDat.safeSet("baseCON", NpcData.getInt("con"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      npcDat.safeSet("baseDEX", NpcData.getInt("dex"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      npcDat.safeSet("baseINT", NpcData.getInt("int"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      npcDat.safeSet("baseWIT", NpcData.getInt("wit"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      npcDat.safeSet("baseMEN", NpcData.getInt("men"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: "+NpcData.getInt("idTemplate"));
      /*
      npcDat.set("baseSTR", NpcData.getInt("str"));
      npcDat.set("baseCON", NpcData.getInt("con"));
      npcDat.set("baseDEX", NpcData.getInt("dex"));
      npcDat.set("baseINT", NpcData.getInt("int"));
      npcDat.set("baseWIT", NpcData.getInt("wit"));
      npcDat.set("baseMEN", NpcData.getInt("men"));
      */
      npcDat.set("baseCpMax", 0);

      npcDat.set("factionId", NpcData.getString("faction_id"));
      npcDat.set("factionRange", NpcData.getInt("faction_range"));

      npcDat.set("isUndead", NpcData.getString("isUndead"));

      npcDat.set("absorb_level", NpcData.getString("absorb_level"));
      npcDat.set("absorb_type", NpcData.getString("absorb_type"));
     
      L2NpcTemplate template = new L2NpcTemplate(npcDat, custom);
      template.addVulnerability(Stats.BOW_WPN_VULN, 1);
      template.addVulnerability(Stats.BLUNT_WPN_VULN, 1);
      template.addVulnerability(Stats.DAGGER_WPN_VULN, 1);
View Full Code Here

TOP

Related Classes of com.l2jfrozen.gameserver.templates.StatsSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.