Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.Gust09.BreakBonus;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Random;
- import java.util.logging.Logger;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.BlockBreakEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.java.JavaPlugin;
- public class BreakBonus extends JavaPlugin implements Listener{
- public final Logger myLogger = Bukkit.getLogger();
- @Override
- public void onEnable(){
- loadConfiguration();
- Bukkit.getPluginManager().registerEvents(this, this);
- }
- @Override
- public void onDisable(){
- }
- public void loadConfiguration(){
- getConfig().options().copyDefaults(true);
- saveConfig();
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent join){
- Player joiner = join.getPlayer();
- String path = "Data.";
- if(getConfig().getString("Data." + joiner.getName()) == null){
- myLogger.info("[BreakBonus] Player Data not found for " + joiner.getName() + ". Creating now!");
- getConfig().set(path + joiner.getName(), 0);
- saveConfig();
- }
- else{
- myLogger.info("[BreakBonus] Loaded Player Data for " + joiner.getName() + "!");
- }
- }
- @EventHandler
- public void onBlockBreak(BlockBreakEvent event){
- Player p = event.getPlayer();
- List<String> blockIDStrings = getConfig().getStringList("Config.Blocks");
- @SuppressWarnings("deprecation")
- int blockBroken = event.getBlock().getTypeId();
- if(blockIDStrings.contains(String.valueOf(blockBroken))){
- int brokenBlocks = getConfig().getInt("Data." + p.getName());
- int targetBlocks = getConfig().getInt("Config.Objective");
- if(brokenBlocks > targetBlocks){
- myLogger.info("[BreakBonus] Player " + p.getName() + " has more broken blocks than the Objective. Reseting now!");
- getConfig().set("Data." + p.getName(), 0);
- saveConfig();
- }
- else if(p.hasPermission("breakbonus.reward")){
- getConfig().set("Data." + p.getName(), (brokenBlocks + 1));
- saveConfig();
- }
- }
- if(getConfig().getInt("Data." + p.getName()) == getConfig().getInt("Config.Objective")){
- Block blockLoc = event.getBlock();
- List<String> bonusStringsList = getConfig().getStringList("Lang.Bonus_Found");
- int bonusStringsListSize = bonusStringsList.size();
- Random r = new Random();
- String bonusString = bonusStringsList.get(r.nextInt(bonusStringsListSize));
- String bonusFoundColored = ChatColor.translateAlternateColorCodes('&', bonusString);
- p.sendMessage(bonusFoundColored);
- @SuppressWarnings("deprecation")
- ItemStack item = new ItemStack(Material.getMaterial(getConfig().getInt("Config.Reward.ID", getConfig().getInt("Config.Reward.Amount"))));
- ItemMeta meta = item.getItemMeta();
- meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Config.Reward.Name")));
- meta.setLore(Arrays.asList(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Config.Reward.Lore"))));
- item.setItemMeta(meta);
- blockLoc.getWorld().dropItem(blockLoc.getLocation(), item);
- getConfig().set("Data." + p.getName(), 0);
- saveConfig();
- }
- }
- public boolean onCommand(CommandSender theSender, Command cmd, String commandLabel, String[] args){
- if(commandLabel.equalsIgnoreCase("bbreload") && theSender.hasPermission("breakbonus.reload")){
- reloadConfig();
- theSender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("Lang.Reload")));
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement