Skip to content
This repository was archived by the owner on Jan 3, 2026. It is now read-only.

Commit 13f6560

Browse files
authored
Merge pull request #4 from devRael1/dev
2.2.0
2 parents 98e28da + d0a4407 commit 13f6560

File tree

18 files changed

+180
-261
lines changed

18 files changed

+180
-261
lines changed

Program.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33
using Loly.src.Menus;
44
using Loly.src.Menus.Core;
55
using Loly.src.Tasks;
6+
using Loly.src.Tools;
67
using Loly.src.Variables;
8+
using Loly.src.Variables.Enums;
79

810
namespace Loly;
911

1012
internal class Program
1113
{
1214
private static void Main()
1315
{
16+
AppDomain.CurrentDomain.UnhandledException += UnhandledException;
17+
1418
Settings.SetDefaultSettings();
1519
Settings.CreateOrUpdateSettings();
1620

@@ -29,4 +33,9 @@ private static void Main()
2933
Interface.ShowArt();
3034
MainMenu.StartMenu();
3135
}
36+
37+
private static void UnhandledException(object sender, UnhandledExceptionEventArgs e)
38+
{
39+
Utils.LogNewError("Unhandled exception", LogModule.Loly, (Exception)e.ExceptionObject);
40+
}
3241
}

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
A set of several small tools for League Of Legends.
55

6-
### Works with the latest `14.4` update of League of Legends ([Patch Notes : 14.5](https://na.leagueoflegends.com/en-us/news/game-updates/patch-14-5-notes/))
6+
### Works with the latest `14.5` update of League of Legends ([Patch Notes : 14.5](https://na.leagueoflegends.com/en-us/news/game-updates/patch-14-5-notes/))
77
![Loly - Tools](/Ressources/mainMenu.png)
88

99
## `❗ Usage`
@@ -28,6 +28,9 @@ No need to install this if you have a more recent version installed.
2828
More features coming soon...
2929

3030
## `📷 Screenshots`
31+
<details>
32+
<summary>Click here to see all screenshots...</summary>
33+
3134
### Updater Menu
3235
<details>
3336
<summary>See screenshot...</summary>
@@ -64,6 +67,8 @@ More features coming soon...
6467
<img src="/Ressources/creditsMenu.png" alt="devRael1">
6568
</details>
6669

70+
</details>
71+
6772
## `❓ Bugs report / Suggestions`
6873
If you want to report a bug or suggest a feature, you can open an issue [here](https://github.com/devRael1/LolyTools/issues) or contact me on Discord.<br>
6974
My Discord: `1043813027205619804`

Version.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public static class Version
1111
public static string FullVersionNoStage => $"{Major}.{Minor}.{Hotfix}";
1212

1313
private static int Major => 2;
14-
private static int Minor => 1;
14+
private static int Minor => 2;
1515
private static int Hotfix => 0;
1616
}
1717
}

src/Logs/Logger.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,10 @@ private static void ExecuteLogRequest(IRequest valueOfRequest)
179179
{
180180
if (!string.IsNullOrWhiteSpace(request.Method) || !string.IsNullOrWhiteSpace(request.Url))
181181
{
182-
contentFile.Append($"Request to API - Endpoint: {request.Url} - Method: {request.Method}");
182+
contentFile.Append($"Request to API > Endpoint: {request.Url} - Method: {request.Method}");
183183
if (!string.IsNullOrWhiteSpace(request.Body))
184184
{
185-
contentFile.Append($"- Payload: {request.Body}");
185+
contentFile.Append($" - Payload: {request.Body}");
186186
}
187187
}
188188
}
@@ -191,10 +191,10 @@ private static void ExecuteLogRequest(IRequest valueOfRequest)
191191
{
192192
if (!string.IsNullOrWhiteSpace(response.Method))
193193
{
194-
contentFile.Append($"Response from API - Status: {response.StatusCode} - Method: {response.Method}");
194+
contentFile.Append($"Response from API > Endpoint: {response.Url} - Status: {response.StatusCode} - Method: {response.Method}");
195195
if (response.Data != null)
196196
{
197-
contentFile.Append($"- Response: {response.Data[1]}");
197+
contentFile.Append($" - Response: {response.Data[1]}");
198198
}
199199
}
200200
}

src/Tasks/Scheduled/AnalyzeSessionTask.cs

