[精讚] [會員登入]
922

【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

你可能感興趣的文章

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

【Maven】如何創建一個簡單可部屬的WAR檔 滿重要的一個大功能,在使用JAVA網頁伺服器的時候一定會需要這個WAR檔來進行部屬

【無料版模】﹝CSS&HTML﹞製作epub電子書版模免費下載&附使用教學 一個專門用來製作epub的簡單CSS檔案,基本上已經可以做出一本還不錯的電子書,讓妳的電子書不在只有預設的字體、樣式

【Socket】(Linux / Python 3)兩不同系統的主機之間如何使用Socket相互溝通 How to connect two different computer use Socket

【Wickct】如何製作一個簡單的動態響應頁面和傳遞參數至其他頁面 身為一個後端架構程式,這個功能當然是非常重要之一

【D語言】D language 安裝及使用 一種比較少見的程式語言

隨機好文

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

婕兒──她的青春② 艾米直搖頭。「我真不敢相信,小穹妳都二十幾歲了,為什麼能想出這種故事呀?」「婕兒也是二十幾歲啊,妳想想她現在是什麼樣子?」小穹不滿地指向火車的方向。

【歌評】蓮台野夜行 - 幻想的永遠祭 蓮台野的探險雖然結束了,但是,誰知道是不是一段新的探險的序曲呢?

【歌評】過去の花 過去的花 ~ Fairy of Flower 彼岸花(higan bana),就是歌曲名中所指的花,而彼岸花又有「地獄花jigoku bana」的別稱,請注意,蓮台野的周圍可是長滿彼岸花呢!

【歌評】蓮台野夜行 - 夜のデンデラ野を逝く 走在夜晚的蓮台野 墳場,總是瀰漫著死亡的氣氛,但是,稍微的來探險一下應該是沒關係的吧?