Advertisement
Guest User

Untitled

a guest
May 28th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.57 KB | None | 0 0
  1. package me.sainttx;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import net.ess3.api.events.UserBalanceUpdateEvent;
  6. import net.milkbowl.vault.economy.Economy;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandSender;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.plugin.RegisteredServiceProvider;
  16. import org.bukkit.plugin.java.JavaPlugin;
  17.  
  18. public class CoinMultiplier extends JavaPlugin implements Listener {
  19.  
  20. private static Economy economy;
  21. private boolean disable = false; // Disables x3, x4, x5, x6
  22.  
  23. @Override
  24. public void onEnable() {
  25. saveDefaultConfig();
  26. economy();
  27. Bukkit.getPluginManager().registerEvents(this, this);
  28. getCommand("coin").setExecutor(this);
  29. }
  30.  
  31. private boolean economy() {
  32. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
  33. if (economyProvider != null) {
  34. economy = economyProvider.getProvider();
  35. }
  36. return (economy != null);
  37. }
  38.  
  39. private static ArrayList<String> justChanged = new ArrayList<String>();
  40.  
  41. @EventHandler
  42. public void onBalanceUpdate(UserBalanceUpdateEvent event) {
  43. final Player player = event.getPlayer();
  44. double newBalance = event.getNewBalance().doubleValue();
  45. double oldBalance = event.getOldBalance().doubleValue();
  46. final double difference = newBalance - oldBalance;
  47. final int multiplier = multiplier(player);
  48. if (difference < 0 || multiplier == 0 || disable || justChanged.contains(player.getName())) {
  49. return;
  50. }
  51. justChanged.add(player.getName());
  52.  
  53. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { // wait so that list will update
  54. @Override
  55. public void run() {
  56. economy.depositPlayer(player.getName(), (difference * multiplier) - difference);
  57. if (getConfig().getBoolean("tell-player-bonus")) {
  58. sendText((CommandSender) player, getConfig().getString("messages.tell-player-bonus").replaceAll("%n", Double.toString((difference * multiplier) - difference)), false);
  59. }
  60. }
  61. }, 5L);
  62.  
  63. Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
  64. @Override
  65. public void run() {
  66. justChanged.remove(player.getName());
  67. }
  68. }, 20L);
  69. }
  70.  
  71. private int multiplier(Player player) {
  72. for (int i = 2; i <= 6; i++) {
  73. if (player.hasPermission("coin.x" + i)) {
  74. return i;
  75. }
  76. }
  77. return 0;
  78. }
  79.  
  80. private void sendMenu(CommandSender sender) {
  81. for (String text : getConfig().getStringList("messages.menu")) {
  82. sendText(sender, text, false);
  83. }
  84. }
  85.  
  86. private void sendText(CommandSender sender, String text, boolean configentry) {
  87. if (configentry) {
  88. sender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages." + text)));
  89. } else {
  90. sender.sendMessage(ChatColor.translateAlternateColorCodes('&', text));
  91. }
  92. }
  93.  
  94. @Override
  95. public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  96. if (args.length == 0) {
  97. sendMenu(sender);
  98. } else {
  99. String arg = args[0].toLowerCase();
  100. if (!sender.hasPermission("coin." + arg) && !sender.isOp()) {
  101. sendText(sender, "permission", true);
  102. return false;
  103. }
  104. if (arg.equals("enable")) {
  105. if (disable) {
  106. disable = false;
  107. sendText(sender, "enable", true);
  108. } else {
  109. sendText(sender, "enable2", true);
  110. }
  111. } else if (arg.equals("disable")) { // disable x3/4/5/6
  112. if (!disable) {
  113. disable = true;
  114. sendText(sender, "disable", true);
  115. } else {
  116. sendText(sender, "disable2", true);
  117. }
  118. } else if (arg.equals("reload")) {
  119. reloadConfig();
  120. sendText(sender, "reload", true);
  121. } else {
  122. sendMenu(sender);
  123. }
  124. }
  125. return false;
  126. }
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement