3 Commits

Author SHA1 Message Date
Yue-bin
a0d1386712 feat(PlayerManager): 添加房间所有权转让功能
添加了转让房主按钮,允许房主将房间所有权转移给其他玩家。
- 在GUI中新增TransButton组件,用于转让房主功能
- 添加ShowTransButton配置项控制按钮显示
- 实现TransferLobbyOwnership方法处理房主转让逻辑
- 默认启用转让按钮显示
2026-06-22 05:02:26 +08:00
Yue-bin
ab960fc38b chore(PlayerManager): 更新版本号至4.0.7
All checks were successful
Publish Release / build (push) Successful in 1m38s
- 将项目版本从4.0.6升级到4.0.7
- 保持其他配置不变
2026-06-19 20:41:59 +08:00
Yue-bin
a40a605c37 docs(readme): 添加作者信息并更新v4.0.7版本日志
- 添加项目作者信息到README文档
- 新增v4.0.7版本更新内容
- 包含大厅列表按钮点击状态标识功能说明
- 优化LocalPlayer初始化逻辑相关说明
2026-06-19 20:41:47 +08:00
5 changed files with 60 additions and 1 deletions

View File

@@ -41,6 +41,9 @@ public static class DefaultWidgets
if (PlayerManager.ShowNameToggleButton.Value)
RegisterManager.RegisterPlayerRow(InternalWidgets.NameToggleButton.Create());
if (PlayerManager.ShowTransButton.Value)
RegisterManager.RegisterPlayerRow(InternalWidgets.TransButton.Create());
if (PlayerManager.ShowMuteButton.Value)
RegisterManager.RegisterPlayerRow(InternalWidgets.MuteButton.Create());
if (PlayerManager.ShowAddFriendButton.Value)

View File

@@ -0,0 +1,21 @@
using MultiplayerBasicExample;
namespace stick.plugins.playermanager.Gui.InternalWidgets;
public static class TransButton
{
public static IPlayerRowWidget Create()
{
return new PlayerRowButtonWidget
{
Name = "Trans Host",
Condition = player =>
PlayerManager.IsHost(PlayerManager.LocalPlayer)
&& !PlayerManager.IsLocalPlayer(player),
GetText = _ => "转让",
OnClick = player =>
PlayerManager.TransferLobbyOwnership(player),
Width = 100f,
};
}
}

View File

@@ -39,6 +39,11 @@ public class PlayerManager : BaseUnityPlugin
/// </summary>
internal static ConfigEntry<bool> ShowKickButton;
/// <summary>
/// 是否显示转让按钮
/// </summary>
internal static ConfigEntry<bool> ShowTransButton;
/// <summary>
/// 是否显示记录/拉黑按钮
/// </summary>
@@ -244,6 +249,13 @@ public class PlayerManager : BaseUnityPlugin
"是否显示踢人按钮"
);
ShowTransButton = Config.Bind(
"GUI",
"ShowTransButton",
true,
"是否显示转让按钮"
);
ShowRecordButton = Config.Bind(
"GUI",
"ShowRecordButton",
@@ -334,6 +346,19 @@ public class PlayerManager : BaseUnityPlugin
#region
/// <summary>
/// 转让房主
/// </summary>
/// <param name="targetPlayer">目标玩家</param>
/// <returns></returns>
public static void TransferLobbyOwnership(PlayerInfo targetPlayer)
{
if (targetPlayer != null && targetPlayer != LocalPlayer)
{
SteamMatchmaking.SetLobbyOwner(CurrentLobbyID, targetPlayer.SteamId);
}
}
/// <summary>
/// 通过SteamID获取NetworkSpawnID
/// </summary>

View File

@@ -17,9 +17,19 @@
- 静音单个玩家
- 一键加好友
## 作者
老狼老狼几点钟、Moncak、z7572
## 更新日志
### v4.0.7
1. 现在点击大厅列表中的按钮进入大厅会在列表中将该大厅用灰色样式标识,标记已进入过
2. 现在不会在每帧都初始化一遍LocalPlayer *难道他真的是猪??*
### v4.0.6
1. 大厅搜索范围按钮现在可同步修改快速匹配的搜索范围
2. 修复了禁音功能 *难道他真的是猪??*

View File

@@ -4,7 +4,7 @@
<TargetFramework>net35</TargetFramework>
<AssemblyName>stick.plugins.playermanager</AssemblyName>
<Product>PlayerManager</Product>
<Version>4.0.6</Version>
<Version>4.0.7</Version>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<LangVersion>latest</LangVersion>
<RestoreAdditionalProjectSources>