Skip to content

Commit dc6e1fe

Browse files
committed
Version 5.0.1
1 parent 9c119eb commit dc6e1fe

File tree

90 files changed

+1991
-2117
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1991
-2117
lines changed

BeatSaberPlus.sln

Lines changed: 3 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
Microsoft Visual Studio Solution File, Format Version 12.00
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
23
# Visual Studio Version 17
34
VisualStudioVersion = 17.1.32407.343
5+
MinimumVisualStudioVersion = 10.0.40219.1
46
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus", "BeatSaberPlus\BeatSaberPlus.csproj", "{84972BAC-4FAF-4DA8-92ED-E3A735AF0E92}"
57
EndProject
6-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PrivateModules", "PrivateModules", "{5BE117BB-81EE-4B1E-B3B7-888F97368CF3}"
7-
EndProject
88
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_ChatIntegrations", "Modules\BeatSaberPlus_ChatIntegrations\BeatSaberPlus_ChatIntegrations.csproj", "{90ACB2CE-005E-4FB1-9E4C-AF227E165440}"
99
EndProject
1010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_SongChartVisualizer", "Modules\BeatSaberPlus_SongChartVisualizer\BeatSaberPlus_SongChartVisualizer.csproj", "{07E42F20-AE5B-4BDA-8260-970191C61EB3}"
@@ -31,15 +31,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_MenuMusic", "
3131
{84972BAC-4FAF-4DA8-92ED-E3A735AF0E92} = {84972BAC-4FAF-4DA8-92ED-E3A735AF0E92}
3232
EndProjectSection
3333
EndProject
34-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_CustomEdition", "PrivateModules\BeatSaberPlus_CustomEdition\BeatSaberPlus_CustomEdition.csproj", "{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}"
35-
ProjectSection(ProjectDependencies) = postProject
36-
{84972BAC-4FAF-4DA8-92ED-E3A735AF0E92} = {84972BAC-4FAF-4DA8-92ED-E3A735AF0E92}
37-
EndProjectSection
38-
EndProject
39-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Plugins", "Plugins", "{4A92F157-D042-40C5-8B33-387CFD9BB809}"
40-
EndProject
41-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_VoiceAttack", "Plugins\BeatSaberPlus_VoiceAttack\BeatSaberPlus_VoiceAttack.csproj", "{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}"
42-
EndProject
4334
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{438B64F8-5A95-46D9-BEA7-A5D8E939A6B6}"
4435
EndProject
4536
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_ModuleTemplate", "Samples\BeatSaberPlus_ModuleTemplate\BeatSaberPlus_ModuleTemplate.csproj", "{9F8AE720-7BB7-4AE2-8737-78618F85FB8C}"
@@ -59,14 +50,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_SongOverlay",
5950
{84972BAC-4FAF-4DA8-92ED-E3A735AF0E92} = {84972BAC-4FAF-4DA8-92ED-E3A735AF0E92}
6051
EndProjectSection
6152
EndProject
62-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_ChatIntegrationsActions", "PrivateModules\BeatSaberPlus_ChatIntegrationsActions\BeatSaberPlus_ChatIntegrationsActions.csproj", "{5C0D6BAA-0876-40B4-9333-3A4645CCD193}"
63-
EndProject
64-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}"
65-
EndProject
66-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlusYoutube", "PrivateModules\BeatSaberPlusYoutube\BeatSaberPlusYoutube.csproj", "{15BAB2B0-1CED-4F42-A96E-7E94686082F1}"
67-
EndProject
68-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BeatSaberPlus_Multiplayer", "PrivateModules\BeatSaberPlus_Multiplayer\BeatSaberPlus_Multiplayer.csproj", "{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}"
69-
EndProject
7053
Global
7154
GlobalSection(SolutionConfigurationPlatforms) = preSolution
7255
Debug|Any CPU = Debug|Any CPU
@@ -131,22 +114,6 @@ Global
131114
{BFE64437-FBB4-4002-863B-42DAFB451F86}.Release|Any CPU.Build.0 = Release|Any CPU
132115
{BFE64437-FBB4-4002-863B-42DAFB451F86}.Release|x64.ActiveCfg = Release|Any CPU
133116
{BFE64437-FBB4-4002-863B-42DAFB451F86}.Release|x64.Build.0 = Release|Any CPU
134-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
135-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
136-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Debug|x64.ActiveCfg = Debug|Any CPU
137-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Debug|x64.Build.0 = Debug|Any CPU
138-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
139-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Release|Any CPU.Build.0 = Release|Any CPU
140-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Release|x64.ActiveCfg = Release|Any CPU
141-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B}.Release|x64.Build.0 = Release|Any CPU
142-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
143-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
144-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Debug|x64.ActiveCfg = Debug|Any CPU
145-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Debug|x64.Build.0 = Debug|Any CPU
146-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
147-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Release|Any CPU.Build.0 = Release|Any CPU
148-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Release|x64.ActiveCfg = Release|Any CPU
149-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A}.Release|x64.Build.0 = Release|Any CPU
150117
{9F8AE720-7BB7-4AE2-8737-78618F85FB8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
151118
{9F8AE720-7BB7-4AE2-8737-78618F85FB8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
152119
{9F8AE720-7BB7-4AE2-8737-78618F85FB8C}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -179,38 +146,6 @@ Global
179146
{193F6510-339A-472A-B5E2-9739A3567384}.Release|Any CPU.Build.0 = Release|Any CPU
180147
{193F6510-339A-472A-B5E2-9739A3567384}.Release|x64.ActiveCfg = Release|Any CPU
181148
{193F6510-339A-472A-B5E2-9739A3567384}.Release|x64.Build.0 = Release|Any CPU
182-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
183-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Debug|Any CPU.Build.0 = Debug|Any CPU
184-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Debug|x64.ActiveCfg = Debug|Any CPU
185-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Debug|x64.Build.0 = Debug|Any CPU
186-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Release|Any CPU.ActiveCfg = Release|Any CPU
187-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Release|Any CPU.Build.0 = Release|Any CPU
188-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Release|x64.ActiveCfg = Release|Any CPU
189-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193}.Release|x64.Build.0 = Release|Any CPU
190-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
191-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
192-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Debug|x64.ActiveCfg = Debug|Any CPU
193-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Debug|x64.Build.0 = Debug|Any CPU
194-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
195-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Release|Any CPU.Build.0 = Release|Any CPU
196-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Release|x64.ActiveCfg = Release|Any CPU
197-
{1C4EE81D-CE76-4A55-BD2A-2CABF42B28B9}.Release|x64.Build.0 = Release|Any CPU
198-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
199-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
200-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Debug|x64.ActiveCfg = Debug|Any CPU
201-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Debug|x64.Build.0 = Debug|Any CPU
202-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
203-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Release|Any CPU.Build.0 = Release|Any CPU
204-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Release|x64.ActiveCfg = Release|Any CPU
205-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1}.Release|x64.Build.0 = Release|Any CPU
206-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
207-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Debug|Any CPU.Build.0 = Debug|Any CPU
208-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Debug|x64.ActiveCfg = Debug|Any CPU
209-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Debug|x64.Build.0 = Debug|Any CPU
210-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Release|Any CPU.ActiveCfg = Release|Any CPU
211-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Release|Any CPU.Build.0 = Release|Any CPU
212-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Release|x64.ActiveCfg = Release|Any CPU
213-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D}.Release|x64.Build.0 = Release|Any CPU
214149
EndGlobalSection
215150
GlobalSection(SolutionProperties) = preSolution
216151
HideSolutionNode = FALSE
@@ -222,15 +157,10 @@ Global
222157
{DDBC9483-C077-4485-A720-D7DA3A76CA34} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
223158
{D529EDCC-39F3-47B7-8CD9-B740F8BC6495} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
224159
{BFE64437-FBB4-4002-863B-42DAFB451F86} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
225-
{93F246B8-DA82-4581-B485-9AF2AC2DBF7B} = {5BE117BB-81EE-4B1E-B3B7-888F97368CF3}
226-
{C661FC90-C439-46CB-8876-3FFB0B1D0E3A} = {4A92F157-D042-40C5-8B33-387CFD9BB809}
227160
{9F8AE720-7BB7-4AE2-8737-78618F85FB8C} = {438B64F8-5A95-46D9-BEA7-A5D8E939A6B6}
228161
{2DE1608F-407F-4B11-BE8A-D4CCDCD910A1} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
229162
{C1F6F190-4A2D-4C28-917B-9D2704E098F9} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
230163
{193F6510-339A-472A-B5E2-9739A3567384} = {B5DB9381-A080-4EE6-B5D4-01C4E0251F49}
231-
{5C0D6BAA-0876-40B4-9333-3A4645CCD193} = {5BE117BB-81EE-4B1E-B3B7-888F97368CF3}
232-
{15BAB2B0-1CED-4F42-A96E-7E94686082F1} = {5BE117BB-81EE-4B1E-B3B7-888F97368CF3}
233-
{F8B48A78-FB30-4CB2-8507-ED88878F5D3D} = {5BE117BB-81EE-4B1E-B3B7-888F97368CF3}
234164
EndGlobalSection
235165
GlobalSection(ExtensibilityGlobals) = postSolution
236166
SolutionGuid = {E7AEA519-703A-47D9-8C34-ADA6DEAF8953}

