71 lines
2.4 KiB
Java
71 lines
2.4 KiB
Java
package com.yaohun.levelreward.config;
|
|
|
|
import com.yaohun.levelreward.LevelReward;
|
|
import com.yaohun.levelreward.data.RewardData;
|
|
import me.Demon.DemonPlugin.DemonAPI;
|
|
import me.Demon.DemonPlugin.data.GuiItemData;
|
|
import me.Demon.DemonPlugin.data.LangData;
|
|
import org.bukkit.configuration.ConfigurationSection;
|
|
import org.bukkit.configuration.file.FileConfiguration;
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
|
|
public class Config {
|
|
|
|
public static LangData langData;
|
|
private static HashMap<String, GuiItemData> guiItemDataMap = new HashMap<>();
|
|
private static List<RewardData> rewardDataList = new ArrayList<>();
|
|
|
|
public static void reloadConfig(LevelReward plugin) {
|
|
// 调用了DemonAPI中的LangData
|
|
// 需要在AuLangs目录中创建一个 LevelReward.yml 文件存语言配置
|
|
langData = DemonAPI.getLangData("LevelReward");
|
|
plugin.reloadConfig();
|
|
plugin.saveConfig();
|
|
FileConfiguration config = plugin.getConfig();
|
|
loadGuiItemData(config);
|
|
loadRewardSettings(config);
|
|
}
|
|
|
|
private static void loadRewardSettings(FileConfiguration config){
|
|
rewardDataList.clear();
|
|
ConfigurationSection section = config.getConfigurationSection("RewardSettings");
|
|
if(section == null) {return;}
|
|
for (String rewardKey : section.getKeys(false)){
|
|
rewardDataList.add(new RewardData(rewardKey,section));
|
|
}
|
|
}
|
|
|
|
private static void loadGuiItemData(FileConfiguration configuration){
|
|
guiItemDataMap.clear();
|
|
ConfigurationSection section = configuration.getConfigurationSection("GuiItemData");
|
|
if(section == null){return;}
|
|
for (String itemKey : section.getKeys(false)){
|
|
guiItemDataMap.put(itemKey,new GuiItemData(itemKey,section));
|
|
}
|
|
}
|
|
|
|
public static ItemStack getItemStack(String itemKey) {
|
|
if(guiItemDataMap.containsKey(itemKey)){
|
|
return guiItemDataMap.get(itemKey).getItemStack().clone();
|
|
}
|
|
return DemonAPI.getErrItems();
|
|
}
|
|
|
|
public static List<RewardData> getRewardDataList() {
|
|
return rewardDataList;
|
|
}
|
|
|
|
public static RewardData getRewardData(String rewardKey) {
|
|
for (RewardData rewardData : rewardDataList){
|
|
if(rewardData.getRewardKey().equals(rewardKey)){
|
|
return rewardData;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|