package com.github.tuserver.api.plugin;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import com.github.tuserver.api.configuration.file.YamlConfiguration;
public class PluginDescriptionFile {
private File file;
private URL url;
private YamlConfiguration yml;
private URLClassLoader loader;
// plugin.yml
private String name = "";
private String description = "";
private String author = "";
private String version = "";
private String mainClass = "";
public PluginDescriptionFile(File file) {
try {
this.file = file;
this.url = file.toURI().toURL(); // new URL("file://" +
// file.getAbsolutePath());
this.loader = new URLClassLoader(new URL[] { getURL() }, PluginManager.class.getClassLoader());
ZipFile zipFile = new ZipFile(file.getAbsolutePath());
ZipEntry entry = zipFile.getEntry("plugin.yml");
InputStream inputStream = zipFile.getInputStream(entry);
this.yml = YamlConfiguration.loadConfiguration(inputStream);
inputStream.close();
zipFile.close();
name = this.yml.getString("name");
description = this.yml.getString("description");
author = this.yml.getString("author");
version = this.yml.getString("version");
mainClass = this.yml.getString("mainClass");
} catch (IOException e) {
e.printStackTrace();
}
}
public URL getURL() {
return this.url;
}
public URLClassLoader getClassLoader() {
return this.loader;
}
public String getName() {
return name;
}
public String getAuthor() {
return author;
}
public String getDescription() {
return description;
}
public String getVersion() {
return version;
}
public String getMainClass() {
return mainClass;
}
}