TShock插件:查一查

有時(shí)建筑師會(huì)想要刷一些物品來(lái)做建筑,有時(shí)boss戰(zhàn)后有人沒(méi)撿到寶藏袋,就會(huì)用到TShock自帶的“/item”指令,比如“/item 王朝木”,你就會(huì)獲得一組(9999個(gè))王朝木。指令用起來(lái)夠簡(jiǎn)單,但是由于翻譯問(wèn)題,以及大家對(duì)物品的叫法不統(tǒng)一,有時(shí)候就是死活輸入不對(duì)物品名字,在游戲里輸入漢字的體驗(yàn)也不太好,比如你用拼音輸入法,打錯(cuò)了一個(gè)字母,想要?jiǎng)h除,按下退格鍵時(shí),直接把輸入框上面的一個(gè)字給刪除了,而且輸入框的光標(biāo)也不能左右移動(dòng)。
寫(xiě)插件這個(gè)插件的目的就在于此。
指令匯總
/search 王朝,查詢以“王朝”為開(kāi)頭,以及以“王朝”為結(jié)尾的物品名稱。

如果你有使用item指令的經(jīng)歷,那一定知道這個(gè)指令也是支持查詢的,不過(guò)規(guī)則是以關(guān)鍵詞為開(kāi)頭的物品。

/s 馬桶,/s 是 /search 的簡(jiǎn)寫(xiě),還可以簡(jiǎn)寫(xiě)成 "/查" 和 “/查詢”。

/item指令也可以簡(jiǎn)寫(xiě)成/i,目前游戲里,有個(gè)叫“馬桶”的物品,物品id為358,當(dāng)指令完全匹配到時(shí),就會(huì)直接給你一組這樣的物品。

匹配結(jié)尾的方式能查詢到很多家具,例如水槽和床。


/s?100?和?/s 100+,?查詢物品id為100的物品 / 100起始后面的20個(gè)物品。


100+這個(gè)功能似乎沒(méi)啥用,當(dāng)讓別人告訴你1.4.4加了很多物品,然后你查了下上次更新的時(shí)候,最后一個(gè)物品的id是5124,然后你就可以通過(guò)這個(gè)方式查詢新加的物品。

關(guān)鍵詞功能
實(shí)際操作發(fā)現(xiàn),只是查名字,依然會(huì)有找不到物品,于是增加了關(guān)鍵詞匹配功能。當(dāng)你在搜索特定關(guān)鍵詞時(shí),會(huì)將配置的指定物品放在查詢結(jié)果的前面。
/search list,?列出配置的關(guān)鍵詞。插件內(nèi)置了幾個(gè)關(guān)鍵詞,搜索對(duì)應(yīng)關(guān)鍵詞時(shí),會(huì)在原有的查找結(jié)果基礎(chǔ)上加上配置的關(guān)聯(lián)物品id。

/s 桶,因?yàn)榉植磺迨菬o(wú)底水桶還是無(wú)盡水桶,還是無(wú)限水桶,就把所有的桶給加進(jìn)來(lái),吸水棉這幾個(gè)道具,則是考慮到造魚(yú)池的時(shí)候用的上。使用指令后你會(huì)發(fā)現(xiàn)馬桶也給匹配到了,因?yàn)轳R桶的最后一個(gè)字有桶這個(gè)字。實(shí)際上配置的只有前面16個(gè)物品。


/s 任務(wù)魚(yú),目前已知41種任務(wù)魚(yú),通過(guò)這個(gè)可以查詢所有任務(wù)魚(yú)的,如果你是電腦版,鼠標(biāo)移上去就能看到抓捕位置了。

其實(shí)插件也提供了關(guān)鍵詞添加和移除功能,不過(guò)這個(gè)是面向服主的。需要“hf.search.admin”權(quán)限。
/s add 落星 75,“落星”是關(guān)鍵詞,75是墜落之星的物品id。
/s del?落星,刪除名為“落星”的關(guān)鍵詞。
/s?add 落星 75 3191,3191是附魔夜行者的物品id,通過(guò)這種方式可以一次添加多個(gè)關(guān)聯(lián)物品id,當(dāng)然你也可以分成兩條指令來(lái)添加。
/s?add 落星 墜落之星-75?附魔夜行者-3191,跟上一條指令的執(zhí)行結(jié)果一致。

如果你有很多內(nèi)容要添加(應(yīng)該沒(méi)人會(huì)這么做,除了我)。還有一種比較高效的方法就是在命令行上錄入。其實(shí)命令行上是可以很方便地執(zhí)行多條指令,例如 把指令寫(xiě)到記事本里,一行一條指令,輸入完成后,按Ctrl+A,然后按Ctrl+C復(fù)制指令,然后在“命令行”界面上粘貼,然后再敲一次Enter鍵。

