{"id":27958,"date":"2023-09-22T03:31:53","date_gmt":"2023-07-10T00:47:42","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/"},"modified":"2025-08-12T05:35:18","modified_gmt":"2025-08-11T21:35:18","slug":"%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/","title":{"rendered":"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011"},"content":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u662f\u4e00\u7cfb\u5217\u89e3\u91ca\u6027\u6587\u7ae0\u4e2d\u7684\u4e00\u7bc7\u3002<\/p>\n<p>\u6807\u9898\uff1a\u5165\u95e8\u7bc7<br \/>\n\u4e0a\u4e00\u7bc7\uff1a\u5165\u95e8\u7bc7<br \/>\n\u4e0b\u4e00\u7bc7\uff1a1. \u6dfb\u52a0\u7269\u54c1<\/p>\n<h1>\u57fa\u672c\u6587\u4ef6\u7ecf\u8fc7\u5f00\u53d1\u73af\u5883\u7684\u51c6\u5907\uff0c\u4f60\u7ec8\u4e8e\u7ad9\u5728\u4e86\u8d77\u8dd1\u7ebf\u4e0a\u3002\u73b0\u5728\u8ba9\u6211\u4eec\u4e3a\u60a8\u63a8\u8fdbModding\u505a\u597d\u4e00\u4e9b\u51c6\u5907\u5de5\u4f5c\u3002\u6211\u8ba4\u4e3a\u5728\u8fd9\u4e2a\u9636\u6bb5\uff0c\u60a8\u53ea\u9700\u8981\u6a21\u4eff\uff0c\u4e0d\u9700\u8981\u6df1\u5165\u601d\u8003\u3002<\/p>\n<h1>\u9879\u76ee\u7ec4ID\u548c\u9879\u76eeID\u9996\u5148\u8981\u8bbe\u7f6eGroupId\u548cArtifactId\u3002\u8fd9\u4e0eMinecraft\u65e0\u5173\uff0c\u770b\u8d77\u6765\u66f4\u50cf\u662fJava\u65b9\u9762\u7684\u8981\u6c42\uff0c\u4f46\u7531\u4e8e\u4e0d\u592a\u4e86\u89e3\uff0c\u6211\u5c06\u7701\u7565\u6b64\u90e8\u5206\u3002<\/p>\n<blockquote><p>\u5728\u7ed9\u5305\u547d\u540d\u65f6\u6709\u4e00\u822c\u7684\u60ef\u4f8b\u3002<\/p>\n<p>GroupId\uff1a\u6307\u4ee3\u7ec4\u7ec7\u540d\u79f0\u3002\u901a\u5e38\u4ee5\u53cd\u5411\u987a\u5e8f\u5199\u660e\u57df\u540d\u5f62\u5f0f\u3002<br \/>\nArtifactId\uff1a\u6307\u4ee3\u9879\u76ee\u540d\u79f0\u3002<\/p><\/blockquote>\n<p>\u56e0\u6b64\uff0c\u6211\u6839\u636e\u60c5\u51b5\u505a\u4e86\u4ee5\u4e0b\u5904\u7406\u3002<\/p>\n<div>\n<div class=\"post-table\">\u9805\u76ee\u5024GroupIdjp.kotekoArtifactIdexample_mod\u8bf7\u6839\u636e\u4e2a\u4eba\u9700\u8981\u8fdb\u884c\u76f8\u5e94\u66f4\u6539\u3002\u6839\u636e\u8fd9\u4e2a\u8fdb\u884c\u6587\u4ef6\u5939\u7684\u91cd\u547d\u540d\u3002<\/p>\n<pre class=\"post-pre\"><code>D:\\projects\\mc_example_mod\\src\\main\\java\r\n  \u2514 com\r\n      \u2514 example\r\n\u3000         \u2514 examplemod\r\n\u3000             \u2514 ExampleMod.java\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>D:\\projects\\mc_example_mod\\src\\main\\java\r\n  \u2514 jp\r\n     \u2514 koteko\r\n          \u2514 example_mod\r\n              \u2514 ExampleMod.java\r\n<\/code><\/pre>\n<h1>\u8d44\u4ea7\u6587\u4ef6\u5939\u9996\u5148\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a assets\\example_mod \u7684\u6587\u4ef6\u5939\uff0c\u7528\u4e8e\u653e\u7f6e\u7eb9\u7406\u548c\u97f3\u6548\u6587\u4ef6\u3002<\/p>\n<pre class=\"post-pre\"><code>D:\\projects\\mc_example_mod\\src\\main\\resources\r\n   \u251c assets\r\n   \u2502  \u2514 example_mod\r\n   \u251c META-INF\r\n   \u2502   \u2514 mods.toml\r\n   \u2514 pack.mcmeta\r\n<\/code><\/pre>\n<h1>pack.mcmeta \u53ef\u4ee5\u88ab\u7ffb\u8bd1\u4e3a \u5b8c\u6574\u7684\u5305\u6587\u4ef6.mcmeta.\u597d\u7684\uff0c\u90a3\u4e48\u5df2\u7ecf\u653e\u7f6e\u7684\u6587\u4ef6\u662f\u54ea\u4e9b\u5462\uff1f\u6211\u4eec\u9010\u4e2a\u6765\u770b\u4e00\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>{\r\n    \"pack\": {\r\n        \"description\": \"examplemod resources\",\r\n        \"pack_format\": 4,\r\n        \"_comment\": \"A pack_format of 4 requires json lang files. Note: we require v4 pack meta for all mods.\"\r\n    }\r\n}\r\n<\/code><\/pre>\n<p>pack.mcmeta\u6587\u4ef6\u662f\u7528\u4e8e\u8bb0\u5f55\u8d44\u6e90\u5305\u8be6\u7ec6\u4fe1\u606f\u7684\u6587\u4ef6\u3002<br \/>\n\u8be6\u7ec6\u4fe1\u606f\u8bf7\u53c2\u8003\u7ef4\u57fa\u767e\u79d1\u3002\u53ef\u4ee5\u81ea\u7531\u5730\u66f4\u6539\u63cf\u8ff0\uff0c\u4e0d\u9700\u8981_comment\u884c\uff0c\u53ef\u4ee5\u5220\u9664\u3002<\/p>\n<pre class=\"post-pre\"><code>{\r\n    \"pack\": {\r\n        \"description\": \"Example Mod resources\",\r\n        \"pack_format\": 4\r\n    }\r\n}\r\n<\/code><\/pre>\n<h1>mods.toml \u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\"># This is an example mods.toml file. It contains the data relating to the loading mods.<\/span>\r\n<span class=\"c\"># There are several mandatory fields (#mandatory), and many more that are optional (#optional).<\/span>\r\n<span class=\"c\"># The overall format is standard TOML format, v0.5.0.<\/span>\r\n<span class=\"c\"># Note that there are a couple of TOML lists in this file.<\/span>\r\n<span class=\"c\"># Find more information on toml format here:  https:\/\/github.com\/toml-lang\/toml<\/span>\r\n<span class=\"c\"># The name of the mod loader type to load - for regular FML @Mod mods it should be javafml<\/span>\r\n<span class=\"py\">modLoader<\/span><span class=\"p\">=<\/span><span class=\"s\">\"javafml\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n<span class=\"c\"># A version range to match for said mod loader - for regular FML @Mod it will be the forge version<\/span>\r\n<span class=\"py\">loaderVersion<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[28,)\"<\/span> <span class=\"c\">#mandatory (28 is current forge version)<\/span>\r\n<span class=\"c\"># A URL to refer people to when problems occur with this mod<\/span>\r\n<span class=\"py\">issueTrackerURL<\/span><span class=\"p\">=<\/span><span class=\"s\">\"http:\/\/my.issue.tracker\/\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># A list of mods - how many allowed here is determined by the individual mod loader<\/span>\r\n<span class=\"nn\">[[mods]]<\/span> <span class=\"c\">#mandatory<\/span>\r\n<span class=\"c\"># The modid of the mod<\/span>\r\n<span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"examplemod\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n<span class=\"c\"># The version number of the mod - there's a few well known ${} variables useable here or just hardcode it<\/span>\r\n<span class=\"py\">version<\/span><span class=\"p\">=<\/span><span class=\"s\">\"${file.jarVersion}\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n <span class=\"c\"># A display name for the mod<\/span>\r\n<span class=\"py\">displayName<\/span><span class=\"p\">=<\/span><span class=\"s\">\"Example Mod\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n<span class=\"c\"># A URL to query for updates for this mod. See the JSON update specification &lt;here&gt;<\/span>\r\n<span class=\"py\">updateJSONURL<\/span><span class=\"p\">=<\/span><span class=\"s\">\"http:\/\/myurl.me\/\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># A URL for the \"homepage\" for this mod, displayed in the mod UI<\/span>\r\n<span class=\"py\">displayURL<\/span><span class=\"p\">=<\/span><span class=\"s\">\"http:\/\/example.com\/\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># A file name (in the root of the mod JAR) containing a logo for display<\/span>\r\n<span class=\"py\">logoFile<\/span><span class=\"p\">=<\/span><span class=\"s\">\"examplemod.png\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># A text field displayed in the mod UI<\/span>\r\n<span class=\"py\">credits<\/span><span class=\"p\">=<\/span><span class=\"s\">\"Thanks for this example mod goes to Java\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># A text field displayed in the mod UI<\/span>\r\n<span class=\"py\">authors<\/span><span class=\"p\">=<\/span><span class=\"s\">\"Love, Cheese and small house plants\"<\/span> <span class=\"c\">#optional<\/span>\r\n<span class=\"c\"># The description text for the mod (multi line!) (#mandatory)<\/span>\r\n<span class=\"py\">description<\/span><span class=\"p\">=<\/span><span class=\"s\">'''\r\nThis is a long form description of the mod. You can write whatever you want here\r\n\r\nHave some lorem ipsum.\r\n\r\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magna. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sagittis luctus odio eu tempus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque volutpat ligula eget lacus auctor sagittis. In hac habitasse platea dictumst. Nunc gravida elit vitae sem vehicula efficitur. Donec mattis ipsum et arcu lobortis, eleifend sagittis sem rutrum. Cras pharetra quam eget posuere fermentum. Sed id tincidunt justo. Lorem ipsum dolor sit amet, consectetur adipiscing elit.\r\n'''<\/span>\r\n<span class=\"c\"># A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.<\/span>\r\n<span class=\"nn\">[[dependencies.examplemod]]<\/span> <span class=\"c\">#optional<\/span>\r\n    <span class=\"c\"># the modid of the dependency<\/span>\r\n    <span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"forge\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n    <span class=\"c\"># Does this dependency have to exist - if not, ordering below must be specified<\/span>\r\n    <span class=\"py\">mandatory<\/span><span class=\"p\">=<\/span><span class=\"kc\">true<\/span> <span class=\"c\">#mandatory<\/span>\r\n    <span class=\"c\"># The version range of the dependency<\/span>\r\n    <span class=\"py\">versionRange<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[28,)\"<\/span> <span class=\"c\">#mandatory<\/span>\r\n    <span class=\"c\"># An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory<\/span>\r\n    <span class=\"py\">ordering<\/span><span class=\"p\">=<\/span><span class=\"s\">\"NONE\"<\/span>\r\n    <span class=\"c\"># Side this dependency is applied on - BOTH, CLIENT or SERVER<\/span>\r\n    <span class=\"py\">side<\/span><span class=\"p\">=<\/span><span class=\"s\">\"BOTH\"<\/span>\r\n<span class=\"c\"># Here's another dependency<\/span>\r\n<span class=\"nn\">[[dependencies.examplemod]]<\/span>\r\n    <span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"minecraft\"<\/span>\r\n    <span class=\"py\">mandatory<\/span><span class=\"p\">=<\/span><span class=\"kc\">true<\/span>\r\n    <span class=\"py\">versionRange<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[1.14.4]\"<\/span>\r\n    <span class=\"py\">ordering<\/span><span class=\"p\">=<\/span><span class=\"s\">\"NONE\"<\/span>\r\n    <span class=\"py\">side<\/span><span class=\"p\">=<\/span><span class=\"s\">\"BOTH\"<\/span>\r\n\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657cf98c37434c4406bb9452\/22-0.png\" alt=\"\u30ad\u30e3\u30d7\u30c1\u30e3.PNG\" \/><br \/>\n\u867d\u7136\u5f88\u5197\u957f\uff0c\u4f46\u7531\u4e8e\u6bcf\u4e2a\u9879\u76ee\u53ea\u6709\u5728\u6ce8\u91ca\u4e2d\u8fdb\u884c\u4e86\u8bf4\u660e\uff0c\u6240\u4ee5\u8ba9\u6211\u4eec\u5c06\u5176\u5220\u9664\uff08\u4e3a\u4e86\u5728\u9700\u8981\u65f6\u80fd\u591f\u53c2\u8003\uff0c\u6211\u4eec\u8981\u4fdd\u7559\uff09\u3002&#8221;mandatory&#8221;\u4ee3\u8868\u5fc5\u987b\uff0c&#8221;optional&#8221;\u4ee3\u8868\u53ef\u9009\u9879\u76ee\u3002\u4ee5\u4e0b\u662f\u9002\u5f53\u7f16\u8f91\u8fc7\u7684\u793a\u4f8b\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"py\">modLoader<\/span><span class=\"p\">=<\/span><span class=\"s\">\"javafml\"<\/span>\r\n<span class=\"py\">loaderVersion<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[28,)\"<\/span>\r\n<span class=\"nn\">[[mods]]<\/span>\r\n<span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"example_mod\"<\/span>\r\n<span class=\"py\">version<\/span><span class=\"p\">=<\/span><span class=\"s\">\"${file.jarVersion}\"<\/span>\r\n<span class=\"py\">displayName<\/span><span class=\"p\">=<\/span><span class=\"s\">\"Example Mod\"<\/span>\r\n<span class=\"py\">logoFile<\/span><span class=\"p\">=<\/span><span class=\"s\">\"logo.png\"<\/span>\r\n<span class=\"py\">description<\/span><span class=\"p\">=<\/span><span class=\"s\">'''\r\n\u3053\u3053\u306b\r\n    \u8aac\u660e\u3092\r\n        \u5165\u529b\r\n'''<\/span>\r\n\r\n<span class=\"nn\">[[dependencies.example_mod]]<\/span>\r\n    <span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"forge\"<\/span>\r\n    <span class=\"py\">mandatory<\/span><span class=\"p\">=<\/span><span class=\"kc\">true<\/span>\r\n    <span class=\"py\">versionRange<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[28,)\"<\/span>\r\n    <span class=\"py\">ordering<\/span><span class=\"p\">=<\/span><span class=\"s\">\"NONE\"<\/span>\r\n    <span class=\"py\">side<\/span><span class=\"p\">=<\/span><span class=\"s\">\"BOTH\"<\/span>\r\n\r\n<span class=\"nn\">[[dependencies.example_mod]]<\/span>\r\n    <span class=\"py\">modId<\/span><span class=\"p\">=<\/span><span class=\"s\">\"minecraft\"<\/span>\r\n    <span class=\"py\">mandatory<\/span><span class=\"p\">=<\/span><span class=\"kc\">true<\/span>\r\n    <span class=\"py\">versionRange<\/span><span class=\"p\">=<\/span><span class=\"s\">\"[1.14.4]\"<\/span>\r\n    <span class=\"py\">ordering<\/span><span class=\"p\">=<\/span><span class=\"s\">\"NONE\"<\/span>\r\n    <span class=\"py\">side<\/span><span class=\"p\">=<\/span><span class=\"s\">\"BOTH\"<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u53e6\u5916\uff0c\u4f5c\u70ba Mod \u7684\u6a19\u8a8c\u5716\u7247\uff0c\u6211\u5011\u5c07 logo.png \u5b89\u653e\u5728 resources \u76ee\u9304\u4e0b\u3002<\/p>\n<pre class=\"post-pre\"><code>D:\\projects\\mc_example_mod\\src\\main\\resources\r\n   \u251c assets\r\n   \u2502  \u2514 example_mod\r\n   \u251c META-INF\r\n   \u2502   \u2514 mods.toml\r\n   \u251c logo.png\r\n   \u2514 pack.mcmeta\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657cf98c37434c4406bb9452\/27-0.png\" alt=\"\u30ad\u30e3\u30d7\u30c1\u30e3.PNG\" \/><\/p>\n<h1>\u4e3b\u6587\u4ef6<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">jp.koteko.example_mod<\/span><span class=\"o\">;<\/span>\r\n\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.block.Blocks<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.common.MinecraftForge<\/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.eventbus.api.SubscribeEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.InterModComms<\/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.event.lifecycle.FMLClientSetupEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.event.lifecycle.InterModProcessEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.event.server.FMLServerStartingEvent<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.apache.logging.log4j.LogManager<\/span><span class=\"o\">;<\/span>\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\">java.util.stream.Collectors<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"c1\">\/\/ The value here should match an entry in the META-INF\/mods.toml file<\/span>\r\n<span class=\"nd\">@Mod<\/span><span class=\"o\">(<\/span><span class=\"s\">\"example_mod\"<\/span><span class=\"o\">)<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ExampleMod<\/span>\r\n<span class=\"o\">{<\/span>\r\n    <span class=\"c1\">\/\/ Directly reference a log4j logger.<\/span>\r\n    <span class=\"kd\">private<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">final<\/span> <span class=\"nc\">Logger<\/span> <span class=\"no\">LOGGER<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">LogManager<\/span><span class=\"o\">.<\/span><span class=\"na\">getLogger<\/span><span class=\"o\">();<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"nf\">ExampleMod<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ Register the setup method for modloading<\/span>\r\n        <span class=\"nc\">FMLJavaModLoadingContext<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">().<\/span><span class=\"na\">getModEventBus<\/span><span class=\"o\">().<\/span><span class=\"na\">addListener<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">::<\/span><span class=\"n\">setup<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"c1\">\/\/ Register the enqueueIMC method for modloading<\/span>\r\n        <span class=\"nc\">FMLJavaModLoadingContext<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">().<\/span><span class=\"na\">getModEventBus<\/span><span class=\"o\">().<\/span><span class=\"na\">addListener<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">::<\/span><span class=\"n\">enqueueIMC<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"c1\">\/\/ Register the processIMC method for modloading<\/span>\r\n        <span class=\"nc\">FMLJavaModLoadingContext<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">().<\/span><span class=\"na\">getModEventBus<\/span><span class=\"o\">().<\/span><span class=\"na\">addListener<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">::<\/span><span class=\"n\">processIMC<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"c1\">\/\/ Register the doClientStuff method for modloading<\/span>\r\n        <span class=\"nc\">FMLJavaModLoadingContext<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">().<\/span><span class=\"na\">getModEventBus<\/span><span class=\"o\">().<\/span><span class=\"na\">addListener<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">::<\/span><span class=\"n\">doClientStuff<\/span><span class=\"o\">);<\/span>\r\n\r\n        <span class=\"c1\">\/\/ Register ourselves for server and other game events we are interested in<\/span>\r\n        <span class=\"nc\">MinecraftForge<\/span><span class=\"o\">.<\/span><span class=\"na\">EVENT_BUS<\/span><span class=\"o\">.<\/span><span class=\"na\">register<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">private<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">setup<\/span><span class=\"o\">(<\/span><span class=\"kd\">final<\/span> <span class=\"nc\">FMLCommonSetupEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ some preinit code<\/span>\r\n        <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"HELLO FROM PREINIT\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"DIRT BLOCK &gt;&gt; {}\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Blocks<\/span><span class=\"o\">.<\/span><span class=\"na\">DIRT<\/span><span class=\"o\">.<\/span><span class=\"na\">getRegistryName<\/span><span class=\"o\">());<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">private<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">doClientStuff<\/span><span class=\"o\">(<\/span><span class=\"kd\">final<\/span> <span class=\"nc\">FMLClientSetupEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ do something that can only be done on the client<\/span>\r\n        <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Got game settings {}\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">event<\/span><span class=\"o\">.<\/span><span class=\"na\">getMinecraftSupplier<\/span><span class=\"o\">().<\/span><span class=\"na\">get<\/span><span class=\"o\">().<\/span><span class=\"na\">gameSettings<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">private<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">enqueueIMC<\/span><span class=\"o\">(<\/span><span class=\"kd\">final<\/span> <span class=\"nc\">InterModEnqueueEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ some example code to dispatch IMC to another mod<\/span>\r\n        <span class=\"nc\">InterModComms<\/span><span class=\"o\">.<\/span><span class=\"na\">sendTo<\/span><span class=\"o\">(<\/span><span class=\"s\">\"examplemod\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"helloworld\"<\/span><span class=\"o\">,<\/span> <span class=\"o\">()<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"o\">{<\/span> <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Hello world from the MDK\"<\/span><span class=\"o\">);<\/span> <span class=\"k\">return<\/span> <span class=\"s\">\"Hello world\"<\/span><span class=\"o\">;});<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"kd\">private<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">processIMC<\/span><span class=\"o\">(<\/span><span class=\"kd\">final<\/span> <span class=\"nc\">InterModProcessEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ some example code to receive and process InterModComms from other mods<\/span>\r\n        <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Got IMC {}\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">event<\/span><span class=\"o\">.<\/span><span class=\"na\">getIMCStream<\/span><span class=\"o\">().<\/span>\r\n                <span class=\"n\">map<\/span><span class=\"o\">(<\/span><span class=\"n\">m<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">m<\/span><span class=\"o\">.<\/span><span class=\"na\">getMessageSupplier<\/span><span class=\"o\">().<\/span><span class=\"na\">get<\/span><span class=\"o\">()).<\/span>\r\n                <span class=\"n\">collect<\/span><span class=\"o\">(<\/span><span class=\"nc\">Collectors<\/span><span class=\"o\">.<\/span><span class=\"na\">toList<\/span><span class=\"o\">()));<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"c1\">\/\/ You can use SubscribeEvent and let the Event Bus discover methods to call<\/span>\r\n    <span class=\"nd\">@SubscribeEvent<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">onServerStarting<\/span><span class=\"o\">(<\/span><span class=\"nc\">FMLServerStartingEvent<\/span> <span class=\"n\">event<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"c1\">\/\/ do something when the server starts<\/span>\r\n        <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"HELLO from server starting\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"c1\">\/\/ You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD<\/span>\r\n    <span class=\"c1\">\/\/ Event bus for receiving Registry Events)<\/span>\r\n    <span class=\"nd\">@Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventBusSubscriber<\/span><span class=\"o\">(<\/span><span class=\"n\">bus<\/span><span class=\"o\">=<\/span><span class=\"nc\">Mod<\/span><span class=\"o\">.<\/span><span class=\"na\">EventBusSubscriber<\/span><span class=\"o\">.<\/span><span class=\"na\">Bus<\/span><span class=\"o\">.<\/span><span class=\"na\">MOD<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">RegistryEvents<\/span> <span class=\"o\">{<\/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\">onBlocksRegistry<\/span><span class=\"o\">(<\/span><span class=\"kd\">final<\/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\">blockRegistryEvent<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n            <span class=\"c1\">\/\/ register a new block here<\/span>\r\n            <span class=\"no\">LOGGER<\/span><span class=\"o\">.<\/span><span class=\"na\">info<\/span><span class=\"o\">(<\/span><span class=\"s\">\"HELLO from Register Block\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"o\">}<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n\r\n<\/code><\/pre>\n<p>\u8fd9\u662fmod\u7684\u4e3b\u8981\u6587\u4ef6\u3002\u9996\u5148\u76f4\u63a5\u4f7f\u7528\u5b83\uff0c\u4e00\u5b9a\u7a0b\u5ea6\u4e0a\u7406\u89e3\u540e\uff0c\u968f\u65f6\u53ef\u4ee5\u8fdb\u884c\u4fee\u6539\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\u6587\u4ef6\u540d(ExampleMod.java)\u3001\u7c7b\u540d(public class ExampleMod)\u548c\u6784\u9020\u51fd\u6570(public ExampleMod())\u662f\u5426\u76f8\u540c\uff0c\u8fd8\u6709modId\u7684\u6307\u5b9a(@Mod(&#8220;examplemod&#8221;))\u662f\u5426\u4e0e mods.toml \u4e2d\u7684\u6307\u5b9a\u76f8\u540c\u3002\u5982\u679c\u4e0d\u540c\uff0c\u8bf7\u8fdb\u884c\u4fee\u6b63\u3002<\/p>\n<h1>\u8bf7\u67e5\u9605<br \/>\nMinecraft 1.14.4 Forge Mod\u7684\u5236\u4f5c2-\u57fa\u672c\u6587\u4ef6\u5b89\u6392<\/p>\n<h1>\u4ee5\u4e0b\u662f\u4e0b\u4e00\u7bc7\u6587\u7ae0\u30021. \u6dfb\u52a0\u7269\u54c1<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u662f\u4e00\u7cfb\u5217\u89e3\u91ca\u6027\u6587\u7ae0\u4e2d\u7684\u4e00\u7bc7\u3002 \u6807\u9898\uff1a\u5165\u95e8\u7bc7 \u4e0a\u4e00\u7bc7\uff1a\u5165\u95e8\u7bc7 \u4e0b\u4e00\u7bc7\uff1a1. \u6dfb\u52a0\u7269\u54c1 \u57fa\u672c\u6587\u4ef6\u7ecf\u8fc7\u5f00\u53d1\u73af [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-27958","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>\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\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\/\u3010java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaminecraft\u7684mod\u5427\uff011-14-4\u30100-\u57fa\u672c\u6587\u4ef6\u3011\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u3010java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaminecraft\u7684mod\u5427\uff011-14-4\u30100-\u57fa\u672c\u6587\u4ef6\u3011\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-10T00:47:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-11T21:35:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657cf98c37434c4406bb9452\/22-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\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\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/\",\"name\":\"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-07-10T00:47:42+00:00\",\"dateModified\":\"2025-08-11T21:35:18+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"description\":\"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\"}]},{\"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011 - Blog - Silicon Cloud","description":"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\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\/\u3010java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaminecraft\u7684mod\u5427\uff011-14-4\u30100-\u57fa\u672c\u6587\u4ef6\u3011\/","og_locale":"zh_CN","og_type":"article","og_title":"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011","og_description":"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u3010java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaminecraft\u7684mod\u5427\uff011-14-4\u30100-\u57fa\u672c\u6587\u4ef6\u3011\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-07-10T00:47:42+00:00","article_modified_time":"2025-08-11T21:35:18+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657cf98c37434c4406bb9452\/22-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/","name":"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-07-10T00:47:42+00:00","dateModified":"2025-08-11T21:35:18+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"description":"\u5173\u4e8e\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u3010Java\u3011\u8ba9\u6211\u4eec\u6765\u521b\u5efaMinecraft\u7684Mod\u5427\uff011.14.4\u30100. \u57fa\u672c\u6587\u4ef6\u3011"}]},{"@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\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e3%80%90java%e3%80%91%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e5%88%9b%e5%bb%baminecraft%e7%9a%84mod%e5%90%a7%ef%bc%811-14-4%e3%80%900-%e5%9f%ba%e6%9c%ac%e6%96%87%e4%bb%b6%e3%80%91\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27958","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\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=27958"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27958\/revisions"}],"predecessor-version":[{"id":111236,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/27958\/revisions\/111236"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=27958"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=27958"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=27958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}