Class ServerProperties
java.lang.Object
server.ServerProperties
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidcollectFrom(List<ServerSetting> settings) static StringgetPath()static Stringstatic booleangetProperty(String s, boolean def) static bytegetProperty(String s, byte def) static doublegetProperty(String s, double def) static intgetProperty(String s, int def) static longgetProperty(String s, long def) static shortgetProperty(String s, short def) static StringgetProperty(String s, String def) static voidloadInto(List<ServerSetting> settings) static voidstatic voidstatic voidregisterSaveHook(Runnable hook) 註冊一個「存檔前同步」掛鉤(見saveHooks)。static voidremoveProperty(String prop) static void將目前記憶體中的所有設定回寫到settings.ini。static voidsaveProperty(String key, boolean value) saveProperty(String, String)的布林便利重載。static voidsaveProperty(String key, String value) 持久化單一鍵:同時更新記憶體中的props與settings.ini。static voidsetProperty(String prop, boolean newInf) static voidsetProperty(String prop, byte newInf) static voidsetProperty(String prop, int newInf) static voidsetProperty(String prop, long newInf) static voidsetProperty(String prop, short newInf) static voidsetProperty(String prop, String newInf)
-
Constructor Details
-
ServerProperties
public ServerProperties()
-
-
Method Details
-
getPath
-
loadProperties
public static void loadProperties() -
loadProperties
-
setProperty
-
setProperty
-
setProperty
-
setProperty
-
setProperty
-
setProperty
-
removeProperty
-
registerSaveHook
註冊一個「存檔前同步」掛鉤(見saveHooks)。掛鉤通常為某設定持有者的
storeSetting()(把其執行期欄位值寫回props)。 由saveProperties()在寫檔前依註冊順序執行。- Parameters:
hook- 要在存檔前執行的同步動作(null會被忽略)
-
loadInto
- Parameters:
settings- 要載入的設定清單
-
collectFrom
- Parameters:
settings- 要收集的設定清單
-
saveProperties
public static void saveProperties()將目前記憶體中的所有設定回寫到settings.ini。原本只有
loadProperties()(讀),本方法補上對應的「寫」:- ini 中既有的鍵 → 就地更新其值(只動
=之後, 完整保留中文註解、區段標題、空行與原本的排列順序)。 - 程式中已存在、但 ini 內尚未寫出的鍵 → 自動附加於檔尾 (即使用者「ini 沒自己新增也會生效並補上」的需求)。
寫檔前會先執行所有
註冊的同步掛鉤,把快取於ServerConstants靜態欄位與各伺服器實例欄位、且可能於執行期被變更的設定 (倍率、各log_*開關、管理員模式…)寫回props,因此存出的檔案會反映 目前實際生效的所有伺服器變數,而非開機當下載入的舊值。由
auth_server_channel_ip注入的鍵(見dbInjectedKeys)一律排除。 檔案以 UTF-8(保留 BOM)寫出,與loadProperties()的讀取編碼一致。注意:本方法會以記憶體值覆寫整份設定檔,因此伺服器執行期間若有人 手動編輯了 ini 的其他鍵,呼叫本方法會被記憶體值蓋掉。若只想持久化單一鍵、 不動其餘行,請改用
saveProperty(String, String)。 - ini 中既有的鍵 → 就地更新其值(只動
-
saveProperty
-
saveProperty
saveProperty(String, String)的布林便利重載。 -
getProperty
-
getProperty
-
getProperty
-
getProperty
-
getProperty
-
getProperty
-
getProperty
-
getProperty
-