perfectionist-plugins 2.0.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +143 -121
- package/better-client.js +1093 -512
- package/hide-unowned-skins.js +130 -63
- package/package.json +36 -37
- package/perfectionist-utils.js +57 -4
- package/unlock-profile-skins.js +153 -67
- package/tools/betterclient-monitor.js +0 -269
package/README.md
CHANGED
|
@@ -1,121 +1,143 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# Perfectionism
|
|
4
|
-
|
|
5
|
-
**Small plugins that fix the annoying parts of League of Legends champ select.**
|
|
6
|
-
|
|
7
|
-
Built for [Pengu Loader](https://pengu.lol)
|
|
8
|
-
|
|
9
|
-

|
|
12
|
-
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<br>
|
|
16
|
-
|
|
17
|
-
## Plugins
|
|
18
|
-
|
|
19
|
-
<table>
|
|
20
|
-
<tr>
|
|
21
|
-
<th align="left">🛡️ Ban Blocker</th>
|
|
22
|
-
</tr>
|
|
23
|
-
<tr>
|
|
24
|
-
<td>
|
|
25
|
-
In champ select, every teammate except you gets a <b>BLOCK</b> button.
|
|
26
|
-
<br><br>
|
|
27
|
-
While a teammate is blocked, the plugin instantly prepicks the champion they are about to ban on your own pick turn. That way, their ban can never land on it.
|
|
28
|
-
</td>
|
|
29
|
-
</tr>
|
|
30
|
-
<tr>
|
|
31
|
-
<td> </td>
|
|
32
|
-
</tr>
|
|
33
|
-
<tr>
|
|
34
|
-
<th align="left">🎨 Hide Unowned Skins</th>
|
|
35
|
-
</tr>
|
|
36
|
-
<tr>
|
|
37
|
-
<td>
|
|
38
|
-
In champ select, the skin carousel only shows the skins you own for the champion you picked.
|
|
39
|
-
<br><br>
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
auto-open mystery loot (icons, ward skins), and auto-open chests with keys.
|
|
68
|
-
</td>
|
|
69
|
-
</tr>
|
|
70
|
-
<tr>
|
|
71
|
-
<td> </td>
|
|
72
|
-
</tr>
|
|
73
|
-
<tr>
|
|
74
|
-
<th align="left">🚀 BetterClient</th>
|
|
75
|
-
</tr>
|
|
76
|
-
<tr>
|
|
77
|
-
<td>
|
|
78
|
-
Debloats the client without changing how it looks or behaves: telemetry and analytics calls are dropped,
|
|
79
|
-
duplicate requests are merged, and immutable payloads (game-data assets and rune definitions) are cached
|
|
80
|
-
instead of re-downloaded and re-parsed every time a screen renders.
|
|
81
|
-
<br><br>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
has nothing left
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Perfectionism
|
|
4
|
+
|
|
5
|
+
**Small plugins that fix the annoying parts of League of Legends champ select.**
|
|
6
|
+
|
|
7
|
+
Built for [Pengu Loader](https://pengu.lol)
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+

|
|
11
|
+

|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<br>
|
|
16
|
+
|
|
17
|
+
## Plugins
|
|
18
|
+
|
|
19
|
+
<table>
|
|
20
|
+
<tr>
|
|
21
|
+
<th align="left">🛡️ Ban Blocker</th>
|
|
22
|
+
</tr>
|
|
23
|
+
<tr>
|
|
24
|
+
<td>
|
|
25
|
+
In champ select, every teammate except you gets a <b>BLOCK</b> button.
|
|
26
|
+
<br><br>
|
|
27
|
+
While a teammate is blocked, the plugin instantly prepicks the champion they are about to ban on your own pick turn. That way, their ban can never land on it.
|
|
28
|
+
</td>
|
|
29
|
+
</tr>
|
|
30
|
+
<tr>
|
|
31
|
+
<td> </td>
|
|
32
|
+
</tr>
|
|
33
|
+
<tr>
|
|
34
|
+
<th align="left">🎨 Hide Unowned Skins</th>
|
|
35
|
+
</tr>
|
|
36
|
+
<tr>
|
|
37
|
+
<td>
|
|
38
|
+
In champ select, the skin carousel only shows the skins you own for the champion you picked.
|
|
39
|
+
<br><br>
|
|
40
|
+
The list is filtered where the client reads it, so the carousel, the arrows and the dots all move through owned
|
|
41
|
+
skins only, and the ones that are left keep their normal spacing.
|
|
42
|
+
</td>
|
|
43
|
+
</tr>
|
|
44
|
+
<tr>
|
|
45
|
+
<td> </td>
|
|
46
|
+
</tr>
|
|
47
|
+
<tr>
|
|
48
|
+
<th align="left">🔓 Unlock Profile Skins</th>
|
|
49
|
+
</tr>
|
|
50
|
+
<tr>
|
|
51
|
+
<td>
|
|
52
|
+
In the <b>Set profile background</b> window, every skin shows as unlocked, even the event skins (Signature).
|
|
53
|
+
<br><br>
|
|
54
|
+
Browse the full list and pick any skin you like as your profile background.
|
|
55
|
+
</td>
|
|
56
|
+
</tr>
|
|
57
|
+
<tr>
|
|
58
|
+
<td> </td>
|
|
59
|
+
</tr>
|
|
60
|
+
<tr>
|
|
61
|
+
<th align="left">🎁 Auto Claimer</th>
|
|
62
|
+
</tr>
|
|
63
|
+
<tr>
|
|
64
|
+
<td>
|
|
65
|
+
Claims every reward for you the moment it becomes claimable — event tracks, missions and the TFT Battle Pass.
|
|
66
|
+
<br><br>
|
|
67
|
+
Three optional extras: auto-buy shop items Riot lists for 1 BE, auto-open mystery loot (icons, ward skins), and auto-open chests with keys.
|
|
68
|
+
</td>
|
|
69
|
+
</tr>
|
|
70
|
+
<tr>
|
|
71
|
+
<td> </td>
|
|
72
|
+
</tr>
|
|
73
|
+
<tr>
|
|
74
|
+
<th align="left">🚀 BetterClient</th>
|
|
75
|
+
</tr>
|
|
76
|
+
<tr>
|
|
77
|
+
<td>
|
|
78
|
+
Debloats the client without changing how it looks or behaves: telemetry and analytics calls are dropped,
|
|
79
|
+
duplicate requests are merged, and immutable payloads (game-data assets and rune definitions) are cached
|
|
80
|
+
instead of re-downloaded and re-parsed every time a screen renders.
|
|
81
|
+
<br><br>
|
|
82
|
+
Everything it does on the page runs in idle slices instead of blocking navigation: image decode marking is
|
|
83
|
+
batched, the client phase comes from the client's own events rather than a timer, and the in-game un-gate pass
|
|
84
|
+
reads the page once with a single query and backs off to one check every five seconds once it has nothing left
|
|
85
|
+
to unlock.
|
|
86
|
+
<br><br>
|
|
87
|
+
It also keeps the social panel, friend requests and settings usable while a game is running, and repairs the
|
|
88
|
+
champ-select data race after a client reload so the ban list is still populated.
|
|
89
|
+
<br><br>
|
|
90
|
+
For weaker machines there is one optional switch, <b>Performance mode</b>, which drops background blur,
|
|
91
|
+
decorative animation and looping background video. Leave it off and the client is pixel-identical.
|
|
92
|
+
<br><br>
|
|
93
|
+
<b>Diagnostics</b> is a separate opt-in switch, off by default. It keeps an in-memory tally of long tasks,
|
|
94
|
+
screen settle times, requests and heap samples and has a <b>Copy report</b> button. Nothing is sent over the
|
|
95
|
+
network and the report contains no account, summoner, token or LCU data.
|
|
96
|
+
</td>
|
|
97
|
+
</tr>
|
|
98
|
+
</table>
|
|
99
|
+
|
|
100
|
+
## Install
|
|
101
|
+
|
|
102
|
+
1. Download this repo.
|
|
103
|
+
2. Move the `Perfectionism` folder into your Pengu Loader `plugins` folder.
|
|
104
|
+
3. Restart the League Client.
|
|
105
|
+
|
|
106
|
+
### Test a local build without npm
|
|
107
|
+
|
|
108
|
+
Unzip `Perfectionism-folder-install.zip`, then move the `Perfectionism` folder it
|
|
109
|
+
contains into Pengu Loader's `plugins` folder and restart the client. That folder
|
|
110
|
+
carries the plugin files themselves and loads them locally, so no CDN version is
|
|
111
|
+
needed. Do not keep it next to the normal loader folder at the same time — Pengu
|
|
112
|
+
would load the suite twice.
|
|
113
|
+
|
|
114
|
+
That's it. The folder holds one tiny loader file. The plugins themselves come from the
|
|
115
|
+
[`perfectionist-plugins`](https://www.npmjs.com/package/perfectionist-plugins) npm package the
|
|
116
|
+
first time the client starts. Install, remove and toggle plugins in **Settings → Perfectionism**.
|
|
117
|
+
|
|
118
|
+
## Updates
|
|
119
|
+
|
|
120
|
+
Every time the client starts, the loader checks npm for a newer version and runs it. Publishing
|
|
121
|
+
a new version of the npm package **is** the update. If a new version appears while the client is
|
|
122
|
+
already open, the suite downloads it with a progress window and restarts the client at a safe
|
|
123
|
+
moment (never in the middle of a game). You never replace files by hand.
|
|
124
|
+
|
|
125
|
+
### Diagnostics (optional)
|
|
126
|
+
|
|
127
|
+
Open **Settings → Perfectionism → BetterClient**, enable **Diagnostics**, use the
|
|
128
|
+
client normally, then press **Copy report**. It records long tasks, screen settle
|
|
129
|
+
times, request counts and heap samples in memory only. It is off by default and
|
|
130
|
+
sends nothing over the network; the report has no account, summoner, token or LCU
|
|
131
|
+
data.
|
|
132
|
+
|
|
133
|
+
<br>
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
<div align="center">
|
|
138
|
+
|
|
139
|
+
Made by **Sr. King** 👑
|
|
140
|
+
|
|
141
|
+
If these helped you, a ⭐ on the repo is always nice.
|
|
142
|
+
|
|
143
|
+
</div>
|