Guest User

Untitled

a guest
Oct 20th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.61 KB | None | 0 0
  1. package net.minecraft.src;
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5.  
  6. public final class StuffedAnimalsProp
  7. {
  8.  
  9. public StuffedAnimalsProp(String s)
  10. {
  11. lines = new ArrayList();
  12. props = new HashMap();
  13. a = s;
  14. File file = new File(a);
  15. if(file.exists())
  16. {
  17. try
  18. {
  19. load();
  20. }
  21. catch(IOException ioexception)
  22. {
  23. System.out.println((new StringBuilder()).append("[Props] Unable to load ").append(a).append("!").toString());
  24. }
  25. } else
  26. {
  27. save();
  28. }
  29. }
  30.  
  31. public void load()
  32. throws IOException
  33. {
  34. BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(new FileInputStream(a), "UTF8"));
  35. lines.clear();
  36. props.clear();
  37. String s;
  38. while((s = bufferedreader.readLine()) != null)
  39. {
  40. s = new String(s.getBytes(), "UTF-8");
  41. char c = '\0';
  42. int j;
  43. for(j = 0; j < s.length() && Character.isWhitespace(c = s.charAt(j)); j++) { }
  44. if(s.length() - j == 0 || s.charAt(j) == '#' || s.charAt(j) == '!')
  45. {
  46. lines.add(s);
  47. } else
  48. {
  49. int k = j;
  50. boolean flag = s.indexOf('\\', j) != -1;
  51. StringBuffer stringbuffer = flag ? new StringBuffer() : null;
  52. if(stringbuffer != null)
  53. {
  54. do
  55. {
  56. if(j >= s.length() || Character.isWhitespace(c = s.charAt(j++)) || c == '=' || c == ':')
  57. {
  58. break;
  59. }
  60. if(flag && c == '\\')
  61. {
  62. if(j == s.length())
  63. {
  64. s = bufferedreader.readLine();
  65. if(s == null)
  66. {
  67. s = "";
  68. }
  69. j = 0;
  70. while(j < s.length() && Character.isWhitespace(c = s.charAt(j)))
  71. {
  72. j++;
  73. }
  74. continue;
  75. }
  76. c = s.charAt(j++);
  77. }
  78. switch(c)
  79. {
  80. case 110: // 'n'
  81. stringbuffer.append('\n');
  82. break;
  83.  
  84. case 116: // 't'
  85. stringbuffer.append('\t');
  86. break;
  87.  
  88. case 114: // 'r'
  89. stringbuffer.append('\r');
  90. break;
  91.  
  92. case 117: // 'u'
  93. if(j + 4 <= s.length())
  94. {
  95. char c1 = (char)Integer.parseInt(s.substring(j, j + 4), 16);
  96. stringbuffer.append(c1);
  97. j += 4;
  98. }
  99. break;
  100.  
  101. case 111: // 'o'
  102. case 112: // 'p'
  103. case 113: // 'q'
  104. case 115: // 's'
  105. default:
  106. stringbuffer.append('\0');
  107. break;
  108. }
  109. } while(true);
  110. }
  111. boolean flag1 = c == ':' || c == '=';
  112. String s1;
  113. if(flag)
  114. {
  115. s1 = stringbuffer.toString();
  116. } else
  117. if(flag1 || Character.isWhitespace(c))
  118. {
  119. s1 = s.substring(k, j - 1);
  120. } else
  121. {
  122. s1 = s.substring(k, j);
  123. }
  124. for(; j < s.length() && Character.isWhitespace(c = s.charAt(j)); j++) { }
  125. if(!flag1 && (c == ':' || c == '='))
  126. {
  127. char c2;
  128. for(j++; j < s.length() && Character.isWhitespace(c2 = s.charAt(j)); j++) { }
  129. }
  130. if(!flag)
  131. {
  132. lines.add(s);
  133. } else
  134. {
  135. StringBuilder stringbuilder = new StringBuilder(s.length() - j);
  136. do
  137. {
  138. if(j >= s.length())
  139. {
  140. break;
  141. }
  142. char c3 = s.charAt(j++);
  143. if(c3 == '\\')
  144. {
  145. if(j == s.length())
  146. {
  147. s = bufferedreader.readLine();
  148. if(s == null)
  149. {
  150. break;
  151. }
  152. char c4;
  153. for(j = 0; j < s.length() && Character.isWhitespace(c4 = s.charAt(j)); j++) { }
  154. stringbuilder.ensureCapacity((s.length() - j) + stringbuilder.length());
  155. continue;
  156. }
  157. char c5 = s.charAt(j++);
  158. switch(c5)
  159. {
  160. case 110: // 'n'
  161. stringbuilder.append('\n');
  162. break;
  163.  
  164. case 116: // 't'
  165. stringbuilder.append('\t');
  166. break;
  167.  
  168. case 114: // 'r'
  169. stringbuilder.append('\r');
  170. break;
  171.  
  172. case 117: // 'u'
  173. if(j + 4 <= s.length())
  174. {
  175. char c6 = (char)Integer.parseInt(s.substring(j, j + 4), 16);
  176. stringbuilder.append(c6);
  177. j += 4;
  178. break;
  179. }
  180. continue;
  181.  
  182. case 111: // 'o'
  183. case 112: // 'p'
  184. case 113: // 'q'
  185. case 115: // 's'
  186. default:
  187. stringbuilder.append('\0');
  188. break;
  189. }
  190. }
  191. stringbuilder.append('\0');
  192. } while(true);
  193. lines.add((new StringBuilder()).append(s1).append("=").append(stringbuilder.toString()).toString());
  194. }
  195. }
  196. }
  197. bufferedreader.close();
  198. }
  199.  
  200. public void save()
  201. {
  202. FileOutputStream fileoutputstream = null;
  203. try
  204. {
  205. fileoutputstream = new FileOutputStream(a);
  206. }
  207. catch(FileNotFoundException filenotfoundexception)
  208. {
  209. System.out.println((new StringBuilder()).append("[Props] Unable to open ").append(a).append("!").toString());
  210. }
  211. PrintStream printstream = null;
  212. try
  213. {
  214. printstream = new PrintStream(fileoutputstream, true, "UTF-8");
  215. }
  216. catch(UnsupportedEncodingException unsupportedencodingexception)
  217. {
  218. System.out.println((new StringBuilder()).append("[Props] Unable to write to ").append(a).append("!").toString());
  219. }
  220. ArrayList arraylist = new ArrayList();
  221. for(Iterator iterator = lines.iterator(); iterator.hasNext();)
  222. {
  223. String s = (String)iterator.next();
  224. if(s.trim().length() == 0)
  225. {
  226. printstream.println(s);
  227. } else
  228. if(s.charAt(0) == '#')
  229. {
  230. printstream.println(s);
  231. } else
  232. if(s.contains("="))
  233. {
  234. int j = s.indexOf('=');
  235. String s1 = s.substring(0, j).trim();
  236. if(props.containsKey(s1))
  237. {
  238. String s2 = (String)props.get(s1);
  239. printstream.println((new StringBuilder()).append(s1).append("=").append(s2).toString());
  240. arraylist.add(s1);
  241. } else
  242. {
  243. printstream.println(s);
  244. }
  245. } else
  246. {
  247. printstream.println(s);
  248. }
  249. }
  250.  
  251. Iterator iterator1 = props.entrySet().iterator();
  252. do
  253. {
  254. if(!iterator1.hasNext())
  255. {
  256. break;
  257. }
  258. java.util.Map.Entry entry = (java.util.Map.Entry)iterator1.next();
  259. if(!arraylist.contains(entry.getKey()))
  260. {
  261. printstream.println((new StringBuilder()).append((String)entry.getKey()).append("=").append((String)entry.getValue()).toString());
  262. }
  263. } while(true);
  264. printstream.close();
  265. try
  266. {
  267. props.clear();
  268. lines.clear();
  269. load();
  270. }
  271. catch(IOException ioexception)
  272. {
  273. System.out.println((new StringBuilder()).append("[Props] Unable to load ").append(a).append("!").toString());
  274. }
  275. }
  276.  
  277. public Map returnMap()
  278. throws Exception
  279. {
  280. HashMap hashmap = new HashMap();
  281. BufferedReader bufferedreader = new BufferedReader(new FileReader(a));
  282. do
  283. {
  284. String s;
  285. if((s = bufferedreader.readLine()) == null)
  286. {
  287. break;
  288. }
  289. if(s.trim().length() != 0 && s.charAt(0) != '#' && s.contains("="))
  290. {
  291. int j = s.indexOf('=');
  292. String s1 = s.substring(0, j).trim();
  293. String s2 = s.substring(j + 1).trim();
  294. hashmap.put(s1, s2);
  295. }
  296. } while(true);
  297. bufferedreader.close();
  298. return hashmap;
  299. }
  300.  
  301. public boolean containsKey(String s)
  302. {
  303. for(Iterator iterator = lines.iterator(); iterator.hasNext();)
  304. {
  305. String s1 = (String)iterator.next();
  306. if(s1.trim().length() != 0 && s1.charAt(0) != '#' && s1.contains("="))
  307. {
  308. int j = s1.indexOf('=');
  309. String s2 = s1.substring(0, j);
  310. if(s2.equals(s))
  311. {
  312. return true;
  313. }
  314. }
  315. }
  316.  
  317. return false;
  318. }
  319.  
  320. public String getProperty(String s)
  321. {
  322. for(Iterator iterator = lines.iterator(); iterator.hasNext();)
  323. {
  324. String s1 = (String)iterator.next();
  325. if(s1.trim().length() != 0 && s1.charAt(0) != '#' && s1.contains("="))
  326. {
  327. int j = s1.indexOf('=');
  328. String s2 = s1.substring(0, j).trim();
  329. String s3 = s1.substring(j + 1);
  330. if(s2.equals(s))
  331. {
  332. return s3;
  333. }
  334. }
  335. }
  336.  
  337. return "";
  338. }
  339.  
  340. public void removeKey(String s)
  341. {
  342. Boolean boolean1 = Boolean.valueOf(false);
  343. if(props.containsKey(s))
  344. {
  345. props.remove(s);
  346. boolean1 = Boolean.valueOf(true);
  347. }
  348. try
  349. {
  350. for(int j = 0; j < lines.size(); j++)
  351. {
  352. String s1 = (String)lines.get(j);
  353. if(s1.trim().length() != 0 && s1.charAt(0) != '#' && s1.contains("="))
  354. {
  355. int k = s1.indexOf('=');
  356. String s2 = s1.substring(0, k).trim();
  357. if(s2.equals(s))
  358. {
  359. lines.remove(j);
  360. boolean1 = Boolean.valueOf(true);
  361. }
  362. }
  363. }
  364.  
  365. }
  366. catch(ConcurrentModificationException concurrentmodificationexception)
  367. {
  368. removeKey(s);
  369. return;
  370. }
  371. if(boolean1.booleanValue())
  372. {
  373. save();
  374. }
  375. }
  376.  
  377. public boolean keyExists(String s)
  378. {
  379. try
  380. {
  381. return containsKey(s);
  382. }
  383. catch(Exception exception)
  384. {
  385. return false;
  386. }
  387. }
  388.  
  389. public String i(String s)
  390. {
  391. if(containsKey(s))
  392. {
  393. return getProperty(s);
  394. } else
  395. {
  396. return "";
  397. }
  398. }
  399.  
  400. public String i(String s, String s1)
  401. {
  402. if(containsKey(s))
  403. {
  404. return getProperty(s);
  405. } else
  406. {
  407. a(s, s1);
  408. return s1;
  409. }
  410. }
  411.  
  412. public void a(String s, String s1)
  413. {
  414. props.put(s, s1);
  415. save();
  416. }
  417.  
  418. public int getInt(String s)
  419. {
  420. if(containsKey(s))
  421. {
  422. return Integer.parseInt(getProperty(s));
  423. } else
  424. {
  425. return 0;
  426. }
  427. }
  428.  
  429. public int getInt(String s, int j)
  430. {
  431. if(containsKey(s))
  432. {
  433. return Integer.parseInt(getProperty(s));
  434. } else
  435. {
  436. setInt(s, j);
  437. return j;
  438. }
  439. }
  440.  
  441. public void setInt(String s, int j)
  442. {
  443. props.put(s, String.valueOf(j));
  444. save();
  445. }
  446.  
  447. public double h(String s)
  448. {
  449. if(containsKey(s))
  450. {
  451. return Double.parseDouble(getProperty(s));
  452. } else
  453. {
  454. return 0.0D;
  455. }
  456. }
  457.  
  458. public double h(String s, double d)
  459. {
  460. if(containsKey(s))
  461. {
  462. return Double.parseDouble(getProperty(s));
  463. } else
  464. {
  465. a(s, d);
  466. return d;
  467. }
  468. }
  469.  
  470. public void a(String s, double d)
  471. {
  472. props.put(s, String.valueOf(d));
  473. save();
  474. }
  475.  
  476. public long f(String s)
  477. {
  478. if(containsKey(s))
  479. {
  480. return Long.parseLong(getProperty(s));
  481. } else
  482. {
  483. return 0L;
  484. }
  485. }
  486.  
  487. public long f(String s, long l)
  488. {
  489. if(containsKey(s))
  490. {
  491. return Long.parseLong(getProperty(s));
  492. } else
  493. {
  494. a(s, l);
  495. return l;
  496. }
  497. }
  498.  
  499. public void a(String s, long l)
  500. {
  501. props.put(s, String.valueOf(l));
  502. save();
  503. }
  504.  
  505. public boolean m(String s)
  506. {
  507. if(containsKey(s))
  508. {
  509. return Boolean.parseBoolean(getProperty(s));
  510. } else
  511. {
  512. return false;
  513. }
  514. }
  515.  
  516. public boolean m(String s, boolean flag)
  517. {
  518. if(containsKey(s))
  519. {
  520. return Boolean.parseBoolean(getProperty(s));
  521. } else
  522. {
  523. a(s, flag);
  524. return flag;
  525. }
  526. }
  527.  
  528. public void a(String s, boolean flag)
  529. {
  530. props.put(s, String.valueOf(flag));
  531. save();
  532. }
  533.  
  534. private String a;
  535. private List lines;
  536. private Map props;
  537. }
Add Comment
Please, Sign In to add comment