Meloong-Git/PCL
Minecraft 启动器 Plain Craft Launcher(PCL)。
Visual Basic .NET★ 8,765+119 that day#5 on trending
D49.6/100
Duplication76
3.4% in vbnet, csharpDead coden/a
no JavaScript, TypeScript, Python or compiler-checked Rust filesComplexity33
83.8% The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
3.41%duplicated code · 1,500 of 44,014 lines
121clones in code
115code files of 127 scanned
2%duplicated over all files · 122 clones
Most complex files
- Plain Craft Launcher 2/Modules/Minecraft/ModLaunch.vb628 cx
- Plain Craft Launcher 2/Modules/Minecraft/ModMinecraft.vb625 cx
- Plain Craft Launcher 2/Pages/PageDownload/ModDownloadLib.vb505 cx
- Plain Craft Launcher 2/Modules/Base/ModNet.vb488 cx
- Plain Craft Launcher 2/FormMain.xaml.vb486 cx
- Plain Craft Launcher 2/Modules/Minecraft/ModCrash.vb482 cx
- Plain Craft Launcher 2/Pages/PageDownload/PageDownloadModify.vb365 cx
- Plain Craft Launcher 2/Pages/PageDownload/PageDownloadInstall.xaml.vb325 cx
- Plain Craft Launcher 2/Modules/Resource/ResourceProject.vb313 cx
- Plain Craft Launcher 2/Modules/Minecraft/ModModpack.vb264 cx
Dead code
Not measured: no JavaScript, TypeScript, Python or compiler-checked Rust files.
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 10 lines in 4 placesvbnet145 tokensPlain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb:40–49Plain Craft Launcher 2/Controls/MyMsg/MyMsgSelect.xaml.vb:47–56Plain Craft Launcher 2/Controls/MyMsg/MyMsgText.xaml.vb:38–47Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb:29–38
40'动画 41Opacity = 0 42AniStart(AaColor(FrmMain.PanMsg, Grid.BackgroundProperty, If(MyConverter.IsWarn, New MyColor(140, 80, 0, 0), New MyColor(90, 0, 0, 0)) - FrmMain.PanMsg.Backgro… 43AniStart({ 44 AaOpacity(Me, 1, 120, 60), 45 AaDouble(Sub(i) TransformPos.Y += i, -TransformPos.Y, 300, 60, New AniEaseOutBack(AniEasePower.Weak)), 46 AaDouble(Sub(i) TransformRotate.Angle += i, -TransformRotate.Angle, 300, 60, New AniEaseOutFluent(AniEasePower.Weak)) 47}, "MyMsgBox " & Uuid) 48'记录日志 49Logger.Info($"输入弹窗:{LabTitle.Text}")47'动画 48Opacity = 0 49AniStart(AaColor(FrmMain.PanMsg, Grid.BackgroundProperty, If(MyConverter.IsWarn, New MyColor(140, 80, 0, 0), New MyColor(90, 0, 0, 0)) - FrmMain.PanMsg.Backgro… 50AniStart({ 51 AaOpacity(Me, 1, 120, 60), 52 AaDouble(Sub(i) TransformPos.Y += i, -TransformPos.Y, 300, 60, New AniEaseOutBack(AniEasePower.Weak)), 53 AaDouble(Sub(i) TransformRotate.Angle += i, -TransformRotate.Angle, 300, 60, New AniEaseOutFluent(AniEasePower.Weak)) 54}, "MyMsgBox " & Uuid) 55'记录日志 56Logger.Info($"选择弹窗:{LabTitle.Text}") - 28 lines in 2 placesvbnet398 tokensPlain Craft Launcher 2/Pages/PageInstance/PageInstanceSetup.xaml.vb:116–143Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb:147–174
116Dim RamGame As Double = Math.Round(GetRam(PageInstanceLeft.Instance), 5) 117Dim RamTotal As Double = Math.Round(My.Computer.Info.TotalPhysicalMemory / 1024 / 1024 / 1024, 1) 118Dim RamAvailable As Double = Math.Round(My.Computer.Info.AvailablePhysicalMemory / 1024 / 1024 / 1024, 1) 119Dim RamGameActual As Double = Math.Round(Math.Min(RamGame, RamAvailable), 5) 120Dim RamUsed As Double = Math.Round(RamTotal - RamAvailable, 5) 121Dim RamEmpty As Double = Math.Round((RamTotal - RamUsed - RamGame).Clamp(0, 1000), 1) 122'设置最大可用内存 123If RamTotal <= 1.5 Then 124 SliderRamCustom.MaxValue = Math.Max(Math.Floor((RamTotal - 0.3) / 0.1), 1) 125ElseIf RamTotal <= 8 ThenFirst 10 of 28 lines.
- 49 lines in 2 placesvbnet294 tokensPlain Craft Launcher 2/Pages/PageInstance/PageInstanceSetup.xaml.vb:260–308Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb:288–336
260If Instance IsNot Nothing AndAlso Not Instance.IsLoaded Then Instance.Load() 261If Instance IsNot Nothing AndAlso Instance.Modable Then 262 '可安装 Mod 的版本 263 Dim ModDir = DirectoryUtils.GetInfo(Instance.PathIndie & "mods\") 264 Dim ModCount As Integer = If(ModDir.Exists, ModDir.GetFiles.Count(Function(f) {".jar", ".zip", ".litemod"}.Contains(f.Extension.Lower)), 0) 265 RamMininum = 0.5 + ModCount / 150 266 RamTarget1 = 1.5 + ModCount / 90 267 RamTarget2 = 2.7 + ModCount / 50 268 RamTarget3 = 4.5 + ModCount / 25 269ElseIf Instance IsNot Nothing AndAlso Instance.Version.HasOptiFine ThenFirst 10 of 49 lines.
7 more
- 6 lines in 2 placesvbnet293 tokens
- 7 lines in 3 placesvbnet120 tokens
- 19 lines in 2 placesvbnet214 tokens
- 18 lines in 2 placesvbnet211 tokens
- 23 lines in 2 placesvbnet208 tokens
- 18 lines in 2 placesvbnet193 tokens
- 29 lines in 2 placesvbnet184 tokens
Largest clones over all files, tests and data included
- 10 lines in 4 placesvbnet145 tokensPlain Craft Launcher 2/Controls/MyMsg/MyMsgInput.xaml.vb:40–49Plain Craft Launcher 2/Controls/MyMsg/MyMsgSelect.xaml.vb:47–56Plain Craft Launcher 2/Controls/MyMsg/MyMsgText.xaml.vb:38–47Plain Craft Launcher 2/Pages/PageLaunch/MyMsgLogin.xaml.vb:29–38
40'动画 41Opacity = 0 42AniStart(AaColor(FrmMain.PanMsg, Grid.BackgroundProperty, If(MyConverter.IsWarn, New MyColor(140, 80, 0, 0), New MyColor(90, 0, 0, 0)) - FrmMain.PanMsg.Backgro… 43AniStart({ 44 AaOpacity(Me, 1, 120, 60), 45 AaDouble(Sub(i) TransformPos.Y += i, -TransformPos.Y, 300, 60, New AniEaseOutBack(AniEasePower.Weak)), 46 AaDouble(Sub(i) TransformRotate.Angle += i, -TransformRotate.Angle, 300, 60, New AniEaseOutFluent(AniEasePower.Weak)) 47}, "MyMsgBox " & Uuid) 48'记录日志 49Logger.Info($"输入弹窗:{LabTitle.Text}")47'动画 48Opacity = 0 49AniStart(AaColor(FrmMain.PanMsg, Grid.BackgroundProperty, If(MyConverter.IsWarn, New MyColor(140, 80, 0, 0), New MyColor(90, 0, 0, 0)) - FrmMain.PanMsg.Backgro… 50AniStart({ 51 AaOpacity(Me, 1, 120, 60), 52 AaDouble(Sub(i) TransformPos.Y += i, -TransformPos.Y, 300, 60, New AniEaseOutBack(AniEasePower.Weak)), 53 AaDouble(Sub(i) TransformRotate.Angle += i, -TransformRotate.Angle, 300, 60, New AniEaseOutFluent(AniEasePower.Weak)) 54}, "MyMsgBox " & Uuid) 55'记录日志 56Logger.Info($"选择弹窗:{LabTitle.Text}") - 28 lines in 2 placesvbnet398 tokensPlain Craft Launcher 2/Pages/PageInstance/PageInstanceSetup.xaml.vb:116–143Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb:147–174
116Dim RamGame As Double = Math.Round(GetRam(PageInstanceLeft.Instance), 5) 117Dim RamTotal As Double = Math.Round(My.Computer.Info.TotalPhysicalMemory / 1024 / 1024 / 1024, 1) 118Dim RamAvailable As Double = Math.Round(My.Computer.Info.AvailablePhysicalMemory / 1024 / 1024 / 1024, 1) 119Dim RamGameActual As Double = Math.Round(Math.Min(RamGame, RamAvailable), 5) 120Dim RamUsed As Double = Math.Round(RamTotal - RamAvailable, 5) 121Dim RamEmpty As Double = Math.Round((RamTotal - RamUsed - RamGame).Clamp(0, 1000), 1) 122'设置最大可用内存 123If RamTotal <= 1.5 Then 124 SliderRamCustom.MaxValue = Math.Max(Math.Floor((RamTotal - 0.3) / 0.1), 1) 125ElseIf RamTotal <= 8 ThenFirst 10 of 28 lines.
- 49 lines in 2 placesvbnet294 tokensPlain Craft Launcher 2/Pages/PageInstance/PageInstanceSetup.xaml.vb:260–308Plain Craft Launcher 2/Pages/PageSetup/PageSetupLaunch.xaml.vb:288–336
260If Instance IsNot Nothing AndAlso Not Instance.IsLoaded Then Instance.Load() 261If Instance IsNot Nothing AndAlso Instance.Modable Then 262 '可安装 Mod 的版本 263 Dim ModDir = DirectoryUtils.GetInfo(Instance.PathIndie & "mods\") 264 Dim ModCount As Integer = If(ModDir.Exists, ModDir.GetFiles.Count(Function(f) {".jar", ".zip", ".litemod"}.Contains(f.Extension.Lower)), 0) 265 RamMininum = 0.5 + ModCount / 150 266 RamTarget1 = 1.5 + ModCount / 90 267 RamTarget2 = 2.7 + ModCount / 50 268 RamTarget3 = 4.5 + ModCount / 25 269ElseIf Instance IsNot Nothing AndAlso Instance.Version.HasOptiFine ThenFirst 10 of 49 lines.
- 6 lines in 2 placesvbnet293 tokens
- 7 lines in 3 placesvbnet120 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| vbnet | 106 | 43,093 | 121 | 1,500 | 3.48% |
| csharp | 9 | 921 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| vbnet | 106 | 43,093 | 121 | 1,500 | 3.48% |
| yaml | 7 | 265 | 1 | 27 | 10.19% |
| txt | 1 | 31,511 | 0 | 0 | 0% |
| csharp | 9 | 921 | 0 | 0 | 0% |
| json | 1 | 423 | 0 | 0 | 0% |
| editorconfig | 2 | 269 | 0 | 0 | 0% |
| markdown | 1 | 17 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 23, 2026 | #5 | 8,765 (+119) | 127 | 76,499 | 122 | 2% | 3.41% | D 49.6 | 6b9a50d |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.