我的世界NEI物品管理器mod詳細圖文使用教程
NEI算是一個功能非常雜的mod了,但是很多人對NEI的了解甚至還只局限于作弊上,然而實際上NEI的功能對無論是生存還是創(chuàng)造都有很大的幫助。
NEI完全開源,作者為Chickenbones,如果想要貢獻代碼可以去:https://github.com/Chicken-Bones/NotEnoughItems
安裝的時候注意一點,NEI在客戶端和服務器都能安裝,而且推薦兩端同時安裝。
在下面我會詳細列出NEI的絕大部分功能,不過可能還有遺漏,如果發(fā)現(xiàn)請告訴我,回來慢慢翻源碼看看能不能再發(fā)現(xiàn)什么。
寬屏模式下效果更佳
合成配方篇
NEI查看合成配方非常方便,最基礎(chǔ)的操作就是鼠標懸停在一個物品上方按下R鍵就行了。當然,除此之外還有很多其他的功能,總結(jié)在下面這個列表:
查看選中物品的合成配方:懸停物品上方按R,或Recipe模式右側(cè)物品欄左鍵
查看選中物品的用途:懸停在物品上方U,或者懸停物品上Shift+R,或者Recipe模式右側(cè)物品欄右鍵
查看指向方塊的合成配方(Waila):指向方塊按小鍵盤3,注意這一條是Waila的功能,Creative+模式下有Bug
查看指向方塊的用途(Waila):指向方塊按小鍵盤4,注意這一條是Waila的功能,Creative+模式下有Bug
下面是一張合成表的截圖:
介紹一下界面:
點擊上方的箭頭可以切換不同的配方類型(有序合成,無序合成,機器等)
點擊合成表中間的箭頭可查看該類型的所有配方
左鍵任意物品或懸停按R能夠查看物品的配方
右鍵任意物品或Shift+R或U鍵能夠查看物品的用途
如果你在合成表界面里查看了其他物品的合成表,可以用Backspace鍵退回上一級合成表
如果合成表使用了Ore Dictionary,匹配的物品會輪流顯示,按住Shift鍵可以停止變換
右下角有個"?"的按鈕,3x3配方在工作臺中查看配方才會顯示,2x2及以下背包內(nèi)就有顯示
直接單擊它會在工作臺內(nèi)投影出選中的配方
如果你包里已經(jīng)有了配方所需所有的物品,Shift+點擊它會自動在工作臺中擺放選中的配方(不支持包含武器或工具的配方)
搜索篇
背包里面最下面那條黑色的框框就是搜索框,單擊一下或者按一下F鍵就能輸入了。
NEI的搜索是支持正則表達式的!如果你不喜歡正則表達式搜索,可以把Options>Inventory>Search Mode調(diào)成Plain。搜索是不分大小寫的,也就是說Apple和apple效果一樣的。另外,搜索會匹配物品的ToolTips(就是有些物品下面的說明),比如如果你搜索"No effects"就能搜索到那幾個無效果的藥水。
一些小技巧:
輸入"@x.y.z"格式能匹配到上方Item Subsets的物品選項卡,比如匹配Items>Potions>Neutral內(nèi)物品,直接輸入"@Items.Potions.Neutral"(上面一條也是這個原理)
右鍵搜索框能直接清空
雙擊搜索框能切換到高亮模式,他會將你背包所有格子變暗,之后將背包里匹配搜索內(nèi)容的物品高亮。再次雙擊可取消
關(guān)于@標簽搜索:
標簽的下一項用"."來表示,比如搜索Items>Potions>Neutral標簽內(nèi)物品,可以輸入"@Items.Potions.Neutral"
必須使用@符號開頭的字符串搜索才能開啟分類搜索功能,也就是說如果你輸入"dark iron | @Factorization"并不會切換到Factorization的選項卡
分類標簽只輸入其中一項也是可以的,比如說想要搜索Items>Potions>Neutral可以直接輸"@Neutral",也就是說Mod選項卡里的內(nèi)容只要輸入"@mod名字"就行了
分類標簽匹配的內(nèi)容如果在只輸入一項的情況下可以不輸入完全,比如Mod>BuildCraft標簽直接輸入"@BuildCr也可以,但是如果匹配到了多個標簽,NEI會將它們都顯示出來
在標簽搜索的過程中,也會同時進行普通的搜索,也就是說如果有一個物品叫做Factorization,那么搜索"@Factorization"的同時這個物品也會匹配上
怎樣搜索某個Mod下的所有物品?
搜索mod的名字,注意這個名字是與mcmod.info文件里的name項目對應的
搜索mod添加的創(chuàng)造模式選項卡的名字(比如BuildCraft某些物品因為創(chuàng)造模式選項卡才能搜索到,否則只能搜BC)
上面兩項不但是不沖突的,而且是互補的
下面簡單講一下三種Search Mode的區(qū)別:
簡單(Plain):什么特殊功能都沒有,匹配的是包含輸入內(nèi)容的物品
正則表達式(Regex):使用正則表達式進行匹配,使用的是java.util.regex.Pattern進行的匹配
拓展(Extended):默認就是這個,在正則匹配基礎(chǔ)上添加通配符(Wildcards)匹配,它的原理就是通過將輸入內(nèi)容的
"."替換為""
"?"替換為"."
"*"替換為".+?"
從而實現(xiàn)通配符,之后進行正則匹配
詳細說一下拓展和正則模式:
拓展
本模式添加了兩個通配符,分別為"*"和"?"。"*"代表任意字符串(不限長度),"?"代表一個任意字符。
比如說你如果要搜索蘋果,但是你忘了怎么拼了,只記得幾個字母,那么可以這樣:
a*le:匹配任意以a開頭的以le結(jié)尾的字符串,比如說apple,acble,afcle
ap?le:匹配任意以ap開頭以le結(jié)尾的長度為5的字符串,比如說apple,apele
該模式支持正則表達式支持的所有語法,詳細見下。
正則表達式
本模式支持正則表達式的所有語法,并且沒有拓展模式中通配符,用起來更清爽,個人更喜歡這個模式。
由于正則表達式規(guī)則太多這里只列幾個常用的,其他的請自己谷歌百度找個正則表達式教程學習(這里隨便找到一個,可以點擊這里學習)
[abc]pple:匹配apple,bpple,cpple
[a-c]pple:同上
ap{2}le:匹配apple,{2}代表重復兩次,{2,}代表重復兩次以上,{2,5}表示重復2到5次
^apple:匹配以apple開頭的物品
apple$:匹配以apple結(jié)尾的物品。不推薦使用,因為物品的名字包含物品原本的名字 +" "+ ID +"#"+ ToolTips,一個"#"代表一個回車。也就是說名字的末尾是ToolTips,即使沒有ToolTips也需要關(guān)掉ID顯示才能正常使用
stone|diamond:匹配stone或者diamond,這條語句可以很方便搜索多個內(nèi)容
(?=.*diamond)(?=.*armor):匹配既包含diamond又包含armor的物品,可以彌補diamond armor搜索不到Diamond Horse Armor的問題
這里說一下NEI內(nèi)部的物品名字,比如說這樣一個物品:
它實際的名字是:
"Potion of Swiftness 373:8194#Speed (3:00)##When Applied:#+20% Speed"
但是如果你要在Regex或Extended模式搜索全稱,需要搜索:
"Potion of Swiftness 373:8194#Speed \(3:00\)##When Applied:#\+20% Speed"
因為有些字符在Regex中有特殊作用,要用轉(zhuǎn)義符才能匹配。當然啦,估計沒有人會要搜索到這種程度/w\
另外如果加上Waila的話,如果在NEI搜索會匹配上Waila顯示的那條mod名稱,但是這條mod名不在物品的名字里,是作為單獨的一條的。
也就是說直接搜索
"^BuildCraft$" (嚴格匹配"BuildCraft")
也會匹配到所有mod名顯示為BuildCraft的物品。
特殊字符一共有:
\
^
$
.
|
?
*
+
(
)
[
{
想要搜索的話請在前面加\,比如匹配"\"就輸入"\\"
背包操作篇
這應該算是NEI知道的人最少的功能了吧,但是這個絕對是輔助生存模式非常棒的一類功能,注意以下內(nèi)容可能會和某些mod沖突,請自行檢查。
具體有以下幾點:
合成物品時右擊產(chǎn)出框:使用輸入原料合成多次物品,直到滿組或者原料用光,如果已經(jīng)拿著物品了,合成出來的物品會堆疊到拿起的那個物品上(原理是連續(xù)處理64次合成事件orz)
打開一個容器的時候,鼠標懸在物品上滑動滾輪:會將物品傳輸?shù)饺萜鳟斨,或從容器取?絕對是最棒的一個功能)
打開一個容器的時候,拿起一個物品,按住Shift并點擊同類物品:傳輸所有同類物品到容器里
作弊模式下Ctrl+左擊物品:補滿當前堆物品,如果已經(jīng)滿了,則再給一組
作弊模式下Ctrl+右擊物品:補充一個物品
作弊模式下懸浮物品上方Ctrl+Q:給一個當前物品(這是原版中的扔出當前格子所有物品,被NEI覆蓋)
生存模式下懸浮物品上方Shift+Q:扔出當前種類所有物品,注意這個是分容器的,比如懸浮在箱子里的物品上只會扔箱子里的物品(對應原版類似功能Ctrl+Q)
創(chuàng)造模式+(Creative+)下 Ctrl+滾輪:滾動切換工具欄的物品
物品分類篇
物品的分類(Item Subsets)就是背包NEI界面最上面的那個大大的按鈕,左鍵點擊后會出現(xiàn)一個下拉菜單,里面可以通過不同的分類瀏覽物品。
如果你在任意一個分類或子分類上Shift+左擊,下面搜索框會自動輸入分類名稱,并匹配該分類下所有物品。
如果你任意右擊一個分類或物品,那么這個物品將會被右側(cè)的物品面板排除,如果重新左鍵一下就能重新選中,你可以利用這個功能排除ForgeMultipart數(shù)量眾多的小方塊。
雙擊任意一個分類能夠關(guān)閉除該分類以外所有物品,注意這與Shift+左擊不同,這個是隱藏了多余物品,Shift+左擊是匹配了當前類別下的物品。
之前版本能夠右擊分類的按鈕保存設(shè)置好的分類,但是新版本這個功能好像還沒實現(xiàn)。
工具篇
這里的工具指的是Data Dumps,進入方法為Options>Tools>Data Dumps。這個小工具能夠?qū)С鲇螒虻暮芏鄶?shù)據(jù),特別是藥水,附魔,生物群系這三項對于整合包制作者的幫助非常大,因為這三項會存在id沖突,請整合包作者隨時檢查這三項內(nèi)容。輸出的文件在.minecraft/dumps文件夾里。
下面解釋具體每一項的作用:
物品(Items):導出所有注冊過的物品,文件名為item.csv。輸出的內(nèi)容包括:名字(非本地化),ID,是否是方塊,所屬mod,所屬類
方塊(Blocks):導出所有注冊過的方塊,文件名為block.csv。輸出的內(nèi)容包括:名字(非本地化),ID,是否有對應物品,所屬mod,所屬類
藥水(Potions):導出所有的藥水,文件名為potion.csv。輸出內(nèi)容包括:ID,名字(非本地化),所屬類。包含三個選項:
All:輸出所有id的藥水(0-31)
Free:輸出空閑的id
Used:輸出已用id的藥水
附魔(Enchantments):導出所有的附魔,文件名為enchantment.csv。輸出內(nèi)容包括:ID,名字(非本地化),附魔物種類,最小等級,最高等級,所屬類。包含三個選項:
All:輸出所有id的附魔(0-255)
Free:輸出空閑的id
Used:輸出已用id的附魔
生物群系(Biomes):導出所有的生物群系,文件名為biome.csv。輸出內(nèi)容包括:ID,名字,氣溫,降雨,生成幾率,基礎(chǔ)高度,高度變化,種類,所屬類。包含三個選項:
All:輸出所有id的生物群系(0-255)
Free:輸出空閑的id
Used:輸出已用id的生物群系
物品面板(Item Panel):導出當前物品面板(右側(cè)面板)中物品的信息,包含四個選項:
CSV:輸出物品信息為CSV格式,文件名為itempanel.csv。輸出內(nèi)容包括:物品ID(字符串),內(nèi)部ID,metadata,是否包含NBT信息,顯示名字
NBT:輸出物品的NBT信息,文件名為itempanel.nbt。輸出的內(nèi)容是一個包含了NBTTagList的NBTTagCompound,NBTTagList里面包含的內(nèi)容有ID,數(shù)量,傷害值(即metadata)還有物品的NBT數(shù)據(jù),不過好像想不出來有什么用途。它使用CompressedStreamTools.writeCompressed()輸出,如果開發(fā)者想要讀取輸出的信息可以用CompressedStreamTools.readCompressed()來讀取。簡單寫了一個讀取的演示,代碼見這里
JSON:輸出物品信息為JSON格式,文件名為itempanel.json。這個實際上就是上邊NBT數(shù)據(jù)轉(zhuǎn)化成了JSON形式,輸出內(nèi)容包括物品id(id),物品傷害值(damage, 即metadata),和NBT數(shù)據(jù)(tag)
PNG:輸出物品面板內(nèi)所有物品為PNG圖片,文件輸出到itempanel_icons文件夾。功能類似于Item Render,并且可以選擇輸出大小,最小為16x16,最大為256x256。如果想用這個輸出物品圖片傳到MCMOD百科也是可以的。
作弊操作篇
這部分內(nèi)容比較多,分開說,這一部分對Mod解說者來說非常強大,如果想要解說Mod視頻請務必要安裝NEI。本篇所有內(nèi)容請保證模式為Cheat Mode。另外,各位請一定要克制住自己/w\。
首先來看下總體的界面吧:
一. 工具面板(左上角那個)
這個面板里的東西都是非常常用的一些選項,下面分別介紹他們,順序為從左往右,從上往下:
刪除模式(Delete Mode):單擊啟用。使用請左擊背包內(nèi)的物品,被左擊到的物品就會被刪除。Shift+左擊物品會刪除同類所有物品(批量刪除都包括打開的容器)。右擊或Shift+右擊物品會減少該堆物品的1個。Shift+單擊刪除模式的按鈕會清空背包。拿著物品左擊刪除模式按鈕會刪除該堆物品。拿著物品右擊刪除模式按鈕會刪除一個。拿著物品Shift+左擊刪除模式按鈕會刪除同類所有物品
下雨(Rain):單擊切換世界的下雨狀態(tài),右擊按鈕直接禁用下雨(也就是世界不會下雨了),禁用狀態(tài)下左擊啟用下雨。如果按鈕變成藍色,則世界正在下雨中(有時候有Bug)
游戲模式(Gamemode):一共有4個模式(Spectator在1.8版本里也沒有),分別為Survival,Creative,Creative+,Adventure,每次單擊都往下切換一個。其中Creative+并不是一個真正的游戲模式,它只在NEI內(nèi)部有標明,實際上對應的原版GameType都是Creative,沒有區(qū)別。注意這個設(shè)置的只是玩家的游戲模式,而不是設(shè)置的世界的游戲模式
Creative+:這個模式在原版背包的基礎(chǔ)上新增了54個格子,相當于一個大箱子的容量。還有一個非常特別的特性,關(guān)閉背包的時候Ctrl+滾輪能來回切換工具欄的物品。注意背包滿了之后撿起的物品不會拾到到拓展的背包里。非常適合建筑黨來使用
磁鐵模式(Magnet Mode):服務器上只有服務端也安裝了NEI才能使用。這個功能會吸引半徑為16x8x16(x,y,z)的掉落物.注意如果你的背包滿了(C+的拓展背包不能拾起物品),磁鐵模式不會主動吸引物品,范圍恢復到原始,但是如果是創(chuàng)造模式你仍然可以撿起物品,不過會自動刪除
時間(Time):一共有四個時間分別為6:00(Dawn),12:00(Noon),18:00(Dusk),0:00(Midnight),一小時為1000ticks,即時間點分別為6000,12000,18000,0。為了保證時間是永遠向前運行的,每次切換會切換到第二天的該時間點,所以如果你切換頻繁了,游戲天數(shù)會不斷上漲。右鍵點擊圖標會禁用該時間段,最多只能禁用三個,禁用之后到達該時間段會直接跳過到該時間段的結(jié)束,左鍵可以重新啟用
治療(Heal):點擊之后會恢復玩家20點生命值,恢復飽食度,并熄滅身上的火
二. 保存背包(左邊那個)
這里的功能對Mod解說者非常有用,你們可以保存解說所需要的所有東西,身上亂了之后直接Load一下就能復原了。
NEI提供了7個保存槽(代碼里寫死了!),每個槽都可以保存一個背包狀態(tài),這個保存狀態(tài)是可以跨世界甚至是跨服的。注意這個功能是能夠保存C+模式的背包的,即使不在C+模式加載的背包,換成C+模式仍然會顯示剛剛加載的物品!
下面是對槽的操作:
保存:直接點擊任何一個包含有Save字樣的槽就行了
讀。褐苯狱c擊任何一個包含有Load字樣的槽就行了
重命名:右擊任意一個槽就行了,不管有沒有保存東西,右擊之后會提示你輸入字符,按回車確認
刪除:已經(jīng)保存過的槽右邊會有一個X字按鈕,點一下就刪除了
三. 附魔
NEI提供了一個附魔的功能,在背包里按X鍵打開,界面會是這樣的:
忽略那個青金石的物品框,不需要的。
點擊上面的Level左右按鈕能夠切換等級,最高等級為10級,點擊右邊附魔就能添加了,添加之后再點擊一次就能取消附魔。
那個Locked選項表示檢測沖突附魔及附魔工具種類,比如劍只能附和劍有關(guān)的附魔(鋒利,節(jié)肢殺手等),而且鋒利和節(jié)肢殺手這種沖突附魔不能共存。
點擊一下那個Locked按鈕就能解鎖附魔,Unlocked模式下不會檢測沖突和種類,所以劍就能夠附裝備的附魔,并且也能附?jīng)_突的附魔。
四. 藥水
藥水和附魔功能類似,按P鍵打開面板,大概是這樣的:
在下面那個藥水槽里放入除水瓶以外任意藥水就行了。
如果要添加效果,左擊右邊的效果就行了,點擊Level的左右箭頭能夠調(diào)整等級,最大值為4級。
點擊上面的Duration能夠編輯持久,右擊Duration可以清空,Duration最大只能夠填27:18。
如果要取消效果,右擊效果就行了。
最上面有一排收藏藥水,你可以把制作好的藥水放到上面標記。標記過后可以源源不斷地拿,Shift+左擊可以拿無限數(shù)量的藥水,Ctrl+左擊可以直接將藥水傳送背包,想要取消標記右擊對應藥水就行了。
五. 物品面板(右邊那個)
大家應該都很熟悉這個面板了,這么明顯,并且都見過這么多次了。點擊上方的箭頭或者用滾輪或者PageUp和PageDown按鈕能夠翻頁。
對物品一共有這些操作:
獲取一組:左擊物品
獲取一個:右擊物品
獲取特定數(shù)量:在下面那個輸入框指定數(shù)量,之后左擊物品
獲取無限物品:Shift+左擊物品,無限物品能夠無限放置無限扔出,顯示為111個
輸入框的編輯:
左擊:激活輸入框,直接輸入數(shù)字就行了
右擊:清零
左擊加號:添加1個
左擊減號:減少1個
Shift+左擊加號:添加10個
Shift+左擊減號:減少10個
Ctrl+左擊加號:添加64個
Ctrl+左擊減號:減少64個
刷物品的時候記得一定不要超過背包剩余容積,會崩潰的,這個Bug到現(xiàn)在還沒修復。Not Enough Issues
其它
一. 顯示/關(guān)閉NEI
按下O鍵即可隱藏側(cè)邊框,如果要完全禁用NEI,去設(shè)置設(shè)置NEI Disabled并按下O鍵就行了。
二. 方塊高亮
按下小鍵盤0鍵能切換方塊高亮的開關(guān)。如果想要調(diào)節(jié)位置的話去Options>World>Highlight Tooltips里面,在中間按鈕為Shown的時候拖動高亮的方框,如果中間按鈕為Hidden點擊一下按鈕就能變成Shown了。不過仍然建議安裝Waila,不推薦使用NEI的方塊高亮。
另外,Waila和NEI的方塊高亮是獨立的!也就是說你可以同時開啟Waila的高亮和NEI的高亮(兩個方框)。注意小鍵盤0這個按鍵如果裝了Waila打開的是Waila的設(shè)置,如果想要調(diào)節(jié)Waila高亮的,按0之后點擊Waila>Configure aspect...之后就可以拖動方框調(diào)節(jié)了。選項Alpha是透明度,Scale是縮放比例。
三. 怪物生成指示
按下F7鍵開始,再次按下結(jié)束,打開之后地面上會出現(xiàn)紅色和黃色的網(wǎng)格。
黃色的網(wǎng)格表示該格怪物只在夜間生成,白天不會生成。
紅色網(wǎng)格表示該格怪物會在白天和夜間都生成。
看到這兩個標示就趕快插火把吧!
四. Chunk指示
按下F9開始,第一次按下顯示Chunk的頂點,第二次按下顯示Chunk的范圍邊界,再按一下就停止。
顯示會是這樣子的:
綠色標示邊界,紅色標示頂點。
五. asm文件夾
如果你安裝了NEI,運行之后你會發(fā)現(xiàn)在.minecraft文件夾下多出來一個asm文件夾。
這個文件夾其實是由NEI的前置CodeChickenLib輸出的。由于NEI需要注入原版代碼,大量地使用了ASM,并且用的是CCL的ModularASMTransformer。這個類會自動輸出轉(zhuǎn)換過的結(jié)果到文件里用來debug,所以就成了現(xiàn)在的asm文件夾里面的文件。注意并不只有NEI用到了這個類,其他還有很多Mod也都用到了。
所以如果你想刪除這個文件夾,當然可以,這個只是debug用的,代碼里看到個選項能關(guān)閉生成,但是一直沒找到那個選項在哪設(shè)置。
六. NEI插件
NEI由于提供了API,許多mod都對NEI進行了支持。在Forge Mods列表里你能看到加載的NEI插件:
目前還有很多專門的NEI插件,現(xiàn)在還在更新比較推薦的有:
NEI Addons
NEI Integration
設(shè)置篇
NEI本身還是有很多可以設(shè)置的選項的,本部分分兩塊來說。第一部分是Options里的選項,第二部分是config文件。注意NEI客戶端的config文件在.minecraft/config/NEI下,服務端的在world/NEI下。
一. 選項(Options)
選項分為Global和World兩種模式,點擊右上角的按鈕可以切換。Global模式下的設(shè)置是全局的,所有世界都能共享,而World模式則是對當前世界特定的,不會影響到其他世界的設(shè)定。在World模式下左邊會出來一排W的按鈕,左鍵選中右鍵取消,更改選項自動選中,選中代表該項采取World的設(shè)置,未選中代表直接繼承Global模式下的設(shè)定。
首先我們來看Inventory下的幾個選項:
NEI Enabled/NEI Disabled:關(guān)閉NEI,與O鍵不同,這個關(guān)掉之后左下角還是有個Options按鈕,但是NEI功能完全禁用了,不像O鍵只是隱藏側(cè)邊框
模式(Mode):一共有三種模式,分別為Cheat Mode,Recipe Mode和Utility Mode,下面分別介紹一下。另外不知道什么原因,單機在這里的設(shè)置要調(diào)到World模式更改才能更改成功,或直接在World模式中把W按鈕右鍵關(guān)掉。在服務器模式會根據(jù)玩家是否是Op自動更新,沒有Op自動Recipe Mode,有了Op作弊的按鈕自動出來(其實只是改了功能而已,沒改模式)
作弊模式(Cheat Mode):擁有所有的功能,刷物品,調(diào)整世界設(shè)置等
合成模式(Recipe Mode):推薦生存使用的模式,只有查看合成表和搜索的功能
實用模式(Utility Mode):介于作弊模式和合成模式中間的一個模式,點擊右邊的物品面板里的物品只能查看合成表,但是你可以自定義放在左上角的那些工具,并且可以使用
實用模式功能(Utilities):左擊按鈕就能啟用功能,右擊按鈕就能關(guān)閉,這樣可以自定義實用模式的工具面板,注意最后一個Items指的是背包狀態(tài)保存功能
游戲模式(Gamemodes):選擇游戲模式按鈕能切換的游戲模式,生存模式不可關(guān),左擊打開右擊關(guān)閉
布局風格(Layout Style):分為TMI和Minecraft兩種,TMI風格是為了滿足一些TMI老用戶的需求
物品排序(Item Sorting):里面有各種不同的排序因素,可以拖動排序,按照優(yōu)先級排序。里面的因素分別為:
Minecraft:原版物品最先篩選
Mod:將Mod物品組合到一起,并按照Mod名稱排序
Item ID:按照物品ID大小排序
Default:保持物品狀態(tài)自然不變
Item Damage:按照物品的耐久(Metadata)排序
Display Name:按照顯示名字排序
物品ID(Item IDs):有三種模式:Auto,Shown和Hidden
Auto:在NEI禁用或隱藏的時候不顯示ID,在NEI顯示的時候顯示ID
Shown:一直顯示
Hidden:一直隱藏
搜索模式(Search Mode):在搜索篇已經(jīng)講過了
合成查閱性能分析(Profile Recipes):在物品合成表后面會多一個Crafting Profiling界面,記錄查詢的耗時,debug使用,一般不需要開啟:
World選項里面只有一個Highlight Tooltips的功能,你可以調(diào)整高亮提示框的位置與是否顯示,具體見其它里的方塊高亮。
Command選項里面是針對一些特殊的服務器使用的指令。
Keybindings就是調(diào)整鍵位的地方,不多說了。
二. Config文件
能在客戶端里找到的選項我這里就省略了,自己去客戶端調(diào)。
客戶端下client.cfg文件:
# 檢查更新
checkUpdates=true
#對于那些自控力低的人
#把下面這條改成對應的模式,這樣你就在游戲里改不了了,可用選項:0(生存),1(創(chuàng)造),2(創(chuàng)造+),3(冒險),-1(禁用)
inventory.lockmode=-1
服務端下server.cfg文件:
#使用權(quán)限
permissions
{
adventure=OP
creative=OP
creative+=OP
delete=OP
enchant=OP
heal=OP
item=OP
magnet=OP
#這一條是刷物品的時候會得到提示
notify-item=CONSOLE, OP
potion=OP
rain=OP
save-state=OP
time=OP
}
后面一共可以填:
玩家名:例如,time=CodeChicken, Friend1
OP:僅限OP使用
CONSOLE:僅限控制臺使用
ALL:全體玩家都能使用
服務端下banneditems.cfg文件:
{name:"minecraft:command_block"}=[NONE]
這個前面是一個JSON字符串,代表一個NBT數(shù)據(jù),Tag一共可以有四個:
name:名字,注意是modid:name這種形式的
Count:個數(shù),不填默認為1
Damage:傷害值(metadata),不填默認為0
tag:NBTTagCompound數(shù)據(jù),不填則為空
是不是感覺很熟悉呢?沒錯,結(jié)合CSV和JSON導出的信息就能很方便地填寫這一項了!
后面是允許的玩家或群體,簡單來講就是白名單,一共可以填:
NONE:不允許任何人
玩家名:例如{name:"minecraft:bedrock"}=[RebirthIsHope, Meow_J]
OP:允許OP
CONSOLE:允許控制臺(基本沒用)
ALL:無限制
插件編寫篇
由于這塊內(nèi)容靈活度太大,我不可能將每一個方法都介紹到,所以我只會挑選出幾個常用的來講。如果你是普通玩家那么這部分你可以跳過。
一. 依賴
第一步當然就是添加依賴了。首先,打開你的build.gradle文件,在文件的下面添加這樣幾行:
repositories {
maven {
name = "chickenbones"
url = "http://chickenbones.net/maven"
}
}
dependencies {
compile "codechicken:CodeChickenLib:1.8-1.1.2.139:dev"
compile "codechicken:CodeChickenCore:1.8-1.0.5.36:dev"
compile "codechicken:NotEnoughItems:1.8-1.0.5.104:dev"
}
當然,dependencies里面的版本請自己選擇合適的,這里可能不是最新的,如果你要是1.7.10的mod就選擇1.7.10的版本,具體的版本號請到這里(CCC, NEI)和這里(CCL)查看。
接下來,把那幾個dev的mod文件下載下來,加到你IDE的依賴里,這里很簡單就不說了。
二. IConfigureNEI
我們需要先創(chuàng)建一個類實現(xiàn)(Implements) IConfigureNEI,名稱隨意,我在這里將其命名為NEIConfig。這個類的作用相當于是一個入口,當NEI需要載入插件的時候會搜索到這個類,從而加載你的插件。
你一共需要實現(xiàn)三個方法:
loadConfig:這個方法是用來注冊Handler或者設(shè)置一些其它東西的,經(jīng)常使用的有API.registerRecipeHandler(),API.registerUsageHandler(),API.setGuiOffset()
getName:這里只需要返回你設(shè)定的NEI插件名字就行了,它會顯示在NEI已加載插件那里
getVersion:返回你設(shè)定的版本號
三. RecipeHandler
RecipeHandler是編寫插件最重要的一部分了,當然它也非常復雜。不過還好,Chickenbones給我們提供了一個TemplateRecipeHandler,你可以直接繼承這個類而不用寫很多重復性的代碼。這個類本身其實就相當于一個教程,里面每個方法基本都有文檔,你可以參考它來寫你自己的Handler。
這里我們首先新建一個類繼承TemplateRecipeHandler,我這里命名為RecipeHandlerMeowMachine,作為喵嗚機的配方。之后去IConfigureNEI類,在loadConfig下加入這樣兩行:
API.registerRecipeHandler(new RecipeHandlerMeowMachine());
API.registerUsageHandler(new RecipeHandlerMeowMachine());
這兩行分別注冊了配方和用途的Handler,都是我們剛剛注冊的那個類。
接下來我們需要新建一個內(nèi)部類繼承CachedRecipe,這里是CachedMeowMachineRecipe。它作為NEI內(nèi)部的配方形式。
我們需要實現(xiàn)這兩個方法:
getIngredients:返回一個List,里面裝有該配方的原材料的PositionedStack
getResult:返回該配方產(chǎn)物的PositionedStack
當然除此之外還有很多方法可以O(shè)verride,比如副產(chǎn)物可以用getOtherStacks之類的,大家可以自行探索。這里的PositionedStack為一個有固定坐標的物品,注意在構(gòu)建PositionedStack時候那個Object可以是ItemStack或者是ItemStack的List/數(shù)組。
回到RecipeHandlerMeowMachine,我們實現(xiàn)這幾個方法:
getGuiClass:返回你機器Gui的類,如果Gui的偏移有問題,到IConfigureNEI的loadConfig方法里添加API.setGuiOffset()調(diào)整
getGuiTexture:返回你機器Gui材質(zhì)的地址
getRecipeName:返回顯示在配方最上方的配方名稱
recipiesPerPage:返回每頁顯示的配方數(shù)量,推薦寫1防止出問題
loadTransferRects:里面用transferRects.add()在Gui上添加一個區(qū)域可以點擊用來顯示當前機器的所有配方,類似于工作臺那個箭頭
this.transferRects.add(new RecipeTransferRect(new Rectangle(起始x, 起始y, x長度, y長度), "過濾用ID"));
loadCraftingRecipes(String outputId, Object... results):覆蓋這個是用來加載所有配方的時候過濾ID的,基本想法就是,在outputId等于過濾ID時候在this.arecipes里添加所有的配方,除此以外按照默認的來處理。注意this.arecipes代表匹配到的配方
loadCraftingRecipes(ItemStack result):根據(jù)產(chǎn)物搜索配方,基本想法是,遍歷所有注冊的配方,當產(chǎn)物相同的時候添加配方到this.arecipes
loadUsageRecipes(ItemStack ingredient):根據(jù)原料搜索配方,基本想法是,遍歷所有注冊的配方,當原料包含該物品的時候添加配方到this.arecipes 。
支持( 0 ) 蓋樓(回復)
查看所有0條評論>>