|  | @@ -0,0 +1,149 @@
 | 
	
		
			
				|  |  | +package de.Linus122.customoregen;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.io.File;
 | 
	
		
			
				|  |  | +import java.io.FileNotFoundException;
 | 
	
		
			
				|  |  | +import java.io.FileOutputStream;
 | 
	
		
			
				|  |  | +import java.io.IOException;
 | 
	
		
			
				|  |  | +import java.io.InputStream;
 | 
	
		
			
				|  |  | +import java.util.ArrayList;
 | 
	
		
			
				|  |  | +import java.util.HashMap;
 | 
	
		
			
				|  |  | +import java.util.HashSet;
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +import java.util.Set;
 | 
	
		
			
				|  |  | +import java.util.UUID;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import org.bukkit.Bukkit;
 | 
	
		
			
				|  |  | +import org.bukkit.Location;
 | 
	
		
			
				|  |  | +import org.bukkit.Material;
 | 
	
		
			
				|  |  | +import org.bukkit.World;
 | 
	
		
			
				|  |  | +import org.bukkit.entity.Player;
 | 
	
		
			
				|  |  | +import org.bukkit.plugin.PluginManager;
 | 
	
		
			
				|  |  | +import org.bukkit.plugin.java.JavaPlugin;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +public class Main extends JavaPlugin{
 | 
	
		
			
				|  |  | +	public static List<GeneratorConfig> generatorConfigs = new ArrayList<GeneratorConfig>();
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  | +	public static World activeInWorld;
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void onEnable(){
 | 
	
		
			
				|  |  | +		PluginManager pm = Bukkit.getPluginManager();
 | 
	
		
			
				|  |  | +		pm.registerEvents(new Events(), this);
 | 
	
		
			
				|  |  | +		Bukkit.getPluginCommand("customoregen").setExecutor(new Cmd(this));
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		try {
 | 
	
		
			
				|  |  | +			loadConfig();
 | 
	
		
			
				|  |  | +		} catch (IOException e) {
 | 
	
		
			
				|  |  | +			// TODO Auto-generated catch block
 | 
	
		
			
				|  |  | +			e.printStackTrace();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("ASkyBlock")){
 | 
	
		
			
				|  |  | +			activeInWorld = com.wasteofplastic.askyblock.ASkyBlock.getIslandWorld();
 | 
	
		
			
				|  |  | +		}else
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("AcidIsland")){
 | 
	
		
			
				|  |  | +			activeInWorld = com.wasteofplastic.acidisland.ASkyBlock.getIslandWorld();	
 | 
	
		
			
				|  |  | +		}else
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("uSkyBlock")){
 | 
	
		
			
				|  |  | +			activeInWorld = us.talabrek.ultimateskyblock.uSkyBlock.getSkyBlockWorld();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	@Override
 | 
	
		
			
				|  |  | +	public void onDisable(){
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	public static int getLevel(Player p){
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("ASkyBlock")){
 | 
	
		
			
				|  |  | +			return com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getIslandLevel(p.getUniqueId());
 | 
	
		
			
				|  |  | +		}else
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("AcidIsland")){
 | 
	
		
			
				|  |  | +			return com.wasteofplastic.acidisland.ASkyBlockAPI.getInstance().getIslandLevel(p.getUniqueId());
 | 
	
		
			
				|  |  | +		}else 
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("uSkyBlock")){
 | 
	
		
			
				|  |  | +			return (int) Math.floor(us.talabrek.ultimateskyblock.uSkyBlock.getAPI().getIslandLevel(p));
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return 0;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	static HashMap<UUID, Player> map = new HashMap<UUID, Player>();
 | 
	
		
			
				|  |  | +	public static Player getOwner(Location loc){
 | 
	
		
			
				|  |  | +		Set<Location> set = new HashSet<Location>();
 | 
	
		
			
				|  |  | +		set.add(loc);
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		UUID uuid = null;
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("ASkyBlock")){
 | 
	
		
			
				|  |  | +			uuid = com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().getOwner(com.wasteofplastic.askyblock.ASkyBlockAPI.getInstance().locationIsOnIsland(set, loc));
 | 
	
		
			
				|  |  | +		}else
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("AcidIsland")){
 | 
	
		
			
				|  |  | +			uuid = com.wasteofplastic.acidisland.ASkyBlockAPI.getInstance().getOwner(com.wasteofplastic.acidisland.ASkyBlockAPI.getInstance().locationIsOnIsland(set, loc));
 | 
	
		
			
				|  |  | +		}else 
 | 
	
		
			
				|  |  | +		if(Bukkit.getServer().getPluginManager().isPluginEnabled("uSkyBlock")){
 | 
	
		
			
				|  |  | +			String player = us.talabrek.ultimateskyblock.uSkyBlock.getInstance().getIslandInfo(loc).getLeader();
 | 
	
		
			
				|  |  | +			if(Bukkit.getPlayer(player) != null){
 | 
	
		
			
				|  |  | +				if(Bukkit.getPlayer(player).getUniqueId() != null){
 | 
	
		
			
				|  |  | +					uuid = Bukkit.getPlayer(player).getUniqueId();
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		Player p = Bukkit.getPlayer(uuid);
 | 
	
		
			
				|  |  | +		//Offline buffering
 | 
	
		
			
				|  |  | +		if(p != null){
 | 
	
		
			
				|  |  | +			map.put(uuid, p);
 | 
	
		
			
				|  |  | +		}else{
 | 
	
		
			
				|  |  | +			if(map.containsKey(uuid)){
 | 
	
		
			
				|  |  | +				p = map.get(uuid);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		return p;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	public void reload() throws IOException{
 | 
	
		
			
				|  |  | +		this.reloadConfig();
 | 
	
		
			
				|  |  | +		loadConfig();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	public void loadConfig() throws IOException{
 | 
	
		
			
				|  |  | +		File cfg = new File("plugins/CustomOreGen/config.yml");
 | 
	
		
			
				|  |  | +		File dir = new File("plugins/CustomOreGen/");
 | 
	
		
			
				|  |  | +		if(!dir.exists()) dir.mkdirs();
 | 
	
		
			
				|  |  | +		if(!cfg.exists()){
 | 
	
		
			
				|  |  | +			FileOutputStream writer = new FileOutputStream(new File(getDataFolder() + "/config.yml"));
 | 
	
		
			
				|  |  | +			InputStream out = this.getClassLoader().getResourceAsStream("config.yml");
 | 
	
		
			
				|  |  | +			byte[] linebuffer = new byte[4096];
 | 
	
		
			
				|  |  | +			int lineLength = 0;
 | 
	
		
			
				|  |  | +			while((lineLength = out.read(linebuffer)) > 0)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +			   writer.write(linebuffer, 0, lineLength);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			writer.close();	
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		 
 | 
	
		
			
				|  |  | +		
 | 
	
		
			
				|  |  | +		generatorConfigs = new ArrayList<GeneratorConfig>();
 | 
	
		
			
				|  |  | +		int i = 0;
 | 
	
		
			
				|  |  | +		while(true){
 | 
	
		
			
				|  |  | +			i++;
 | 
	
		
			
				|  |  | +			if(this.getConfig().contains("generators.generator" + i)){
 | 
	
		
			
				|  |  | +				GeneratorConfig gc = new GeneratorConfig();
 | 
	
		
			
				|  |  | +				gc.permission = this.getConfig().getString("generators.generator" + i + ".permission");
 | 
	
		
			
				|  |  | +				gc.unlock_islandLevel = this.getConfig().getInt("generators.generator" + i + ".unlock_islandLevel");
 | 
	
		
			
				|  |  | +				for(String raw : this.getConfig().getStringList("generators.generator" + i + ".blocks")){
 | 
	
		
			
				|  |  | +					try{
 | 
	
		
			
				|  |  | +						if(!raw.contains("!")){
 | 
	
		
			
				|  |  | +							String material = raw.split(":")[0];
 | 
	
		
			
				|  |  | +							double percent = Double.parseDouble(raw.split(":")[1]);
 | 
	
		
			
				|  |  | +							gc.itemList.add(new GeneratorItem(material, (byte) 0, percent));
 | 
	
		
			
				|  |  | +						}else{
 | 
	
		
			
				|  |  | +							String material = raw.split("!")[0];
 | 
	
		
			
				|  |  | +							double percent = Double.parseDouble(raw.split(":")[1]);
 | 
	
		
			
				|  |  | +							int damage = Integer.parseInt(raw.split("!")[1].split(":")[0]);
 | 
	
		
			
				|  |  | +							gc.itemList.add(new GeneratorItem(material, (byte) damage, percent));
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  | +					}catch(Exception e){
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				generatorConfigs.add(gc);
 | 
	
		
			
				|  |  | +			}else{
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//this.saveConfig();
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 |