[精讚] [會員登入]
860

【CoreProtect】[SpigotMC] (進階篇) 如何直接存取資料

大家好,這裡是準備要去參加FF38的小編過路君子 本來只要自己去,結果臨時有人說要一起去,那...好吧!走~ 對於一般人

分享此文連結 //n.sfs.tw/15605

分享連結 【CoreProtect】[SpigotMC] (進階篇) 如何直接存取資料@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2022-03-10 20:03:06 最後編修
2022-02-10 17:18:51 By 過路君子
 

大家好,這裡是準備要去參加FF38的小編過路君子

本來只要自己去,結果臨時有人說要一起去,那...好吧!走~

 

 

對於一般人來說,使用遊戲內所提供的指令/co lookup 就已經很夠用了。

但是對於程式設計人員來說,這點遠遠不夠用,能直接使用 SQL 語法去找尋資料當然是所樂見的事情。

所以,今天的主題就是如何直接從原始資料透過 SQL 語法去取得資料。

 

那第一步當然要先知道原始資料檔案放在哪裡啦~

正常來說會放在./plugins/CoreProtect/database.db這裡。

(所有圖片點擊都可以放大、變高清)

 

沒錯,我們要找的就是 database.db 這個檔案。

然後接下來就是使用軟體開啟這個檔案。

那小編在這裡是使用 SQLiteStudio 這個軟體,至於各位要使用什麼軟體都可以,只要能打開 .db 檔就好。

 

然後準備開啟將我們剛剛找到的那個檔案。

 

匯入檔案。

 

然後就可以看到所有被 CoreProtect 記錄的下來的紀錄了。

 

那接下來小編就條列出所有 table 所擁有以及代表的資訊吧(由上至下),紅字的為常用 table。

co_art_map (未知)
co_block 所有方塊的資料,包括放置、摧毀;生物擊殺資料也放在這裡。
co_blockdata_map 所有的方塊狀態。
co_chat 所有的聊天訊息。
co_command 所有被使用過的指令紀錄。
co_container 所有箱子、投擲器等可放置物品的容器紀錄。
co_database_lock (未知)
co_entity 村民以及其他生物的紀錄。
co_entity_map 生物對應其在 CoreProtect ID 的紀錄。
co_item 所有生物的紀錄。
co_material_map 所有物品對應其在 CoreProtect ID 的紀錄。
co_session 所有玩家的登入以及登出紀錄。
co_sign 所有告示牌的紀錄。
co_skull 所有頭顱的紀錄。
co_user 所有會被記錄事件的物品或是玩家。
co_username_log 玩家的暱稱和UUID 對應其在 CoreProtect ID 的紀錄。
co_version Minecraft 運行的版本。
co_world 世界的名稱對應其在 CoreProtect ID 的紀錄。

 

那至於要怎麼搜尋資料...就考驗各位的 SQL 語法了。

這邊就以查詢位於 (x 171, y 64, z -293) 的 #dispenser(投擲器) 紀錄為範例:

SELECT
    a.time, 
    b.id, 
    b.user, 
    a.x, 
    a.y, 
    a.z, 
    a.action 

FROM co_container AS a 

RIGHT JOIN co_user AS b 

ON
    b.user = "#dispenser"  
    
WHERE 
    a.user = 10 AND 
    a.x = 171 AND
    a.y = 64 AND
    a.z = -293;

你說小編怎麼知道 #dispenser 的 user 代號是 10?因為小編有偷偷先用 SQL 查了一下 (#

這邊一樣提供給各位參考:

SELECT id, user FROM co_user WHERE user = "#dispenser";

 

 

那你說這個有什麼用?

只要能使用 SQL 直接抓出來代表說我可以另存成 .csv 之類的,或是寫程式去快速爬取資料。

當然 CoreProtect 也有提供相應的 API 可以用(使用 Java 來讀取資料),但那就不是今天的主題了。

 

 

 

後記

希望有知道更多表格資訊的高手可以補充那兩個表格所代表的意義,小編有試著研究過,但是怎麼樣都串不起來。

END

你可能感興趣的文章

【C++】SFML安裝於Microsoft Visual Studio 2019 此方法僅適用單個C++專案,因為一次就適用整台電腦的方式有人寫了,而且寫得非常不錯。

【Stable Diffusion web UI】[AI 作畫](Linux)無 NVIDIA 顯卡之伺服器運行測試 凡事就是要試試看,才知道最後的結果

【ThinkSpeak】一個IoT數據分析(IoT analytics)及呈現的網站 世界上有著各式各樣的需求,因而誕生出了各式各樣的網站,絕對不是沒有人提供,而是你不知道哪裡有這東西

【CoreProtect】自行升級至 Minecraft 1.21.x、1.22.x 或更高版本 不知道為什麼,官方竟然無預警停止更新,我們只好自行救濟

【Maven】如何夾帶檔案至Jar內以及其讀取方式 想要讀取一個外部的文字文件?Maven是你的好幫手

【MEGAcmd】[Linux] 如何解決Unable to connect to service: error=2 用了好久的軟體突然停止一切的運作了。

隨機好文

高捷少女:地下城的探險少女④ 耐耐突然抖了一下。「妳們聽到了嗎?」她說。「聽到什麼?」婕兒問。「那個腳步聲啊!」耐耐嚥了一下喉嚨,覺得有些害怕。「有一陣腳步聲經過,很小聲,但我還是聽到了。』「妳聽錯了吧……等等!」婕兒使終維持著將

高捷少女:購票大作戰③  歐巴桑露出懷疑的表情。「怎麼了,您跟夏尼爾小姐不是朋友嗎?只要打電話確認就好了,不是嗎?」「是……是這樣沒錯……可是……」小穹支支吾吾地說。我的確是潔西塔的朋友,但

高捷少女:美麗島的守護者② 這是在亦晨離開前的下午拍的,當時亦晨在美麗島跟小穹艾米等人在美麗島散步,為離開前補充一些回憶,這時剛好經過的小雅被艾米抓過來,做為同樣是高捷新人的她倆一同拍了一張紀念照。說起來她跟亦晨並不太熟,不過也

高捷少女:耐耐的新年驚喜(終) 他的話說到一半,便被一陣響亮的哭聲打住了,是從產房中的傳來的。聽起來就像嬰兒的哭聲。 婕兒、小穹跟艾米也被哭聲吵醒,婕兒揉揉眼睛,看向呆若木雞的耐耐父女。「剛剛的聲音,該不會是……」

【歌評】蓮台野夜行 - 魔術師梅莉(魔術師メリー)  對於同一首歌每一個人都有不同的見解,看看別人對於這一首歌的看法,說不定就可以聽出這首歌想要表達的事情!