如何钓鱼身份API

创作者: Ice_Box_Studio_HTF
已更新:2026-08-25 20:08:17
129KB

前置 MOD

使用 如何钓鱼身份API 时将自动安装

关于此 MOD

注意:此描述为双语版本。中文部分位于英文部分下方。
说明:本描述为中英双语版本,中文内容位于英文内容下方。


如何钓鱼身份API(英文)

HowtoFishIdentityAPI 是《How to Fish》模组共享的身份验证 API,为服务端权威模组提供稳定且经过验证的玩家标识。

主要特性

  • 验证游戏Steam传输所确认的SteamID对应的Steam玩家。
  • 使用本地RSA密钥和服务器颁发的质询来验证非Steam玩家。
  • 暴露一个稳定键,例如 Steam:<SteamID> 或 key:<public-key-hash> 验证之后。
  • 使用专用的FishNet广播进行握手。
  • 提供一个验证事件,以便依赖模组可以初始化服务器端的玩家数据。

面向玩家

这个模组是一个API/依赖项。它本身不会添加玩法、界面、指令或货币。
当其他“如何钓鱼”模组将HowtoFishIdentityAPI列为前置要求时,安装此模组。若所依赖的模组支持多人游戏,主机及参与的客户端玩家应按该模组的说明安装所需的前置模组。

非Steam身份密钥存储在本地位置:

存档/如何钓鱼身份API.identity

请勿共享此文件。复制的非Steam身份文件可被用于冒充该身份。此API仅用于确认密钥持有情况,并非权限、封禁或反作弊系统。

模组作者指南

参考 HowtoFishIdentityAPI.dll 并添加一个硬性的BepInEx依赖:

using BepInEx; using FishNet.Connection; using HowtoFishIdentityAPI.Api; [BepInPlugin(PluginInfo.PLUGIN_GUID, "我的模组", "1.0.0")] [BepInDependency("IceBoxStudio.HowToFish.IdentityAPI", "1.0.0")] public sealed class MyPlugin : BaseUnityPlugin { private void Awake() { IdentityApi.Verified += OnVerified; } private void OnVerified(NetworkConnection connection) { if (IdentityApi.TryGetKey(connection, out string key)) { // 使用密钥加载或创建服务端数据。 } } }

有用的API方法:

  • IdentityApi.IsVerified(网络连接) 检查连接是否已完成验证。
  • IdentityApi.IsVerified(玩家) 检查玩家当前的连接状态。
  • IdentityApi.TryGetKey(NetworkConnection, out string key) 返回已验证的稳定密钥。
  • IdentityApi.TryGetKey(Player, out string key) 返回玩家的已验证密钥。
  • IdentityApi.IsSteam(NetworkConnection) 和 IdentityApi.IsSteam(Player) 识别Steam传输身份。
  • 身份已验证 在连接验证后于服务器上触发。

身份验证握手使用了 身份问候广播, 身份验证挑战广播,以及 身份证明广播不要修补或读取 Server.RpcReader___SendChatMessage___3264264606 用于自定义协议。

兼容性

  • 游戏版本:1.0.9+
  • BepInEx: 5.4.23.5+

Bug报告与功能建议

如果您有任何问题或功能建议,请通过以下方式提交 GitHub 问题追踪,在Discord上联系我: 冰柜酷或发送邮件至 764884112@qq.com 或 ibox2333@gmail.com.


如果你喜欢我的模组,欢迎支持我!

Ko-fi   爱发电

钓鱼身份API(中文)

HowtoFishIdentityAPI 是供 How to Fish 模组使用的共享身份验证 API。它为需要服务器权威身份的模组提供稳定、经过验证的玩家标识。

主要功能

  • 使用游戏Steam传输确认的SteamID验证Steam玩家。
  • 使用客户端本地RSA密钥和服务器随机挑战来验证非Steam玩家。
  • 验证完成后提供稳定身份键,例如 steam:<SteamID> 或 key:<公钥哈希>。
  • 使用独立FishNet Broadcast完成握手。
  • 提供身份验证完成事件,方便其他模组在服务器端初始化玩家数据。

给予玩家

这是一个API/依赖模组,本身不会添加玩法、UI、指令或货币功能。
当其他How to Fish模组要求安装HowtoFishIdentityAPI时,请按照该模组的说明进行安装。联机模组通常需要房主和参与游戏的客户端都安装所需的依赖。

非 Steam 身份密钥保存在:

存档/如何钓鱼身份API.身份

请不要分享此文件。复制非Steam身份文件后,他人可能冒用对应身份。此API仅确认客户端是否持有对应密钥,不负责权限、封禁或反作弊。

致模组作者

在项目中引用 HowtoFishIdentityAPI.dll,并添加 BepInEx 硬依赖:

using BepInEx; using FishNet.Connection; using HowtoFishIdentityAPI.Api; [BepInPlugin(PluginInfo.PLUGIN_GUID, "我的模组", "1.0.0")] [BepInDependency("IceBoxStudio.HowToFish.IdentityAPI", "1.0.0")] public sealed class MyPlugin : BaseUnityPlugin { private void Awake() { IdentityApi.Verified += OnVerified; } private void OnVerified(NetworkConnection connection) { if (IdentityApi.TryGetKey(connection, out string key)) { // 使用key加载或创建服务器端玩家数据。 } } }

常用 API:

  • IdentityApi.IsVerified(NetworkConnection):判断连接是否已完成验证。
  • IdentityApi.IsVerified(玩家):判断玩家当前连接是否已完成验证。
  • IdentityApi.TryGetKey(NetworkConnection, out string key):读取已验证的稳定身份键。
  • IdentityApi.TryGetKey(玩家,输出字符串 key)::读取玩家已验证的身份键。
  • IdentityApi.IsSteam(网络连接) 和 IdentityApi.IsSteam(Player)::判断身份是否来自 Steam 传输。
  • 身份已验证:服务器完成身份验证后触发。

身份握手使用 身份问候广播、身份验证广播挑战 和 身份证明广播。不要为了实现自定义协议而补丁或读取。 Server.RpcReader___SendChatMessage___3264264606。

兼容性

  • 游戏版本:1.0.9+
  • BepInEx:5.4.23.5

Bug 提交 & 新功能建议

如果你有任何问题或新功能建议,请通过 GitHub 问题跟踪 提交,也可以通过Discord:冰盒酷,或邮箱 764884112@qq.com 或 ibox2333@gmail.com 联系我。

使用 Xmod 解锁 渔力全开 的全部潜力 — 今天就探索这些顶级 MOD!