public static PluginManager getPluginManager() { return getGame().getPluginManager(); }
@Override public Optional<PermissionDescription.Builder> newDescriptionBuilder(Object instance) { Optional<PluginContainer> container = this.game.getPluginManager().fromInstance(instance); if (!container.isPresent()) { throw new IllegalArgumentException("Provided plugin did not have an associated plugin instance. Are you sure it's your plugin instance?"); } return Optional.of(new PEXPermissionDescription.Builder(container.get(), this)); }
@Override public List<String> getPluginIds() { return this.game.getPluginManager().getPlugins().stream().map(plugin1 -> plugin1.getName() + ';' + plugin1.getVersion().orElse("unknown") + ':' + true) .collect(Collectors.toCollection(ArrayList::new)); }
@Override public Common retrievePlugin(String name) { Game game = ((SpongeLoader)loader).getGame(); return (Common) game.getPluginManager().getPlugin(name).get().getInstance(); }
@Override public JsonObject getDump() { JsonObject platformSpecific = new JsonObject(); List<PluginInfo> plugins = new ArrayList<>(); for (PluginContainer p : game.getPluginManager().getPlugins()) { plugins.add(new PluginInfo( true, p.getName(), p.getVersion().orElse("Unknown Version"), p.getInstance().isPresent() ? p.getInstance().get().getClass().getCanonicalName() : "Unknown", p.getAuthors() )); } platformSpecific.add("plugins", GsonUtil.getGson().toJsonTree(plugins)); return platformSpecific; }
@Override public int delay(Runnable entry, long start, boolean async) { loader.getGame().getSyncScheduler().runTaskAfter(loader.getGame().getPluginManager().fromInstance(loader).get(), entry, start); return 0; } }
@Override public int schedule(Runnable entry, long firstStart, long repeating, boolean async) { if (async) { if (repeating > 0) { loader.getGame().getAsyncScheduler().runRepeatingTaskAfter(loader.getGame().getPluginManager().fromInstance(loader).get(), entry, TimeUnit.MILLISECONDS, repeating, firstStart); } else { loader.getGame().getAsyncScheduler().runTaskAfter(loader.getGame().getPluginManager().fromInstance(loader).get(), entry, TimeUnit.MILLISECONDS, repeating); } } else { if (repeating > 0) { loader.getGame().getSyncScheduler().runRepeatingTaskAfter(loader.getGame().getPluginManager().fromInstance(loader).get(), entry, repeating, firstStart); } else { loader.getGame().getSyncScheduler().runTaskAfter(loader.getGame().getPluginManager().fromInstance(loader).get(), entry, firstStart); } } return 0; }