Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.sainttx;
- import java.util.ArrayList;
- import net.ess3.api.events.UserBalanceUpdateEvent;
- import net.milkbowl.vault.economy.Economy;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- 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.plugin.RegisteredServiceProvider;
- import org.bukkit.plugin.java.JavaPlugin;
- public class CoinMultiplier extends JavaPlugin implements Listener {
- private static Economy economy;
- private boolean disable = false; // Disables x3, x4, x5, x6
- @Override
- public void onEnable() {
- saveDefaultConfig();
- economy();
- Bukkit.getPluginManager().registerEvents(this, this);
- getCommand("coin").setExecutor(this);
- }
- private boolean economy() {
- RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
- if (economyProvider != null) {
- economy = economyProvider.getProvider();
- }
- return (economy != null);
- }
- private static ArrayList<String> justChanged = new ArrayList<String>();
- @EventHandler
- public void onBalanceUpdate(UserBalanceUpdateEvent event) {
- final Player player = event.getPlayer();
- double newBalance = event.getNewBalance().doubleValue();
- double oldBalance = event.getOldBalance().doubleValue();
- final double difference = newBalance - oldBalance;
- final int multiplier = multiplier(player);
- if (difference < 0 || multiplier == 0 || disable || justChanged.contains(player.getName())) {
- return;
- }
- justChanged.add(player.getName());
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() { // wait so that list will update
- @Override
- public void run() {
- economy.depositPlayer(player.getName(), (difference * multiplier) - difference);
- if (getConfig().getBoolean("tell-player-bonus")) {
- sendText((CommandSender) player, getConfig().getString("messages.tell-player-bonus").replaceAll("%n", Double.toString((difference * multiplier) - difference)), false);
- }
- }
- }, 5L);
- Bukkit.getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
- @Override
- public void run() {
- justChanged.remove(player.getName());
- }
- }, 20L);
- }
- private int multiplier(Player player) {
- for (int i = 2; i <= 6; i++) {
- if (player.hasPermission("coin.x" + i)) {
- return i;
- }
- }
- return 0;
- }
- private void sendMenu(CommandSender sender) {
- for (String text : getConfig().getStringList("messages.menu")) {
- sendText(sender, text, false);
- }
- }
- private void sendText(CommandSender sender, String text, boolean configentry) {
- if (configentry) {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("messages." + text)));
- } else {
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', text));
- }
- }
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (args.length == 0) {
- sendMenu(sender);
- } else {
- String arg = args[0].toLowerCase();
- if (!sender.hasPermission("coin." + arg) && !sender.isOp()) {
- sendText(sender, "permission", true);
- return false;
- }
- if (arg.equals("enable")) {
- if (disable) {
- disable = false;
- sendText(sender, "enable", true);
- } else {
- sendText(sender, "enable2", true);
- }
- } else if (arg.equals("disable")) { // disable x3/4/5/6
- if (!disable) {
- disable = true;
- sendText(sender, "disable", true);
- } else {
- sendText(sender, "disable2", true);
- }
- } else if (arg.equals("reload")) {
- reloadConfig();
- sendText(sender, "reload", true);
- } else {
- sendMenu(sender);
- }
- }
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement