進入不穩定梅雨季節,疫情持續肆虐,各位礦工是否還在認真的挖土呢?挖土之餘花點時間為喜愛的文章投票吧!
LV. 14
GP 56

【自製】ViewDistanceCat - 增加視野距離插件 看超遠+異步+多執行緒+自帶反礦物透視

樓主 XUAN_Cat kaevery
GP51 BP-
PaperSpigot 已經更新了假視野距離補丁
除非需要此插件的某功能, 否則不建議使用此插件為首選
paper.yml no-tick-view-distance 可以達到同樣效果


示範影片

說明
  • 可以讓每一位玩家查看更遠的區塊
  • 多執行緒全異步
  • 插件所擴展的區塊, 不會載入實體/方塊更新
  • 可生成區塊 (可選)
  • 注意! 擴展的視野距離可以非常大, 最大為32, 除非客戶端性能非常好, 否則這對客戶端沒有任何幫助
  • 伺服器穩定 tps 20, 絕非不可能
  • 自帶反礦物透視 (僅限於插件發送的區塊)

範例
  • 假設 server.properties -> view-distance: 8
  • 插件 config.yml -> 最大視野距離: 25
  • 玩家有兩個權限
    • max_view_distance.20
    • max_view_distance.30
會自動尋找最大的數值 (30), 如果沒有設定權限, 則會使用 最大視野距離 所設置的值
玩家在客戶端調整的視野距離 伺服器負責發送             插件負責發送                備註
4 0~4
12 0~8 9~12
32 0~8 9~25 配置的最大視野距離是 25

指令
  • /viewdistancecat
    start 繼續提供視野距離
    stop 停止提供視野距離
    reload 重讀配置文件
    report 異步執行續報告

權限
  • max_view_distance.<最遠視野距離>
  • command.viewdistancecat 使用所有指令

下載:
狀況 更新日期 支持 XuanCatAPI(要高於) ViewDistanceCat
2020/4/16 Paper 1.14~1.15 1.2.14 1.0.2
2020/4/19 Paper 1.14~1.15 2.0.10 2.1.4
2020/4/21 Paper 1.14~1.15 2.0.10 2.1.5
2020/4/22 Paper 1.14~1.15 2.0.10 2.2.1
2020/4/23 Paper 1.14~1.15 2.0.10 2.2.2
2020/4/25 Paper 1.14~1.15 2.0.12 2.3.1
2020/4/27 Paper 1.14~1.15 2.0.14 3.1.1
2020/5/2 Paper 1.14~1.15 2.0.14 3.1.2
2020/5/2 Paper 1.14~1.15 2.0.14 3.1.4
2020/5/3 Paper 1.14~1.15 3.0.1 3.2.1
2020/5/3 Paper 1.14~1.15 3.0.2 3.2.2
2020/5/3 Paper 1.14~1.15 3.0.2 3.2.3
2020/5/5 Paper 1.14~1.15 3.0.2 3.2.4
2020/5/6 Paper 1.14~1.15 3.0.6 4.0.1
2020/5/7 Paper 1.14~1.15 3.0.8 4.0.3
2020/5/8 Paper 1.14~1.15 3.0.9 4.0.4
2020/5/10 Paper 1.14~1.15 3.0.9 4.0.5
2020/5/10 Paper 1.14~1.15 3.0.9 4.1.1
2020/5/13 Paper 1.14~1.15 3.0.9 4.1.2
2020/5/14 Paper 1.14~1.15 3.0.9 4.1.3
推薦 2020/5/14 Paper 1.14~1.15 3.0.9 4.2.1
ExtendViewDistance-8.1.8 (舊版極度不推薦 , 已停止維護, 需要 XuanCatAPI)

語言
  • 英文
  • 繁體中文
  • 簡體中文



反饋
有問題或是BUG請在這裡回報我
51
-
LV. 14
GP 66
2 樓 XUAN_Cat kaevery
GP0 BP-

更新

  • 架構變化
  • 更新內部主要邏輯代碼, 現在使用byte操作, 速度更快
  • 計算距離權重速度更快
  • config.yml 添加
    • 世界黑名單
    • 伺服器視野距離計算矯正
  • 解決遠距離區塊無發送的問題
0
-
LV. 13
GP 449
3 樓 LogoCat tonylo2ooo
GP2 BP-
很棒的插件,不過礙於一些原因不能裝上去。

常出現這個問題,使整個伺服器卡死,大概一小時會發生一兩次。

2.
另外,伺服器視距 4 插件視距 7,玩家過chunk邊界的時候許多人會很卡 (照理來說這個傳輸量並不會使玩家客戶端接受太多封包、或是顯示太多地圖)。
這個好像在第一次發布在spigot上面就有回報過了。
2
-
LV. 14
GP 67
4 樓 XUAN_Cat kaevery
GP1 BP-

更新

  • 修復新架構沒有把擴展距離上限給納入計算內
  • 現在玩家丟失區塊問題嘗試改善
  • 新增配置
    • 每次切換世界都要等待一段時間才發送區塊 (確保客戶端能接收新區塊)
    • 後臺除錯模式
  • 修正新架構在計算區塊視圖時,  計算的錯誤
  • 更新配置說明
1
-
LV. 14
GP 67
5 樓 XUAN_Cat kaevery
GP1 BP-

更新

  • 區塊加載現在非常快
  • 需要 XuanCatAPI 1.0.39
  • 現在完全異步
  • 由於區塊加載太快,因此配置更新
    • fastest-mode: true
    • player-tick-send-chunk-amount-sole: 5
    • delayed-send-tick: 100
    • 每次切換世界 / 遠距離傳送時, 等待一段時間再給予區塊
    • delayed-send-tick: 100
