Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Made by gush on Oct 12, 2017
- */
- package hs.gush.bukkit;
- import java.util.List;
- import java.util.concurrent.Callable;
- import java.util.function.BiFunction;
- import org.bukkit.Bukkit;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.plugin.Plugin;
- import org.bukkit.plugin.PluginManager;
- import net.milkbowl.vault.economy.Economy;
- import net.milkbowl.vault.economy.EconomyResponse;
- import net.milkbowl.vault.permission.Permission;
- //Made by gush on Oct 12, 2017
- /**
- * @author gush
- *
- */
- public class UncoupledPlugin<T extends Plugin> implements Callable<T>{
- final String name;
- final Class<T> clazz;
- final PluginManager pManager;
- @SuppressWarnings("unchecked")
- public UncoupledPlugin(T plugin, PluginManager pManager){
- name = plugin.getName();
- clazz = (Class<T>) plugin.getClass();
- this.pManager = pManager;
- }
- public UncoupledPlugin(T plugin){
- this(plugin,Bukkit.getPluginManager());
- }
- public UncoupledPlugin(Class<? extends Plugin> type, String name){
- this(type,name,Bukkit.getPluginManager());
- }
- @SuppressWarnings("unchecked")
- public UncoupledPlugin(Class<? extends Plugin> type, String name,PluginManager pManager){
- this.clazz = (Class<T>) type;
- this.pManager = pManager;
- this.name = name;
- }
- @Override
- public T call(){
- return getPluginFunc().apply(pManager, name);
- }
- @SuppressWarnings("unchecked")
- private BiFunction<PluginManager, String, T> getPluginFunc(){
- return (manager,name)->{
- Plugin plugin = manager.getPlugin(name);
- if(plugin == null)return null;
- else if(plugin.getClass() == clazz)return (T) plugin;
- else return null;
- };
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement