如何钓鱼身份API

如何钓鱼身份API

HowtoFishIdentityAPI是How to Fish模组的共享身份验证API。它为服务器权威模组提供稳定且可验证的玩家密钥。

说明:本描述为中英双语版本,中文内容位于英文内容下方。
注:本描述为中英双语版本,英文内容在上方。
---
## HowtoFishIdentityAPI(英文)
HowtoFishIdentityAPI 是供 How to Fish 模组使用的共享身份验证 API。它能为服务器权威模组提供一个稳定且经过验证的玩家标识。

### 主要功能
* 使用由游戏 Steam 传输确认的 SteamID 验证 Steam 玩家。
* 使用本地 RSA 密钥和服务器签发的挑战验证非 Steam 玩家。
* 验证完成后,提供如 steam:<SteamID>key:<公钥哈希> 的稳定标识。
* 使用专属的 FishNet 广播进行握手。
* 提供验证事件,以便依赖模组初始化服务器端玩家数据。

### 给玩家
此模组是一个 API/依赖模组。它本身不添加游戏玩法、界面、命令或货币。
当其他 How to Fish 模组将 HowtoFishIdentityAPI 列为前置要求时,请安装它。如果依赖的模组是多人游戏,主机和参与的客户端应按照该模组的说明安装所需依赖。

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

text <br />Saves/HowtoFishIdentityAPI.identity <br />
请勿分享此文件。复制的非 Steam 身份文件可被用于冒充该身份。此 API 仅确认密钥的持有权;它并非权限、封禁或反作弊系统。

### 给模组作者
引用 HowtoFishIdentityAPI.dll 并添加一个 BepInEx 硬依赖:

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

* IdentityApi.IsVerified(NetworkConnection) 检查一个连接是否已完成验证。
* IdentityApi.IsVerified(Player) 检查一个玩家当前的连接。
* IdentityApi.TryGetKey(NetworkConnection, out string key) 返回已验证的稳定标识。
* IdentityApi.TryGetKey(Player, out string key) 返回一个玩家已验证的标识。
* IdentityApi.IsSteam(NetworkConnection)IdentityApi.IsSteam(Player) 识别 Steam 传输身份。
* IdentityApi.Verified 在服务器端连接验证后触发。

身份握手使用 IdentityHelloBroadcastIdentityChallengeBroadcastIdentityProofBroadcast。不要为了实现自定义协议而修补或读取 Server.RpcReader___SendChatMessage___3264264606

### 兼容性
* 游戏版本:1.0.9+
* BepInEx:5.4.23.5+

### 安装方法
1. 下载并安装 BepinEx 5 5.4.23.5
2. 将模组解压到游戏根目录。压缩包已包含 BepInEx\plugins 文件夹结构。

### Bug 提交 & 新功能建议
如果你有任何问题或功能建议,请通过 GitHub Issues 提交,或在 Discord 上联系 iceboxcool,或发送邮件至 764884112@qq.comibox2333@gmail.com
---
如果你喜欢我的模组,请支持我一下吧!

ko-fi 爱发电
---
## HowtoFishIdentityAPI(中文)
HowtoFishIdentityAPI 是供 How to Fish 模组使用的共享身份验证 API。它为需要服务器权威身份的模组提供稳定、经过验证的玩家标识。

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

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

非 Steam 身份密钥保存在:

text <br />Saves/HowtoFishIdentityAPI.identity <br />
请不要分享这个文件。复制非 Steam 身份文件后,其他人可能冒用对应身份。本 API 只确认客户端是否持有对应密钥,不负责权限、封禁或反作弊。

### 给模组作者
在项目中引用 HowtoFishIdentityAPI.dll,并添加 BepInEx 硬依赖:

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

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

身份握手使用 IdentityHelloBroadcastIdentityChallengeBroadcastIdentityProofBroadcast。不要为了实现自定义协议而补丁或读取 Server.RpcReader___SendChatMessage___3264264606

### 兼容性
* 游戏版本:1.0.9+
* BepInEx:5.4.23.5+

### 安装方法
1. 下载并安装 BepinEx 5 5.4.23.5
2. 将模组解压到游戏根目录即可,压缩包内置 BepInEx\plugins 路径。

### Bug 提交 & 新功能建议
如果你有任何问题或新功能建议,请通过 GitHub Issues 提交,也可以通过 Discord:iceboxcool,或邮箱 764884112@qq.comibox2333@gmail.com 联系我。