36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using System.IO;
|
|
using NitroxModel.DataStructures.GameLogic;
|
|
using NitroxModel.Serialization;
|
|
using NitroxServer.ConsoleCommands.Abstract;
|
|
using NitroxServer.ConsoleCommands.Abstract.Type;
|
|
|
|
namespace NitroxServer.ConsoleCommands
|
|
{
|
|
internal class ChangeAdminPasswordCommand : Command
|
|
{
|
|
private readonly Server server;
|
|
private readonly SubnauticaServerConfig serverConfig;
|
|
|
|
public ChangeAdminPasswordCommand(Server server, SubnauticaServerConfig serverConfig) : base("changeadminpassword", Perms.ADMIN, "Changes admin password")
|
|
{
|
|
AddParameter(new TypeString("password", true, "The new admin password"));
|
|
|
|
this.server = server;
|
|
this.serverConfig = serverConfig;
|
|
}
|
|
|
|
protected override void Execute(CallArgs args)
|
|
{
|
|
string saveDir = Path.Combine(KeyValueStore.Instance.GetSavesFolderDir(), server.Name);
|
|
using (serverConfig.Update(saveDir))
|
|
{
|
|
string newPassword = args.Get(0);
|
|
serverConfig.AdminPassword = newPassword;
|
|
Log.InfoSensitive("Admin password changed to {password} by {playername}", newPassword, args.SenderName);
|
|
}
|
|
|
|
SendMessageToPlayer(args.Sender, "Admin password has been updated");
|
|
}
|
|
}
|
|
}
|