{"id":27805,"date":"2024-02-05T17:27:12","date_gmt":"2023-07-20T15:31:48","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/"},"modified":"2025-08-12T04:43:22","modified_gmt":"2025-08-11T20:43:22","slug":"%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/","title":{"rendered":"\u6a21\u5757\u7684\u539f\u578b"},"content":{"rendered":"<h1>Mod\u7684\u6a21\u677f<\/p>\n<p>\u6211\u60f3\u7740\u53ea\u8981\u6709\u90a3\u4e2a\u7684\u8bdd\u5c31\u597d\u4e86\uff0c\u4e8e\u662f\u6211\u5199\u4e0b\u6765\u4e86\u3002<br \/>\n\u76ee\u6807\u7248\u672c\uff1aforge-1.12-14.21.1.2426<\/p>\n<p>\u524d\u63d0<br \/>\nMDK\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5f8c\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u304c\u5b8c\u4e86\u3057\u3066\u3044\u308b\u3053\u3068\u3002<\/p>\n<p>\u4ee5\u4e0b\u4ee3\u7801<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">examplemod.proxy<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">examplemod.ExampleMod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraft.block.Block<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraft.item.Item<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.event.RegistryEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.Mod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLPostInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLPreInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.eventhandler.SubscribeEvent<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"cm\">\/***\r\n * \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3068\u30b5\u30fc\u30d0\u30fc\u5171\u901a\u3067\u30a2\u30a4\u30c6\u30e0\u3001\u30d6\u30ed\u30c3\u30af\u3001\u30c4\u30fc\u30eb\u306e\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002\r\n * \r\n * @author youname\r\n *\r\n *\/<\/span>\r\n<span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventBusSubscriber<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CommonProxy<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">preInit<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLPreInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"CommonProxy.preInit\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">init<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"CommonProxy.init\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">postInit<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLPostInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"CommonProxy.postInit\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"nd\">@SubscribeEvent<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">registerBlocks<\/span><span class=\"o\">(<\/span><span class=\"nc\">RegistryEvent<\/span><span class=\"o\">.<\/span><span class=\"na\">Register<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Block<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"CommonProxy.registerBlocks\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"cm\">\/***\r\n     * Mod\u3067\u8ffd\u52a0\u3057\u305f\u3044\u30a2\u30a4\u30c6\u30e0\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002&lt;br&gt;\r\n     * \u52ff\u8ad6\u30a2\u30a4\u30c6\u30e0\u306e\u30af\u30e9\u30b9\u306f\u81ea\u5206\u3067\u5b9a\u7fa9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\r\n     * \r\n     * @param event\r\n     *\/<\/span>\r\n    <span class=\"nd\">@SubscribeEvent<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">registerItems<\/span><span class=\"o\">(<\/span><span class=\"nc\">RegistryEvent<\/span><span class=\"o\">.<\/span><span class=\"na\">Register<\/span><span class=\"o\">&lt;<\/span><span class=\"nc\">Item<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"CommonProxy.registerItems\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">examplemod.proxy<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">examplemod.ExampleMod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraft.client.renderer.block.model.ModelResourceLocation<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraft.util.ResourceLocation<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.client.event.ModelRegistryEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.client.model.ModelLoader<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.Mod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLPreInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.eventhandler.SubscribeEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.relauncher.Side<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"cm\">\/***\r\n * \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u5074\u3067\u30ea\u30bd\u30fc\u30b9\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002\r\n * \r\n * @author youname\r\n *\r\n *\/<\/span>\r\n<span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventBusSubscriber<\/span><span class=\"o\">(<\/span><span class=\"nc\">Side<\/span><span class=\"o\">.<\/span><span class=\"na\">CLIENT<\/span><span class=\"o\">)<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ClientProxy<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">CommonProxy<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"nd\">@Override<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">preInit<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLPreInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"kd\">super<\/span><span class=\"o\">.<\/span><span class=\"na\">preInit<\/span><span class=\"o\">(<\/span><span class=\"n\">event<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ClientProxy.preInit\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"cm\">\/***\r\n     * \u30d6\u30ed\u30c3\u30af\u3084\u30a2\u30a4\u30c6\u30e0\u306e\u30e2\u30c7\u30eb\uff08\u30c6\u30af\u30b9\u30c1\u30e3\u306f\u4f55\u3092\u4f7f\u3046\u3068\u304b\u30c6\u30af\u30b9\u30c1\u30e3\u306e\u5411\u304d\u3068\u304b\u5b9a\u7fa9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\uff09\u3092\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002&lt;br&gt;\r\n     * \r\n     * @param event\r\n     *\/<\/span>\r\n    <span class=\"nd\">@SubscribeEvent<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">registerModels<\/span><span class=\"o\">(<\/span><span class=\"nc\">ModelRegistryEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">logger<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"ClientProxy.registerModels\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">examplemod.proxy<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.Mod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.relauncher.Side<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"cm\">\/***\r\n * \u30b5\u30fc\u30d0\u30fc\u5074\u3067\u884c\u3046\u51e6\u7406\u3002\r\n * \r\n * @author youname\r\n *\r\n *\/<\/span>\r\n<span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventBusSubscriber<\/span><span class=\"o\">(<\/span><span class=\"nc\">Side<\/span><span class=\"o\">.<\/span><span class=\"na\">SERVER<\/span><span class=\"o\">)<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ServerProxy<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">CommonProxy<\/span> <span class=\"o\">{<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">examplemod<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.apache.logging.log4j.Logger<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">examplemod.proxy.CommonProxy<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.Mod<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.SidedProxy<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLPostInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.common.event.FMLPreInitializationEvent<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"cm\">\/***\r\n * Mod\u306e\u672c\u4f53\u3067\u3001@Mod\u3092\u5ba3\u8a00\u3059\u308b\u3053\u3068\u3067\u672c\u4f53\u3068\u3057\u3066\u8a8d\u8b58\u3055\u308c\u307e\u3059\u3002&lt;br&gt;\r\n * modid\u306e\u6587\u5b57\u5217\u306fmcmod.info\u306emodid\u3068\u540c\u4e00\u306b\u3057\u306a\u3051\u308c\u3070\u3001mcmod.info\u304c\u8aad\u307f\u8fbc\u307e\u308c\u306a\u3044\u306e\u3067\u8a2d\u5b9a\u5024\u3092\u5408\u308f\u305b\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002&lt;br&gt;\r\n * \u3053\u306e\u30af\u30e9\u30b9\u3067Minecraft\u306b\u30d6\u30ed\u30c3\u30af\u3084\u30a2\u30a4\u30c6\u30e0\u306e\u767b\u9332\u3092\u884c\u3044\u307e\u3059\u3002&lt;br&gt;\r\n * \r\n * @author myname\r\n * @version forge-1.12-14.21.1.2426\r\n *\/<\/span>\r\n<span class=\"nd\">@Mod<\/span><span class=\"o\">(<\/span><span class=\"n\">modid<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">MODID<\/span><span class=\"o\">,<\/span> <span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">ExampleMod<\/span><span class=\"o\">.<\/span><span class=\"na\">VERSION<\/span><span class=\"o\">)<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ExampleMod<\/span> <span class=\"o\">{<\/span>\r\n\r\n    <span class=\"c1\">\/\/ Mod\u306e\u8b58\u5225\u3084\u30ea\u30bd\u30fc\u30b9\u306e\u30c9\u30e1\u30a4\u30f3\u540d\u306b\u5229\u7528\u3055\u308c\u307e\u3059<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"no\">MODID<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"examplemod\"<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"c1\">\/\/ Mod\u306e\u30d0\u30fc\u30b8\u30e7\u30f3<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"no\">VERSION<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"0.0.1\"<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"c1\">\/\/ \u30d7\u30ed\u30ad\u30b7\uff08\u8aad\u307f\u8fbc\u307f\u51e6\u7406\uff09\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u968e\u5c64<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"no\">CLIENT_PROXY<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"examplemod.proxy.ClientProxy\"<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"no\">SERVER_PROXY<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"examplemod.proxy.ServerProxy\"<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"c1\">\/\/ \u30b5\u30fc\u30d0\u30fc\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u8b58\u5225\u3057\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u4fdd\u6301\u3057\u307e\u3059<\/span>\r\n    <span class=\"nd\">@SidedProxy<\/span><span class=\"o\">(<\/span><span class=\"n\">clientSide<\/span> <span class=\"o\">=<\/span> <span class=\"no\">CLIENT_PROXY<\/span><span class=\"o\">,<\/span> <span class=\"n\">serverSide<\/span> <span class=\"o\">=<\/span> <span class=\"no\">SERVER_PROXY<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"nc\">CommonProxy<\/span> <span class=\"n\">proxy<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"c1\">\/\/ \u3044\u307e\u3044\u3061\u5fc5\u8981\u6027\u304c\u5206\u304b\u3089\u306a\u3044<\/span>\r\n    <span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">Instance<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"nc\">ExampleMod<\/span> <span class=\"n\">instance<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"c1\">\/\/ \u30ed\u30b0\u51fa\u529b\u3067\u4f7f\u3044\u307e\u3059<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"nc\">Logger<\/span> <span class=\"n\">logger<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"cm\">\/***\r\n     * Mod\u672c\u4f53\u306e\u30e1\u30bd\u30c3\u30c9\u4e2d\u6700\u521d\u306b\u547c\u3070\u308c\u307e\u3059\u3002&lt;br&gt;\r\n     * \u5909\u6570\u306e\u521d\u671f\u5316\u306a\u3069\u5f8c\u7d9a\u306e\u51e6\u7406\u306b\u5f71\u97ff\u306e\u3042\u308b\u3053\u3068\u3092\u6e08\u307e\u305b\u307e\u3059\u3002\r\n     * \r\n     * @param event\r\n     *\/<\/span>\r\n    <span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventHandler<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">preInit<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLPreInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">logger<\/span> <span class=\"o\">=<\/span> <span class=\"n\">event<\/span><span class=\"o\">.<\/span><span class=\"na\">getModLog<\/span><span class=\"o\">();<\/span>\r\n        <span class=\"n\">proxy<\/span><span class=\"o\">.<\/span><span class=\"na\">preInit<\/span><span class=\"o\">(<\/span><span class=\"n\">event<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"cm\">\/***\r\n     * preinit\u306e\u5f8c\u306b\u547c\u3070\u308c\u307e\u3059\u3002&lt;br&gt;\r\n     * \u8a00\u308f\u3070\u3053\u306eMod\u306e\u672c\u4f53\u3068\u3082\u8a00\u3048\u308b\u4e3b\u8981\u306a\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002&lt;br&gt;\r\n     * \u3068\u306b\u304b\u304f\u4e3b\u8981\u306a\u3053\u3068\u306f\u3053\u3053\u3067\u51e6\u7406\u3057\u307e\u3059\u3002\r\n     * \r\n     * @param event\r\n     *\/<\/span>\r\n    <span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventHandler<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">init<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">proxy<\/span><span class=\"o\">.<\/span><span class=\"na\">init<\/span><span class=\"o\">(<\/span><span class=\"n\">event<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"cm\">\/***\r\n     * init\u306e\u5f8c\u306b\u547c\u3070\u308c\u307e\u3059\u3002\u3064\u307e\u308aMod\u672c\u4f53\u306e\u4e2d\u3067\u306f\u6700\u5f8c\u306b\u547c\u3070\u308c\u307e\u3059\u3002&lt;br&gt;\r\n     * \u30ea\u30bd\u30fc\u30b9\u306e\u958b\u653e\u3084\u4e0d\u8981\u306a\u30c7\u30fc\u30bf\u306e\u524a\u9664\u306a\u3069\u304a\u7247\u4ed8\u3051\u7684\u306a\u3053\u3068\u3092\u3057\u307e\u3059\u3002\r\n     * \r\n     * @param event\r\n     *\/<\/span>\r\n    <span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventHandler<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">postInit<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLPostInitializationEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">proxy<\/span><span class=\"o\">.<\/span><span class=\"na\">postInit<\/span><span class=\"o\">(<\/span><span class=\"n\">event<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u6211\u5728Github\u4e0a\u516c\u5f00\u4e86\u4ee3\u7801\u3002<\/p>\n<h1>GitHub<\/p>\n<p>Github (only need one option) : \u5373\u4f7f\u53ea\u9700\u8981\u4e00\u4e2a\u9009\u9879\uff0c\u4e5f\u53ef\u4ee5\u5c06Github\u7684\u53e5\u5b50\u6539\u5199\u6210\u4e2d\u6587\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mod\u7684\u6a21\u677f \u6211\u60f3\u7740\u53ea\u8981\u6709\u90a3\u4e2a\u7684\u8bdd\u5c31\u597d\u4e86\uff0c\u4e8e\u662f\u6211\u5199\u4e0b\u6765\u4e86\u3002 \u76ee\u6807\u7248\u672c\uff1aforge-1.12-14.21.1.2 [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-27805","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6a21\u5757\u7684\u539f\u578b - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6a21\u5757\u7684\u539f\u578b\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6a21\u5757\u7684\u539f\u578b\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6a21\u5757\u7684\u539f\u578b\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-20T15:31:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T20:43:22+00:00\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/\",\"name\":\"\u6a21\u5757\u7684\u539f\u578b - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-20T15:31:48+00:00\",\"dateModified\":\"2025-08-11T20:43:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"description\":\"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6a21\u5757\u7684\u539f\u578b\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6a21\u5757\u7684\u539f\u578b - Blog - Silicon Cloud","description":"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6a21\u5757\u7684\u539f\u578b\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6a21\u5757\u7684\u539f\u578b","og_description":"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6a21\u5757\u7684\u539f\u578b\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-20T15:31:48+00:00","article_modified_time":"2025-08-11T20:43:22+00:00","author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/","name":"\u6a21\u5757\u7684\u539f\u578b - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-20T15:31:48+00:00","dateModified":"2025-08-11T20:43:22+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"description":"\u5173\u4e8e\u6a21\u5757\u7684\u539f\u578b\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6a21\u5757\u7684\u539f\u578b"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%a8%a1%e5%9d%97%e7%9a%84%e5%8e%9f%e5%9e%8b\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27805","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=27805"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27805\/revisions"}],"predecessor-version":[{"id":111200,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27805\/revisions\/111200"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=27805"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=27805"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=27805"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}