1
-
LV. 20
GP 27
6 樓 OuO s7944
GP0 BP-
原本都在外國論壇等待作者更新xd

沒想到創版作者您也發文了

我是回報跨服或是回重生點可能有顯示問題那位(使用cmi插件)有收到您回覆的訊息了感謝

但太晚了 等明天測試再跟您說情況 謝謝
0
-
LV. 14
GP 76
7 樓 XUAN_Cat kaevery
GP0 BP-
更新
  • 修復算距離時候, 也把Y軸納入公式內
  • 修正錯誤
  • 需要 XuanCatAPI 1.0.43
0
-
LV. 14
GP 76
8 樓 XUAN_Cat kaevery
GP3 BP-
更新
此插建在一路開發過來, 修復了很多錯誤, 大改了3~4次架構
目前認為此插件已經接近完善了
最後, 只缺些人, 對此插件進行暴力測試, 回報任何可能的問題, 讓此插件達到 100% 無錯誤
3
-
LV. 10
GP 21
9 樓 開服者-可可 hihicoco0325
GP1 BP-
1
-
LV. 14
GP 76
10 樓 XUAN_Cat kaevery
GP1 BP-
錯誤
已排除記憶體釋放問題 (沒問題), 但有可能出現 "The server has not responded for ? seconds! Creating thread dump" 錯誤, 正在排除所有可能中, 請不要使用此插件
我目前還是無法重現此錯誤

極限壓力測試結果
CPU R7-2700X 8核心16執行續 無超頻 平均3.91GHz
-Xmx10G -Xms512M -Xmx1024M -server -DenableDebugMethodProfiler=true -jar paper-102.jar
extend-view-distance: 32
player-tick-send-chunk-amount: 240
player-tick-send-chunk-amount-sole: 120
上線玩家 2 位, 距離全開(32), 沒有丟失封包
1
-
LV. 14
GP 83
11 樓 XUAN_Cat kaevery
GP3 BP-
結論
在我爆肝 + 已經寫出一套新的架構後, 找到了真正的原因
因為緩存了不該緩存的東西, 導致 java 在 gc 時, 需要耗費大量時間, 整個伺服器卡頓
3
-
LV. 4
GP 65
12 樓 史詩惡龍 chr1srak
GP0 BP-
0
-
LV. 14
GP 83
13 樓 XUAN_Cat kaevery
GP1 BP-
更新
  • 需要
    XuanCatAPI 1.0.48
  • 配置更新, 部分名稱改變 + 重新定義方法, 建議重新生成配置文件
  • 修復內部釋放記憶體, 導致伺服器卡頓的問題
  • 對於循環執行的改良, 不應該是50毫秒循環一次, 因為容易造成伺服器堵塞, 更改為1秒一次
  • 新的檢測穩定度方案:
    1. tick-read-chunk-amount / 線上玩家數量 = tick-assign-each-player-max-chunk-amount
    2. 在一個已經有存在大量區塊的地圖中, 全部線上玩家拿取鞘翅, 朝向不同的方向滑翔
    3. 如果持續至少 10 分鐘沒有導致 tps 下降, 則代表此值可以套用
  • "The server has not responded for ? seconds! Creating thread dump" 錯誤, 目前無法判斷是否已經完美解決
  • 新增配置
    • 壓力測試模式

1
-
LV. 12
GP 22
14 樓 開服者-可可 hihicoco0325
GP1 BP-
EVD 7.0.2
XuanCatAPI 1.0.48
開服後兩小時仍然停止回應
1
-
LV. 14
GP 88
16 樓 XUAN_Cat kaevery
GP2 BP-
結論
在我反覆的測試+修改內部文件後, 找到了"The server has not responded for ? seconds! Creating thread dump"產生的原因, 讀取原始區域文件時, 在轉換為區塊進行礦物替換之前, 區塊轉換過程中光線照明計算導致區塊鎖死, 長期運行下來會造成mc主線程鎖死, 既然已經知道問題了, 會在下個版本中解決

目前已經壓力測試 1 小時無出現任何tps下降以及 主線程鎖死的問題
2
-
LV. 14
GP 88
17 樓 XUAN_Cat kaevery
GP3 BP-
更新
  • 通過2小時壓力測試, 伺服器tps保持20, 無錯誤, 無卡頓:
    • 2位玩家, 視野距離開32, 一直高速滑翔不中斷
    • extend-view-distance: 32
    • tick-read-chunk-amount: 40
    • tick-assign-each-player-max-chunk-amount: 20
    • stress-test-mode: 1
  • 需要 XuanCatAPI 1.0.49
  • 從原始文件換算成區塊時, 不要在運算光線照明一次, 確保伺服器不出現 "The server has not responded for ? seconds! Creating thread dump" 錯誤
  • 區塊處裡速度增加
  • 循環執行續, 原本1秒計算一次, 取消, 改回50毫秒計算一次
  • 配置文件部分功能有更動, 建議重新生成
3
-
LV. 12
GP 23
18 樓 開服者-可可 hihicoco0325
GP1 BP-
1
-
LV. 14
GP 92
19 樓 XUAN_Cat kaevery
GP1 BP-
更新
  • 修復錯誤
  • 修正了以前死亡重生時, 沒有重新發送區塊, 導致區塊缺失 (一樣受到 delayed-send-tick 限制).
1
-
LV. 18
GP 156
20 樓 西納 Eric1008818
GP0 BP-
加油^0^~
nms爆肝王
0
-
未登入的勇者,要加入 68 樓的討論嗎?
板務人員:

1294 筆精華,昨天 更新
一個月內新增 3
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】