diff --git a/AutoShutdown/AutoShutdown.csproj b/AutoShutdown/AutoShutdown.csproj index 72fadbb..dfffaf5 100644 --- a/AutoShutdown/AutoShutdown.csproj +++ b/AutoShutdown/AutoShutdown.csproj @@ -57,7 +57,7 @@ - + diff --git a/AutoShutdown/Plogon.cs b/AutoShutdown/Plogon.cs index efdacee..0effa1c 100644 --- a/AutoShutdown/Plogon.cs +++ b/AutoShutdown/Plogon.cs @@ -1,9 +1,12 @@ using System; +using System.Diagnostics; using System.Reflection; +using System.Windows.Forms; using AutoRetainerAPI; using Dalamud.Plugin; using Dalamud.Plugin.Services; using ECommons; +using FFXIVClientStructs.FFXIV.Client.System.Framework; using LLib; namespace AutoShutdown; @@ -15,7 +18,8 @@ public class Plogon : IDalamudPlugin private readonly IPluginLog _pluginLog; private readonly IClientState _clientState; - public Plogon(DalamudPluginInterface pluginInterface, IFramework framework, IPluginLog pluginLog, IClientState clientState) + public Plogon(DalamudPluginInterface pluginInterface, IFramework framework, IPluginLog pluginLog, + IClientState clientState) { ECommonsMain.Init(pluginInterface, this); _autoRetainerApi = new AutoRetainerApi(); @@ -23,13 +27,13 @@ public class Plogon : IDalamudPlugin _pluginLog = pluginLog; _clientState = clientState; - _clientState.Login += SetupShutdown; + _clientState.Logout += SetupShutdown; - framework.RunOnTick(SetupShutdown, TimeSpan.FromSeconds(5)); + framework.RunOnTick(() => SetupShutdown(), TimeSpan.FromSeconds(10)); } private long StartedAt { get; } = Environment.TickCount64; - private long ShutdownAt => StartedAt + TimeSpan.FromDays(2).Ticks; + private long ShutdownAt => StartedAt + (long)TimeSpan.FromDays(2).TotalMilliseconds; private void SetupShutdown() { @@ -43,20 +47,25 @@ public class Plogon : IDalamudPlugin var currentShutdownAt = (long?)shutdownAt.GetValue(null) ?? 0; if (currentShutdownAt == 0) { - _pluginLog.Information($"Setting shutdown date to {new DateTime(ShutdownAt)}"); + _pluginLog.Information( + $"Setting shutdown date to {new DateTime(TimeSpan.FromMilliseconds(ShutdownAt).Ticks)}"); shutdownAt.SetValue(null, ShutdownAt); - forceShutdownAt.SetValue(null, ShutdownAt + TimeSpan.FromMinutes(10).Ticks); + forceShutdownAt.SetValue(null, ShutdownAt + (long)TimeSpan.FromMinutes(10).TotalMilliseconds); } else { - _pluginLog.Information($"Shutdown is already set to {new DateTime(currentShutdownAt)}"); + _pluginLog.Information( + $"Shutdown is already set to {new DateTime(TimeSpan.FromMilliseconds(currentShutdownAt).Ticks)}"); } } + + // move to background using alt+esc + SendKeys.SendWait("%({esc})"); } public void Dispose() { - _clientState.Login -= SetupShutdown; + _clientState.Logout -= SetupShutdown; _reflector.Dispose(); _autoRetainerApi.Dispose(); ECommonsMain.Dispose();