Advertisement
Guest User

Untitled

a guest
Jul 5th, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.75 KB | None | 0 0
  1. package events.CtF;
  2.  
  3. import java.io.File;
  4. import java.util.Calendar;
  5.  
  6. import javax.xml.parsers.DocumentBuilderFactory;
  7.  
  8. import l2r.gameserver.utils.GArray;
  9. import l2r.gameserver.utils.Location;
  10.  
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.w3c.dom.Document;
  14. import org.w3c.dom.NamedNodeMap;
  15. import org.w3c.dom.Node;
  16.  
  17. public class CTFConfig
  18. {
  19.     private static final Logger _log = LoggerFactory.getLogger(CTFConfig.class);
  20.     public static GArray<Configs> _configs = new GArray<Configs>();
  21.  
  22.     public static void load()
  23.     {
  24.         try
  25.         {
  26.             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  27.             factory.setValidating(false);
  28.             factory.setIgnoringComments(true);
  29.  
  30.             File file = new File("./config/events/CTF.xml");
  31.  
  32.             Calendar _date = Calendar.getInstance();
  33.  
  34.             Document doc = factory.newDocumentBuilder().parse(file);
  35.  
  36.             for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling()) {
  37.                 if (!"list".equalsIgnoreCase(n.getNodeName()))
  38.                     continue;
  39.                 for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
  40.                 {
  41.                     if (!"ctf".equalsIgnoreCase(d.getNodeName()))
  42.                         continue;
  43.                     Configs _config = new Configs();
  44.  
  45.                     NamedNodeMap attrs = d.getAttributes();
  46.  
  47.                     if(Integer.parseInt(attrs.getNamedItem("day").getNodeValue()) != 0)
  48.                         _date.set(Calendar.DAY_OF_MONTH, Integer.parseInt(attrs.getNamedItem("day").getNodeValue()));
  49.                     _date.set(Calendar.HOUR_OF_DAY, Integer.parseInt(attrs.getNamedItem("hour").getNodeValue()));
  50.                     _date.set(Calendar.MINUTE, Integer.parseInt(attrs.getNamedItem("min").getNodeValue()));
  51.                     _config.START_TIME = (_date.getTimeInMillis() > System.currentTimeMillis() ? _date.getTimeInMillis() / 1000L : _date.getTimeInMillis() / 1000L + 86400L);
  52.                     _config.TIME_TO_END_BATTLE = Integer.parseInt(attrs.getNamedItem("TimeToEvent").getNodeValue());
  53.  
  54.                     for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) {
  55.                         if("Participants".equalsIgnoreCase(cd.getNodeName()))
  56.                         {
  57.                             attrs = cd.getAttributes();
  58.                             _config.MIN_PARTICIPANTS = Integer.parseInt(attrs.getNamedItem("min").getNodeValue());
  59.                             _config.MAX_PARTICIPANTS = Integer.parseInt(attrs.getNamedItem("max").getNodeValue());
  60.                         }
  61.                         else if("TimeToRegistration".equalsIgnoreCase(cd.getNodeName()))
  62.                         {
  63.                             attrs = cd.getAttributes();
  64.                             _config.TIME_TO_START_BATTLE = Integer.parseInt(attrs.getNamedItem("val").getNodeValue());
  65.                         }
  66.                         else if("AllowKillBonus".equalsIgnoreCase(cd.getNodeName()))
  67.                         {
  68.                             attrs = cd.getAttributes();
  69.                             _config.ALLOW_KILL_BONUS = Boolean.parseBoolean(attrs.getNamedItem("val").getNodeValue());
  70.                         }
  71.                         else if("AllowHeroSkillAndWeapons".equalsIgnoreCase(cd.getNodeName()))
  72.                         {
  73.                             attrs = cd.getAttributes();
  74.                             _config.ALLOW_HERO_WEAPONS = Boolean.parseBoolean(attrs.getNamedItem("val").getNodeValue());
  75.                         }
  76.                         else if("KillReward".equalsIgnoreCase(cd.getNodeName()))
  77.                         {
  78.                             attrs = cd.getAttributes();
  79.                             _config.KILL_BONUS_ID = Integer.parseInt(attrs.getNamedItem("id").getNodeValue());
  80.                             _config.KILL_BONUS_COUNT = Integer.parseInt(attrs.getNamedItem("count").getNodeValue());
  81.                         }
  82.                         else if("Reward".equalsIgnoreCase(cd.getNodeName()))
  83.                         {
  84.                             attrs = cd.getAttributes();
  85.                             _config.ST_REWARD_ITEM_ID = attrs.getNamedItem("id").getNodeValue();
  86.                             _config.ST_REWARD_COUNT = attrs.getNamedItem("count").getNodeValue();
  87.                         }
  88.                         else if("AllowTakeItems".equalsIgnoreCase(cd.getNodeName()))
  89.                         {
  90.                             attrs = cd.getAttributes();
  91.                             _config.ALLOW_TAKE_ITEM = Boolean.parseBoolean(attrs.getNamedItem("val").getNodeValue());
  92.                         }
  93.                         else if("TakeItems".equalsIgnoreCase(cd.getNodeName()))
  94.                         {
  95.                             attrs = cd.getAttributes();
  96.                             _config.TAKE_ITEM_ID = Integer.parseInt(attrs.getNamedItem("id").getNodeValue());
  97.                             _config.TAKE_COUNT = Integer.parseInt(attrs.getNamedItem("count").getNodeValue());
  98.                         }
  99.                         else if("StopAllEffects".equalsIgnoreCase(cd.getNodeName()))
  100.                         {
  101.                             attrs = cd.getAttributes();
  102.                             _config.STOP_ALL_EFFECTS = Boolean.parseBoolean(attrs.getNamedItem("val").getNodeValue());
  103.                         }
  104.                         else if("TeamCoords".equalsIgnoreCase(cd.getNodeName()))
  105.                         {
  106.                             attrs = cd.getAttributes();
  107.                             _config.TEAM_NAME.add(attrs.getNamedItem("name").getNodeValue());
  108.                             _config.TEAM_COUNTS = 2;
  109.                         }
  110.                         else if("FlagCords".equalsIgnoreCase(cd.getNodeName()))
  111.                         {
  112.                             attrs = cd.getAttributes();
  113.                             _config.FLAG_COORDS.add(new Location(Integer.parseInt(attrs.getNamedItem("x").getNodeValue()), Integer.parseInt(attrs.getNamedItem("y").getNodeValue()), Integer.parseInt(attrs.getNamedItem("z").getNodeValue()), Integer.parseInt(attrs.getNamedItem("h").getNodeValue())));
  114.                         }
  115.                         else if("NeedFlags".equalsIgnoreCase(cd.getNodeName()))
  116.                         {
  117.                             attrs = cd.getAttributes();
  118.                             _config.NEED_SCORE = Integer.parseInt(attrs.getNamedItem("val").getNodeValue());
  119.                         }
  120.                         else if("ResurrectionTime".equalsIgnoreCase(cd.getNodeName()))
  121.                         {
  122.                             attrs = cd.getAttributes();
  123.                             _config.RESURRECTION_TIME = Integer.parseInt(attrs.getNamedItem("val").getNodeValue());
  124.                         }
  125.                         else if("Level".equalsIgnoreCase(cd.getNodeName()))
  126.                         {
  127.                             attrs = cd.getAttributes();
  128.                             _config.MIN_LEVEL = Integer.parseInt(attrs.getNamedItem("min").getNodeValue());
  129.                             _config.MAX_LEVEL = Integer.parseInt(attrs.getNamedItem("max").getNodeValue());
  130.                         }
  131.                         else if("PauseTime".equalsIgnoreCase(cd.getNodeName()))
  132.                         {
  133.                             attrs = cd.getAttributes();
  134.                             _config.PAUSE_TIME = Integer.parseInt(attrs.getNamedItem("val").getNodeValue());
  135.                         }
  136.                         else if("ListMageFaiterSupport".equalsIgnoreCase(cd.getNodeName()))
  137.                         {
  138.                             attrs = cd.getAttributes();
  139.                             String[] skills = attrs.getNamedItem("val").getNodeValue().split(",");
  140.                             for (String id : skills)
  141.                                 _config.LIST_MAGE_FAITER_SUPPORT.add(Integer.parseInt(id));
  142.                         }
  143.                         else if("ListMageMagSupport".equalsIgnoreCase(cd.getNodeName()))
  144.                         {
  145.                             attrs = cd.getAttributes();
  146.                             String[] skills = attrs.getNamedItem("val").getNodeValue().split(",");
  147.                             for (String id : skills)
  148.                                 _config.LIST_MAGE_MAG_SUPPORT.add(Integer.parseInt(id));
  149.                         }
  150.                         else if("RestrictItems".equalsIgnoreCase(cd.getNodeName()))
  151.                         {
  152.                             attrs = cd.getAttributes();
  153.                             _config.RESTRICT_ITEMS = attrs.getNamedItem("val").getNodeValue();
  154.                         }
  155.                     }
  156.                     _configs.add(_config);
  157.                 }
  158.             }
  159.  
  160.             _configs.sort();
  161.             _log.info("Loaded " + _configs.size() + " configs for " + CtF.getInstance().getName() + " event.");
  162.         }
  163.         catch (Exception e)
  164.         {
  165.             _log.warn("Error parsing CTF.xml, by error: ");
  166.         }
  167.     }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement