fix default group id
This commit is contained in:
@@ -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";
|
||||
}
|
||||
|
@@ -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()
|
||||
@@ -25,11 +28,13 @@ 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);
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user