[精讚] [會員登入]
1067

【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

你可能感興趣的文章

【Wicket】[Cookie]如何讀取和設定客戶端的Cookie 對於某些參數需要給予使用者,我們可以使用 Cookie 來讓客戶端記著,之後再跟伺服器裡的比對來達到驗證的目的

【Docker hub】[Linux]以IPv6來pull容器(container)吧! 在一個 IPv6 還不盛行的年代,做事情總是特別麻煩

【Maven】如何開始撰寫 Minecraft PaperMC server插件 萬事起頭難,要開始寫一個插件最難的一步就是要怎麼開始寫

【Python3】[Django] (Windows / Liunx) 如何從零開始創建一個網站 除了最基本的運作以外,還小小的加上了如何自導向特定目錄。

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

【教程】(進階版)如何用Sigil製作一本高質量的epub 下載好了Sigil之後除了直接把文字貼進去以外,還有:變更字型、著色、導入CSS……等等功能,不知道你有沒有發現呢?

隨機好文

高捷少女:小穹與果仁巧克力㊥ 艾咪臉上泛起笑容說:「妳知道嗎?就跟花語一樣,每一種巧克力也都有各自的涵義:薄荷巧克力代表初戀;卡通巧克力代表天真爛漫;而果仁巧克力代表的是窩心,還有想陪伴對方的心情,這在德國是女生之間在慶生時會彼此

婕兒──她的青春④ 「投降吧,耐耐!這回合妳將不會再有獲勝的機會了!哈哈哈哈!」 「妳確定?」耐耐臉上泛起一絲微笑,並將手中的牌展示給婕兒看 婕兒的笑容僵住了。恐懼浮現在她的臉。

【日翻中歌詞】LOSER 一如往常的孤身一人 早就已經被折磨殆盡 明明就已經無處可去 卻作著白日夢 晚安 無論何時都是這個樣子 對懵懂夜晚早感到噁心

艾米莉亞和高捷戀旅⑤ 「小滷,這位先生是誰呢?」果果問道。「○○!」小滷說:「他是曾經在中國四川省的國營餐廳擔任大廚的上等大廚師,是一位精通川菜的料理達人。據說學過中國料理的人,沒有一個不知道他。」

【小說EPUB下載】﹝持續更新﹞高捷少女二創小說全 網頁上的無名小說EPUB化了?!