Lines changed: 21 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -20,79 +20,72 @@ public static void AnalyzeSession()
2020
string[] gameSession = Requests.ClientRequest("GET", "lol-gameflow/v1/gameflow-phase", true);
2121
if (gameSession[0] == "200")
2222
{
23-
string phase = gameSession[1].Replace("\\", "").Replace("\"", "");
24-
if (Global.Session != phase)
25-
{
26-
Global.Session = phase;
27-
}
28-
23+
SessionPhase phase = (SessionPhase)Enum.Parse(typeof(SessionPhase), gameSession[1].Replace("\\", "").Replace("\"", ""));
24+
if (Global.Session != phase) Global.Session = phase;
2925
HandlePhaseLogic(phase);
3026
}
3127
}
3228
}
3329

34-
private static void HandlePhaseLogic(string phase)
30+
private static void HandlePhaseLogic(SessionPhase phase)
3531
{
3632
switch (phase)
3733
{
38-
case "Lobby":
34+
case SessionPhase.Lobby:
3935
Global.FetchedPlayers = false;
4036
Global.AcceptedCurrentMatch = false;
41-
Global.ChampSelectInProgress = false;
4237
Thread.Sleep(TimeSpan.FromSeconds(5));
4338
break;
44-
case "Matchmaking":
39+
case SessionPhase.Matchmaking:
4540
Global.FetchedPlayers = false;
46-
Global.ChampSelectInProgress = false;
41+
Global.AcceptedCurrentMatch = false;
4742
Thread.Sleep(TimeSpan.FromSeconds(5));
4843
break;
49-
case "ReadyCheck":
44+
case SessionPhase.ReadyCheck:
5045
HandleReadyCheckPhase();
46+
Thread.Sleep(TimeSpan.FromSeconds(1));
5147
break;
52-
case "ChampSelect":
48+
case SessionPhase.ChampSelect:
5349
HandleChampSelectPhase();
5450
Thread.Sleep(TimeSpan.FromSeconds(5));
5551
break;
56-
case "InProgress":
52+
case SessionPhase.InProgress:
5753
Thread.Sleep(TimeSpan.FromSeconds(10));
5854
break;
59-
case "WaitingForStats":
55+
case SessionPhase.WaitingForStats:
6056
Thread.Sleep(TimeSpan.FromSeconds(15));
6157
break;
62-
case "PreEndOfGame":
58+
case SessionPhase.PreEndOfGame:
6359
Thread.Sleep(TimeSpan.FromSeconds(10));
6460
break;
65-
case "EndOfGame":
61+
case SessionPhase.EndOfGame:
6662
Thread.Sleep(TimeSpan.FromSeconds(15));
6763
break;
68-
case "None":
69-
Global.ChampSelectInProgress = false;
64+
case SessionPhase.None:
7065
Global.FetchedPlayers = false;
66+
Global.AcceptedCurrentMatch = false;
7167
Thread.Sleep(TimeSpan.FromSeconds(5));
7268
break;
7369
default:
74-
Global.ChampSelectInProgress = false;
7570
Global.FetchedPlayers = false;
71+
Global.AcceptedCurrentMatch = false;
7672
Thread.Sleep(TimeSpan.FromSeconds(10));
7773
break;
7874
}
7975

80-
if (phase != "ChampSelect")
81-
{
82-
Global.LastChatRoom = "";
83-
}
76+
if (phase != SessionPhase.ChampSelect) Global.LastChatRoom = "";
8477
}
8578

8679
private static void HandleReadyCheckPhase()
8780
{
8881
Global.FetchedPlayers = false;
89-
Global.ChampSelectInProgress = false;
9082

9183
if (!Settings.AutoAccept)
9284
{
9385
Thread.Sleep(TimeSpan.FromSeconds(5));
9486
return;
9587
}
88+
9689
AutoAccept.AutoAcceptQueue();
9790
}
9891

@@ -101,24 +94,9 @@ private static void HandleChampSelectPhase()
10194
// TODO: Create the detection of dodge champ select system
10295
Global.AcceptedCurrentMatch = false;
10396

