Advertisement
Guest User

BreakBonus Edit-2

a guest
Aug 15th, 2014
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.93 KB | None | 0 0
  1. package me.Gust09.BreakBonus;
  2.  
  3. import java.util.Arrays;
  4. import java.util.List;
  5. import java.util.Random;
  6. import java.util.logging.Logger;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.Material;
  11. import org.bukkit.block.Block;
  12. import org.bukkit.command.Command;
  13. import org.bukkit.command.CommandSender;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.event.EventHandler;
  16. import org.bukkit.event.Listener;
  17. import org.bukkit.event.block.BlockBreakEvent;
  18. import org.bukkit.event.player.PlayerJoinEvent;
  19. import org.bukkit.inventory.ItemStack;
  20. import org.bukkit.inventory.meta.ItemMeta;
  21. import org.bukkit.plugin.java.JavaPlugin;
  22.  
  23. public class BreakBonus extends JavaPlugin implements Listener{
  24.  
  25.     public final Logger myLogger = Bukkit.getLogger();
  26.    
  27.     @Override
  28.     public void onEnable(){
  29.         loadConfiguration();
  30.         Bukkit.getPluginManager().registerEvents(this, this);
  31.        
  32.         }
  33.  
  34.     @Override
  35.     public void onDisable(){
  36.     }
  37.    
  38.     public void loadConfiguration(){
  39.          getConfig().options().copyDefaults(true);
  40.          saveConfig();
  41.          
  42.     }
  43.    
  44.     @EventHandler
  45.     public void onPlayerJoin(PlayerJoinEvent join){
  46.        
  47.         Player joiner = join.getPlayer();
  48.         String path = "Data.";
  49.        
  50.         if(getConfig().getString("Data." + joiner.getName()) == null){
  51.             myLogger.info("[BreakBonus] Player Data not found for " + joiner.getName() + ". Creating now!");
  52.             getConfig().set(path + joiner.getName(), 0);
  53.             saveConfig();
  54.         }
  55.         else{
  56.             myLogger.info("[BreakBonus] Loaded Player Data for " + joiner.getName() + "!");
  57.            
  58.         }
  59.     }
  60.    
  61.     @EventHandler
  62.     public void onBlockBreak(BlockBreakEvent event){
  63.        
  64.         Player p = event.getPlayer();
  65.        
  66.         List<String> blockIDStrings = getConfig().getStringList("Config.Blocks");
  67.        
  68.         @SuppressWarnings("deprecation")
  69.         int blockBroken = event.getBlock().getTypeId();
  70.                
  71.         if(blockIDStrings.contains(String.valueOf(blockBroken))){
  72.            
  73.             int brokenBlocks = getConfig().getInt("Data." + p.getName());
  74.             int targetBlocks = getConfig().getInt("Config.Objective");
  75.            
  76.             if(brokenBlocks > targetBlocks){
  77.                 myLogger.info("[BreakBonus] Player " + p.getName() + " has more broken blocks than the Objective. Reseting now!");
  78.                 getConfig().set("Data." + p.getName(), 0);
  79.                 saveConfig();
  80.             }
  81.             else if(p.hasPermission("breakbonus.reward")){
  82.             getConfig().set("Data." + p.getName(), (brokenBlocks + 1));
  83.             saveConfig();
  84.             }
  85.         }
  86.        
  87.         if(getConfig().getInt("Data." + p.getName()) == getConfig().getInt("Config.Objective")){
  88.            
  89.             Block blockLoc = event.getBlock();
  90.            
  91.             List<String> bonusStringsList = getConfig().getStringList("Lang.Bonus_Found");
  92.            
  93.             int bonusStringsListSize = bonusStringsList.size();
  94.            
  95.             Random r = new Random();
  96.            
  97.             String bonusString = bonusStringsList.get(r.nextInt(bonusStringsListSize));
  98.             String bonusFoundColored = ChatColor.translateAlternateColorCodes('&', bonusString);
  99.            
  100.             p.sendMessage(bonusFoundColored);
  101.            
  102.             @SuppressWarnings("deprecation")
  103.             ItemStack item = new ItemStack(Material.getMaterial(getConfig().getInt("Config.Reward.ID", getConfig().getInt("Config.Reward.Amount"))));
  104.             ItemMeta meta = item.getItemMeta();
  105.                    
  106.             meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Config.Reward.Name")));
  107.             meta.setLore(Arrays.asList(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Config.Reward.Lore"))));
  108.             item.setItemMeta(meta);
  109.                        
  110.             blockLoc.getWorld().dropItem(blockLoc.getLocation(), item);
  111.            
  112.             getConfig().set("Data." + p.getName(), 0);
  113.             saveConfig();
  114.         }  
  115.        
  116.     }
  117.        
  118.         public boolean onCommand(CommandSender theSender, Command cmd, String commandLabel, String[] args){
  119.             if(commandLabel.equalsIgnoreCase("bbreload") && theSender.hasPermission("breakbonus.reload")){
  120.                 reloadConfig();
  121.                 theSender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Lang.Reload")));
  122.             }
  123.            
  124.             return false;
  125.         }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement