Show champs ingame
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace LeagueAPI.Utils;
|
||||
|
||||
public class ProcessWatcher : IDisposable
|
||||
{
|
||||
private bool _isDisposed;
|
||||
private Timer _timer;
|
||||
|
||||
public bool IsGameRunning { get; private set; } = false;
|
||||
|
||||
public event EventHandler? LeagueOfLegendsExeFound;
|
||||
|
||||
public TimeSpan Interval
|
||||
{
|
||||
get => field;
|
||||
set
|
||||
{
|
||||
if (field != value)
|
||||
{
|
||||
field = value;
|
||||
_timer?.Change(TimeSpan.Zero, value);
|
||||
}
|
||||
}
|
||||
} = TimeSpan.FromSeconds(10);
|
||||
|
||||
public ProcessWatcher()
|
||||
{
|
||||
_timer = new(OnTimerTick, null, TimeSpan.Zero, Interval);
|
||||
}
|
||||
|
||||
private void OnTimerTick(object? state)
|
||||
{
|
||||
if (Process.GetProcessesByName("League of Legends").Length != 0)
|
||||
{
|
||||
if (!IsGameRunning)
|
||||
{
|
||||
LeagueOfLegendsExeFound?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
IsGameRunning = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
IsGameRunning = false;
|
||||
}
|
||||
}
|
||||
|
||||
#region IDisposable
|
||||
protected virtual void Dispose(bool disposing)
|
||||
{
|
||||
if (!_isDisposed)
|
||||
{
|
||||
if (disposing)
|
||||
{
|
||||
_timer?.Dispose();
|
||||
}
|
||||
|
||||
_isDisposed = true;
|
||||
}
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
// Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
|
||||
Dispose(disposing: true);
|
||||
GC.SuppressFinalize(this);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user