-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
SteamTokenDumperPlugin zh TW
SteamTokenDumperPlugin
是由我們所開發的ASF官方外掛程式,它可以使您透過分享組合包權杖、應用程式權杖及Depot金鑰,來對SteamDB專案提供貢獻。 關於所收集的資料的進一步說明,以及為什麼SteamDB需要這些資訊,可以在SteamDB的Token Dumper頁面上查看。 如上所述,提交的資料不包含任何敏感資訊,也不存在安全/隱私風險。
ASF在釋出時附帶了SteamTokenDumperPlugin
外掛程式,但是外掛本身預設是停用的。 您可以將ASF全域設定屬性SteamTokenDumperPluginEnabled
設定成true
來啟用外掛程式,採用JSON語法:
{
"SteamTokenDumperPluginEnabled": true
}
在開啟ASF程式時,外掛程式會以標準ASF日誌的形式通知您它是否已成功啟用。 您也可以在設定檔生成器網頁工具中啟用外掛程式。
啟用後,本外掛程式將會收集您在ASF中執行的Bot有權存取的組合包權杖、應用程式權杖及Depot金鑰。 資料收集模組包含被動與主動常式,它們應盡可能減少資料收集所造成的額外負擔。
為了完成預期的使用場景,除了上述的資料收集常式以外,提交常式負責確定哪些資料需要定期提交至SteamDB。 這個常式將在您啟動ASF最多1
個小時後啟動,之後每24
小時重複一次。 本外掛程式會盡量減少需要傳送的資料量,因此某些外掛程式收集到的資訊會被認為是無用提交而被略過(例如應用程式更新但並未更改存取權杖)。
本外掛程式使用了儲存於config/SteamTokenDumper.cache
的持續快取資料庫,其用途類似於ASF的config/ASF.db
。 這個檔案用於記錄收集到及要提交的資料,並盡可能減少下次ASF執行時必須完成的工作量。 刪除此檔案會使程序從頭開始,如果可以,應避免這種情形。
ASF會在請求中包含貢獻者的steamID
,即您在ASF中設定的SteamOwnerID
。若您並未設定它,則會選擇擁有最多許可的Bot的Steam ID。 被宣告的貢獻者可能會因持續貢獻而從SteamDB獲得一些額外的好處(例如網站上的貢獻排名),但這完全是由SteamDB所決定。
無論如何,SteamDB的工作人員預先感謝您的協助。 提交的資料可以使SteamDB運作,特別是追蹤組合包、應用程式及Depot的資訊。若沒有您的協助,這些將不復存在。
STD外掛程式提供額外的ASF指令⸺std [Bots]
⸺使您能夠依需求觸發所選Bot的重新整理及提交。 使用本指令毋須啟用設定,它使您能夠跳過自動收集與提交,並能讓您手動控制整個過程。 它一直都能在啟用設定的情形下使用,如此只會將原先就有的收集及提交過程提前進行。
我們建議使用!std ASF
,將觸發所有可使用的Bot的重新整理。 但若您需要,也能指定要觸發哪些Bot。
我們的外掛程式支援進階設定,這對於希望依據自己的偏好調整內部結構的人可能會很有用。
進階設定在ASF.json
中有下列結構:
{
"SteamTokenDumperPlugin": {
"Enabled": false,
"SecretAppIDs": [],
"SecretDepotIDs": [],
"SecretPackageIDs": [],
"SkipAutoGrantPackages": true
}
}
所有選項解釋如下:
bool
型別,預設值為false
。 這個屬性與上述SteamTokenDumperPluginEnabled
根級屬性的作用相同,可以相互代替,給那些希望在自己的結構中擁有整個外掛程式相關設定的人所使用(這些人很可能已經使用了下列所述的其他進階屬性)。
ImmutableHashSet<uint>
型別,預設值為空。 這個屬性使外掛程式不解析指定的appIDs
,若它們已被解析,則不提交權杖。 這個屬性對於有權存取有關未發布物品的敏感資訊的人非常有用,特別是開發人員、發行商或Beta封閉測試人員。
ImmutableHashSet<uint>
型別,預設值為空。 這個屬性使外掛程式不解析指定的depotIDs
,若它們已被解析,則不提交金鑰。 這個屬性對於有權存取有關未發布物品的敏感資訊的人非常有用,特別是開發人員、發行商或Beta封閉測試人員。
ImmutableHashSet<uint>
型別,預設值為空。 這個屬性使外掛程式不解析指定的packageIDs
(也稱為subIDs
),若它們已被解析,則不提交權杖。 這個屬性對於有權存取有關未發布物品的敏感資訊的人非常有用,特別是開發人員、發行商或Beta封閉測試人員。
bool
型別,預設值為true
。 這個屬性的作用類似於SecretPackageIDs
,在啟用後,會使下列所述的解析常式跳過具有AutoGrant
的EPaymentMethod
的套裝。 Steamworks會使用AutoGrant
付款方式自動為開發人員帳號授與組合包。 雖然這不像其他的Secret
選項一樣明確指定ID,因此不能保證能符合預期(因為您可能還擁有其他非AutoGrant
的組合包,而仍不想提交),但它應該足以跳過大多數的(可能非全部的)私密組合包。 這個選項預設為啟用,因為實際上能存取AutoGrant
組合包的人幾乎不會希望公開洩漏這些資訊,因此使用false
值得情形非常有限。
最基礎的概念是每個Steam帳號都擁有一套組合包(授權、訂閱),對應它們的packageID
來分類(也稱為subID
)。 每個組合包可能含有數個應用程式,對應各自的appID
。 每個應用程式可能包含數個Depot,對應各自的depotID
。
├── sub/124923
│ ├── app/292030
│ │ ├── depot/292031
│ │ ├── depot/378648
│ │ └── ...
│ ├── app/378649
│ └── ...
└── ...
我們的外掛程式包含兩個考慮跳過物品的常式:解析常式及提交常式。
解析常式負責解析上述的樹狀結構。 透過提前將組合包/應用程式/Depot加入黑名單,您能有效地在樹狀結構中切斷指定的分支及葉節點,而不需要額外指定其剩餘部分。 在上述範例中,若組合包124923
被忽略,不論是透過SecretPackageIDs
或SkipAutoGrantPackages
,且在您所擁有的組合包中,只有這個能夠鏈結到AppID 292030
,則AppID 292030
也不會被解析。依據定義,若沒有其他可被解析的應用程式鏈結至Depot 292031
及378648
,那麼它們也不被解析。 但是,請注意如果外掛程式已解析了樹,那麼就只會停止更新給定的物品(例如新增的應用程式),而不會「忘掉」已被解析過的現有物品(例如您在加入黑名單前就被找到存在於組合包中的應用程式)。 若您剛剛啟用了一些忽略選項,且希望確保ASF不會遍歷已解析過的樹,您或許可以考慮刪除一次外掛程式儲存快取的config/SteamTokenDumper.cache
檔案。
提交常式負責提交已被解析物品的組合包權杖、應用程式權杖及Depot金鑰(透過上述的解析常式)。 在這裡,您的黑名單會立即生效,因為即使外掛程式已解析了資訊,但若您將其加入黑名單,提交常式實際上就不會把它提交給SteamDB,無論是否已被解析。 請注意,在此處我們不再與樹有任何關連,提交常式不會知道應用程式的資訊是來自這個或那個組合包,所以它只會跳過特定的、已加入黑名單中的物品,而不會考慮它們的相關性。
對於大部分的開發人員及發行商來說,啟用SkipAutoGrantPackages
應已足夠滿足需要。若有額外需要,可以使用SecretPackageIDs
,它能有效地從起始分支切斷,並且只要沒有其他組合包鏈結至相同的應用程式,能保證裡面包含的應用程式及Depot都不會被提交。 若您需要雙重保險,您還可以使用SecretAppIDs
,即使有其他未加入黑名單的組合包鏈結至應用程式,它也會被跳過解析。 一般情形不需要使用SecretDepotIDs
,除非您有特殊需要(例如提交組合包及應用程式資訊時跳過特定的Depot),或您想要多加一層以獲得三重保險。