@@ -0,0 +1,638 @@
+package de.skuzzle.jeve;%0A%0Aimport java.util.Optional;%0A%0Apublic class HandleableEvent%3CS, L extends Listener, O%3E extends Event%3CS, L%3E %7B%0A%0A    private O reason;%0A%0A    public HandlableEvent(S source, Class%3CL%3E listenerClass) %7B%0A        super(source, listenerClass);%0A    %7D%0A    %0A    public void setHandledWithReason(O reason) %7B%0A        setHandled(true);%0A        this.reason = reason;%0A    %7D%0A    %0A    @Override%0A    public void setHandled(boolean handled) %7B%0A        if (!handled) %7B%0A            reason = null;%0A        %7D%0A        super.setHandled(handled);%0A    %7D%0A    %0A    public Optional%3CO%3E getReason() %7B%0A        return Optional.ofNullable(reason);%0A    %7D%0A%7D%0A

Create HandleableEvent.java