// 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;
//     }
// }


import wecui.WorldEditCUI;
package wecui.event.cui;


/**
 * Base event for CUI events, handles parameter validation and running the logic
 * 
 * @author yetanotherx
 * 
 */
public abstract class CUIBaseEvent {

    protected WorldEditCUI controller;
    protected String[] args;

// 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/cui/CUIBaseEvent.java
import wecui.WorldEditCUI;

package wecui.event.cui;


/**
 * Base event for CUI events, handles parameter validation and running the logic
 * 
 * @author yetanotherx
 * 
 */
public abstract class CUIBaseEvent {

    protected WorldEditCUI controller;
    protected String[] args;

    public CUIBaseEvent(WorldEditCUI controller, String[] args) {