BeatSaberPlus/BeatSaberPlus.csproj

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@
238238
<Compile Include="CP_SDK\Network\APIClient.cs" />
239239
<Compile Include="CP_SDK\Network\APIResponse.cs" />
240240
<Compile Include="CP_SDK\Network\RateLimitInfo.cs" />
241+
<Compile Include="CP_SDK\Network\WebClient_Unity.cs" />
242+
<Compile Include="CP_SDK\Network\WebResponse.cs" />
241243
<Compile Include="CP_SDK\Network\websocket-sharp\ByteOrder.cs" />
242244
<Compile Include="CP_SDK\Network\websocket-sharp\CloseEventArgs.cs" />
243245
<Compile Include="CP_SDK\Network\websocket-sharp\CloseStatusCode.cs" />
@@ -317,6 +319,11 @@
317319
<Compile Include="CP_SDK\Network\websocket-sharp\WebSocketState.cs" />
318320
<Compile Include="CP_SDK\Network\WebSocketClient.cs" />
319321
<Compile Include="CP_SDK\OBS\OBSModSettings.cs" />
322+
<Compile Include="CP_SDK\Unity\Components\EnhancedImageParticleEmitter.cs" />
323+
<Compile Include="CP_SDK\Unity\Components\EnhancedImageParticleEmitterGroup.cs" />
324+
<Compile Include="CP_SDK\Unity\Components\EnhancedImageParticleEmitterManager.cs" />
325+
<Compile Include="CP_SDK\Unity\EnhancedImageParticleMaterialProvider.cs" />
326+
<Compile Include="CP_SDK\Unity\EnhancedImageParticleSystemProvider.cs" />
320327
<Compile Include="CP_SDK\Unity\Extensions\ColorU.cs" />
321328
<Compile Include="CP_SDK\Unity\FontManager.cs" />
322329
<Compile Include="CP_SDK\Unity\MTThreadInvoker.cs" />
@@ -482,7 +489,7 @@
482489
<Compile Include="SDK\UI\ViewController.cs" />
483490
<Compile Include="SDK\UI\ViewFlowCoordinator.cs" />
484491
<Compile Include="CP_SDK\Unity\EnhancedImage.cs" />
485-
<Compile Include="CP_SDK\Unity\GameObjectU.cs" />
492+
<Compile Include="CP_SDK\Unity\Extensions\GameObjectU.cs" />
486493
<Compile Include="CP_SDK\Unity\MTCoroutineStarter.cs" />
487494
<Compile Include="CP_SDK\Unity\MTMainThreadInvoker.cs" />
488495
<Compile Include="CP_SDK\Unity\SpriteU.cs" />
@@ -491,7 +498,6 @@
491498
<Compile Include="CP_SDK\Chat\ChatImageProvider.cs" />
492499
<Compile Include="Properties\AssemblyInfo.cs" />
493500
<Compile Include="CP_SDK\VoiceAttack\Service.cs" />
494-
<Compile Include="UI\ChangeLogView.cs" />
495501
<Compile Include="UI\InfoView.cs" />
496502
<Compile Include="UI\MainView.cs" />
497503
<Compile Include="UI\SettingsLeftView.cs" />
@@ -518,9 +524,6 @@
518524
<EmbeddedResource Include="UI\SettingsView.bsml">
519525
<DependentUpon>SettingsView.cs</DependentUpon>
520526
</EmbeddedResource>
521-
<EmbeddedResource Include="UI\ChangeLogView.bsml">
522-
<DependentUpon>ChangeLogView.cs</DependentUpon>
523-
</EmbeddedResource>
524527
<EmbeddedResource Include="UI\SettingsLeftView.bsml">
525528
<DependentUpon>SettingsLeftView.cs</DependentUpon>
526529
</EmbeddedResource>
@@ -538,10 +541,11 @@
538541
<EmbeddedResource Include="CP_SDK\Chat\Resources\index.html" />
539542
</ItemGroup>
540543
<ItemGroup>
541-
<EmbeddedResource Include="CP_SDK\libwebp.dll" />
542-
<EmbeddedResource Include="CP_SDK\libwebpdemux.dll" />
544+
<EmbeddedResource Include="CP_SDK\_Resources\libwebp.dll" />
545+
<EmbeddedResource Include="CP_SDK\_Resources\libwebpdemux.dll" />
543546
</ItemGroup>
544547
<ItemGroup>
548+
<EmbeddedResource Include="CP_SDK\_Resources\Heart.png" />
545549
<EmbeddedResource Include="CP_SDK\Chat\Services\Twitch\TwitchHTMLForm.html" />
546550
<EmbeddedResource Include="CP_SDK\Chat\Services\Twitch\TwitchHTML.html" />
547551
<EmbeddedResource Include="CP_SDK\Chat\Services\Twitch\TwitchJSValidate.js" />

