Advertisement
raptorjesusss

Untitled

Aug 23rd, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.04 KB | None | 0 0
  1. package server;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.PreparedStatement;
  6. import database.DatabaseConnection;
  7. import java.io.File;
  8. import java.util.List;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.Map;
  12. import java.util.Collection;
  13. import java.util.LinkedList;
  14. import provider.MapleData;
  15. import provider.MapleDataProvider;
  16. import provider.MapleDataProviderFactory;
  17. import provider.MapleDataTool;
  18. import server.CashItemInfo.CashModInfo;
  19.  
  20. public class CashItemFactory {
  21.  
  22. private final static CashItemFactory instance = new CashItemFactory();
  23. private final static int[] bestItems = new int[]{10003055, 10003090, 10103464, 10002960, 10103363};
  24. private final Map<Integer, CashItemInfo> itemStats = new HashMap<Integer, CashItemInfo>();
  25. private final Map<Integer, List<Integer>> itemPackage = new HashMap<Integer, List<Integer>>();
  26. private final Map<Integer, CashModInfo> itemMods = new HashMap<Integer, CashModInfo>();
  27. private final Map<Integer, List<Integer>> openBox = new HashMap<>();
  28. private final MapleDataProvider data = MapleDataProviderFactory.getDataProvider(new File(System.getProperty("net.sf.odinms.wzpath") + "/Etc.wz"));
  29.  
  30. public static final CashItemFactory getInstance() {
  31. return instance;
  32. }
  33.  
  34. public void initialize() {
  35. final List<MapleData> cccc = data.getData("Commodity.img").getChildren();
  36. for (MapleData field : cccc) {
  37. final int SN = MapleDataTool.getIntConvert("SN", field, 0);
  38.  
  39. final CashItemInfo stats = new CashItemInfo(MapleDataTool.getIntConvert("ItemId", field, 0),
  40. MapleDataTool.getIntConvert("Count", field, 1),
  41. MapleDataTool.getIntConvert("Price", field, 0), SN,
  42. MapleDataTool.getIntConvert("Period", field, 0),
  43. MapleDataTool.getIntConvert("Gender", field, 2),
  44. MapleDataTool.getIntConvert("OnSale", field, 0) > 0 && MapleDataTool.getIntConvert("Price", field, 0) > 0);
  45.  
  46. if (SN > 0) {
  47. itemStats.put(SN, stats);
  48. }
  49. }
  50. final MapleData b = data.getData("CashPackage.img");
  51. for (MapleData c : b.getChildren()) {
  52. if (c.getChildByPath("SN") == null) {
  53. continue;
  54. }
  55. final List<Integer> packageItems = new ArrayList<Integer>();
  56. for (MapleData d : c.getChildByPath("SN").getChildren()) {
  57. packageItems.add(MapleDataTool.getIntConvert(d));
  58. }
  59. itemPackage.put(Integer.parseInt(c.getName()), packageItems);
  60. }
  61.  
  62. try {
  63. Connection con = DatabaseConnection.getConnection();
  64. PreparedStatement ps = con.prepareStatement("SELECT * FROM cashshop_modified_items");
  65. ResultSet rs = ps.executeQuery();
  66. if (rs.next()) {
  67. CashModInfo ret = new CashModInfo(rs.getInt("serial"), rs.getInt("discount_price"), rs.getInt("mark"), rs.getInt("showup") > 0, rs.getInt("itemid"), rs.getInt("priority"), rs.getInt("package") > 0, rs.getInt("period"), rs.getInt("gender"), rs.getInt("count"), rs.getInt("meso"), rs.getInt("unk_1"), rs.getInt("unk_2"), rs.getInt("unk_3"), rs.getInt("extra_flags"));
  68. itemMods.put(ret.sn, ret);
  69. if (ret.showUp) {
  70. final CashItemInfo cc = itemStats.get(Integer.valueOf(ret.sn));
  71. if (cc != null) {
  72. ret.toCItem(cc); //init
  73. }
  74. }
  75. }
  76. rs.close();
  77. ps.close();
  78. } catch (Exception e) {
  79. e.printStackTrace();
  80. }
  81.  
  82. List<Integer> availableSN = new LinkedList<>();
  83. availableSN.add(20001141);
  84. availableSN.add(20001142);
  85. availableSN.add(20001143);
  86. availableSN.add(20001144);
  87. availableSN.add(20001145);
  88. availableSN.add(20001146);
  89. availableSN.add(20001147);
  90. openBox.put(5533003, availableSN); // Rainbow Visor Box
  91.  
  92. availableSN = new LinkedList<>();
  93. availableSN.add(20000462);
  94. availableSN.add(20000463);
  95. availableSN.add(20000464);
  96. availableSN.add(20000465);
  97. availableSN.add(20000466);
  98. availableSN.add(20000467);
  99. availableSN.add(20000468);
  100. availableSN.add(20000469);
  101. openBox.put(5533000, availableSN); // Korean stuffs..
  102.  
  103. availableSN = new LinkedList<>();
  104. availableSN.add(20800259);
  105. availableSN.add(20800260);
  106. availableSN.add(20800263);
  107. availableSN.add(20800264);
  108. availableSN.add(20800265);
  109. availableSN.add(20800267);
  110. openBox.put(5533001, availableSN); // Angelic Beam Weapon Box
  111.  
  112. availableSN = new LinkedList<>();
  113. availableSN.add(20800270);
  114. availableSN.add(20800271);
  115. availableSN.add(20800272);
  116. availableSN.add(20800273);
  117. availableSN.add(20800274);
  118. openBox.put(5533002, availableSN); // Chief Knight Weapon Box
  119. }
  120.  
  121. public final CashItemInfo getSimpleItem(int sn) {
  122. return itemStats.get(sn);
  123. }
  124.  
  125. public final CashItemInfo getItem(int sn) {
  126. final CashItemInfo stats = itemStats.get(Integer.valueOf(sn));
  127. final CashModInfo z = getModInfo(sn);
  128. if (z != null && z.showUp) {
  129. return z.toCItem(stats); //null doesnt matter
  130. }
  131. if (stats == null || !stats.onSale()) {
  132. return null;
  133. }
  134. //hmm
  135. return stats;
  136. }
  137.  
  138. public final List<Integer> getPackageItems(int itemId) {
  139. return itemPackage.get(itemId);
  140. }
  141.  
  142. public final CashModInfo getModInfo(int sn) {
  143. return itemMods.get(sn);
  144. }
  145.  
  146. public final Collection<CashModInfo> getAllModInfo() {
  147. return itemMods.values();
  148. }
  149.  
  150. public final Map<Integer, List<Integer>> getRandomItemInfo() {
  151. return openBox;
  152. }
  153.  
  154. public final int[] getBestItems() {
  155. return bestItems;
  156. }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement