Advertisement
Guest User

Untitled

a guest
Aug 19th, 2014
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.80 KB | None | 0 0
  1. package me.blockcount;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.List;
  8. import java.util.TreeMap;
  9. import net.milkbowl.vault.economy.Economy;
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.ChatColor;
  12. import org.bukkit.Color;
  13. import org.bukkit.FireworkEffect;
  14. import org.bukkit.FireworkEffect.Builder;
  15. import org.bukkit.FireworkEffect.Type;
  16. import org.bukkit.Server;
  17. import org.bukkit.World;
  18. import org.bukkit.command.Command;
  19. import org.bukkit.command.CommandSender;
  20. import org.bukkit.configuration.file.FileConfiguration;
  21. import org.bukkit.configuration.file.FileConfigurationOptions;
  22. import org.bukkit.configuration.file.YamlConfiguration;
  23. import org.bukkit.enchantments.Enchantment;
  24. import org.bukkit.entity.Firework;
  25. import org.bukkit.entity.Player;
  26. import org.bukkit.event.EventHandler;
  27. import org.bukkit.event.Listener;
  28. import org.bukkit.event.block.BlockBreakEvent;
  29. import org.bukkit.event.player.AsyncPlayerChatEvent;
  30. import org.bukkit.event.player.PlayerJoinEvent;
  31. import org.bukkit.inventory.ItemStack;
  32. import org.bukkit.inventory.PlayerInventory;
  33. import org.bukkit.inventory.meta.FireworkMeta;
  34. import org.bukkit.inventory.meta.ItemMeta;
  35. import org.bukkit.plugin.PluginManager;
  36. import org.bukkit.plugin.RegisteredServiceProvider;
  37. import org.bukkit.plugin.ServicesManager;
  38. import org.bukkit.plugin.java.JavaPlugin;
  39.  
  40. public class Main
  41. extends JavaPlugin
  42. implements Listener
  43. {
  44. private Economy econ;
  45.  
  46. public void onEnable()
  47. {
  48. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(Economy.class);
  49. if (economyProvider != null) {
  50. this.econ = ((Economy)economyProvider.getProvider());
  51. }
  52. Bukkit.getPluginManager().registerEvents(this, this);
  53.  
  54. 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.");
  55.  
  56. getConfig().options().copyDefaults(true);
  57. saveConfig();
  58.  
  59. File f = new File(getDataFolder() + File.separator + "users");
  60. if (!f.exists()) {
  61. f.mkdir();
  62. }
  63. }
  64.  
  65. @EventHandler
  66. public void onPlayerJoin(PlayerJoinEvent e)
  67. throws IOException
  68. {
  69. File file = new File(getDataFolder() + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
  70. if (!file.exists())
  71. {
  72. file.createNewFile();
  73. FileConfiguration config = YamlConfiguration.loadConfiguration(file);
  74.  
  75. config.set("blockcount", Integer.valueOf(0));
  76. config.save(file);
  77. }
  78. }
  79.  
  80. @EventHandler
  81. public void onBlockBreak(BlockBreakEvent e)
  82. throws IOException
  83. {
  84. File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
  85.  
  86. FileConfiguration config = YamlConfiguration.loadConfiguration(file);
  87.  
  88. config.set("blockcount", Integer.valueOf(config.getInt("blockcount") + 1));
  89. config.save(file);
  90. if (config.getInt("blockcount") == getConfig().getInt("rewards.amount"))
  91. {
  92. Firework f = (Firework)e.getPlayer().getWorld().spawn(e.getPlayer().getLocation(), Firework.class);
  93. FireworkMeta fm = f.getFireworkMeta();
  94. fm.addEffect(FireworkEffect.builder().flicker(true).trail(true).withColor(Color.BLUE).with(FireworkEffect.Type.BALL).withFade(Color.RED).build());
  95. fm.setPower(1);
  96. f.setFireworkMeta(fm);
  97.  
  98. String milestoneMessage = getConfig().getString("milestone-message");
  99. milestoneMessage = ChatColor.translateAlternateColorCodes('&', milestoneMessage);
  100. milestoneMessage = milestoneMessage.replace("%blockcount%", String.valueOf(config.getInt("blockcount")));
  101. if (getConfig().getBoolean("broadcast"))
  102. {
  103. String format = getConfig().getString("broadcast-prefix");
  104. format = ChatColor.translateAlternateColorCodes('&', format);
  105. Bukkit.broadcastMessage(format + " " + milestoneMessage);
  106. }
  107. else
  108. {
  109. e.getPlayer().sendMessage(milestoneMessage);
  110. }
  111. this.econ.depositPlayer(e.getPlayer(), getConfig().getInt("rewards.money"));
  112. if ((getConfig().getInt("rewards.item") != 0) && (getConfig().getInt("rewards.item_amount") != 0))
  113. {
  114. ItemStack is = new ItemStack(getConfig().getInt("rewards.item"), getConfig().getInt("rewards.item_amount"));
  115. ItemMeta im = is.getItemMeta();
  116. String item_name = getConfig().getString("rewards.item_name");
  117. item_name = ChatColor.translateAlternateColorCodes('&', item_name);
  118.  
  119. im.setDisplayName(item_name);
  120.  
  121. List<String> lore = getConfig().getStringList("rewards.item_lore");
  122. List<String> coloredLore = new ArrayList();
  123. for (String s : lore) {
  124. coloredLore.add(ChatColor.translateAlternateColorCodes('&', s));
  125. }
  126. List<String> enchantments = getConfig().getStringList("rewards.item-enchantments");
  127. for (String s : enchantments)
  128. {
  129. String[] parts = s.split(":");
  130. im.addEnchant(Enchantment.getByName(parts[0]), Integer.parseInt(parts[1]), true);
  131. }
  132. im.setLore(coloredLore);
  133. is.setItemMeta(im);
  134. e.getPlayer().getInventory().addItem(new ItemStack[] { is });
  135. }
  136. }
  137. }
  138.  
  139. @EventHandler
  140. public void onPlayerChat(AsyncPlayerChatEvent e)
  141. {
  142. File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + e.getPlayer().getName() + ".yml");
  143.  
  144. FileConfiguration config = YamlConfiguration.loadConfiguration(file);
  145.  
  146. String format = getConfig().getString("format");
  147. format = ChatColor.translateAlternateColorCodes('&', format);
  148.  
  149. format = format.replace("%blockcount%", String.valueOf(config.getInt("blockcount")));
  150.  
  151. e.setFormat(format + " %s: %s");
  152. }
  153.  
  154. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  155. {
  156. Player p = (Player)sender;
  157.  
  158. File file = new File("plugins" + File.separator + "BlockCount" + File.separator + "users" + File.separator + p.getName() + ".yml");
  159. FileConfiguration config = YamlConfiguration.loadConfiguration(file);
  160.  
  161.  
  162. File[] allFiles = new File("plugins" + File.separator + "BlockCount" + File.separator + "users").listFiles();
  163.  
  164. TreeMap<String, Integer> blockcounts = new TreeMap(Collections.reverseOrder());
  165. for (File f : allFiles)
  166. {
  167. FileConfiguration c = YamlConfiguration.loadConfiguration(f);
  168. String playerName = f.getName().replace(".yml", "");
  169. blockcounts.put(playerName, Integer.valueOf(c.getInt("blockcount")));
  170. }
  171. if ((cmd.getName().equalsIgnoreCase("bc")) && ((sender instanceof Player)))
  172. {
  173. p.sendMessage(ChatColor.GREEN + "Block Balance: " + ChatColor.WHITE + config.getInt("blockcount"));
  174. }
  175. else if ((cmd.getName().equalsIgnoreCase("bctop")) && ((sender instanceof Player)))
  176. {
  177. p.sendMessage("---------------" + ChatColor.AQUA + "[" + ChatColor.GREEN + "Top Block Breakers" + ChatColor.AQUA + "]" + ChatColor.WHITE + "---------------");
  178. if (allFiles.length > 9) {
  179. for (int i = 0; i < 10; i++) {
  180. p.sendMessage(ChatColor.AQUA + (i + 1) + ". " + ChatColor.GREEN + blockcounts.keySet().toArray()[i] + ChatColor.AQUA + " - " + ChatColor.GREEN + blockcounts.get(blockcounts.keySet().toArray()[i]));
  181. }
  182. } else {
  183. for (int i = 0; i < allFiles.length; i++) {
  184. p.sendMessage(ChatColor.AQUA + (i + 1) + ". " + ChatColor.GREEN + blockcounts.keySet().toArray()[i] + ChatColor.AQUA + " - " + ChatColor.GREEN + blockcounts.get(blockcounts.keySet().toArray()[i]));
  185. }
  186. }
  187. }
  188. return false;
  189. }
  190. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement