MaterialMapStore.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. package com.gmail.nossr50.util;
  2. import org.bukkit.Material;
  3. import java.util.HashSet;
  4. /**
  5. * Stores hash tables for item and block names
  6. * This allows for better support across multiple versions of Minecraft
  7. *
  8. * This is a temporary class, mcMMO is spaghetti and I'l clean it up later
  9. *
  10. */
  11. public class MaterialMapStore {
  12. private HashSet<String> abilityBlackList;
  13. private HashSet<String> toolBlackList;
  14. private HashSet<String> mossyWhiteList;
  15. private HashSet<String> leavesWhiteList;
  16. private HashSet<String> herbalismAbilityBlackList;
  17. private HashSet<String> blockCrackerWhiteList;
  18. private HashSet<String> canMakeShroomyWhiteList;
  19. public MaterialMapStore()
  20. {
  21. abilityBlackList = new HashSet<>();
  22. toolBlackList = new HashSet<>();
  23. mossyWhiteList = new HashSet<>();
  24. leavesWhiteList = new HashSet<>();
  25. herbalismAbilityBlackList = new HashSet<>();
  26. blockCrackerWhiteList = new HashSet<>();
  27. canMakeShroomyWhiteList = new HashSet<>();
  28. fillHardcodedHashSets();
  29. }
  30. public boolean isAbilityActivationBlackListed(Material material)
  31. {
  32. return abilityBlackList.contains(material.getKey().getKey());
  33. }
  34. public boolean isToolActivationBlackListed(Material material)
  35. {
  36. return toolBlackList.contains(material.getKey().getKey());
  37. }
  38. public boolean isMossyWhiteListed(Material material)
  39. {
  40. return mossyWhiteList.contains(material.getKey().getKey());
  41. }
  42. public boolean isLeavesWhiteListed(Material material)
  43. {
  44. return leavesWhiteList.contains(material.getKey().getKey());
  45. }
  46. public boolean isHerbalismAbilityWhiteListed(Material material)
  47. {
  48. return herbalismAbilityBlackList.contains(material.getKey().getKey());
  49. }
  50. public boolean isBlockCrackerWhiteListed(Material material)
  51. {
  52. return blockCrackerWhiteList.contains(material.getKey().getKey());
  53. }
  54. public boolean isShroomyWhiteListed(Material material)
  55. {
  56. return canMakeShroomyWhiteList.contains(material.getKey().getKey());
  57. }
  58. private void fillHardcodedHashSets()
  59. {
  60. fillAbilityBlackList();
  61. filltoolBlackList();
  62. fillMossyWhiteList();
  63. fillLeavesWhiteList();
  64. fillHerbalismAbilityBlackList();
  65. fillBlockCrackerWhiteList();
  66. fillShroomyWhiteList();
  67. }
  68. private void fillShroomyWhiteList()
  69. {
  70. canMakeShroomyWhiteList.add("dirt");
  71. canMakeShroomyWhiteList.add("grass");
  72. canMakeShroomyWhiteList.add("grass_path");
  73. }
  74. private void fillBlockCrackerWhiteList()
  75. {
  76. blockCrackerWhiteList.add("stone_bricks");
  77. }
  78. private void fillHerbalismAbilityBlackList()
  79. {
  80. herbalismAbilityBlackList.add("dirt");
  81. herbalismAbilityBlackList.add("grass");
  82. herbalismAbilityBlackList.add("grass_path");
  83. herbalismAbilityBlackList.add("farmland");
  84. }
  85. private void fillLeavesWhiteList()
  86. {
  87. leavesWhiteList.add("oak_leaves");
  88. leavesWhiteList.add("acacia_leaves");
  89. leavesWhiteList.add("birch_leaves");
  90. leavesWhiteList.add("dark_oak_leaves");
  91. leavesWhiteList.add("jungle_leaves");
  92. leavesWhiteList.add("spruce_leaves");
  93. }
  94. private void fillMossyWhiteList()
  95. {
  96. mossyWhiteList.add("cobblestone");
  97. mossyWhiteList.add("dirt");
  98. mossyWhiteList.add("grass_path");
  99. mossyWhiteList.add("stone_bricks");
  100. mossyWhiteList.add("cobblestone_wall");
  101. }
  102. private void fillAbilityBlackList()
  103. {
  104. abilityBlackList.add("black_bed");
  105. abilityBlackList.add("blue_bed");
  106. abilityBlackList.add("brown_bed");
  107. abilityBlackList.add("cyan_bed");
  108. abilityBlackList.add("gray_bed");
  109. abilityBlackList.add("green_bed");
  110. abilityBlackList.add("light_blue_bed");
  111. abilityBlackList.add("light_gray_bed");
  112. abilityBlackList.add("lime_bed");
  113. abilityBlackList.add("magenta_bed");
  114. abilityBlackList.add("orange_bed");
  115. abilityBlackList.add("pink_bed");
  116. abilityBlackList.add("purple_bed");
  117. abilityBlackList.add("red_bed");
  118. abilityBlackList.add("white_bed");
  119. abilityBlackList.add("yellow_bed");
  120. abilityBlackList.add("brewing_stand");
  121. abilityBlackList.add("bookshelf");
  122. abilityBlackList.add("cake");
  123. abilityBlackList.add("chest");
  124. abilityBlackList.add("dispenser");
  125. abilityBlackList.add("enchanting_table");
  126. abilityBlackList.add("ender_chest");
  127. abilityBlackList.add("oak_fence_gate");
  128. abilityBlackList.add("acacia_fence_gate");
  129. abilityBlackList.add("dark_oak_fence_gate");
  130. abilityBlackList.add("spruce_fence_gate");
  131. abilityBlackList.add("birch_fence_gate");
  132. abilityBlackList.add("jungle_fence_gate");
  133. abilityBlackList.add("furnace");
  134. abilityBlackList.add("jukebox");
  135. abilityBlackList.add("lever");
  136. abilityBlackList.add("note_block");
  137. abilityBlackList.add("stone_button");
  138. abilityBlackList.add("oak_button");
  139. abilityBlackList.add("birch_button");
  140. abilityBlackList.add("acacia_button");
  141. abilityBlackList.add("dark_oak_button");
  142. abilityBlackList.add("jungle_button");
  143. abilityBlackList.add("spruce_button");
  144. abilityBlackList.add("acacia_trapdoor");
  145. abilityBlackList.add("birch_trapdoor");
  146. abilityBlackList.add("dark_oak_trapdoor");
  147. abilityBlackList.add("jungle_trapdoor");
  148. abilityBlackList.add("oak_trapdoor");
  149. abilityBlackList.add("spruce_trapdoor");
  150. abilityBlackList.add("acacia_sign");
  151. abilityBlackList.add("acacia_wall_sign");
  152. abilityBlackList.add("birch_sign");
  153. abilityBlackList.add("birch_wall_sign");
  154. abilityBlackList.add("dark_oak_sign");
  155. abilityBlackList.add("dark_oak_wall_sign");
  156. abilityBlackList.add("jungle_sign");
  157. abilityBlackList.add("jungle_wall_sign");
  158. abilityBlackList.add("spruce_sign");
  159. abilityBlackList.add("spruce_wall_sign");
  160. abilityBlackList.add("oak_sign");
  161. abilityBlackList.add("oak_wall_sign");
  162. abilityBlackList.add("crafting_table");
  163. abilityBlackList.add("beacon");
  164. abilityBlackList.add("anvil");
  165. abilityBlackList.add("dropper");
  166. abilityBlackList.add("hopper");
  167. abilityBlackList.add("trapped_chest");
  168. abilityBlackList.add("iron_door");
  169. abilityBlackList.add("iron_trapdoor");
  170. abilityBlackList.add("oak_door");
  171. abilityBlackList.add("acacia_door");
  172. abilityBlackList.add("spruce_door");
  173. abilityBlackList.add("birch_door");
  174. abilityBlackList.add("jungle_door");
  175. abilityBlackList.add("dark_oak_door");
  176. abilityBlackList.add("oak_fence");
  177. abilityBlackList.add("acacia_fence");
  178. abilityBlackList.add("dark_oak_fence");
  179. abilityBlackList.add("birch_fence");
  180. abilityBlackList.add("jungle_fence");
  181. abilityBlackList.add("spruce_fence");
  182. abilityBlackList.add("armor_stand");
  183. abilityBlackList.add("black_shulker_box");
  184. abilityBlackList.add("blue_shulker_box");
  185. abilityBlackList.add("brown_shulker_box");
  186. abilityBlackList.add("cyan_shulker_box");
  187. abilityBlackList.add("gray_shulker_box");
  188. abilityBlackList.add("green_shulker_box");
  189. abilityBlackList.add("light_blue_shulker_box");
  190. abilityBlackList.add("lime_shulker_box");
  191. abilityBlackList.add("magenta_shulker_box");
  192. abilityBlackList.add("orange_shulker_box");
  193. abilityBlackList.add("pink_shulker_box");
  194. abilityBlackList.add("purple_shulker_box");
  195. abilityBlackList.add("red_shulker_box");
  196. abilityBlackList.add("light_gray_shulker_box");
  197. abilityBlackList.add("white_shulker_box");
  198. abilityBlackList.add("yellow_shulker_box");
  199. abilityBlackList.add("wall_sign"); //1.13 and lower?
  200. abilityBlackList.add("sign"); //1.13 and lower?
  201. }
  202. private void filltoolBlackList()
  203. {
  204. //TODO: Add anvils / missing logs
  205. toolBlackList.add("black_bed");
  206. toolBlackList.add("blue_bed");
  207. toolBlackList.add("brown_bed");
  208. toolBlackList.add("cyan_bed");
  209. toolBlackList.add("gray_bed");
  210. toolBlackList.add("green_bed");
  211. toolBlackList.add("light_blue_bed");
  212. toolBlackList.add("light_gray_bed");
  213. toolBlackList.add("lime_bed");
  214. toolBlackList.add("magenta_bed");
  215. toolBlackList.add("orange_bed");
  216. toolBlackList.add("pink_bed");
  217. toolBlackList.add("purple_bed");
  218. toolBlackList.add("red_bed");
  219. toolBlackList.add("white_bed");
  220. toolBlackList.add("yellow_bed");
  221. toolBlackList.add("brewing_stand");
  222. toolBlackList.add("bookshelf");
  223. toolBlackList.add("cake");
  224. toolBlackList.add("chest");
  225. toolBlackList.add("dispenser");
  226. toolBlackList.add("enchanting_table");
  227. toolBlackList.add("ender_chest");
  228. toolBlackList.add("oak_fence_gate");
  229. toolBlackList.add("acacia_fence_gate");
  230. toolBlackList.add("dark_oak_fence_gate");
  231. toolBlackList.add("spruce_fence_gate");
  232. toolBlackList.add("birch_fence_gate");
  233. toolBlackList.add("jungle_fence_gate");
  234. toolBlackList.add("furnace");
  235. toolBlackList.add("jukebox");
  236. toolBlackList.add("lever");
  237. toolBlackList.add("note_block");
  238. toolBlackList.add("stone_button");
  239. toolBlackList.add("oak_button");
  240. toolBlackList.add("birch_button");
  241. toolBlackList.add("acacia_button");
  242. toolBlackList.add("dark_oak_button");
  243. toolBlackList.add("jungle_button");
  244. toolBlackList.add("spruce_button");
  245. toolBlackList.add("acacia_trapdoor");
  246. toolBlackList.add("birch_trapdoor");
  247. toolBlackList.add("dark_oak_trapdoor");
  248. toolBlackList.add("jungle_trapdoor");
  249. toolBlackList.add("oak_trapdoor");
  250. toolBlackList.add("spruce_trapdoor");
  251. toolBlackList.add("crafting_table");
  252. toolBlackList.add("beacon");
  253. toolBlackList.add("anvil");
  254. toolBlackList.add("dropper");
  255. toolBlackList.add("hopper");
  256. toolBlackList.add("trapped_chest");
  257. toolBlackList.add("iron_door");
  258. toolBlackList.add("iron_trapdoor");
  259. toolBlackList.add("oak_door");
  260. toolBlackList.add("acacia_door");
  261. toolBlackList.add("spruce_door");
  262. toolBlackList.add("birch_door");
  263. toolBlackList.add("jungle_door");
  264. toolBlackList.add("dark_oak_door");
  265. toolBlackList.add("oak_fence");
  266. toolBlackList.add("acacia_fence");
  267. toolBlackList.add("dark_oak_fence");
  268. toolBlackList.add("birch_fence");
  269. toolBlackList.add("jungle_fence");
  270. toolBlackList.add("spruce_fence");
  271. toolBlackList.add("armor_stand");
  272. toolBlackList.add("black_shulker_box");
  273. toolBlackList.add("blue_shulker_box");
  274. toolBlackList.add("brown_shulker_box");
  275. toolBlackList.add("cyan_shulker_box");
  276. toolBlackList.add("gray_shulker_box");
  277. toolBlackList.add("green_shulker_box");
  278. toolBlackList.add("light_blue_shulker_box");
  279. toolBlackList.add("lime_shulker_box");
  280. toolBlackList.add("magenta_shulker_box");
  281. toolBlackList.add("orange_shulker_box");
  282. toolBlackList.add("pink_shulker_box");
  283. toolBlackList.add("purple_shulker_box");
  284. toolBlackList.add("red_shulker_box");
  285. toolBlackList.add("light_gray_shulker_box");
  286. toolBlackList.add("white_shulker_box");
  287. toolBlackList.add("yellow_shulker_box");
  288. toolBlackList.add("acacia_sign");
  289. toolBlackList.add("acacia_wall_sign");
  290. toolBlackList.add("birch_sign");
  291. toolBlackList.add("birch_wall_sign");
  292. toolBlackList.add("dark_oak_sign");
  293. toolBlackList.add("dark_oak_wall_sign");
  294. toolBlackList.add("jungle_sign");
  295. toolBlackList.add("jungle_wall_sign");
  296. toolBlackList.add("spruce_sign");
  297. toolBlackList.add("spruce_wall_sign");
  298. toolBlackList.add("oak_sign");
  299. toolBlackList.add("oak_wall_sign");
  300. toolBlackList.add("stripped_acacia_log");
  301. toolBlackList.add("stripped_acacia_wood");
  302. toolBlackList.add("stripped_birch_log");
  303. toolBlackList.add("stripped_birch_wood");
  304. toolBlackList.add("stripped_dark_oak_log");
  305. toolBlackList.add("stripped_dark_oak_wood");
  306. toolBlackList.add("stripped_jungle_log");
  307. toolBlackList.add("stripped_jungle_wood");
  308. toolBlackList.add("stripped_oak_log");
  309. toolBlackList.add("stripped_oak_wood");
  310. toolBlackList.add("stripped_spruce_log");
  311. toolBlackList.add("stripped_spruce_wood");
  312. toolBlackList.add("acacia_log");
  313. toolBlackList.add("acacia_wood");
  314. toolBlackList.add("birch_log");
  315. toolBlackList.add("birch_wood");
  316. toolBlackList.add("dark_oak_log");
  317. toolBlackList.add("dark_oak_wood");
  318. toolBlackList.add("jungle_log");
  319. toolBlackList.add("jungle_wood");
  320. toolBlackList.add("oak_log");
  321. toolBlackList.add("oak_wood");
  322. toolBlackList.add("spruce_log");
  323. toolBlackList.add("spruce_wood");
  324. }
  325. private void addToHashSet(String string, HashSet<String> stringHashSet)
  326. {
  327. stringHashSet.add(string.toLowerCase());
  328. }
  329. }