更新
This commit is contained in:
@@ -1,101 +1,100 @@
|
||||
package me.skymc.tlm.module;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
import me.skymc.taboolib.Main;
|
||||
import me.skymc.tlm.annotation.DisableConfig;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import me.skymc.taboolib.Main;
|
||||
import me.skymc.tlm.annotation.DisableConfig;
|
||||
import java.io.File;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author sky
|
||||
* @since 2018年2月17日 下午11:22:48
|
||||
*/
|
||||
public class TabooLibraryModule {
|
||||
|
||||
private final HashMap<ITabooLibraryModule, FileConfiguration> TLM_MODULE = new HashMap<>();
|
||||
private static TabooLibraryModule inst = null;
|
||||
|
||||
private TabooLibraryModule() {
|
||||
|
||||
}
|
||||
|
||||
public static TabooLibraryModule getInst() {
|
||||
if (inst == null) {
|
||||
synchronized (TabooLibraryModule.class) {
|
||||
if (inst == null) {
|
||||
inst = new TabooLibraryModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
return inst;
|
||||
}
|
||||
|
||||
public void register(ITabooLibraryModule module) {
|
||||
if (!TLM_MODULE.containsKey(module)) {
|
||||
TLM_MODULE.put(module, new YamlConfiguration());
|
||||
reloadConfig(module, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadModules() {
|
||||
for (ITabooLibraryModule module : TLM_MODULE.keySet()) {
|
||||
module.onEnable();
|
||||
if (module instanceof Listener) {
|
||||
Bukkit.getPluginManager().registerEvents((Listener) module, Main.getInst());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void unloadModules() {
|
||||
|
||||
private static TabooLibraryModule inst = null;
|
||||
private final HashMap<ITabooLibraryModule, FileConfiguration> TLM_MODULE = new HashMap<>();
|
||||
|
||||
private TabooLibraryModule() {
|
||||
|
||||
}
|
||||
|
||||
public static TabooLibraryModule getInst() {
|
||||
if (inst == null) {
|
||||
synchronized (TabooLibraryModule.class) {
|
||||
if (inst == null) {
|
||||
inst = new TabooLibraryModule();
|
||||
}
|
||||
}
|
||||
}
|
||||
return inst;
|
||||
}
|
||||
|
||||
public void register(ITabooLibraryModule module) {
|
||||
if (!TLM_MODULE.containsKey(module)) {
|
||||
TLM_MODULE.put(module, new YamlConfiguration());
|
||||
reloadConfig(module, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void loadModules() {
|
||||
for (ITabooLibraryModule module : TLM_MODULE.keySet()) {
|
||||
module.onEnable();
|
||||
if (module instanceof Listener) {
|
||||
Bukkit.getPluginManager().registerEvents((Listener) module, Main.getInst());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void unloadModules() {
|
||||
TLM_MODULE.keySet().forEach(ITabooLibraryModule::onDisable);
|
||||
}
|
||||
|
||||
public void reloadConfig() {
|
||||
TLM_MODULE.keySet().forEach(x -> reloadConfig(x, true));
|
||||
}
|
||||
|
||||
public void reloadConfig(ITabooLibraryModule module, boolean isReload) {
|
||||
if (module.getName() == null || module.getClass().getAnnotation(DisableConfig.class) != null) {
|
||||
return;
|
||||
}
|
||||
File file = new File(Main.getInst().getDataFolder(), "TLM/" + module.getName() + ".yml");
|
||||
if (!file.exists()) {
|
||||
Main.getInst().saveResource("TLM/" + module.getName() + ".yml", true);
|
||||
}
|
||||
try {
|
||||
TLM_MODULE.get(module).load(file);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
}
|
||||
if (isReload) {
|
||||
module.onReload();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getConfig(ITabooLibraryModule module) {
|
||||
return TLM_MODULE.get(module);
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return TLM_MODULE.size();
|
||||
}
|
||||
|
||||
public Set<ITabooLibraryModule> keySet() {
|
||||
return TLM_MODULE.keySet();
|
||||
}
|
||||
|
||||
public ITabooLibraryModule valueOf(String name) {
|
||||
for (ITabooLibraryModule module : TLM_MODULE.keySet()) {
|
||||
if (module.getName().equals(name)) {
|
||||
return module;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void reloadConfig() {
|
||||
TLM_MODULE.keySet().forEach(x -> reloadConfig(x, true));
|
||||
}
|
||||
|
||||
public void reloadConfig(ITabooLibraryModule module, boolean isReload) {
|
||||
if (module.getName() == null || module.getClass().getAnnotation(DisableConfig.class) != null) {
|
||||
return;
|
||||
}
|
||||
File file = new File(Main.getInst().getDataFolder(), "TLM/" + module.getName() + ".yml");
|
||||
if (!file.exists()) {
|
||||
Main.getInst().saveResource("TLM/" + module.getName() + ".yml", true);
|
||||
}
|
||||
try {
|
||||
TLM_MODULE.get(module).load(file);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
}
|
||||
if (isReload) {
|
||||
module.onReload();
|
||||
}
|
||||
}
|
||||
|
||||
public FileConfiguration getConfig(ITabooLibraryModule module) {
|
||||
return TLM_MODULE.get(module);
|
||||
}
|
||||
|
||||
public int getSize() {
|
||||
return TLM_MODULE.size();
|
||||
}
|
||||
|
||||
public Set<ITabooLibraryModule> keySet() {
|
||||
return TLM_MODULE.keySet();
|
||||
}
|
||||
|
||||
public ITabooLibraryModule valueOf(String name) {
|
||||
for (ITabooLibraryModule module : TLM_MODULE.keySet()) {
|
||||
if (module.getName().equals(name)) {
|
||||
return module;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user