View difference between Paste ID: gWd6G4nk and GsajSiCm
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
}