mcMining.java 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. package com.gmail.nossr50;
  2. import org.bukkit.ChatColor;
  3. import org.bukkit.Location;
  4. import org.bukkit.Material;
  5. import org.bukkit.block.Block;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.inventory.ItemStack;
  8. public class mcMining {
  9. private static mcMMO plugin;
  10. public mcMining(mcMMO instance) {
  11. plugin = instance;
  12. }
  13. private static volatile mcMining instance;
  14. public static mcMining getInstance() {
  15. if (instance == null) {
  16. instance = new mcMining(plugin);
  17. }
  18. return instance;
  19. }
  20. public void superBreakerCheck(Player player, Block block){
  21. if(mcm.getInstance().isMiningPick(player.getItemInHand())){
  22. if(block != null){
  23. if(!mcm.getInstance().abilityBlockCheck(block))
  24. return;
  25. }
  26. int miningticks = 2;
  27. if(mcUsers.getProfile(player).getMiningInt() >= 50)
  28. miningticks++;
  29. if(mcUsers.getProfile(player).getMiningInt() >= 150)
  30. miningticks++;
  31. if(mcUsers.getProfile(player).getMiningInt() >= 250)
  32. miningticks++;
  33. if(mcUsers.getProfile(player).getMiningInt() >= 350)
  34. miningticks++;
  35. if(mcUsers.getProfile(player).getMiningInt() >= 450)
  36. miningticks++;
  37. if(mcUsers.getProfile(player).getMiningInt() >= 550)
  38. miningticks++;
  39. if(mcUsers.getProfile(player).getMiningInt() >= 650)
  40. miningticks++;
  41. if(mcUsers.getProfile(player).getMiningInt() >= 750)
  42. miningticks++;
  43. if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() == 0){
  44. player.sendMessage(ChatColor.GREEN+"**SUPER BREAKER ACTIVATED**");
  45. mcUsers.getProfile(player).setSuperBreakerTicks(miningticks);
  46. mcUsers.getProfile(player).setSuperBreakerMode(true);
  47. }
  48. if(!mcUsers.getProfile(player).getSuperBreakerMode() && mcUsers.getProfile(player).getSuperBreakerCooldown() >= 1){
  49. player.sendMessage(ChatColor.RED+"You are too tired to use that ability again.");
  50. }
  51. }
  52. }
  53. public void blockProcSimulate(Block block){
  54. Location loc = block.getLocation();
  55. Material mat = Material.getMaterial(block.getTypeId());
  56. byte damage = 0;
  57. ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
  58. if(block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16)
  59. loc.getWorld().dropItemNaturally(loc, item);
  60. if(block.getTypeId() == 73 || block.getTypeId() == 74){
  61. mat = Material.getMaterial(331);
  62. item = new ItemStack(mat, 1, (byte)0, damage);
  63. loc.getWorld().dropItemNaturally(loc, item);
  64. loc.getWorld().dropItemNaturally(loc, item);
  65. loc.getWorld().dropItemNaturally(loc, item);
  66. if(Math.random() * 10 > 5){
  67. loc.getWorld().dropItemNaturally(loc, item);
  68. }
  69. }
  70. if(block.getTypeId() == 21){
  71. mat = Material.getMaterial(351);
  72. item = new ItemStack(mat, 1, (byte)0,(byte)0x4);
  73. loc.getWorld().dropItemNaturally(loc, item);
  74. loc.getWorld().dropItemNaturally(loc, item);
  75. loc.getWorld().dropItemNaturally(loc, item);
  76. loc.getWorld().dropItemNaturally(loc, item);
  77. }
  78. if(block.getTypeId() == 56){
  79. mat = Material.getMaterial(264);
  80. item = new ItemStack(mat, 1, (byte)0, damage);
  81. loc.getWorld().dropItemNaturally(loc, item);
  82. }
  83. if(block.getTypeId() == 1){
  84. mat = Material.getMaterial(4);
  85. item = new ItemStack(mat, 1, (byte)0, damage);
  86. loc.getWorld().dropItemNaturally(loc, item);
  87. }
  88. if(block.getTypeId() == 16){
  89. mat = Material.getMaterial(263);
  90. item = new ItemStack(mat, 1, (byte)0, damage);
  91. loc.getWorld().dropItemNaturally(loc, item);
  92. }
  93. }
  94. public void blockProcCheck(Block block, Player player){
  95. if(player != null){
  96. if(Math.random() * 1000 <= mcUsers.getProfile(player).getMiningInt()){
  97. blockProcSimulate(block);
  98. return;
  99. }
  100. }
  101. }
  102. public void miningBlockCheck(Player player, Block block){
  103. if(block.getTypeId() == 1 || block.getTypeId() == 24){
  104. mcUsers.getProfile(player).addMiningGather(3);
  105. blockProcCheck(block, player);
  106. }
  107. //COAL
  108. if(block.getTypeId() == 16){
  109. mcUsers.getProfile(player).addMiningGather(10);
  110. blockProcCheck(block, player);
  111. }
  112. //GOLD
  113. if(block.getTypeId() == 14){
  114. mcUsers.getProfile(player).addMiningGather(35);
  115. blockProcCheck(block, player);
  116. }
  117. //DIAMOND
  118. if(block.getTypeId() == 56){
  119. mcUsers.getProfile(player).addMiningGather(75);
  120. blockProcCheck(block, player);
  121. }
  122. //IRON
  123. if(block.getTypeId() == 15){
  124. mcUsers.getProfile(player).addMiningGather(25);
  125. blockProcCheck(block, player);
  126. }
  127. //REDSTONE
  128. if(block.getTypeId() == 73 || block.getTypeId() == 74){
  129. mcUsers.getProfile(player).addMiningGather(15);
  130. blockProcCheck(block, player);
  131. }
  132. //LAPUS
  133. if(block.getTypeId() == 21){
  134. mcUsers.getProfile(player).addMiningGather(40);
  135. blockProcCheck(block, player);
  136. }
  137. mcSkills.getInstance().XpCheck(player);
  138. }
  139. /*
  140. * Handling SuperBreaker stuff
  141. */
  142. public Boolean canBeSuperBroken(Block block){
  143. int t = block.getTypeId();
  144. if(t == 73 || t == 74 || t == 56 || t == 21 || t == 1 || t == 16 || t == 14 || t == 15){
  145. return true;
  146. } else {
  147. return false;
  148. }
  149. }
  150. public void SuperBreakerBlockCheck(Player player, Block block){
  151. player.getItemInHand().setDurability((short) (player.getItemInHand().getDurability() + 1));
  152. Location loc = block.getLocation();
  153. Material mat = Material.getMaterial(block.getTypeId());
  154. byte damage = 0;
  155. ItemStack item = new ItemStack(mat, 1, (byte)0, damage);
  156. if(block.getTypeId() != 73 && block.getTypeId() != 74 && block.getTypeId() != 56 && block.getTypeId() != 21 && block.getTypeId() != 1 && block.getTypeId() != 16)
  157. loc.getWorld().dropItemNaturally(loc, item);
  158. if(block.getTypeId() == 1 || block.getTypeId() == 24){
  159. if(!mcConfig.getInstance().isBlockWatched(block)){
  160. mcUsers.getProfile(player).addMiningGather(3);
  161. blockProcCheck(block, player);
  162. }
  163. mat = Material.getMaterial(4);
  164. item = new ItemStack(mat, 1, (byte)0, damage);
  165. loc.getWorld().dropItemNaturally(loc, item);
  166. }
  167. //COAL
  168. if(block.getTypeId() == 16){
  169. if(!mcConfig.getInstance().isBlockWatched(block)){
  170. mcUsers.getProfile(player).addMiningGather(10);
  171. blockProcCheck(block, player);
  172. }
  173. mat = Material.getMaterial(263);
  174. item = new ItemStack(mat, 1, (byte)0, damage);
  175. loc.getWorld().dropItemNaturally(loc, item);
  176. }
  177. //GOLD
  178. if(block.getTypeId() == 14){
  179. if(!mcConfig.getInstance().isBlockWatched(block)){
  180. mcUsers.getProfile(player).addMiningGather(35);
  181. blockProcCheck(block, player);
  182. }
  183. }
  184. //DIAMOND
  185. if(block.getTypeId() == 56){
  186. if(!mcConfig.getInstance().isBlockWatched(block)){
  187. mcUsers.getProfile(player).addMiningGather(75);
  188. blockProcCheck(block, player);
  189. }
  190. mat = Material.getMaterial(264);
  191. item = new ItemStack(mat, 1, (byte)0, damage);
  192. loc.getWorld().dropItemNaturally(loc, item);
  193. }
  194. //IRON
  195. if(block.getTypeId() == 15){
  196. if(!mcConfig.getInstance().isBlockWatched(block)){
  197. mcUsers.getProfile(player).addMiningGather(25);
  198. blockProcCheck(block, player);
  199. }
  200. }
  201. //REDSTONE
  202. if(block.getTypeId() == 73 || block.getTypeId() == 74){
  203. if(!mcConfig.getInstance().isBlockWatched(block)){
  204. mcUsers.getProfile(player).addMiningGather(15);
  205. blockProcCheck(block, player);
  206. }
  207. mat = Material.getMaterial(331);
  208. item = new ItemStack(mat, 1, (byte)0, damage);
  209. loc.getWorld().dropItemNaturally(loc, item);
  210. loc.getWorld().dropItemNaturally(loc, item);
  211. loc.getWorld().dropItemNaturally(loc, item);
  212. if(Math.random() * 10 > 5){
  213. loc.getWorld().dropItemNaturally(loc, item);
  214. }
  215. }
  216. //LAPUS
  217. if(block.getTypeId() == 21){
  218. if(!mcConfig.getInstance().isBlockWatched(block)){
  219. mcUsers.getProfile(player).addMiningGather(40);
  220. blockProcCheck(block, player);
  221. }
  222. mat = Material.getMaterial(351);
  223. item = new ItemStack(mat, 1, (byte)0,(byte)0x4);
  224. loc.getWorld().dropItemNaturally(loc, item);
  225. loc.getWorld().dropItemNaturally(loc, item);
  226. loc.getWorld().dropItemNaturally(loc, item);
  227. loc.getWorld().dropItemNaturally(loc, item);
  228. }
  229. mcSkills.getInstance().XpCheck(player);
  230. block.setType(Material.AIR);
  231. }
  232. }