Advertisement
Guest User

EventListener.java

a guest
Dec 9th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.31 KB | None | 0 0
  1. package me.baugh70pkerb0y.Levels.eventlistener;
  2.  
  3. import me.baugh70pkerb0y.Levels.Levels;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.ChatColor;
  7. import org.bukkit.Material;
  8. import org.bukkit.configuration.file.FileConfiguration;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.enchantment.EnchantItemEvent;
  13. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  14. import org.bukkit.event.player.PlayerLevelChangeEvent;
  15. import org.bukkit.inventory.ItemStack;
  16. import org.bukkit.inventory.PlayerInventory;
  17.  
  18.  
  19. public class EventListener implements Listener{
  20.     private FileConfiguration config = Bukkit.getPluginManager().getPlugin("Levels").getConfig();
  21.     public int maxAttackLevel = config.getInt("Max_Attack_Damage");
  22.     public int maxFoodLevel = config.getInt("Max_Food_Level");
  23.     public int foodIncrease = config.getInt("Food_Level_Increase");
  24.     public int attackIncrease = config.getInt("Attack_Level_Increase");
  25.     public int levelStart = config.getInt("Starting_Hunger_Level");
  26.     public boolean foodLevels = config.getBoolean("Enable_Food_Levels");
  27.     public boolean attackLevels = config.getBoolean("Enable_Attack_Levels");
  28.     public boolean itemReplace = config.getBoolean("Replace_Items_For_Levels");
  29.     public boolean itemEnchant = config.getBoolean("Replace_Items_For_Levels");
  30.     private ItemStack blazeRod = new ItemStack(Material.BLAZE_ROD);
  31.     private ItemStack goldIngot = new ItemStack(Material.GOLD_INGOT);
  32.     private ItemStack item3 = new ItemStack(Material.IRON_INGOT);
  33.    
  34.     public EventListener(Levels plugin){
  35.         plugin.getServer().getPluginManager().registerEvents(this, plugin);
  36.        
  37.     }
  38.    
  39.     @EventHandler
  40.     public void onPlayerLevelChange(PlayerLevelChangeEvent event){
  41.         Player player = (Player) event.getPlayer();
  42.         int foodLevel = player.getFoodLevel();
  43.        
  44.         if (foodLevels == true && player.hasPermission("levels.foodlevels")){ // Checks if player foodLevels == to true in config
  45.             // Checks to make sure player has permission
  46.             if(player.getFoodLevel() == maxFoodLevel && !player.hasPermission("levels.bypass") || player.isOp()){
  47.                 // Checks to see if player already has the max food level and if the player does not habe permission
  48.                 player.sendMessage(ChatColor.DARK_AQUA + "You have the max food level, therefore your food level will not go up!");
  49.             }else{
  50.                 int setFoodLevel = foodLevel + foodIncrease; // Adds the foodIncrease to the current food level
  51.                 if(setFoodLevel > maxFoodLevel){ // Checks to see if the setFoodLevel is greater than maxFoodLevel if so...
  52.                     int newFoodLevel = maxFoodLevel - foodLevel;
  53.                     // Calculating how much to add to the players food level
  54.                    
  55.                     player.setFoodLevel(newFoodLevel); // Sets the food level
  56.                 }else{
  57.                     player.setFoodLevel(foodIncrease);
  58.                 }
  59.             }
  60.         }
  61.     }
  62.    
  63.     @EventHandler
  64.      public void onEntityDamageByEntity(EntityDamageByEntityEvent event){
  65.         if(attackLevels == true && event.getDamager() instanceof Player){ // If enabled in configuration
  66.             Player player = (Player) event.getDamager();
  67.           if(player.hasPermission("levels.attacklevels")){ // check to see if the damager
  68.               double damage = event.getDamage();
  69.               int level = player.getLevel(); // Get the XP level of the damager
  70.               double levelDamage = level * level; // Get the level multiplied by the level increase
  71.               if(level >= 15){
  72.                   if (levelDamage > maxAttackLevel){
  73.                       double checkedDamage = maxAttackLevel - damage;
  74.                  
  75.                       event.setDamage(checkedDamage);
  76.                   }
  77.               }else{
  78.                   event.setDamage(levelDamage); // Set the damage
  79.               }
  80.           }
  81.         }
  82.     }
  83.      
  84.     @EventHandler
  85.      public void onEnchantItem(EnchantItemEvent event){
  86.          Player player = event.getEnchanter();
  87.         if (itemEnchant == true&& player.hasPermission("levels.itemenchanting")) {// checks config and if player has permission
  88.             PlayerInventory inv = player.getInventory();
  89.             if (inv.contains(blazeRod) && inv.contains(goldIngot) && inv.contains(item3)){ // Checks player's inventory for the items
  90.                 inv.remove(blazeRod); // removes the items
  91.                 inv.remove(goldIngot);
  92.                 inv.remove(item3);
  93.             }else{
  94.                 event.setCancelled(true); // Cancel the event
  95.                 player.sendMessage(ChatColor.DARK_AQUA + "You do not have the required items!"); // Tell them
  96.             }
  97.          }
  98.      }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement