// Path: src/main/java/wecui/WorldEditCUI.java
// public class WorldEditCUI {
// 
//     public static final String VERSION = "1.4.5";
//     public static final String MCVERSION = "1.4.5";
//     public static final int protocolVersion = 2;
//     protected Minecraft minecraft;
//     protected EventManager eventManager;
//     protected Obfuscation obfuscation;
//     protected BaseRegion selection;
//     protected CUIDebug debugger;
//     protected CUIConfiguration configuration;
//     //protected LocalPlugin localPlugin;
// 
//     public WorldEditCUI(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public void initialize() {
//         this.eventManager = new EventManager(this);
//         this.obfuscation = new Obfuscation(this);
//         this.selection = new CuboidRegion(this);
//         this.configuration = new CUIConfiguration(this);
//         this.debugger = new CUIDebug(this);
//         //this.localPlugin = new LocalPlugin(this);
// 
//         try {
//             this.eventManager.initialize();
//             this.obfuscation.initialize();
//             this.selection.initialize();
//             this.configuration.initialize();
//             this.debugger.initialize();
//             //this.localPlugin.initialize();
//         } catch (InitializationException e) {
//             e.printStackTrace();
//             return;
//         }
// 
//         this.registerListeners();
//     }
// 
//     protected void registerListeners() {
//         CUIEvent.handlers.register(new CUIListener(this), Order.Default);
//         ChannelEvent.handlers.register(new ChannelListener(this), Order.Default);
//         WorldRenderEvent.handlers.register(new WorldRenderListener(this), Order.Default);
// 
//         WorldEditCommandListener commListener = new WorldEditCommandListener(this);
//         ChatCommandEvent.getHandlers("worldedit").register(commListener, Order.Default);
//         ChatCommandEvent.getHandlers("we").register(commListener, Order.Default);
//     }
// 
//     public CUIConfiguration getConfiguration() {
//         return configuration;
//     }
// 
//     public void setConfiguration(CUIConfiguration configuration) {
//         this.configuration = configuration;
//     }
// 
//     public CUIDebug getDebugger() {
//         return debugger;
//     }
// 
//     public void setDebugger(CUIDebug debugger) {
//         this.debugger = debugger;
//     }
// 
//     public EventManager getEventManager() {
//         return eventManager;
//     }
// 
//     public void setEventManager(EventManager eventManager) {
//         this.eventManager = eventManager;
//     }
// 
//     /*public LocalPlugin getLocalPlugin() {
//         return localPlugin;
//     }
// 
//     public void setLocalPlugin(LocalPlugin localPlugin) {
//         this.localPlugin = localPlugin;
//     }*/
// 
//     public Minecraft getMinecraft() {
//         return minecraft;
//     }
// 
//     public void setMinecraft(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public Obfuscation getObfuscation() {
//         return obfuscation;
//     }
// 
//     public void setObfuscation(Obfuscation obfuscation) {
//         this.obfuscation = obfuscation;
//     }
// 
//     public BaseRegion getSelection() {
//         return selection;
//     }
// 
//     public void setSelection(BaseRegion selection) {
//         this.selection = selection;
//     }
// 
//     public static String getVersion() {
//         return VERSION + " for Minecraft version " + MCVERSION;
//     }
// }
// 
// Path: src/main/java/wecui/event/CUIEvent.java
// public class CUIEvent extends Event<CUIEvent> {
// 
//     protected WorldEditCUI controller;
//     protected String type;
//     protected String[] params;
//     protected boolean handled = false;
//     public static final HandlerList<CUIEvent> handlers = new HandlerList<CUIEvent>();
// 
//     public CUIEvent(WorldEditCUI controller, String type, String[] params) {
//         this.controller = controller;
//         this.type = type;
// 
//         //"".split("[|]") returns String[] {""} for some reason,  instead of String[] {}.
//         if (params.length == 1 && params[0].length() == 0) {
//             params = new String[]{};
//         }
// 
//         this.params = params;
//         this.controller.getDebugger().debug("CUI Event (" + type + ") - Params: " + Utilities.join(params, ", "));
// 
//     }
// 
//     @Override
//     protected String getEventName() {
//         return "CUIEvent";
//     }
// 
//     @Override
//     protected HandlerList<CUIEvent> getHandlers() {
//         return handlers;
//     }
// 
//     public void setHandled(boolean handled) {
//         this.handled = handled;
//     }
// 
//     /**
//      * Called upon receiving an invalid event.
//      * Debugs an error message and handles the event.
//      * 
//      * @param reason Error message
//      */
//     public void markInvalid(String reason) {
//         this.controller.getDebugger().debug("INVALID WECUIEvent " + type + " - " + Utilities.join(params, "|") + " - Reason: " + reason);
//         setHandled(true);
//     }
// 
//     public int getInt(int index) {
//         return (int) Float.parseFloat(params[index]);
//     }
// 
//     public String getString(int index) {
//         return params[index];
//     }
// 
//     public boolean isHandled() {
//         return handled;
//     }
// 
//     public boolean isCancelled() {
//         return isHandled();
//     }
// 
//     public String[] getParams() {
//         return params;
//     }
// 
//     public String getType() {
//         return type;
//     }
// }