104-
if (Settings.AutoAcceptOnce)
105-
{
106-
Settings.AutoAcceptOnce = false;
107-
Settings.AutoAccept = false;
108-
}
109-
110-
if (Settings.LobbyRevealer && !Global.FetchedPlayers)
111-
{
112-
CreateTask(LobbyRevealer.GetLobbyRevealing, $"LobbyRevealing the current lobby", LogModule.Loly);
113-
}
114-
115-
if (Settings.AutoChat || Settings.PicknBan)
116-
{
117-
CreateTask(ChampSelectSession.HandleChampSelect, $"ChampSelect session analyze", LogModule.Loly);
118-
}
119-
120-
Thread.Sleep(TimeSpan.FromSeconds(2));
121-
Global.ChampSelectInProgress = true;
97+
if (Settings.AutoAccept && Settings.AutoAcceptOnce) Settings.AutoAccept = false;
98+
if (Settings.LobbyRevealer && !Global.FetchedPlayers) CreateBackgroundTask(LobbyRevealer.GetLobbyRevealing, $"LobbyRevealing the current lobby", LogModule.Loly);
99+
if (Settings.AutoChat || Settings.PicknBan) ChampSelectSession.HandleChampSelect();
122100
}
123101
}
124102
}

src/Tasks/Scheduled/LeagueClientTask.cs

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,19 @@ public static void LolClientTask()
2222
Global.IsLeagueOpen = true;
2323

2424
Process client = Process.GetProcessesByName("LeagueClientUx").FirstOrDefault();
25-
if (Global.AuthClient.Count == 0 && Global.AuthRiot.Count == 0)
26-
{
27-
GetLeagueAuth();
28-
}
29-
30-
LoadSummonerId(false);
25+
if (Global.AuthClient.Count == 0 && Global.AuthRiot.Count == 0) GetLeagueAuth();
26+
if (Global.SummonerLogged.SummonerId == null) LoadSummonerId();
3127

3228
if (Global.Region == "")
3329
{
30+
Logger.Info(LogModule.Loly, "Fetching region of your League Of Legends Client");
3431
string response = Requests.WaitSuccessClientRequest("GET", "/riotclient/region-locale", true)[1];
3532
PlayerRegion regionSplit = JsonConvert.DeserializeObject<PlayerRegion>(response);
3633
Global.Region = regionSplit.Region.ToLower();
34+
Logger.Info(LogModule.Loly, $"Region fetched successfully : {Global.Region.ToUpper()}");
3735
}
3836

39-
if (!_lcuPid.Equals(client.Id))
40-
{
41-
_lcuPid = client.Id;
42-
}
37+
if (!_lcuPid.Equals(client.Id)) _lcuPid = client.Id;
4338
}
4439
else
4540
{
@@ -95,23 +90,15 @@ private static string Cmd(string gamename)
9590
foreach (ManagementBaseObject managementBaseObject in mngmtClass.GetInstances())
9691
{
9792
ManagementObject o = (ManagementObject)managementBaseObject;
98-
if (o["Name"].Equals(gamename))
99-
{
100-
commandline = "[" + o["CommandLine"] + "]";
101-
}
93+
if (o["Name"].Equals(gamename)) commandline = "[" + o["CommandLine"] + "]";
10294
}
10395

10496
return commandline;
10597
}
10698

107-
private static void LoadSummonerId(bool force = false)
99+
private static void LoadSummonerId()
108100
{
109-
if (Global.SummonerLogged?.SummonerId != null && !force)
110-
{
111-
return;
112-
}
113-
114-
Logger.Info(LogModule.Loly, "Getting your Summoner ID");
101+
Logger.Info(LogModule.Loly, "Fetching your Summoner ID");
115102

116103
string[] currentSummoner = Requests.WaitSuccessClientRequest("GET", "lol-summoner/v1/current-summoner", true);
117104
CurrentSummoner currentSum = JsonConvert.DeserializeObject<CurrentSummoner>(currentSummoner[1]);
@@ -124,7 +111,7 @@ private static void LoadSummonerId(bool force = false)
124111
Global.SummonerLogged.AccountId = currentSum.AccountId;
125112
Global.SummonerLogged.Puuid = currentSum.Puuid;
126113

127-
Logger.Info(LogModule.Loly, $"Summoner ID loaded : {Global.SummonerLogged.SummonerId}");
114+
Logger.Info(LogModule.Loly, $"Logged Summoner ID loaded : {Global.SummonerLogged.SummonerId}");
128115
}
129116
}
130117
}

