package wecui.event; import wecui.util.Utilities; import wecui.fevents.Event; import wecui.fevents.HandlerList; import wecui.WorldEditCUI; /** * CUI communication event * Called when a CUI event is sent from the server. * * @author lahwran * @author yetanotherx * */ 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; } }