以下是一个示例代码,用于在没有配置文件时写入默认的配置文件:

import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

public class ModConfig {
    
    // 定义配置文件对象
    private static Configuration config;
    
    // 定义需要的配置项
    private static boolean enableFeature;
    private static int maxItemCount;
    private static double dropRate;
    
    public static void preInit(FMLPreInitializationEvent event) {
        // 获取或创建配置文件
        config = new Configuration(event.getSuggestedConfigurationFile());
        
        // 加载配置文件
        config.load();
        
        // 读取配置项的值,如果配置文件中没有对应的键,则使用默认值
        enableFeature = config.getBoolean("enableFeature", Configuration.CATEGORY_GENERAL, true, "Enable the feature");
        maxItemCount = config.getInt("maxItemCount", Configuration.CATEGORY_GENERAL, 64, 1, 64, "Maximum item count");
        dropRate = config.getFloat("dropRate", Configuration.CATEGORY_GENERAL, 0.5, 0.0, 1.0, "Drop rate");
        
        // 保存配置文件
        if (config.hasChanged()) {
            config.save();
        }
    }
    
    public static boolean isFeatureEnabled() {
        return enableFeature;
    }
    
    public static int getMaxItemCount() {
        return maxItemCount;
    }
    
    public static double getDropRate() {
        return dropRate;
    }
    
}

在 preInit 方法中,我们创建了一个 Configuration 对象,并使用 event.getSuggestedConfigurationFile() 获取配置文件的路径。然后,我们通过 config.getBoolean、config.getInt 和 config.getFloat 方法读取配置项的值,如果配置文件中没有对应的键,则使用提供的默认值。

最后,在保存配置文件之前,我们使用 config.hasChanged() 方法检查配置文件是否有变化。如果有变化,则调用 config.save() 方法保存配置文件。

这只是一个简单的示例,你可以根据自己的需求添加其他配置项和逻辑


原文地址: http://www.cveoy.top/t/topic/iRgY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录