推 mattc123456c:可以加精華了 05/15 16:33
http://www.minecraftforum.net/topic/75440-v152-risugamis-mods-updated/
[2] http://www.minecraftforge.net/
[3] http://tinyurl.com/bve7rfm
[4] http://asm.ow2.org/
[5] https://github.com/MinecraftPortCentral/MCPC-Plus/issues/656
※ 引述《hfs (快樂!移民瑞士!夢想成真!)》之銘言:
: 為什麼裝mod要分成3種方式呢?
: 我用的是ftb dw20
: 裝mod分成3種方式
: 1.放mod
: 2.放jar
: 3.放core
: 請問這三種有什麼差別呢?
: 為什麼裝mod要分成3種方式呢?
: 感謝熱心回答的朋友們哦
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.130.86
* 放jar檔裡面: (下稱jar mod)
修改minecraft本身提供的class,來達到自己想要的功能;
基本上這一類的mod可以做到java能做到的所有事情,
但也因為覆蓋了minecraft本身的base class,
如果不同jar mod改到同一個class,後來的會把先來的蓋掉~
常常造成不少模組裝不起來的抱怨文 (!?)
* 放mods/資料夾裡面:
這個是現在常用的模組裡最多的XD
minecraft本身其實看不懂這個資料夾,
而是由特定的jar mod來載入這裡面的模組,
如modloader系[1]、forge[2]、liteloader[3]...etc
這些特定的jar mod提供一組API來讓模組使用,
模組只能用這些API所提供的功能,但也相對地衝突的情形比較少。
其中liteloader是羽量級的,只適用不更改遊戲本身內容的模組;
forge算是最複雜的一組API,
但同時也幫模組作者們提供了可觀的基礎建設~
btw,bukkit的plugins也應該可以算這種機制...
* 放coremods/資料夾裡面:
這是forge專屬的東西,算是折衷的產品 (!?)
在這裡面的模組仍然是由forge負責載入,
但他們可以透過ASM[4]機制修改已經載入的code,
因此不用覆蓋任何base class,
又能做到絕大部份jar mods能做的事。
但這區的東西...
如果原本的code因為某些原因已經先改動了就會炸掉,
然後噴出沒人看得懂的錯誤訊息XD
(例如代碼雞核心的lava persistent功能配上mcpc+ [5]...)
Reference:
[1]