2019-01-27 16:22:05 +01:00
|
|
|
package com.songoda.epicenchants.managers;
|
|
|
|
|
|
|
|
import com.songoda.epicenchants.EpicEnchants;
|
|
|
|
import com.songoda.epicenchants.menus.InfoMenu;
|
|
|
|
import com.songoda.epicenchants.menus.MainInfoMenu;
|
|
|
|
import com.songoda.epicenchants.objects.Group;
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.configuration.file.YamlConfiguration;
|
|
|
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
2019-03-21 15:35:12 +01:00
|
|
|
public class InfoManager extends Manager<Group, InfoMenu> {
|
2019-01-27 16:22:05 +01:00
|
|
|
private final EpicEnchants instance;
|
2019-08-04 23:49:57 +02:00
|
|
|
private MainInfoMenu mainInfoMenu;
|
2019-01-27 16:22:05 +01:00
|
|
|
|
|
|
|
public InfoManager(EpicEnchants instance) {
|
2019-03-21 15:35:12 +01:00
|
|
|
super(instance);
|
2019-01-27 16:22:05 +01:00
|
|
|
this.instance = instance;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Optional<InfoMenu> getMenu(Group group) {
|
2019-03-21 15:35:12 +01:00
|
|
|
return getValue(group);
|
2019-01-27 16:22:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public void loadMenus() {
|
2023-06-25 13:50:27 +02:00
|
|
|
this.mainInfoMenu = new MainInfoMenu(this.instance, this.instance.getFileManager().getConfiguration("menus/main-info-menu"));
|
|
|
|
this.instance.getFileManager().getYmlFiles("menus/groups").forEach(file -> {
|
2019-01-27 16:22:05 +01:00
|
|
|
try {
|
|
|
|
YamlConfiguration config = YamlConfiguration.loadConfiguration(file);
|
2023-06-25 13:50:27 +02:00
|
|
|
add(this.instance
|
|
|
|
.getGroupManager()
|
|
|
|
.getValue(config.getString("group"))
|
|
|
|
.orElseThrow(() -> new IllegalArgumentException("Invalid group: " + config.getString("group"))),
|
|
|
|
new InfoMenu(this.instance, config));
|
2019-01-27 16:22:05 +01:00
|
|
|
} catch (Exception e) {
|
|
|
|
Bukkit.getConsoleSender().sendMessage("Something went wrong loading the menu from file " + file.getName());
|
|
|
|
Bukkit.getConsoleSender().sendMessage("Please check to make sure there are no errors in the file.");
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
2019-03-05 16:59:00 +01:00
|
|
|
});
|
2019-01-27 16:22:05 +01:00
|
|
|
}
|
|
|
|
|
2019-08-04 23:49:57 +02:00
|
|
|
public MainInfoMenu getMainInfoMenu() {
|
|
|
|
return this.mainInfoMenu;
|
|
|
|
}
|
2019-01-27 16:22:05 +01:00
|
|
|
}
|