BeatSaberPlus/CP_SDK/Chat/ChatImageProvider.cs

Lines changed: 12 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@ namespace CP_SDK.Chat
1111
/// </summary>
1212
public class ChatImageProvider
1313
{
14-
/// <summary>
15-
/// Animated gif byte pattern for fast lookup
16-
/// </summary>
17-
private static byte[] ANIMATED_GIF_PATTERN = new byte[] { 0x4E, 0x45, 0x54, 0x53, 0x43, 0x41, 0x50, 0x45, 0x32, 0x2E, 0x30 };
18-
/// <summary>
19-
/// WEBPV8 byte pattern
20-
/// </summary>
21-
private static byte[] WEBPVP8_PATTERN = new byte[] { 0x57, 0x45, 0x42, 0x50, 0x56, 0x50, 0x38 };
2214
/// <summary>
2315
/// Forced emote height
2416
/// </summary>
@@ -34,7 +26,7 @@ public class ChatImageProvider
3426
/// <summary>
3527
/// Network client
3628
/// </summary>
37-
private static Network.APIClient m_APIClient;
29+
private static Network.WebClient m_WebClient;
3830

3931
////////////////////////////////////////////////////////////////////////////
4032
////////////////////////////////////////////////////////////////////////////
@@ -91,7 +83,8 @@ public class ChatImageProvider
9183
internal static void Init()
9284
{
9385
m_CacheFolder = $"UserData/{ChatPlexSDK.ProductName}/Cache/Chat/";
94-
m_APIClient = new Network.APIClient("", TimeSpan.FromSeconds(10), false, false);
86+
m_WebClient = new Network.WebClient();
87+
m_WebClient.Timeout = 10;
9588

9689
try
9790
{
@@ -162,14 +155,10 @@ public static void TryCacheSingleImage(Interfaces.EChatResourceCategory p_Catego
162155

163156
LoadFromCacheOrDownload(p_URL, l_CacheID, (p_Bytes) =>
164157
{
165-
if (p_Animation == Animation.EAnimationType.AUTODETECT && p_Bytes != null && p_Bytes.Length > 0)
158+
if (m_CachedImageInfo.TryGetValue(p_ID, out var p_Info2))
166159
{
167-
if (p_Bytes.Length > 3 && p_Bytes[0] == 0x47 && ContainBytePattern(p_Bytes, ANIMATED_GIF_PATTERN))
168-
p_Animation = Animation.EAnimationType.GIF;
169-
else if (p_Bytes.Length > 16 && ContainBytePattern(p_Bytes, WEBPVP8_PATTERN))
170-
p_Animation = Animation.EAnimationType.WEBP;
171-
else
172-
p_Animation = Animation.EAnimationType.NONE;
160+
p_Finally?.Invoke(p_Info2);
161+
return;
173162
}
174163

175164
if (p_Animation != Animation.EAnimationType.NONE)
@@ -250,58 +239,29 @@ private static void DownloadContent(string p_URL, string p_CacheID, Action<byte[
250239
m_ActiveDownloads[p_URL] -= p_Finally;
251240
m_ActiveDownloads[p_URL] += p_Finally;
252241

253-
m_APIClient.DownloadAsyncOneShot(p_URL, System.Threading.CancellationToken.None).ContinueWith((p_Task) =>
242+
m_WebClient.DownloadAsync(p_URL, System.Threading.CancellationToken.None, (p_Result) =>
254243
{
255-
if (p_Task.IsCanceled || p_Task.Result == null)
244+
if (p_Result == null)
256245
{
257246
m_ActiveDownloads[p_URL]?.Invoke(null);
258247
m_ActiveDownloads.TryRemove(p_URL, out var _);
259248
return;
260249
}
261250

262-
var l_Data = p_Task.Result;
263-
if (m_CacheEnabled && l_Data != null && l_Data.Length > 0)
251+
if (m_CacheEnabled && p_Result != null && p_Result.Length > 0)
264252
{
265253
Unity.MTThreadInvoker.EnqueueOnThread(() =>
266254
{
267255
if (!Directory.Exists(m_CacheFolder))
268256
Directory.CreateDirectory(m_CacheFolder);
269257

270-
File.WriteAllBytes(m_CacheFolder + p_CacheID, l_Data);
258+
File.WriteAllBytes(m_CacheFolder + p_CacheID, p_Result);
271259
});
272260
}
273261

274-
m_ActiveDownloads[p_URL]?.Invoke(l_Data);
262+
m_ActiveDownloads[p_URL]?.Invoke(p_Result);
275263
m_ActiveDownloads.TryRemove(p_URL, out var _);
276-
}).ConfigureAwait(false);
277-
}
278-
279-
////////////////////////////////////////////////////////////////////////////
280-
////////////////////////////////////////////////////////////////////////////
281-
282-
/// <summary>
283-
/// Fast lookup for byte pattern
284-
/// </summary>
285-
/// <param name="p_Array">Input array</param>
286-
/// <param name="p_Pattern">Lookup pattern</param>
287-
/// <returns></returns>
288-
static bool ContainBytePattern(byte[] p_Array, byte[] p_Pattern)
289-
{
290-
var l_PatternPosition = 0;
291-
for (int l_I = 0; l_I < p_Array.Length; ++l_I)
292-
{
293-
if (p_Array[l_I] != p_Pattern[l_PatternPosition])
294-
{
295-
l_PatternPosition = 0;
296-
continue;
297-
}
298-
299-
l_PatternPosition++;
300-
if (l_PatternPosition == p_Pattern.Length)
301-
return true;
302-
}
303-
304-
return l_PatternPosition == p_Pattern.Length;
264+
});
305265
}
306266
}
307267
}

BeatSaberPlus/CP_SDK/Chat/Service.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,14 @@ public class Service
4343
/// Is service started
4444
/// </summary>
4545
private static bool m_Started = false;
46+
/// <summary>
47+
/// Loading emote count
48+
/// </summary>
49+
private static int m_LoadingEmotes = 0;
50+
/// <summary>
51+
/// Loaded emote count
52+
/// </summary>
53+
private static int m_LoadedEmotes = 0;
4654

4755
////////////////////////////////////////////////////////////////////////////
4856
////////////////////////////////////////////////////////////////////////////
@@ -132,6 +140,16 @@ public static void OpenWebConfigurator()
132140
{
133141
Process.Start($"http://localhost:{ChatModSettings.Instance.WebAppPort}");
134142
}
143+
/// <summary>
144+
/// Recache all the emotes
145+
/// </summary>
146+
public static void RecacheEmotes()
147+
{
148+
m_LoadingEmotes = 0;
149+
m_LoadedEmotes = 0;
150+
151+
Multiplexer.RecacheEmotes();
152+
}
135153

136154
////////////////////////////////////////////////////////////////////////////
137155
////////////////////////////////////////////////////////////////////////////
@@ -222,9 +240,6 @@ public static void BroadcastMessage(string p_Message)
222240
////////////////////////////////////////////////////////////////////////////
223241
////////////////////////////////////////////////////////////////////////////
224242

225-
static int m_LoadingEmotes = 0;
226-
static int m_LoadedEmotes = 0;
227-
228243
/// <summary>
229244
/// On channel resources received
230245
/// </summary>

0 commit comments

Comments
 (0)