或者像我這樣做個(gè)表格,把結(jié)果復(fù)制一下,先在命令行上敲“/search add 關(guān)鍵詞 ”(關(guān)鍵詞后面有一個(gè)空格),然后粘貼一下,最后再敲一次Enter鍵,就可以錄入了。

wiki語(yǔ)言包
游戲里有些音譯物品,比如“紅玉”給翻譯成“魯比”,是英語(yǔ) Ruby的音譯。wiki出了一個(gè)語(yǔ)言包,修正這些錯(cuò)誤。但是tshock不支持語(yǔ)言包。因此我把wiki語(yǔ)言包的物品名翻譯搬到插件里。比如你查詢紅玉能查到物品id為178的物品。

目前插件里,收錄了截止2022年11月29日上午12:00時(shí)的,562條wiki語(yǔ)言包的名稱。
參考鏈接:[官方 Wiki 中文語(yǔ)言包](https://steamcommunity.com/sharedfiles/filedetails/?id=2440470208)

/search import,導(dǎo)入新的wiki語(yǔ)言包,隱藏功能,這里就不介紹了。
合成表
之前裝了一個(gè)合成表插件,喜歡在命令行上面查詢物品合成,和item指令一樣,名字要輸對(duì),心想在顯示合成的時(shí)候把物品的id顯示出來(lái),這樣查詢相關(guān)會(huì)更方便。這部分的功能,我參考了 棱鏡(TheLastPrism)寫(xiě)的 Recipes 插件。
參考鏈接:https://www.bbstr.net/t/598/
/recipe?魔鏡,查找合成配方,以及可以合成哪些物品?!?span id="s0sssss00s" class="color-purple-03">/recipe”可以簡(jiǎn)寫(xiě)成“/r”,“/合”“/合成表”。
@是at的意思,后面跟制作站。
比如:
第一條合成信息是,10個(gè)玻璃?+?8個(gè)金錠 + 3個(gè)鉆石 在熔爐旁?可以合成?魔鏡,
第三條合成信息是,個(gè)人數(shù)字助手?+?魔鏡 在工匠作坊旁 可以合成 手機(jī)。
底部的備注則會(huì)顯示相關(guān)的物品圖標(biāo)、物品名稱 和 物品id。

顯示內(nèi)容超過(guò)4行,會(huì)進(jìn)行翻頁(yè)顯示,在原有指令基礎(chǔ)上加上頁(yè)碼就好了。

有時(shí)候合成信息會(huì)“爆掉”,例如鐵錠有46頁(yè),大概就是184條合成信息

其實(shí)這是不準(zhǔn)的,比如第36頁(yè)開(kāi)始就是物品的備注。

此時(shí)也只能翻頁(yè)多次了,此時(shí)把名稱換成物品id能加快輸入速度,比如結(jié)果的第一行就告訴你了鐵錠的物品id是22,于是你可以輸入 “/r 22 <頁(yè)碼的一半>”繼續(xù)搜索

合成表也能識(shí)別wiki上的物品名稱,比如“/r 紅玉”。

指令的簡(jiǎn)寫(xiě)
合成表指令可以簡(jiǎn)寫(xiě)成“/r”,tshock自帶的回復(fù)私信的指令的簡(jiǎn)寫(xiě)也是“/r”,執(zhí)行這條指令等同于查合成+回私信。于是插件做了屏蔽,讓輸入“/r”只會(huì)查詢合成表,你要問(wèn)這不是破壞了回私信功能么,其實(shí)也沒(méi)破壞,回私信用“/reply”指令就好了。

這次引入一個(gè)配置文件,允許你配置指令簡(jiǎn)寫(xiě)。出現(xiàn)在配置里的指令會(huì)被移除,然后換成插件的指令??紤]到自定義指令的頻率極低,而且被移除的指令也不好加回來(lái),所以未做重載配置操作,改動(dòng)配置文件后,要重新開(kāi)服才會(huì)生效。

結(jié)尾
綜上,差不多就是插件的所有功能了,有些比較復(fù)雜,但我想插件的基本功能還是很好上手的,也沒(méi)必要都記住,都學(xué)會(huì),需要的時(shí)候再回過(guò)頭來(lái)看一下就好了。
插件也開(kāi)源了,第一個(gè)版本可能不穩(wěn)定,出現(xiàn)問(wèn)題,記得反饋給我哦!
開(kāi)源地址:https://gitee.com/hufang360/TShockSearch
