/*
 * Copyright 2011 ZerothAngel <zerothangel@tyrannyofheaven.org>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.tyrannyofheaven.bukkit.util.command;

import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;

public class MyPlugin extends JavaPlugin {

    @Override
    public void onDisable() {
    }

    @Override
    public void onEnable() {
    }

    protected void test(CommandSender sender) {
        sender.sendMessage("yay!");
    }

}

@@ -683,222 +683,2280 @@
 ort 
-org.bukkit.command.CommandSender;%0Aimport org.bukkit.plugin.java.JavaPlugin;%0A%0Apublic class MyPlugin extends JavaPlugin %7B%0A%0A    @Override%0A    public void onDisable() %7B%0A    %7D%0A%0A    @Override%0A    public void onEnable() %7B
+java.io.File;%0Aimport java.io.InputStream;%0Aimport java.util.List;%0Aimport java.util.logging.Logger;%0A%0Aimport org.bukkit.Server;%0Aimport org.bukkit.command.Command;%0Aimport org.bukkit.command.CommandSender;%0Aimport org.bukkit.configuration.file.FileConfiguration;%0Aimport org.bukkit.generator.ChunkGenerator;%0Aimport org.bukkit.plugin.Plugin;%0Aimport org.bukkit.plugin.PluginDescriptionFile;%0Aimport org.bukkit.plugin.PluginLoader;%0A%0Aimport com.avaje.ebean.EbeanServer;%0A%0Apublic class MyPlugin implements Plugin %7B%0A%0A    @Override%0A    public List%3CString%3E onTabComplete(CommandSender sender, Command command, String alias, String%5B%5D args) %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public boolean onCommand(CommandSender sender, Command command, String label, String%5B%5D args) %7B%0A        return false;%0A    %7D%0A%0A    @Override%0A    public File getDataFolder() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public PluginDescriptionFile getDescription() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public FileConfiguration getConfig() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public InputStream getResource(String filename) %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public void saveConfig() %7B%0A    %7D%0A%0A    @Override%0A    public void saveDefaultConfig() %7B%0A    %7D%0A%0A    @Override%0A    public void saveResource(String resourcePath, boolean replace) %7B%0A    %7D%0A%0A    @Override%0A    public void reloadConfig() %7B%0A    %7D%0A%0A    @Override%0A    public PluginLoader getPluginLoader() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public Server getServer() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public boolean isEnabled() %7B%0A        return false;%0A    %7D%0A%0A    @Override%0A    public void onDisable() %7B%0A    %7D%0A%0A    @Override%0A    public void onLoad() %7B%0A    %7D%0A%0A    @Override%0A    public void onEnable() %7B%0A    %7D%0A%0A    @Override%0A    public boolean isNaggable() %7B%0A        return false;%0A    %7D%0A%0A    @Override%0A    public void setNaggable(boolean canNag) %7B%0A    %7D%0A%0A    @Override%0A    public EbeanServer getDatabase() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public ChunkGenerator getDefaultWorldGenerator(String worldName, String id) %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public Logger getLogger() %7B%0A        return null;%0A    %7D%0A%0A    @Override%0A    public String getName() %7B%0A        return null;
 %0A   

Implement Plugin rather than subclassing JavaPlugin for the dummy plugin to avoid breakage.