import wecui.WorldEditCUI;
import wecui.event.CUIEvent;
package deobf;


/**
 * Main SinglePlayerCommands class
 * 
 * @author lahwran
 * @author yetanotherx
 * 
 */
public class spc_WorldEditCUI extends SPCPlugin {

    protected WorldEditCUI controller;

    public spc_WorldEditCUI(WorldEditCUI controller) {
        this.controller = controller;
    }

    @Override
    public String getVersion() {
        return WorldEditCUI.getVersion();
    }

    @Override
    public String getName() {
        return "WorldEditCUI";
    }

    @Override
    public void handleCUIEvent(String type, String params[]) {
        if (controller != null) {
// Path: src/main/java/wecui/WorldEditCUI.java
// public class WorldEditCUI {
// 
//     public static final String VERSION = "1.4.5";
//     public static final String MCVERSION = "1.4.5";
//     public static final int protocolVersion = 2;
//     protected Minecraft minecraft;
//     protected EventManager eventManager;
//     protected Obfuscation obfuscation;
//     protected BaseRegion selection;
//     protected CUIDebug debugger;
//     protected CUIConfiguration configuration;
//     //protected LocalPlugin localPlugin;
// 
//     public WorldEditCUI(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public void initialize() {
//         this.eventManager = new EventManager(this);
//         this.obfuscation = new Obfuscation(this);
//         this.selection = new CuboidRegion(this);
//         this.configuration = new CUIConfiguration(this);
//         this.debugger = new CUIDebug(this);
//         //this.localPlugin = new LocalPlugin(this);
// 
//         try {
//             this.eventManager.initialize();
//             this.obfuscation.initialize();
//             this.selection.initialize();
//             this.configuration.initialize();
//             this.debugger.initialize();
//             //this.localPlugin.initialize();
//         } catch (InitializationException e) {
//             e.printStackTrace();
//             return;
//         }
// 
//         this.registerListeners();
//     }
// 
//     protected void registerListeners() {
//         CUIEvent.handlers.register(new CUIListener(this), Order.Default);
//         ChannelEvent.handlers.register(new ChannelListener(this), Order.Default);
//         WorldRenderEvent.handlers.register(new WorldRenderListener(this), Order.Default);
// 
//         WorldEditCommandListener commListener = new WorldEditCommandListener(this);
//         ChatCommandEvent.getHandlers("worldedit").register(commListener, Order.Default);
//         ChatCommandEvent.getHandlers("we").register(commListener, Order.Default);
//     }
// 
//     public CUIConfiguration getConfiguration() {
//         return configuration;
//     }
// 
//     public void setConfiguration(CUIConfiguration configuration) {
//         this.configuration = configuration;
//     }
// 
//     public CUIDebug getDebugger() {
//         return debugger;
//     }
// 
//     public void setDebugger(CUIDebug debugger) {
//         this.debugger = debugger;
//     }
// 
//     public EventManager getEventManager() {
//         return eventManager;
//     }
// 
//     public void setEventManager(EventManager eventManager) {
//         this.eventManager = eventManager;
//     }
// 
//     /*public LocalPlugin getLocalPlugin() {
//         return localPlugin;
//     }
// 
//     public void setLocalPlugin(LocalPlugin localPlugin) {
//         this.localPlugin = localPlugin;
//     }*/
// 
//     public Minecraft getMinecraft() {
//         return minecraft;
//     }
// 
//     public void setMinecraft(Minecraft minecraft) {
//         this.minecraft = minecraft;
//     }
// 
//     public Obfuscation getObfuscation() {
//         return obfuscation;
//     }
// 
//     public void setObfuscation(Obfuscation obfuscation) {
//         this.obfuscation = obfuscation;
//     }
// 
//     public BaseRegion getSelection() {
//         return selection;
//     }
// 
//     public void setSelection(BaseRegion selection) {
//         this.selection = selection;
//     }
// 
//     public static String getVersion() {
//         return VERSION + " for Minecraft version " + MCVERSION;
//     }
// }
// 
// Path: src/main/java/wecui/event/CUIEvent.java
// public class CUIEvent extends Event<CUIEvent> {
// 
//     protected WorldEditCUI controller;
//     protected String type;
//     protected String[] params;
//     protected boolean handled = false;
//     public static final HandlerList<CUIEvent> handlers = new HandlerList<CUIEvent>();
// 
//     public CUIEvent(WorldEditCUI controller, String type, String[] params) {
//         this.controller = controller;
//         this.type = type;
// 
//         //"".split("[|]") returns String[] {""} for some reason,  instead of String[] {}.
//         if (params.length == 1 && params[0].length() == 0) {
//             params = new String[]{};
//         }
// 
//         this.params = params;
//         this.controller.getDebugger().debug("CUI Event (" + type + ") - Params: " + Utilities.join(params, ", "));
// 
//     }
// 
//     @Override
//     protected String getEventName() {
//         return "CUIEvent";
//     }
// 
//     @Override
//     protected HandlerList<CUIEvent> getHandlers() {
//         return handlers;
//     }
// 
//     public void setHandled(boolean handled) {
//         this.handled = handled;
//     }
// 
//     /**
//      * Called upon receiving an invalid event.
//      * Debugs an error message and handles the event.
//      * 
//      * @param reason Error message
//      */
//     public void markInvalid(String reason) {
//         this.controller.getDebugger().debug("INVALID WECUIEvent " + type + " - " + Utilities.join(params, "|") + " - Reason: " + reason);
//         setHandled(true);
//     }
// 
//     public int getInt(int index) {
//         return (int) Float.parseFloat(params[index]);
//     }
// 
//     public String getString(int index) {
//         return params[index];
//     }
// 
//     public boolean isHandled() {
//         return handled;
//     }
// 
//     public boolean isCancelled() {
//         return isHandled();
//     }
// 
//     public String[] getParams() {
//         return params;
//     }
// 
//     public String getType() {
//         return type;
//     }
// }


// Path: src/main/java/deobf/spc_WorldEditCUI.java
import wecui.WorldEditCUI;
import wecui.event.CUIEvent;

package deobf;


/**
 * Main SinglePlayerCommands class
 * 
 * @author lahwran
 * @author yetanotherx
 * 
 */
public class spc_WorldEditCUI extends SPCPlugin {

    protected WorldEditCUI controller;

    public spc_WorldEditCUI(WorldEditCUI controller) {
        this.controller = controller;
    }

    @Override
    public String getVersion() {
        return WorldEditCUI.getVersion();
    }

    @Override
    public String getName() {
        return "WorldEditCUI";
    }

    @Override
    public void handleCUIEvent(String type, String params[]) {
        if (controller != null) {
            controller.getEventManager().callEvent(new CUIEvent(controller, type, params));