<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # :-: 配置文件 很明顯,一個Mod做得再好,也會有玩家不滿意。這時候的一種常見的解決方案就是,開放Mod的部分參數選項,使其從配置文件中讀取,這樣玩家就可以通過修改Mod的配置文件來對Mod做出一些個性化設置了。 一個好的配置文件,不僅應該全面,更應該條理分明、層次緊密、簡明易懂,讓玩家不需要幫助甚至注釋就可以理解并順利地修改配置文件內容,而不會出現困惑的現象。 幸運的是,Forge本身就提供了配置文件的接口,Mod開發者們可以輕而易舉地完成配置文件的創建、讀取、以及寫入等操作。 本章通過對鉆石作為燃料的燒煉秒數的配置,一步一步地完成配置文件的相關操作。 # :-: 如何操作 首先,我們創建一個配置文件管理類,在包`net.xiaobang.bm.common`下創建文件`ConfigLoader.java`: **`src/main/java/net/xiaobang/bm/common/ConfigLoader.java`** ~~~ package net.xiaobang.bm.common; import net.minecraftforge.common.config.Configuration; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import org.apache.logging.log4j.Logger; public class ConfigLoader { private static Configuration config; private static Logger logger; public static int diamondBurnTime; public ConfigLoader(FMLPreInitializationEvent event) { logger = event.getModLog(); config = new Configuration(event.getSuggestedConfigurationFile()); //實例化了一個Configuration類,括號中填的是Forge推薦的配置文件位置,這個位置在游戲根目錄的config文件夾下, //名為<modid>.cfg,這里就是bm.cfg。 config.load();//讀取配置 load(); } public static void load() { logger.info("Started loading config. "); String comment; comment = "How many seconds can a diamond burn in a furnace. ";//加載配置 diamondBurnTime = config.get(Configuration.CATEGORY_GENERAL, "diamondBurnTime", 640, comment).getInt();//加載配置 //forge配置文件中會有多個類別,forge提供了general(Configuration.CATEGORY_GENERAL) //get函數的第一個參數就是表示general類型 //get的第二個參數就是配置文件中的鍵的名稱(難以看懂) //get的第三個參數就是鍵的默認值(默認640),如果該鍵不存在,返回默認值 //get的第四個參數是該鍵的注釋,就是獲取diamondBurnTime相對應的值,getInt函數的作用就是獲取整數(配置文件里面鍵的值一定是字符串) //從這里闊以看出get就是為了獲取diamondBurnTime的值 config.save();//保存配置 //至于為什么要保存配置呢?這是因為當配置缺失(最常見的原因就是配置文件沒有創建, //這常常發生在你第一次使用Mod的時候)的時候,這一句會將默認的配置保存下來。 logger.info("Finished loading config. ");//輸出完成加載配置文件 } public static Logger logger() { return logger; } } ~~~ 在CommonProxy注冊 **`src/main/java/net/xiaobang/bm/common/CommonProxy.java`**(部分) ~~~ public void preInit(FMLPreInitializationEvent event) { new CreativeTabsLoader(event); //new ItemLoader(event); //new BlockLoader(event);這兩個已經不需要了,有更好的方法了 new regAll("bm","net/xiaobang/bm/item/","Item");//一鍵注冊所有物品 new regAll("bm","net/xiaobang/bm/block/","Block");//一鍵注冊所有方塊 new ConfigLoader(event); } ~~~ 最后修改CraftLoader文件: **`src/main/java/net/xiaobang/bm/crafting/CraftingLoader.java`(部分)** ~~~ private static void registerFuel() { GameRegistry.registerFuelHandler(new IFuelHandler() { @Override public int getBurnTime(ItemStack fuel)//實現IFuelHandler口后需要實現這個函數,作用是判斷物品的燒煉時間,如果返回為0,則為不能判斷物品的燒煉時間 { return Items.diamond != fuel.getItem() ? 0 : Math.max(0,ConfigLoader.diamondBurnTime) * 20;//把鉆石作為燃料(啊這),這里的12800指能燒多久,單位是gametick,1秒=20個gametick } }); } ~~~ 運行游戲,你會發現在config文件夾下生成了bm.cfg文件。下面是在作者電腦下生成的文件內存: ~~~ # Configuration file general { # How many seconds can a diamond burn in a furnace. I:diamondBurnTime=640 } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看