SHOW:
|
|
- or go back to the newest paste.
| 1 | package l2.ae.pvp.gameserver.datatables; | |
| 2 | ||
| 3 | import java.io.BufferedReader; | |
| 4 | import java.io.File; | |
| 5 | import java.io.FileReader; | |
| 6 | import java.util.HashMap; | |
| 7 | import java.util.Map; | |
| 8 | import java.util.logging.Logger; | |
| 9 | ||
| 10 | import l2.ae.pvp.gameserver.GameServer; | |
| 11 | ||
| 12 | public class IconsTable | |
| 13 | {
| |
| 14 | private static final Map<Integer, String> itemIcons = new HashMap<>(); | |
| 15 | private static final Map<Integer, String> skillIcons = new HashMap<>(); | |
| 16 | private static final Logger _log = Logger.getLogger(GameServer.class.getName()); | |
| 17 | ||
| 18 | protected IconsTable() | |
| 19 | {
| |
| 20 | parseData(); | |
| 21 | } | |
| 22 | ||
| 23 | public void reload() | |
| 24 | {
| |
| 25 | itemIcons.clear(); | |
| 26 | // skillIcons.clear(); | |
| 27 | parseData(); | |
| 28 | } | |
| 29 | ||
| 30 | public static void parseData() | |
| 31 | {
| |
| 32 | final long t0 = System.currentTimeMillis(); | |
| 33 | try | |
| 34 | {
| |
| 35 | loadItemIcons(); | |
| 36 | // not needed loadSkillIcons(); | |
| 37 | final long t = System.currentTimeMillis() - t0; | |
| 38 | _log.config("IconsTable: Succesfully loaded " + (itemIcons.size() + skillIcons.size()) + " icons, in " + t + " Milliseconds.");
| |
| 39 | } | |
| 40 | catch (final Exception e) | |
| 41 | {
| |
| 42 | _log.config("IconsTable: Failed loading IconsTable. Possible error: " + e.getMessage());
| |
| 43 | e.printStackTrace(); | |
| 44 | } | |
| 45 | } | |
| 46 | ||
| 47 | private static void loadItemIcons() throws Exception | |
| 48 | {
| |
| 49 | final File f = new File("./data/icons.xml");
| |
| 50 | try (final BufferedReader br = new BufferedReader(new FileReader(f))) | |
| 51 | {
| |
| 52 | String line = null; | |
| 53 | while ((line=br.readLine()) != null) | |
| 54 | {
| |
| 55 | String[] explode = line.split("\t");
| |
| 56 | if (explode.length > 1) | |
| 57 | {
| |
| 58 | final int id = Integer.parseInt(explode[0]); | |
| 59 | itemIcons.put(id, explode[1]); | |
| 60 | } | |
| 61 | } | |
| 62 | } | |
| 63 | } | |
| 64 | ||
| 65 | /** | |
| 66 | * @param id the requested itemId | |
| 67 | * @return the String value of the Icon of the given itemId. | |
| 68 | */ | |
| 69 | public static String getItemIcon(final int id) | |
| 70 | {
| |
| 71 | final String ico = itemIcons.get(id); | |
| 72 | if (ico == null) | |
| 73 | {
| |
| 74 | _log.config("IconsTable: Invalid Item-Icon request: " + id + ", or it doesn't exist, Ignoring ...");
| |
| 75 | return "l2aerogamingicons.pvp_weapons"; | |
| 76 | } | |
| 77 | return ico; | |
| 78 | } | |
| 79 | ||
| 80 | /** | |
| 81 | * @param id the requested skillId | |
| 82 | * @return the String value of the Icon of the given itemId. | |
| 83 | */ | |
| 84 | public static String getSkillIcon(final int id) | |
| 85 | {
| |
| 86 | final String ico = skillIcons.get(id); | |
| 87 | if (ico == null) | |
| 88 | {
| |
| 89 | _log.config("IconsTable: Invalid Skill-Icon request: " + id + ", or it doesn't exist, Ignoring ...");
| |
| 90 | return "icon.skill1050"; | |
| 91 | } | |
| 92 | return ico; | |
| 93 | } | |
| 94 | ||
| 95 | public static final IconsTable getInstance() | |
| 96 | {
| |
| 97 | return SingletonHolder._instance; | |
| 98 | } | |
| 99 | ||
| 100 | private static class SingletonHolder | |
| 101 | {
| |
| 102 | protected static final IconsTable _instance = new IconsTable(); | |
| 103 | } | |
| 104 | } |