Advertisement
Drawethree

Untitled

Jan 30th, 2022
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.47 KB | None | 0 0
  1. package me.drawethree.ultraprisoncore.enchants.enchants.implementations;
  2.  
  3. import lombok.AllArgsConstructor;
  4. import lombok.Getter;
  5. import me.drawethree.ultraprisoncore.enchants.UltraPrisonEnchants;
  6. import me.drawethree.ultraprisoncore.enchants.enchants.UltraPrisonEnchantment;
  7. import me.lucko.helper.random.RandomSelector;
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.block.BlockBreakEvent;
  11. import org.bukkit.inventory.ItemStack;
  12.  
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import java.util.concurrent.ThreadLocalRandom;
  16.  
  17. public class VoucherFinderEnchant extends UltraPrisonEnchantment {
  18.  
  19. private double chance;
  20. private List<CommandWithChance> commandsToExecute;
  21.  
  22. public VoucherFinderEnchant(UltraPrisonEnchants instance) {
  23. super(instance, 20);
  24. }
  25.  
  26. private List<CommandWithChance> loadCommands() {
  27. List<CommandWithChance> returnList = new ArrayList<>();
  28. for (String key : this.plugin.getConfig().get().getConfigurationSection("enchants." + id + ".Commands").getKeys(false)) {
  29. String cmd = this.plugin.getConfig().get().getString("enchants." + id + ".Commands." + key + ".command");
  30. double chance = this.plugin.getConfig().get().getDouble("enchants." + id + ".Commands." + key + ".chance");
  31. returnList.add(new CommandWithChance(cmd, chance));
  32. }
  33. return returnList;
  34. }
  35.  
  36. @Override
  37. public void onEquip(Player p, ItemStack pickAxe, int level) {
  38.  
  39. }
  40.  
  41. @Override
  42. public void onUnequip(Player p, ItemStack pickAxe, int level) {
  43.  
  44. }
  45.  
  46. @Override
  47. public void onBlockBreak(BlockBreakEvent e, int enchantLevel) {
  48. if (this.chance * enchantLevel >= ThreadLocalRandom.current().nextDouble(100)) {
  49. CommandWithChance randomCmd = RandomSelector.weighted(this.commandsToExecute, element -> element.getChance()).pick();
  50. Bukkit.dispatchCommand(Bukkit.getConsoleSender(), randomCmd.getCommand().replace("%player%", e.getPlayer().getName()));
  51. }
  52. }
  53.  
  54. @Override
  55. public void reload() {
  56. this.chance = plugin.getConfig().get().getDouble("enchants." + id + ".Chance");
  57. this.commandsToExecute = this.loadCommands();
  58. }
  59.  
  60. @Override
  61. public String getAuthor() {
  62. return "Drawethree";
  63. }
  64.  
  65. @AllArgsConstructor
  66. @Getter
  67. private class CommandWithChance {
  68. private String command;
  69. private double chance;
  70. }
  71. }
  72.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement