@@ -0,0 +1,2613 @@
+package de.myzelyam.supervanish.cmd;%0A%0Aimport de.myzelyam.supervanish.SuperVanish;%0Aimport org.bukkit.command.CommandSender;%0Aimport org.bukkit.configuration.file.FileConfiguration;%0Aimport org.bukkit.entity.Player;%0A%0Aimport java.util.Collection;%0Aimport java.util.List;%0A%0Apublic abstract class SubCommand %7B%0A%0A    protected final SuperVanish plugin;%0A    protected final FileConfiguration settings;%0A    protected final FileConfiguration playerData;%0A%0A    public SubCommand(SuperVanish plugin) %7B%0A        this.plugin = plugin;%0A        settings = plugin.settings;%0A        playerData = plugin.playerData;%0A    %7D%0A%0A    protected List%3CString%3E getAllInvisiblePlayers() %7B%0A        return plugin.getAllInvisiblePlayers();%0A    %7D%0A%0A    protected Collection%3CPlayer%3E getOnlineInvisiblePlayers() %7B%0A        return plugin.getOnlineInvisiblePlayers();%0A    %7D%0A%0A    public void hidePlayer(Player p) %7B%0A        plugin.getVisibilityAdjuster().hidePlayer(p);%0A    %7D%0A%0A    public void showPlayer(Player p) %7B%0A        plugin.getVisibilityAdjuster().showPlayer(p);%0A    %7D%0A%0A    public void showPlayer(Player p, boolean hideJoinMsg) %7B%0A        plugin.getVisibilityAdjuster().showPlayer(p, hideJoinMsg);%0A    %7D%0A%0A    protected boolean isVanished(Player p) %7B%0A        return getOnlineInvisiblePlayers().contains(p);%0A    %7D%0A%0A    protected boolean canDo(CommandSender p, CommandAction cmd) %7B%0A        if (!(p instanceof Player))%0A            if (!cmd.canConsole()) %7B%0A                p.sendMessage(convertString(getMsg(%22InvalidSenderMessage%22), p));%0A                return false;%0A            %7D%0A        if (!p.hasPermission(cmd.getPerm())) %7B%0A            p.sendMessage(convertString(getMsg(%22NoPermissionMessage%22), p));%0A            return false;%0A        %7D%0A        return true;%0A    %7D%0A%0A    protected String getMsg(String msg) %7B%0A        return plugin.getMsg(msg);%0A    %7D%0A%0A    protected String convertString(String message, CommandSender p) %7B%0A        return plugin.convertString(message, p);%0A    %7D%0A%0A    protected enum CommandAction %7B%0A        VANISH_SELF(%22sv.use%22, false), VANISH_OTHER(%22sv.others%22, true), LIST(%0A                %22sv.list%22, true), LOGIN(%22sv.login%22, false), LOGOUT(%22sv.logout%22,%0A                false), TOGGLE_ITEM_PICKUPS(%22sv.toggleitempickups%22, false), UPDATE_CFG(%0A                %22sv.updatecfg%22, true), RELOAD(%22sv.reload%22, true);%0A%0A        private String perm;%0A%0A        private boolean console;%0A%0A        CommandAction(String perm, boolean console) %7B%0A            this.perm = perm;%0A            this.console = console;%0A        %7D%0A%0A        String getPerm() %7B%0A            return perm;%0A        %7D%0A%0A        boolean canConsole() %7B%0A            return console;%0A        %7D%0A    %7D%0A%7D%0A

Add missing SubCommand class