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.Views;
namespace LightPerms;
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
{
private readonly Config _config;
[Dependency]
private readonly IPermissionsManager _permissionsManager = null!;
[Dependency]
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()
@@ -24,12 +27,14 @@ public class MultiplayerMembersManager : Manager
{
if (_permissionsManager.Db.Exists<GroupMember>("client_id = @0", player.SteamId))
return;
var defaultGroup = _permissionsManager.GetGroup(_config.DefaultGroupName) ?? throw new ArgumentException("Default group does not exist or name was supplied incorrectly");
var groupMember = new GroupMember
{
Name = player.Name,
ClientId = player.SteamId.ToString(),
GroupUid = 0
GroupUid = defaultGroup.Uid
};
_permissionsManager.Db.Insert(groupMember);

View File

@@ -21,7 +21,7 @@ public class Plugin : TorchPluginBase, IWpfPlugin
_config = new(Path.Combine(StoragePath, "LightPerms.cfg"));
Torch.Managers.AddManager(DbManager.Static);
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