// Path: src/net/diecode/killermoney/enums/KMPermission.java
// public enum KMPermission {
// 
//     ADMIN("admin"),
//     MONEY_MULTIPLIER("money.multiplier"),
// 
//     LIMIT_MONEY_MULTIPLIER("moneylimit.multiplier"),
//     //LIMIT_ITEM_MULTIPLIER("itemlimit.multiplier"),
//     //LIMIT_COMMAND_MULTIPLIER("commandlimit.multiplier"),
// 
//     BYPASS_MONEY_LIMIT("bypass.moneylimit"),
//     BYPASS_ITEM_LIMIT("bypass.itemlimit"),
//     BYPASS_COMMAND_LIMIT("bypass.commandlimit"),
//     BYPASS_MONEY_LIMIT_CASH_TRANSFER("bypass.cashtransferlimit");
// 
//     private String perm;
// 
//     KMPermission(String perm) {
//         this.perm = perm;
//     }
// 
//     public String get() {
//         return "km." + perm;
//     }
// 
// }
// 
// Path: src/net/diecode/killermoney/enums/RunMethod.java
// public enum RunMethod {
// 
//     ALL, RANDOM
// 
// }
// 
// Path: src/net/diecode/killermoney/events/KMCCommandExecutionEvent.java
// public class KMCCommandExecutionEvent extends Event implements Cancellable {
// 
//     private static final HandlerList handlers = new HandlerList();
// 
//     private CCommand cCommand;
//     private Player killer;
//     private LivingEntity victim;
//     private boolean cancelled;
// 
//     public KMCCommandExecutionEvent(CCommand cCommand, Player killer, LivingEntity victim) {
//         this.cCommand = cCommand;
//         this.killer = killer;
//         this.victim = victim;
//     }
// 
//     public HandlerList getHandlers() {
//         return handlers;
//     }
// 
//     public static HandlerList getHandlerList() {
//         return handlers;
//     }
// 
//     public CCommand getCCommand() {
//         return cCommand;
//     }
// 
//     public Player getKiller() {
//         return killer;
//     }
// 
//     public LivingEntity getVictim() {
//         return victim;
//     }
// 
//     @Override
//     public boolean isCancelled() {
//         return cancelled;
//     }
// 
//     @Override
//     public void setCancelled(boolean cancelled) {
//         this.cancelled = cancelled;
//     }
// }
// 
// Path: src/net/diecode/killermoney/objects/CCommand.java
// public class CCommand {
// 
//     private String command;
//     private String permission;
//     private double chance;
//     private int limit;
//     private HashMap<UUID, Integer> limitCounter = new HashMap<UUID, Integer>();
// 
//     public CCommand(String command, String permission, double chance, int limit) {
//         this.command = command;
//         this.permission = permission;
//         this.chance = chance;
//         this.limit = limit;
//     }
// 
//     public String getCommand() {
//         return command;
//     }
// 
//     public String getPermission() {
//         return permission;
//     }
// 
//     public double getChance() {
//         return chance;
//     }
// 
//     public int getLimit() {
//         return limit;
//     }
// 
//     public boolean chanceGen() {
//         return Utils.chanceGenerator(this.chance);
//     }
// 
//     public HashMap<UUID, Integer> getLimitCounter() {
//         return limitCounter;
//     }
// 
//     public boolean isReachedLimit(UUID uuid) {
//         if (limit < 1) {
//             return false;
//         }
// 
//         if (limitCounter.containsKey(uuid)) {
//             int current = limitCounter.get(uuid);
// 
//             if (current >= limit) {
//                 return true;
//             }
//         }
// 
//         return false;
//     }
// 
//     public void increaseLimitCounter(UUID uuid) {
//         if (limit == 0) {
//             return;
//         }
// 
//         if (limitCounter.containsKey(uuid)) {
//             int current = limitCounter.get(uuid);
// 
//             limitCounter.put(uuid, current + 1);
//         } else {
//             limitCounter.put(uuid, 1);
//         }
//     }
// 
//     public int getCurrentLimitValue(UUID uuid) {
//         if (limitCounter.containsKey(uuid)) {
//             return limitCounter.get(uuid);
//         }
// 
//         return 0;
//     }
// }
// 
// Path: src/net/diecode/killermoney/objects/CCommandProperties.java
// public class CCommandProperties {
// 
//     private RunMethod runMethod;
//     private ArrayList<CCommand> cCommands;
//     private boolean enabled;
// 
//     public CCommandProperties(RunMethod runMethod, ArrayList<CCommand> cCommands, boolean enabled) {
//         this.runMethod = runMethod;
//         this.cCommands = cCommands;
//         this.enabled = enabled;
//     }
// 
//     public RunMethod getRunMethod() {
//         return runMethod;
//     }
// 
//     public ArrayList<CCommand> getCCommands() {
//         return cCommands;
//     }
// 
//     public boolean isEnabled() {
//         return enabled;
//     }
// }


import net.diecode.killermoney.enums.KMPermission;
import net.diecode.killermoney.enums.RunMethod;
import net.diecode.killermoney.events.KMCCommandExecutionEvent;
import net.diecode.killermoney.objects.CCommand;
import net.diecode.killermoney.objects.CCommandProperties;
import org.bukkit.Bukkit;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.Random;
package net.diecode.killermoney.functions;



public class CCommandHandler implements Listener {

