fix default group id

This commit is contained in:
zznty
2022-09-22 15:15:33 +07:00
parent 9dbbd6e8ea
commit 9b0137f25e
3 changed files with 11 additions and 4 deletions

View File

@@ -1,8 +1,10 @@
using Torch; using Torch;
using Torch.Views;
namespace LightPerms; namespace LightPerms;
public class Config : ViewModel public class Config : ViewModel
{ {
[Display(Name = "Default Group Name", Description = "All new players will join this group.")]
public string DefaultGroupName { get; set; } = "player";
} }

View File

@@ -5,13 +5,16 @@ namespace LightPerms;
public class MultiplayerMembersManager : Manager public class MultiplayerMembersManager : Manager
{ {
private readonly Config _config;
[Dependency] [Dependency]
private readonly IPermissionsManager _permissionsManager = null!; private readonly IPermissionsManager _permissionsManager = null!;
[Dependency] [Dependency]
private readonly IMultiplayerManagerServer _multiplayerManager = null!; private readonly IMultiplayerManagerServer _multiplayerManager = null!;
public MultiplayerMembersManager(ITorchBase torchInstance) : base(torchInstance) public MultiplayerMembersManager(ITorchBase torchInstance, Config config) : base(torchInstance)
{ {
_config = config;
} }
public override void Attach() public override void Attach()
@@ -25,11 +28,13 @@ public class MultiplayerMembersManager : Manager
if (_permissionsManager.Db.Exists<GroupMember>("client_id = @0", player.SteamId)) if (_permissionsManager.Db.Exists<GroupMember>("client_id = @0", player.SteamId))
return; return;
var defaultGroup = _permissionsManager.GetGroup(_config.DefaultGroupName) ?? throw new ArgumentException("Default group does not exist or name was supplied incorrectly");
var groupMember = new GroupMember var groupMember = new GroupMember
{ {
Name = player.Name, Name = player.Name,
ClientId = player.SteamId.ToString(), ClientId = player.SteamId.ToString(),
GroupUid = 0 GroupUid = defaultGroup.Uid
}; };
_permissionsManager.Db.Insert(groupMember); _permissionsManager.Db.Insert(groupMember);

View File

@@ -21,7 +21,7 @@ public class Plugin : TorchPluginBase, IWpfPlugin
_config = new(Path.Combine(StoragePath, "LightPerms.cfg")); _config = new(Path.Combine(StoragePath, "LightPerms.cfg"));
Torch.Managers.AddManager(DbManager.Static); Torch.Managers.AddManager(DbManager.Static);
Torch.Managers.AddManager(new PermissionsManager(Torch)); Torch.Managers.AddManager(new PermissionsManager(Torch));
Torch.Managers.GetManager<ITorchSessionManager>().AddFactory(s => new MultiplayerMembersManager(s.Torch)); Torch.Managers.GetManager<ITorchSessionManager>().AddFactory(s => new MultiplayerMembersManager(s.Torch, _config.Data));
} }
public UserControl GetControl() => new PropertyGrid public UserControl GetControl() => new PropertyGrid