[精讚] [會員登入]
1422

【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

你可能感興趣的文章

【Python3】11 - 字典(Dictionary)的使用範例 python3的幾個字典使用範例,改寫自他人perl的範例

【Wickct】(縮短網址) 如何將網頁掛載到特定路徑下 Wildfly的預設網址又臭又長又不好記,而且會被看到後端的目錄路徑安排,當然能藏就盡量藏起來啦

【C++】使用SFML創建新視窗和新增圖標(ICON)並隱藏DOS 筆記,怕自己以後忘記怎麼創建並開啓一個新視窗

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

【JDA/discord bot】取得頻道第一筆或最新(最後一筆)的歷史訊息 在不處理訊息的先後順序下取得相關的歷史訊息

【教程】[HTML](進階版)如何在手機上編輯電子書(epub)預覽介面 可能會有人認為電子書(epub)只能用電腦來開啟、編輯,其實不是的,手機也可以編輯喔!

隨機好文

高捷少女:布拉格體驗㊤ 「可……可以去歐洲玩?而且還有人出錢?太棒囉!」婕兒忍不住歡呼起來,把扳手拋呀拋的,旁邊的客人紛紛轉過來看。「好了啦!」耐耐忍不住害羞起來,輕輕敲了一下婕兒的頭

高捷少女:購票大作戰② 一個不好的預感浮現,艾米莉亞開始檢查屋子四處。窗戶跟陽台都有關好,也沒有被打開的跡象。但一股無形的壓力,開始在寂靜的公寓中蔓延,她不安地嚥一下喉嚨。最後,她走向那扇窗戶,那前天晚上,白龍為了逃脫,而撞

高捷少女:美麗島的守護者③ 小雅閉上眼睛,思索在高捷發生的點點滴滴。她心意已決,在高捷的日子的確也有快樂的部分,不過她相信換個方向是更好的決定。有關高捷的所有美好回憶,小雅決定保留在心裡就好,繼續在高捷工作只會讓自己更痛苦而已,

【數學】徐氏數學簡明講義(三) 第二章 直線與園 P2.1-17 Q28 28.若X、Y∈R,試求之最小值___ 解: 配方 畫圖 做對稱點 求其直線長度 解

【數學】圓的分一半公式 設圓C:​​​​​​x2 + y2 + dx + ey + f = 0或(x - h)2 + (y - k)2 P點座標