Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AlchemyListener implements Listener {
- GRPG plugin = GRPG.getPlugin(GRPG.class);
- ArrayList<Material> lvl1Pots = new ArrayList<Material>(Arrays.asList(Material.NETHER_WARTS, Material.SPECKLED_MELON, Material.SUGAR));
- ArrayList<Material> lvl5Pots = new ArrayList<Material>(Arrays.asList(Material.RABBIT_FOOT, Material.SPIDER_EYE));
- ArrayList<Material> lvl10Pots = new ArrayList<Material>(Arrays.asList(Material.GOLDEN_CARROT, Material.BLAZE_POWDER));
- ArrayList<Material> lvl15Pots = new ArrayList<Material>(Arrays.asList(Material.RAW_FISH, Material.GHAST_TEAR));
- ArrayList<Material> lvl20Pots = new ArrayList<Material>(Arrays.asList(Material.MAGMA_CREAM, Material.FERMENTED_SPIDER_EYE));
- @EventHandler
- public void brewEvent(BrewEvent e) {
- Player p = Bukkit.getPlayer(BlockLockerAPI.getOwner(e.getBlock()).get().getUniqueId());
- if(p != null) {
- Material ingredient = e.getContents().getIngredient().getType();
- if(ingredient != null && !ingredient.equals(Material.AIR)) {
- int alchLvl = GRPG.levelManagerHashMap.get(p.getUniqueId()).getSkillLevelWithBonus(SKILLS.ALCHEMY);
- if(alchLvl < 1) alchLvl = 1;
- if(canBrew(ingredient, alchLvl)) {
- int potions = countPotions(e.getContents());
- int[] minMax = new int[2];
- minMax[0] = plugin.getExpConfig().getExp(ExpConfig.alchemyPath + "min");
- minMax[1] = plugin.getExpConfig().getExp(ExpConfig.alchemyPath + "max");
- int rXp = GRPG.randomXp(minMax[0], minMax[1]) * potions;
- p.sendMessage(GRPG.gaiaPrefix + "You recieved " + rXp + " xp in alchemy for crafting " + ChatColor.BLUE + potions + ChatColor.WHITE + " potions.");
- Utilities.giveExperience(SKILLS.ALCHEMY, p, rXp);
- } else {
- e.setCancelled(true);
- p.sendMessage(GRPG.gaiaPrefix + ChatColor.RED + "You do not have the alchemy level to brew this potion.");
- }
- }
- }
- }
- private boolean canBrew(Material ingr, int lvl) {
- if(lvl1Pots.contains(ingr) && lvl >= 1) return true;
- if(lvl5Pots.contains(ingr) && lvl >= 5) return true;
- if(lvl10Pots.contains(ingr) && lvl >= 10) return true;
- if(lvl15Pots.contains(ingr) && lvl >= 15) return true;
- if(lvl20Pots.contains(ingr) && lvl >= 20) return true;
- return false;
- }
- private int countPotions(BrewerInventory i) {
- int count = 0;
- if(i.getItem(0).getType() == Material.POTION) count++;
- if(i.getItem(1).getType() == Material.POTION) count++;
- if(i.getItem(2).getType() == Material.POTION) count++;
- return count;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement