85 lines
2.1 KiB
Java
85 lines
2.1 KiB
Java
/**
|
|
* DeveloperCapes by Jadar
|
|
* License: MIT License
|
|
* (https://raw.github.com/jadar/DeveloperCapes/master/LICENSE)
|
|
* version 4.0.0.x
|
|
*/
|
|
package com.jadarstudios.developercapes.cape;
|
|
|
|
import java.net.MalformedURLException;
|
|
import java.net.URL;
|
|
import java.util.Collection;
|
|
import java.util.HashMap;
|
|
|
|
import com.jadarstudios.developercapes.DevCapes;
|
|
|
|
/**
|
|
* This manages all of the capes, be nice to it or you won't get one!
|
|
*
|
|
* @author jadar
|
|
*/
|
|
public class CapeManager {
|
|
protected static CapeManager instance;
|
|
|
|
private HashMap<String, ICape> capes;
|
|
|
|
public CapeManager() {
|
|
this.capes = new HashMap<String, ICape>();
|
|
}
|
|
|
|
public static CapeManager getInstance() {
|
|
if (instance == null) {
|
|
instance = new CapeManager();
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
public void addCape(ICape cape) {
|
|
if (!capes.containsValue(cape)) {
|
|
capes.put(cape.getName(), cape);
|
|
}
|
|
}
|
|
|
|
public void addCapes(Collection<ICape> capes) {
|
|
for (ICape c : capes) {
|
|
this.addCape(c);
|
|
}
|
|
}
|
|
|
|
public ICape getCape(String capeName) {
|
|
return capes.get(capeName);
|
|
}
|
|
|
|
public ICape newCape(String name) {
|
|
StaticCape cape = new StaticCape(name);
|
|
this.capes.put(name, cape);
|
|
return cape;
|
|
}
|
|
|
|
public ICape parse(String name, Object object) {
|
|
ICape cape = null;
|
|
if (object instanceof String || object instanceof URL) {
|
|
cape = parse(name, object.toString());
|
|
} else {
|
|
DevCapes.logger.error(String.format(
|
|
"Cape, %s, could not be parsed because it is not in an accepted format!",
|
|
object
|
|
));
|
|
}
|
|
return cape;
|
|
}
|
|
|
|
protected ICape parse(String name, String url) {
|
|
ICape cape = null;
|
|
|
|
try {
|
|
cape = new StaticCape(name, new URL(url));
|
|
} catch (MalformedURLException e) {
|
|
DevCapes.logger.error(
|
|
String.format("Are you crazy?? \"%s\" is not a valid URL!", url)
|
|
);
|
|
e.printStackTrace();
|
|
}
|
|
return cape;
|
|
}
|
|
} |