    @EventHandler (priority = EventPriority.LOW)
// Path: src/net/diecode/killermoney/enums/KMPermission.java
// public enum KMPermission {
// 
//     ADMIN("admin"),
//     MONEY_MULTIPLIER("money.multiplier"),
// 
//     LIMIT_MONEY_MULTIPLIER("moneylimit.multiplier"),
//     //LIMIT_ITEM_MULTIPLIER("itemlimit.multiplier"),
//     //LIMIT_COMMAND_MULTIPLIER("commandlimit.multiplier"),
// 
//     BYPASS_MONEY_LIMIT("bypass.moneylimit"),
//     BYPASS_ITEM_LIMIT("bypass.itemlimit"),
//     BYPASS_COMMAND_LIMIT("bypass.commandlimit"),
//     BYPASS_MONEY_LIMIT_CASH_TRANSFER("bypass.cashtransferlimit");
// 
//     private String perm;
// 
//     KMPermission(String perm) {
//         this.perm = perm;
//     }
// 
//     public String get() {
//         return "km." + perm;
//     }
// 
// }
// 
// Path: src/net/diecode/killermoney/enums/RunMethod.java
// public enum RunMethod {
// 
//     ALL, RANDOM
// 
// }
// 
// Path: src/net/diecode/killermoney/events/KMCCommandExecutionEvent.java
// public class KMCCommandExecutionEvent extends Event implements Cancellable {
// 
//     private static final HandlerList handlers = new HandlerList();
// 
//     private CCommand cCommand;
//     private Player killer;
//     private LivingEntity victim;
//     private boolean cancelled;
// 
//     public KMCCommandExecutionEvent(CCommand cCommand, Player killer, LivingEntity victim) {
//         this.cCommand = cCommand;
//         this.killer = killer;
//         this.victim = victim;
//     }
// 
//     public HandlerList getHandlers() {
//         return handlers;
//     }
// 
//     public static HandlerList getHandlerList() {
//         return handlers;
//     }
// 
//     public CCommand getCCommand() {
//         return cCommand;
//     }
// 
//     public Player getKiller() {
//         return killer;
//     }
// 
//     public LivingEntity getVictim() {
//         return victim;
//     }
// 
//     @Override
//     public boolean isCancelled() {
//         return cancelled;
//     }
// 
//     @Override
//     public void setCancelled(boolean cancelled) {
//         this.cancelled = cancelled;
//     }
// }
// 
// Path: src/net/diecode/killermoney/objects/CCommand.java
// public class CCommand {
// 
//     private String command;
//     private String permission;
//     private double chance;
//     private int limit;
//     private HashMap<UUID, Integer> limitCounter = new HashMap<UUID, Integer>();
// 
//     public CCommand(String command, String permission, double chance, int limit) {
//         this.command = command;
//         this.permission = permission;
//         this.chance = chance;
//         this.limit = limit;
//     }
// 
//     public String getCommand() {
//         return command;
//     }
// 
//     public String getPermission() {
//         return permission;
//     }
// 
//     public double getChance() {
//         return chance;
//     }
// 
//     public int getLimit() {
//         return limit;
//     }
// 
//     public boolean chanceGen() {
//         return Utils.chanceGenerator(this.chance);
//     }
// 
//     public HashMap<UUID, Integer> getLimitCounter() {
//         return limitCounter;
//     }
// 
//     public boolean isReachedLimit(UUID uuid) {
//         if (limit < 1) {
//             return false;
//         }
// 
//         if (limitCounter.containsKey(uuid)) {
//             int current = limitCounter.get(uuid);
// 
//             if (current >= limit) {
//                 return true;
//             }
//         }
// 
//         return false;
//     }
// 
//     public void increaseLimitCounter(UUID uuid) {
//         if (limit == 0) {
//             return;
//         }
// 
//         if (limitCounter.containsKey(uuid)) {
//             int current = limitCounter.get(uuid);
// 
//             limitCounter.put(uuid, current + 1);
//         } else {
//             limitCounter.put(uuid, 1);
//         }
//     }
// 
//     public int getCurrentLimitValue(UUID uuid) {
//         if (limitCounter.containsKey(uuid)) {
//             return limitCounter.get(uuid);
//         }
// 
//         return 0;
//     }
// }
// 
// Path: src/net/diecode/killermoney/objects/CCommandProperties.java
// public class CCommandProperties {
// 
//     private RunMethod runMethod;
//     private ArrayList<CCommand> cCommands;
//     private boolean enabled;
// 
//     public CCommandProperties(RunMethod runMethod, ArrayList<CCommand> cCommands, boolean enabled) {
//         this.runMethod = runMethod;
//         this.cCommands = cCommands;
//         this.enabled = enabled;
//     }
// 
//     public RunMethod getRunMethod() {
//         return runMethod;
//     }
// 
//     public ArrayList<CCommand> getCCommands() {
//         return cCommands;
//     }
// 
//     public boolean isEnabled() {
//         return enabled;
//     }
// }


// Path: src/net/diecode/killermoney/functions/CCommandHandler.java
import net.diecode.killermoney.enums.KMPermission;
import net.diecode.killermoney.enums.RunMethod;
import net.diecode.killermoney.events.KMCCommandExecutionEvent;
import net.diecode.killermoney.objects.CCommand;
import net.diecode.killermoney.objects.CCommandProperties;
import org.bukkit.Bukkit;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.ArrayList;
import java.util.Random;

package net.diecode.killermoney.functions;



public class CCommandHandler implements Listener {

    @EventHandler (priority = EventPriority.LOW)
    public void onCustomCommand(KMCCommandExecutionEvent e) {