package packet_readers.lineage2.holders; import java.io.File; import java.net.URL; import java.util.Iterator; import java.util.zip.ZipFile; import org.apache.log4j.Logger; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import org.napile.primitive.maps.IntObjectMap; import org.napile.primitive.maps.impl.HashIntObjectMap; /** * @author VISTALL * @date 19:57:29/31.07.2010 */ public class ItemNameHolder { private static final Logger _log = Logger.getLogger(ItemNameHolder.class); private static ItemNameHolder _instance; private IntObjectMap<String> _itemNames = new HashIntObjectMap<String>(); public static ItemNameHolder getInstance() { if (_instance == null) { _instance = new ItemNameHolder(); } return _instance; } private ItemNameHolder() { URL url = getClass().getResource("/com/jds/jn/resources/datas/l2-data.zip"); if(url == null) { _log.info("Not exists"); return; } ZipFile zipFile = null; try { zipFile = new ZipFile(new File(url.toURI())); } catch(Exception e) { _log.info(e, e); return; } try { SAXReader reader = new SAXReader(); Document document = reader.read(zipFile.getInputStream(zipFile.getEntry("ItemName.xml"))); for(Iterator<Element> iterator = document.getRootElement().elementIterator(); iterator.hasNext();) { Element e = iterator.next(); int itemId = Integer.parseInt(e.element("item_id").getText()); String name = e.element("name").getText(); _itemNames.put(itemId, name); } } catch(Exception e) { _log.warn("Exception:" + e, e); } _itemNames.put(-100, "Clan Reputation"); _itemNames.put(-200, "Pc Bang Point"); _itemNames.put(-300, "Fame"); _itemNames.put(-400, "Hellbound Point"); _log.info("Load item names " + _itemNames.size()); } public String name(int itemId) { String name = _itemNames.get(itemId); return name == null ? "None" : name; } }