src/Tasks/ScheduledTask.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public void Start()
3535
{
3636
if (runNow)
3737
{
38-
Utils.CreateTask(taskAction, $"Task [{taskName}]", LogModule.Tasks);
38+
Utils.CreateBackgroundTask(taskAction, $"Task [{taskName}]", LogModule.Tasks);
3939
}
4040

4141
if (!infinite)
@@ -52,7 +52,7 @@ public void Stop()
5252

5353
private void TimerElapsed(object sender, ElapsedEventArgs e)
5454
{
55-
Utils.CreateTask(taskAction, $"Task [{taskName}]", LogModule.Tasks);
55+
Utils.CreateBackgroundTask(taskAction, $"Task [{taskName}]", LogModule.Tasks);
5656
}
5757
}
5858
}

src/Tasks/TaskCore.cs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,17 @@ public TaskCore()
1010
{
1111
_scheduledTasks.Add(new ScheduledTask(LeagueClientTask.LolClientTask, "LolClientTask", TimeSpan.FromSeconds(5), true, false));
1212
_scheduledTasks.Add(new ScheduledTask(AnalyzeSessionTask.AnalyzeSession, "AnalyzeSession", TimeSpan.FromMinutes(1), true, true));
13-
_scheduledTasks.Add(new ScheduledTask(ClearLogsFilesTask.RunClearLogsFiles, "RunClearLogsFiles", TimeSpan.FromHours(2), true, false));
13+
_scheduledTasks.Add(new ScheduledTask(ClearLogsFilesTask.RunClearLogsFiles, "RunClearLogsFiles", TimeSpan.FromHours(1), true, false));
1414
}
1515

1616
public void StartAllTasks()
1717
{
18-
foreach (ScheduledTask scheduledTask in _scheduledTasks)
19-
{
20-
scheduledTask.Start();
21-
}
18+
foreach (ScheduledTask scheduledTask in _scheduledTasks) scheduledTask.Start();
2219
}
2320

2421
public void StopAllTasks()
2522
{
26-
foreach (ScheduledTask scheduledTask in _scheduledTasks)
27-
{
28-
scheduledTask.Stop();
29-
}
23+
foreach (ScheduledTask scheduledTask in _scheduledTasks) scheduledTask.Stop();
3024
}
3125
}
3226
}

src/Tools/AutoAccept.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,17 @@ public class AutoAccept
99
{
1010
public static void AutoAcceptQueue()
1111
{
12+
if (Global.AcceptedCurrentMatch) return;
13+
1214
string[] response = ClientRequest("POST", "lol-matchmaking/v1/ready-check/accept", true);
13-
if (response[0] != "200")
15+
if (response[0] != "204")
1416
{
15-
Logger.Info(LogModule.AutoAccept, "Failed to auto accept the current match");
16-
Logger.Info(LogModule.AutoAccept, "Check logs to get more informations.");
17+
Logger.Warn(LogModule.AutoAccept, "Failed to auto accept the current match");
18+
Logger.Warn(LogModule.AutoAccept, "Check Requests logs to get more informations.");
1719
return;
1820
}
1921

20-
if (!Global.AcceptedCurrentMatch)
21-
{
22-
Logger.Info(LogModule.AutoAccept, "The current match has been auto accepted");
23-
}
24-
22+
Logger.Info(LogModule.AutoAccept, "The current match has been auto accepted");
2523
Global.AcceptedCurrentMatch = true;
2624
}
2725
}

src/Tools/AutoChat.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class AutoChat
1111

1212
public static void HandleChampSelectAutoChat()
1313
{
14-
Logger.Info(LogModule.AutoChat, "Getting Chat & Summoner ID");
14+
Logger.Info(LogModule.AutoChat, "Fetching Chat information & Summoner ID");
1515
string[] myChatProfile = Requests.ClientRequest("GET", "lol-chat/v1/me", true);
1616
ChatMe chatProfileJson = JsonConvert.DeserializeObject<ChatMe>(myChatProfile[1]);
1717
string currentChatId = chatProfileJson.Id;
@@ -38,7 +38,7 @@ public static void HandleChampSelectAutoChat()
3838
count++;
3939
}
4040

41-
Thread.Sleep(attempts * 200);
41+
Thread.Sleep(attempts * 100);
4242
}
4343
}
4444

0 commit comments

Comments
 (0)