类org.bukkit.plugin.PluginLoader源码实例Demo

下面列出了怎么用org.bukkit.plugin.PluginLoader的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: PGM   文件: RuntimePluginLoader.java
@SuppressWarnings("unchecked")
public Plugin loadPlugin(PluginDescriptionFile plugin) throws UnknownDependencyException {
  final SimplePluginManager manager = (SimplePluginManager) server.getPluginManager();
  try {
    final File file = new File("plugins", plugin.getName());
    final Class[] init =
        new Class[] {
          PluginLoader.class, Server.class, PluginDescriptionFile.class, File.class, File.class
        };
    final JavaPlugin instance =
        (JavaPlugin)
            Class.forName(plugin.getMain())
                .getConstructor(init)
                .newInstance(this, server, plugin, file, file);

    readField(SimplePluginManager.class, manager, List.class, "plugins").add(instance);
    readField(SimplePluginManager.class, manager, Map.class, "lookupNames")
        .put(instance.getName().toLowerCase(), instance);

    return instance;
  } catch (Throwable t) {
    throw new UnknownDependencyException(
        t, "Unable to load plugin: " + plugin.getName() + " (" + plugin.getMain() + ")");
  }
}
 
源代码2 项目: PGM   文件: PGMPlugin.java
public PGMPlugin(
    PluginLoader loader,
    Server server,
    PluginDescriptionFile description,
    File dataFolder,
    File file) {
  super(loader, server, description, dataFolder, file);
}
 
源代码3 项目: Kettle   文件: JavaPlugin.java
final void init(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader) {
    this.loader = loader;
    this.server = server;
    this.file = file;
    this.description = description;
    this.dataFolder = dataFolder;
    this.classLoader = classLoader;
    this.configFile = new File(dataFolder, "config.yml");
    this.logger = new PluginLogger(this);
}
 
源代码4 项目: TabooLib   文件: InternalPlugin.java
@Override
public PluginLoader getPluginLoader() {
    return InternalPluginLoader.getLoader();
}
 
源代码5 项目: VoxelGamesLibv2   文件: LoggedPluginManager.java
@Override
public void registerInterface(Class<? extends PluginLoader> loader)
        throws IllegalArgumentException {
    delegate.registerInterface(loader);
}
 
源代码6 项目: Skript   文件: ClassesTest.java
@SuppressWarnings({"resource", "deprecation"})
	@Before
	public void before() throws Exception {
		
		final File dataDir = new File("build/resources/");
		final File jar = new File("build/", "skript.jar");
		assumeTrue(jar.exists());
		
		final Logger l = Logger.getLogger(getClass().getCanonicalName());
		l.setParent(SkriptLogger.LOGGER);
		l.setLevel(Level.WARNING);
		
		final Server s = createMock(Server.class);
		s.getLogger();
		expectLastCall().andReturn(l).anyTimes();
		s.isPrimaryThread();
		expectLastCall().andReturn(true).anyTimes();
		s.getName();
		expectLastCall().andReturn("Whatever").anyTimes();
		s.getVersion();
		expectLastCall().andReturn("2.0").anyTimes();
		s.getBukkitVersion();
		expectLastCall().andReturn("2.0").anyTimes();
		replay(s);
		
		Bukkit.setServer(s);
		
		final Skript skript = (Skript) ObjenesisHelper.newInstance(Skript.class); // bypass the class loader check
		final Field instance = Skript.class.getDeclaredField("instance");
		instance.setAccessible(true);
		instance.set(null, skript);
		
		final PluginDescriptionFile pdf = new PluginDescriptionFile(new FileInputStream(new File(dataDir, "plugin.yml")));
		
//	    final void init(PluginLoader loader, Server server, PluginDescriptionFile description, File dataFolder, File file, ClassLoader classLoader) {
		final Method init = JavaPlugin.class.getDeclaredMethod("init", PluginLoader.class, Server.class, PluginDescriptionFile.class, File.class, File.class, ClassLoader.class);
		init.setAccessible(true);
		init.invoke(skript, new JavaPluginLoader(s), s, pdf, dataDir, jar, getClass().getClassLoader());
		
		Skript.getAddonInstance().loadClasses("ch.njol.skript", "entity");
		new JavaClasses();
		new BukkitClasses();
		new BukkitEventValues();
		new SkriptClasses();
		
		final Field r = Skript.class.getDeclaredField("acceptRegistrations");
		r.setAccessible(true);
		r.set(null, false);
		Classes.onRegistrationsStop();
	}
 
源代码7 项目: SonarPet   文件: BootstrapedPlugin.java
@Override
public PluginLoader getPluginLoader() {
    return delegate.getPluginLoader();
}
 
源代码8 项目: NovaGuilds   文件: LoggedPluginManager.java
@Override
public void registerInterface(Class<? extends PluginLoader> loader) throws IllegalArgumentException {
	delegate.registerInterface(loader);
}
 
源代码9 项目: Kettle   文件: JavaPlugin.java
/**
 * Gets the associated PluginLoader responsible for this plugin
 *
 * @return PluginLoader that controls this plugin
 */
@Override
public final PluginLoader getPluginLoader() {
    return loader;
}
 
 类所在包
 同包方法