[心得] Dynmap與遊戲分開 獨立運作的方法

看板Minecraft (當個創世神)作者 (Logo)時間8年前 (2016/11/10 19:49), 8年前編輯推噓0(0016)
留言16則, 3人參與, 最新討論串1/1
※ 引述《kiney (西提王國Citynoland)》之銘言: : 想請位各位,伺服器有安裝 Dynmap : 但不知道他能否拖出來獨立運作呢? : 也就是伺服器關閉的時候他依然可以運作呢? : 我試著進去他的 web資料夾 打開 index.html : 無法像一般網站一樣開啟 : 不知道各位有沒有人知道怎麼讓他獨立運作呢? 不想把問題講得太複雜,簡單來說 dynmap插件本身就像一個小伺服器,他對特定端口(port)輸出資料 你不開minecraft server + dynmap 就等於沒有小伺服器幫你運作 另外寫一個小伺服器去讀那些已經處理好的圖檔也很沒意義, 等於重新發明輪子,我提供你一個做法,是我確定可以用的。 另外,因為中文相關資料很少,以下重要google 用名詞(你還是得自學一些東西) 我通通都用英文,方便你接下去查你遇到的技術問題 技術文開始: 這種情形你多半是有兩台機器,或是想讓server關的時候還是可以被人家讀地圖 我當初有這需求是因為有人拿dynmap server 發動DOS攻擊, 但我伺服器不能關小地圖(沒地圖的領地佔有不好玩,加上資源稀少要查地圖) 如果你本來的server用了16G記憶體去開 另一台只是作為讀地圖用 例如只要少少的1G, 甚至800M 你還是得開兩個spigot or bukkit server, 因為你不想重新寫一套讀dynmap格式的伺服器 假設遊戲server ip : 112.114.116.118 , map server ip: 112.666.118.666 想要有分散兩地的伺服器但是用同樣的域名,你得另外學 (例如 game server : play.opserver.com, map server : map.opserver.com) 也就是你一樣開兩個server 的程式,地圖server不要用25565 port開 (同一台機器的話會衝) 而且要設定白名單,並且不要讓任何人連進來(他只是拿來跑dynmap plugin的) 可以弄個25566 25567 隨便,然後只要注意你的dynmap port是多少即可 他預設是8123,所以你實際是會用到的網址是 112.114.116.118 叫玩家minecraft連這裡 想給人看小地圖 http://112.666.118.666:8123 接下來你需要做異地備份,把game server的map region檔拷貝(並且覆蓋) map server的region檔,讓map server的dynmap plugin去render tile as png images. 如果你想要呈現世界名稱 my_creative_world 的地圖,並且拷貝到map server 那你就要安裝異地備份的軟體,從 112.114.116.118 的server路徑下/my_creatvie_world/region/ 裡頭,所有的 r.X.Y.mca 檔案 (chunk file) 通通備份到 112.666.118.666 的server路徑下/my_creative_world/region中 至於你map server要不要叫my_creative_world 其實隨便你 反正你只是要呈現(render)到網頁上 但dynmap有一些地方會把你地圖名稱顯示出來,為了玩家不要混淆 還是建議用一樣的名字,以防有太多世界要複製 自己忘記怎對應 PS: 這邊的r.X.Y.mca 的X,y 會是整數, 存著某一個區塊的地圖資料,轉換到實際座標的話可以用這個網站 https://dinnerbone.com/minecraft/tools/coordinates/ 至於異地備份軟體 可以考慮linux 內建的scp (或是你的異地 是本機, 隨便,看map server跟game server 有沒有在同一個機器上,有的話不用花網路資源) scp -r user@112.114.116.116:/path/to/server/my_cool_creative/region/*.mca /my_map_server/my_cool_creative/region/ 這樣就會把112.114.116.118(game server)的地圖檔 貼到 本機(map server)的server資料夾中的region路徑下 然後map server 的dynmap plugin就可以讀了 最後,你要決定你多久備份一次,因為那些地圖檔案大小不小 我是推薦一個禮拜一次,而且挑半夜,你強一點可以設定批次處理 寫個bash檔,loop, 每N秒跑一次指令 這我就不繼續講了,可以自己查 除了scp有更好的,會自動比較異同,相同檔案(沒被修改過的檔案)不會備份的 你有需要可以自己查 要做到多好,你可以自己決定要投入多少時間 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.77.25 ※ 文章網址: https://www.ptt.cc/bbs/Minecraft/M.1478778546.A.7D7.html ※ 編輯: tonylo2ooo (114.45.77.25), 11/10/2016 19:54:31

11/11 02:07, , 1F
搞這麼複雜做啥... map server用別的帳號開
11/11 02:07, 1F

11/11 02:07, , 2F
softlink到地圖檔 讓權限是唯讀就好了
11/11 02:07, 2F

11/11 02:09, , 3F
因為他說關閉不曉得是哪種,所以假設關機的
11/11 02:09, 3F

11/11 02:11, , 4F
我只是提供我當初被DOS的方法(得把網路分開)
11/11 02:11, 4F

11/11 02:12, , 5F
不過也沒很複雜吧,我只是怕原po新手講細一點
11/11 02:12, 5F

11/11 02:13, , 6F
熟的就想成duplicate多少東西,你講的方法連帳號都
11/11 02:13, 6F

11/11 02:14, , 7F
不用換不也可以嗎, 同一臺機器開兩個server跨路徑
11/11 02:14, 7F

11/17 22:03, , 8F
不是只要到設定檔裡把 disable-webserver: false 改 true
11/17 22:03, 8F

11/17 22:05, , 9F
同一台機器上額外架好 http server(apache, lighttpd etc.
11/17 22:05, 9F

11/17 22:08, , 10F
把 plugins/dynmap/web/ 下的東西複製到 wwwroot (自訂的
11/17 22:08, 10F

11/17 22:10, , 11F
再參考 Setting up without the Internal Web Server
11/17 22:10, 11F

11/17 22:11, , 12F
https://goo.gl/AUPd7M 的內容設定好就好了?
11/17 22:11, 12F

11/17 22:14, , 13F
你寫的說明根本更複雜...
11/17 22:14, 13F
那如果想要想台機器是分開的,不同機器的做法? 果然說明了一個道理 在網路上要找到一個問題的解答不是問那個問題 是提供一個錯誤的答案 感謝大大教學 ._. ※ 編輯: tonylo2ooo (220.137.5.96), 11/19/2016 20:02:41

11/20 18:01, , 14F
您的教學文也是一種做法,畢竟條條大路通羅馬,
11/20 18:01, 14F

11/20 18:02, , 15F
而且是實際驗證可以解決需求的方法,只是...
11/20 18:02, 15F

11/20 18:07, , 16F
我不認為提出問題的人他的需求跟您一樣高深難解...
11/20 18:07, 16F
我確實小題大作了, 我當初是因為dynmap 被當成(D)DOS的對象花了很多時間 原PO要的只是原本就有的功能 ※ 編輯: tonylo2ooo (118.165.16.83), 11/21/2016 03:52:09
文章代碼(AID): #1O95woVN (Minecraft)
文章代碼(AID): #1O95woVN (Minecraft)