Package services

Source Code of services.Clans$AllowedLvl

package services;

import l2p.Config;
import l2p.extensions.scripts.Functions;
import l2p.extensions.scripts.ScriptFile;
import l2p.gameserver.cache.Msg;
import l2p.gameserver.instancemanager.CastleSiegeManager;
import l2p.gameserver.instancemanager.SiegeManager;
import l2p.gameserver.model.L2Clan;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.L2World;
import l2p.gameserver.modules.community.mGenerateElement;
import l2p.gameserver.modules.option.mOption;
import l2p.gameserver.serverpackets.PledgeInfo;
import l2p.gameserver.serverpackets.PledgeShowInfoUpdate;
import l2p.gameserver.serverpackets.PledgeStatusChanged;
import l2p.gameserver.tables.ClanTable;
import l2p.util.Util;

import java.util.HashMap;

/**
* User: Shaitan
* Date: 22.02.11
* Time: 8:54
*/
public class Clans extends Functions implements ScriptFile
{
  private class AllowedLvl
  {
    int lvl;
    int id;
    int count;
  }

  private static HashMap<Integer, AllowedLvl> allowedLvls = new HashMap<Integer, AllowedLvl>();

  public void list()
  {
    L2Player player = (L2Player) getSelf();
    if(player == null)
    {
      return;
    }
    String s = "";
    if(Config.ClanChangeName)
    {
      s += "<font color=\"LEVEL\">Сервис смены имени клана.</font><br1>";
      s += "Цена: " + Config.ClanChangeNameCount + " " + mOption.getItemName(Config.ClanChangeNameId) + "<br1>";
      s += "Введите желаемой имя клана: <edit var=\"name\" width=270 height=15 /><br1>";
      s += mGenerateElement.button("Сменить имя клана", "scripts_services.Clans:changeClanName $name", 270, 20) + "<br1>";
    }
    if(Config.ClanPointSell)
    {
      s += "<font color=\"LEVEL\">Сервис покупки клановых очей.</font><br1>";
      s += mGenerateElement.button("Купить " + Config.ClanPointCount + " клановых очей за " + Config.ClanPointPriceCount + " " + mOption.getItemName(Config.ClanPointPriceId), "scripts_services.Clans:buyClanPoints", 270, 20) + "<br1>";
    }
    if(Config.ClanLevelSell)
    {
      s += "<font color=\"LEVEL\">Сервис покупки уровня клана.</font><br1>";
      s += "Доступные для продажи лвла:<br1>";
      for(AllowedLvl allowedLvl : allowedLvls.values())
      {
        if(allowedLvl.lvl > 0 || allowedLvl.lvl < 12)
        {
          s += mGenerateElement.button("Купить " + allowedLvl.lvl + "й уровень клана за " + allowedLvl.count + " " + mOption.getItemName(allowedLvl.id), "scripts_services.Clans:buyClanLevel " + allowedLvl.lvl, 270, 20) + "<br1>";
        }
      }
    }
    show(s, player, null);
  }

  public void changeClanName(String[] args)
  {
    L2Player player = (L2Player) getSelf();
    if(player.getClan() == null)
    {
      player.sendMessage("У вас нет клана.");
      return;
    }
    if(!Util.isMatchingRegexp(args[0], Config.CLAN_NAME_TEMPLATE))
    {
      player.sendPacket(Msg.CLAN_NAME_IS_INCORRECT);
      list();
      return;
    }
    if(ClanTable.getInstance().getClanByName(args[0]) != null)
    {
      player.sendMessage("Такое имя клана уже занято.");
      list();
      return;
    }
    if(mOption.price(player, Config.ClanChangeNameId, Config.ClanChangeNameCount))
    {
      L2Clan clan = player.getClan();
      clan.setName(args[0]);
      clan.updateClanInDB();
      clan.broadcastClanStatus(true, true, true);
      clan.broadcastToOnlineMembers(new PledgeInfo(clan));
      for(L2Player ch : L2World.getAroundPlayers(player))
      {
        if(ch != null && ch.getClan() != clan)
        {
          ch.sendPacket(new PledgeInfo(clan));
        }
      }
    }
    list();
  }

  public void buyClanPoints()
  {
    L2Player player = (L2Player) getSelf();
    if(player.getClan() == null || player.getClan().getLevel() < 5)
    {
      player.sendMessage("У вас нет клана или ваш клан ниже 5го уровня.");
      list();
      return;
    }
    else if(mOption.price(player, Config.ClanPointPriceId, Config.ClanPointPriceCount))
    {
      player.getClan().incReputation(Config.ClanPointCount, false, "ClanPoint");
    }
    list();
  }

  public void buyClanLevel(String[] args)
  {
    L2Player player = (L2Player) getSelf();
    if(args[0].length() > 2)
    {
      player.sendMessage("Не верно указанный уровень.");
      list();
      return;
    }
    int level;
    try
    {
      level = Integer.parseInt(args[0]);
      if(level < 1 || level > 11)
      {
        player.sendMessage("Не верно указанный уровень.");
        list();
        return;
      }
    }
    catch(Exception e)
    {
      player.sendMessage("Не верно указанный уровень.");
      list();
      return;
    }
    if(player.getClan() == null)
    {
      player.sendMessage("У вас нет клана.");
      return;
    }
    else if(player.getClan().getLevel() != level - 1)
    {
      player.sendMessage("Для покупки " + level + " уровня клана ваш клан должен быть " + (level - 1) + " уровня.");
      list();
      return;
    }
    AllowedLvl allowedLvl = allowedLvls.get(level);
    if(allowedLvl != null)
    {
      if(mOption.price(player, allowedLvl.id, allowedLvl.count))
      {
        L2Clan clan = player.getClan();
        clan.setLevel(Byte.parseByte(allowedLvl.lvl + ""));
        clan.updateClanInDB();
        if(level < CastleSiegeManager.getSiegeClanMinLevel())
        {
          SiegeManager.removeSiegeSkills(player);
        }
        else
        {
          SiegeManager.addSiegeSkills(player);
        }
        if(level == 5)
        {
          player.sendPacket(Msg.NOW_THAT_YOUR_CLAN_LEVEL_IS_ABOVE_LEVEL_5_IT_CAN_ACCUMULATE_CLAN_REPUTATION_POINTS);
        }
        PledgeShowInfoUpdate pu = new PledgeShowInfoUpdate(clan);
        PledgeStatusChanged ps = new PledgeStatusChanged(clan);
        for(L2Player member : clan.getOnlineMembers(0))
        {
          member.updatePledgeClass();
          member.sendPacket(Msg.CLANS_SKILL_LEVEL_HAS_INCREASED, pu, ps);
          member.broadcastUserInfo(true);
        }
      }
    }
    else
    {
      player.sendMessage(level + "й уровень клана не продается.");
    }
    list();
  }

  public void onLoad()
  {
    if(Config.ClanLevelSell)
    {
      for(String lvls : Config.ClanLevelPrice)
      {
        String[] lvl = lvls.split(",");
        AllowedLvl allowedLvl = new AllowedLvl();
        allowedLvl.lvl = Integer.parseInt(lvl[0]);
        allowedLvl.id = Integer.parseInt(lvl[1]);
        allowedLvl.count = Integer.parseInt(lvl[2]);
        allowedLvls.put(allowedLvl.lvl, allowedLvl);
      }
    }
  }

  public void onReload()
  {
    allowedLvls = new HashMap<Integer, AllowedLvl>();
    onLoad();
  }

  public void onShutdown()
  {
  }
}
TOP

Related Classes of services.Clans$AllowedLvl

TOP
Copyright © 2018 www.massapi.com. 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.