mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2025-12-09 16:45:46 -07:00
73 lines
1.9 KiB
Java
73 lines
1.9 KiB
Java
package plugin;
|
|
|
|
import plugin.annotations.PluginMeta;
|
|
|
|
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.io.FileReader;
|
|
import java.io.IOException;
|
|
import java.util.Objects;
|
|
import java.util.Properties;
|
|
|
|
/**
|
|
* A data class for storing information about plugins.
|
|
* @author ceikry
|
|
*/
|
|
public class PluginInfo {
|
|
public double version;
|
|
public String author;
|
|
public String description;
|
|
|
|
public PluginInfo(String author, String description, double version) {
|
|
this.version = version;
|
|
this.author = author;
|
|
this.description = description;
|
|
}
|
|
|
|
public static PluginInfo loadFromFile(File file) {
|
|
Properties prop = new Properties();
|
|
|
|
try {
|
|
prop.load(new FileReader(file));
|
|
} catch (FileNotFoundException e) {
|
|
System.err.println("File does not exist! - " + file.getAbsolutePath());
|
|
return new PluginInfo("", "", 0.0);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
return new PluginInfo("", "", 0.0);
|
|
}
|
|
|
|
return new PluginInfo(
|
|
prop.get("AUTHOR").toString(),
|
|
prop.get("DESCRIPTION").toString(),
|
|
Double.parseDouble(prop.get("VERSION").toString())
|
|
);
|
|
}
|
|
|
|
public static PluginInfo loadFromClass(Class<?> clazz) {
|
|
PluginMeta info = clazz.getAnnotation(PluginMeta.class);
|
|
|
|
if (info == null) {
|
|
return null;
|
|
}
|
|
|
|
return new PluginInfo(
|
|
info.author(),
|
|
info.description(),
|
|
info.version()
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
PluginInfo that = (PluginInfo) o;
|
|
return Double.compare(that.version, version) == 0 && Objects.equals(author, that.author) && Objects.equals(description, that.description);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(version, author, description);
|
|
}
|
|
}
|