Guest User

Untitled

a guest
Aug 14th, 2023
11
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.41 KB | None | 0 0
  1. package dev.xurses.eventlistenersx.Listeners;
  2. import dev.xurses.eventlistenersx.EventListenersX;
  3. import dev.xurses.eventlistenersx.Utility.PlayerUtility;
  4. import dev.xurses.eventlistenersx.data.PlayerStats;
  5. import net.md_5.bungee.api.ChatColor;
  6. import org.bukkit.*;
  7. import org.bukkit.block.Block;
  8. import org.bukkit.configuration.file.FileConfiguration;
  9. import org.bukkit.configuration.file.YamlConfiguration;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.block.BlockBreakEvent;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15. import org.bukkit.scheduler.BukkitRunnable;
  16.  
  17. import java.io.File;
  18. import java.io.IOException;
  19. import java.util.ArrayList;
  20.  
  21. import static sun.awt.X11GraphicsConfig.getConfig;
  22.  
  23.  
  24. public class SkillsHandler implements Listener {
  25. PlayerStats memory = new PlayerStats();
  26.  
  27. boolean MiningOre;
  28.  
  29. @EventHandler
  30. public void AddMiningSkill(BlockBreakEvent e) throws IOException {
  31. Player player = e.getPlayer();
  32. Block block = e.getBlock();
  33. File f = new File(PlayerUtility.getFolderPath(e.getPlayer()) + "/general.yml");
  34. FileConfiguration cfg = YamlConfiguration.loadConfiguration(f);
  35. memory.getMiningXP(cfg.getDouble("stats.MiningXP"));
  36. memory.setMiningXP(cfg.getDouble("stats.MiningXP"));
  37. memory.getLightTouched(cfg.getDouble("stats.LightTouched"));
  38. memory.setLightTouched(cfg.getDouble("stats.LightTouched"));
  39. //double MiningXProunded = ((int) (memory.MiningXP * 100) / 100.0);
  40.  
  41. switch (block.getType()) {
  42. case COAL_ORE:
  43. case DEEPSLATE_COAL_ORE:
  44. case COPPER_ORE:
  45. case DEEPSLATE_COPPER_ORE:
  46. case IRON_ORE:
  47. case DEEPSLATE_IRON_ORE:
  48. case LAPIS_ORE:
  49. case DEEPSLATE_LAPIS_ORE:
  50. case REDSTONE_ORE:
  51. case DEEPSLATE_REDSTONE_ORE:
  52. case GOLD_ORE:
  53. case DEEPSLATE_GOLD_ORE:
  54. case NETHER_GOLD_ORE:
  55. case DIAMOND_ORE:
  56. case DEEPSLATE_DIAMOND_ORE:
  57. case ANCIENT_DEBRIS:
  58. case EMERALD_ORE:
  59. case DEEPSLATE_EMERALD_ORE:
  60. MiningOre = true;
  61. memory.MiningXP += 0.01;
  62. break;
  63.  
  64.  
  65. default:
  66. break;
  67.  
  68. }
  69. cfg.set("stats.MiningXP", memory.getMiningXP(cfg.getDouble("stats.MiningXP")));
  70. cfg.set("stats.LightTouched", memory.getLightTouched(cfg.getDouble("stats.LightTouched")));
  71. cfg.save(f);
  72. //if (block.getType() == Material.DEEPSLATE_COAL_ORE) {
  73. // e.setCancelled(true);
  74. // player.sendMessage("You need at least level 1 mining to mine deepslate.");
  75. //} else if (block.getType() == Material.DEEPSLATE && memory.MiningXP >= 1.0) {
  76. //memory.MiningXP += 0.02;
  77. //player.sendMessage("Mining level increased: " + MiningXProunded);
  78. }
  79.  
  80.  
  81. //}
  82. @EventHandler
  83. public void LevelCheck(BlockBreakEvent e) throws IOException {
  84. Player player = e.getPlayer();
  85. File f = new File(PlayerUtility.getFolderPath(e.getPlayer()) + "/general.yml");
  86. FileConfiguration cfg = YamlConfiguration.loadConfiguration(f);
  87. memory.getLightTouched(cfg.getDouble("stats.LightTouched"));
  88. memory.setLightTouched(cfg.getDouble("stats.LightTouched"));
  89. memory.getMiningXP(cfg.getDouble("stats.MiningXP"));
  90. memory.setMiningXP(cfg.getDouble("stats.MiningXP"));
  91. double MiningXProunded = ((int) (memory.MiningXP * 100) / 100.0);
  92.  
  93. if (memory.MiningXP >= 1.0 && memory.LightTouched <= 0.0) {
  94. memory.LightTouched = 1.0;
  95. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Coal");
  96. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  97. player.sendMessage("More Blocks and skills coming soon!");
  98. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Coal");
  99. }
  100. if (memory.MiningXP >= 2.0 && memory.LightTouched <= 1.0) {
  101. memory.LightTouched = 2.0;
  102. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Copper");
  103. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  104. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Copper");
  105. }
  106. if (memory.MiningXP >= 5.0 && memory.LightTouched <= 2.0) {
  107. memory.LightTouched = 3.0;
  108. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Iron");
  109. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  110. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Iron");
  111. }
  112. if (memory.MiningXP >= 8.0 && memory.LightTouched <= 3.0) {
  113. memory.LightTouched = 4.0;
  114. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Redstone");
  115. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  116. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Redstone");
  117. }
  118. if (memory.MiningXP >= 10.0 && memory.LightTouched <= 4.0) {
  119. memory.LightTouched = 5.0;
  120. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Gold");
  121. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  122. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Gold");
  123. }
  124. if (memory.MiningXP >= 15.0 && memory.LightTouched <= 5.0) {
  125. memory.LightTouched = 6.0;
  126. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Emerald");
  127. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  128. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Emerald");
  129. }
  130. if (memory.MiningXP >= 25.0 && memory.LightTouched <= 6.0) {
  131. memory.LightTouched = 7.0;
  132. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Diamond");
  133. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  134. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Diamond");
  135. }
  136. if (memory.MiningXP >= 40.0 && memory.LightTouched <= 7.0) {
  137. memory.LightTouched = 8.0;
  138. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Lapis");
  139. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  140. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Lapis");
  141. }
  142. if (memory.MiningXP >= 50.0 && memory.LightTouched <= 8.0) {
  143. memory.LightTouched = 9.0;
  144. player.sendMessage(ChatColor.GRAY + "You" + ChatColor.WHITE + " have" + ChatColor.GREEN + " Unlocked" + ChatColor.WHITE + ":" + ChatColor.AQUA + " LightTouched" + ChatColor.GOLD + " Ancient Debris");
  145. player.sendMessage(ChatColor.WHITE + "To use" + ChatColor.AQUA + " LightTouched" + ChatColor.WHITE + ": Sneak while mining:" + ChatColor.BLUE + " Unlocked ores");
  146. Bukkit.broadcastMessage(ChatColor.GRAY + player.getName() + ChatColor.WHITE + " Has gotten" + ChatColor.RED + " level:" + ChatColor.GOLD + MiningXProunded + ChatColor.WHITE + " in the" + ChatColor.BOLD + " mining" + ChatColor.WHITE + " skill and" + ChatColor.GREEN + " unlocked" + ChatColor.GOLD + " LightTouched" + ChatColor.AQUA + " Ancient Debris");
  147. }
  148. if (MiningXProunded % 1 == 0 && MiningOre) {
  149. player.sendMessage(ChatColor.GRAY + "Your" + ChatColor.RED + " level" + ChatColor.WHITE + " in the" + ChatColor.BOLD + " Mining" + ChatColor.WHITE + " skill has" + ChatColor.GREEN + " increased" + ChatColor.WHITE + " to " + ChatColor.GOLD + memory.MiningXP + ChatColor.WHITE + ".");
  150. player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f);
  151. player.playEffect(player.getLocation(), Effect.ELECTRIC_SPARK, 20);
  152. MiningOre = false;
  153. }
  154. cfg.set("stats.MiningXP", memory.getMiningXP(cfg.getDouble("stats.MiningXP")));
  155. cfg.set("stats.LightTouched", memory.getLightTouched(cfg.getDouble("stats.LightTouched")));
  156. cfg.save(f);
  157. }
  158.  
  159. @EventHandler
  160. public void RespawnLevels(BlockBreakEvent e) throws IOException, InterruptedException {
  161.  
  162. Player player = e.getPlayer();
  163. Block block = e.getBlock();
  164. File f = new File(PlayerUtility.getFolderPath(e.getPlayer()) + "/general.yml");
  165. FileConfiguration cfg = YamlConfiguration.loadConfiguration(f);
  166.  
  167. memory.getMiningXP(cfg.getDouble("stats.MiningXP"));
  168. memory.setMiningXP(cfg.getDouble("stats.MiningXP"));
  169. memory.getLightTouched(cfg.getDouble("stats.LightTouched"));
  170. memory.setLightTouched(cfg.getDouble("stats.LightTouched"));
  171. switch (block.getType()) {
  172. case COAL_ORE:
  173. case DEEPSLATE_COAL_ORE:
  174. if (memory.LightTouched >= 1) {
  175. Material SaveBlock = block.getType();
  176. UseMe(e);
  177. //block.setType(SaveBlock);
  178. }
  179. break;
  180. case COPPER_ORE:
  181. case DEEPSLATE_COPPER_ORE:
  182. if (memory.LightTouched >= 2) {
  183. Material SaveBlock = block.getType();
  184. UseMe(e);
  185. //block.setType(SaveBlock);
  186. }
  187. break;
  188. case IRON_ORE:
  189. case DEEPSLATE_IRON_ORE:
  190. if (memory.LightTouched >= 3) {
  191. Material SaveBlock = block.getType();
  192. UseMe(e);
  193. //block.setType(SaveBlock);
  194. }
  195. break;
  196. case REDSTONE_ORE:
  197. case DEEPSLATE_REDSTONE_ORE:
  198. if (memory.LightTouched >= 4) {
  199. Material SaveBlock = block.getType();
  200. UseMe(e);
  201. //block.setType(SaveBlock);
  202. }
  203. break;
  204. case GOLD_ORE:
  205. case DEEPSLATE_GOLD_ORE:
  206. case NETHER_GOLD_ORE:
  207. if (memory.LightTouched >= 5) {
  208. Material SaveBlock = block.getType();
  209. UseMe(e);
  210. //block.setType(SaveBlock);
  211. }
  212. break;
  213. case EMERALD_ORE:
  214. case DEEPSLATE_EMERALD_ORE:
  215. if (memory.LightTouched >= 6) {
  216. Material SaveBlock = block.getType();
  217. UseMe(e);
  218. //block.setType(SaveBlock);
  219. }
  220. break;
  221. case DIAMOND_ORE:
  222. case DEEPSLATE_DIAMOND_ORE:
  223. if (memory.LightTouched >= 7) {
  224. Material SaveBlock = block.getType();
  225. UseMe(e);
  226. //block.setType(SaveBlock);
  227. }
  228. break;
  229. case LAPIS_ORE:
  230. case DEEPSLATE_LAPIS_ORE:
  231. if (memory.LightTouched >= 8) {
  232. Material SaveBlock = block.getType();
  233. UseMe(e);
  234. //block.setType(SaveBlock);
  235. }
  236. break;
  237. case ANCIENT_DEBRIS:
  238. if (memory.LightTouched >= 9) {
  239. Material SaveBlock = block.getType();
  240. UseMe(e);
  241. //block.setType(SaveBlock);
  242. }
  243. break;
  244.  
  245. }
  246.  
  247.  
  248. }
  249. @EventHandler
  250. public void UseMe(BlockBreakEvent e) throws IOException {
  251.  
  252. Player player = e.getPlayer();
  253. Block block = e.getBlock();
  254. File f = new File(PlayerUtility.getFolderPath(e.getPlayer()) + "/general.yml");
  255. FileConfiguration cfg = YamlConfiguration.loadConfiguration(f);
  256. memory.getSaveBlocks(cfg.getString("stats.SaveBlocks"));
  257. memory.setSaveBlocks(cfg.getString("stats.SaveBlocks"));
  258. memory.getMiningXP(cfg.getDouble("stats.MiningXP"));
  259. memory.setMiningXP(cfg.getDouble("stats.MiningXP"));
  260. memory.getLightTouched(cfg.getDouble("stats.LightTouched"));
  261. memory.setLightTouched(cfg.getDouble("stats.LightTouched"));
  262. /*
  263. Material TheBlock = block.getType();
  264. String SlocX = Integer.toString(locX);
  265. String SlocY = Integer.toString(locY);
  266. String STheBlock = TheBlock.toString(); */
  267. Material mTheBlock = block.getType();
  268. String TheBlock = mTheBlock.toString();
  269. Location loc = block.getLocation();
  270. ArrayList<String> Blockit = new ArrayList<String>();
  271. Blockit.add(TheBlock);
  272. World world = block.getWorld();
  273. memory.SaveBlocks = Blockit.toString();
  274. cfg.set("stats.SaveBlocks", memory.getSaveBlocks(cfg.getString("stats.SaveBlocks")));
  275. if (player.isSneaking() && MiningOre) { //(player.isSneaking() && memory.LightTouched >= 1) {
  276. block.breakNaturally();
  277. e.setCancelled(true);
  278. block.setType(Material.BEDROCK);
  279. MiningOre = false;
  280. new BukkitRunnable() {
  281. //@Override
  282. public void run() {
  283. //block.setType(blockit);
  284. world.getBlockAt(loc).setType(mTheBlock);
  285.  
  286.  
  287. }
  288. }.runTaskLater(JavaPlugin.getPlugin(EventListenersX.class), 180l);
  289. cfg.set("stats.MiningXP", memory.getMiningXP(cfg.getDouble("stats.MiningXP")));
  290. cfg.set("stats.LightTouched", memory.getLightTouched(cfg.getDouble("stats.LightTouched")));
  291. cfg.save(f);
  292. }
  293. }
  294.  
  295. }
  296.  
  297.  
  298.  
Advertisement
Add Comment
Please, Sign In to add comment