@@ -0,0 +1,2146 @@
+/*%0A * The MIT License%0A *%0A * Copyright (c) 2016 Marcelo %22Ataxexe%22 Guimar%C3%A3es %3Cataxexe@devnull.tools%3E%0A *%0A * Permission  is hereby granted, free of charge, to any person obtaining%0A * a  copy  of  this  software  and  associated  documentation files (the%0A * %22Software%22),  to  deal  in the Software without restriction, including%0A * without  limitation  the  rights to use, copy, modify, merge, publish,%0A * distribute,  sublicense,  and/or  sell  copies of the Software, and to%0A * permit  persons to whom the Software is furnished to do so, subject to%0A * the following conditions:%0A * The  above  copyright  notice  and  this  permission  notice  shall be%0A * included  in  all  copies  or  substantial  portions  of the Software.%0A *%0A * THE  SOFTWARE  IS  PROVIDED  %22AS  IS%22,  WITHOUT  WARRANTY OF ANY KIND,%0A * EXPRESS  OR  IMPLIED,  INCLUDING  BUT NOT LIMITED TO THE WARRANTIES OF%0A * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.%0A * IN  NO  EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY%0A * CLAIM,  DAMAGES  OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,%0A * TORT  OR  OTHERWISE,  ARISING  FROM,  OUT OF OR IN CONNECTION WITH THE%0A * SOFTWARE   OR   THE   USE   OR   OTHER   DEALINGS  IN  THE  SOFTWARE.%0A */%0A%0Apackage tools.devnull.boteco.plugins.subscription;%0A%0Aimport tools.devnull.boteco.plugin.Command;%0Aimport tools.devnull.boteco.plugin.Plugin;%0A%0Aimport java.util.Arrays;%0Aimport java.util.List;%0A%0Aimport static tools.devnull.boteco.plugin.Command.command;%0A%0Apublic class SubscriptionPlugin implements Plugin %7B%0A%0A  @Override%0A  public String id() %7B%0A    return %22subscription%22;%0A  %7D%0A%0A  @Override%0A  public String description() %7B%0A    return %22A plugin that manages subscriptions.%22;%0A  %7D%0A%0A  @Override%0A  public List%3CCommand%3E availableCommands() %7B%0A    return Arrays.asList(%0A        command(%22subscribe%22)%0A            .with(%22event-id ...%22)%0A            .does(%22Subscribes to the given events%22),%0A%0A        command(%22unsubscribe%22)%0A            .with(%22event-id ...%22)%0A            .does(%22Removes the subscription to the given events%22),%0A%0A        command(%22subscriptions%22)%0A            .does(%22Lists all events subscribed%22)%0A    );%0A  %7D%0A%0A%7D%0A

implement plugin