DemonLevelReward/src/main/java/com/yaohun/levelreward/config/Config.java
2025-07-12 00:00:55 +08:00

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;
}
}