Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.blockcount;
- import java.io.File;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- import java.util.TreeMap;
- import net.milkbowl.vault.economy.Economy;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Color;
- import org.bukkit.FireworkEffect;
- import org.bukkit.FireworkEffect.Builder;
- import org.bukkit.FireworkEffect.Type;
- import org.bukkit.Server;
- import org.bukkit.World;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.configuration.file.FileConfigurationOptions;
- import org.bukkit.configuration.file.YamlConfiguration;
- import org.bukkit.enchantments.Enchantment;
- import org.bukkit.entity.Firework;
- 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.AsyncPlayerChatEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.PlayerInventory;
- import org.bukkit.inventory.meta.FireworkMeta;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.plugin.PluginManager;
- import org.bukkit.plugin.RegisteredServiceProvider;
- import org.bukkit.plugin.ServicesManager;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Main
- extends JavaPlugin
- implements Listener
- {
- private Economy econ;
- public void onEnable()
- {
- RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
- if (economyProvider != null) {
- this.econ = ((Economy)economyProvider.getProvider());
- }
- Bukkit.getPluginManager().registerEvents(this, this);
- getConfig().options().header("If you do not want to give money as a reward, put 0\nif you do not want to give an item put 0.\nIf you make broadcast true, it will broadcast milestone-message.");
- getConfig().options().copyDefaults(true);
- saveConfig();
- File f = new File(getDataFolder() + File.separator + "users");
- if (!f.exists()) {
- f.mkdir();
- }
- }
- @EventHandler
- public void onPlayerJoin(PlayerJoinEvent e)
- throws IOException
- {
- File file = new File(getDataFolder() + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
- if (!file.exists())
- {
- file.createNewFile();
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- config.set("blockcount", Integer.valueOf(0));
- config.save(file);
- }
- }
- @EventHandler
- public void onBlockBreak(BlockBreakEvent e)
- throws IOException
- {
- File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- config.set("blockcount", Integer.valueOf(config.getInt("blockcount") + 1));
- config.save(file);
- if (config.getInt("blockcount") == getConfig().getInt("rewards.amount"))
- {
- Firework f = (Firework)e.getPlayer().getWorld().spawn(e.getPlayer().getLocation(), Firework.class);
- FireworkMeta fm = f.getFireworkMeta();
- fm.addEffect(FireworkEffect.builder().flicker(true).trail(true).withColor(Color.BLUE).with(FireworkEffect.Type.BALL).withFade(Color.RED).build());
- fm.setPower(1);
- f.setFireworkMeta(fm);
- String milestoneMessage = getConfig().getString("milestone-message");
- milestoneMessage = ChatColor.translateAlternateColorCodes('&', milestoneMessage);
- milestoneMessage = milestoneMessage.replace("%blockcount%", String.valueOf(config.getInt("blockcount")));
- if (getConfig().getBoolean("broadcast"))
- {
- String format = getConfig().getString("broadcast-prefix");
- format = ChatColor.translateAlternateColorCodes('&', format);
- Bukkit.broadcastMessage(format + " " + milestoneMessage);
- }
- else
- {
- e.getPlayer().sendMessage(milestoneMessage);
- }
- this.econ.depositPlayer(e.getPlayer(), getConfig().getInt("rewards.money"));
- if ((getConfig().getInt("rewards.item") != 0) && (getConfig().getInt("rewards.item_amount") != 0))
- {
- ItemStack is = new ItemStack(getConfig().getInt("rewards.item"), getConfig().getInt("rewards.item_amount"));
- ItemMeta im = is.getItemMeta();
- String item_name = getConfig().getString("rewards.item_name");
- item_name = ChatColor.translateAlternateColorCodes('&', item_name);
- im.setDisplayName(item_name);
- List<String> lore = getConfig().getStringList("rewards.item_lore");
- List<String> coloredLore = new ArrayList();
- for (String s : lore) {
- coloredLore.add(ChatColor.translateAlternateColorCodes('&', s));
- }
- List<String> enchantments = getConfig().getStringList("rewards.item-enchantments");
- for (String s : enchantments)
- {
- String[] parts = s.split(":");
- im.addEnchant(Enchantment.getByName(parts[0]), Integer.parseInt(parts[1]), true);
- }
- im.setLore(coloredLore);
- is.setItemMeta(im);
- e.getPlayer().getInventory().addItem(new ItemStack[] { is });
- }
- }
- }
- @EventHandler
- public void onPlayerChat(AsyncPlayerChatEvent e)
- {
- File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- String format = getConfig().getString("format");
- format = ChatColor.translateAlternateColorCodes('&', format);
- format = format.replace("%blockcount%", String.valueOf(config.getInt("blockcount")));
- e.setFormat(format + " %s: %s");
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
- {
- Player p = (Player)sender;
- File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + p.getName() + ".yml");
- FileConfiguration config = YamlConfiguration.loadConfiguration(file);
- File[] allFiles = new File("plugins" + File.separator + "BlockCount" + File.separator + "users").listFiles();
- TreeMap<String, Integer> blockcounts = new TreeMap(Collections.reverseOrder());
- for (File f : allFiles)
- {
- FileConfiguration c = YamlConfiguration.loadConfiguration(f);
- String playerName = f.getName().replace(".yml", "");
- blockcounts.put(playerName, Integer.valueOf(c.getInt("blockcount")));
- }
- if ((cmd.getName().equalsIgnoreCase("bc")) && ((sender instanceof Player)))
- {
- p.sendMessage(ChatColor.GREEN + "Block Balance: " + ChatColor.WHITE + config.getInt("blockcount"));
- }
- else if ((cmd.getName().equalsIgnoreCase("bctop")) && ((sender instanceof Player)))
- {
- p.sendMessage("---------------" + ChatColor.AQUA + "[" + ChatColor.GREEN + "Top Block Breakers" + ChatColor.AQUA + "]" + ChatColor.WHITE + "---------------");
- if (allFiles.length > 9) {
- for (int i = 0; i < 10; i++) {
- p.sendMessage(ChatColor.AQUA + (i + 1) + ". " + ChatColor.GREEN + blockcounts.keySet().toArray()[i] + ChatColor.AQUA + " - " + ChatColor.GREEN + blockcounts.get(blockcounts.keySet().toArray()[i]));
- }
- } else {
- for (int i = 0; i < allFiles.length; i++) {
- p.sendMessage(ChatColor.AQUA + (i + 1) + ". " + ChatColor.GREEN + blockcounts.keySet().toArray()[i] + ChatColor.AQUA + " - " + ChatColor.GREEN + blockcounts.get(blockcounts.keySet().toArray()[i]));
- }
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement