Skip to content

ci: Qodana

ci: Qodana #267

Triggered via push July 13, 2025 18:45
Status Success
Total duration 1m 58s
Artifacts 7

build.yml

on: push
Fit to window
Zoom out
Zoom in

Annotations

246 warnings and 754 notices
build-MacOsApp: PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L69
Possible null reference return.
build-MacOsApp: PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L164
Non-nullable property 'IdentityToken' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
build-MacOsApp: PCL.Neo.Core/Service/Game/GameService.cs#L15
Parameter 'javaManager' is unread.
build-MacOsApp: PCL.Neo.Core/Models/Minecraft/MetadataFile.cs#L82
Non-nullable property 'Value' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
build-MacOsApp: PCL.Neo.Core/Service/Accounts/Storage/YggdrasilAccount.cs#L8
Non-nullable field '_serverUrl' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-MacOsApp: PCL.Neo.Core/Utils/Result.cs#L15
Non-nullable field '_ok' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-MacOsApp: PCL.Neo.Core/Utils/Result.cs#L18
Possible null reference assignment.
build-MacOsApp: PCL.Neo.Core/Utils/Result.cs#L8
Non-nullable field '_error' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-MacOsApp: PCL.Neo.Core/Utils/Result.cs#L12
Possible null reference assignment.
build-AppImage: PCL.Neo.Core/Service/Audio/AudioService.cs#L115
Possible null reference argument for parameter 'path1' in 'string Path.Combine(string path1, string path2)'.
build-AppImage: PCL.Neo.Core/Service/Accounts/Storage/YggdrasilAccount.cs#L8
Non-nullable field '_serverUrl' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-AppImage: PCL.Neo.Core/Service/Game/GameLauncherService.cs#L188
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
build-AppImage: PCL.Neo.Core/Service/Game/GameService.cs#L15
Parameter 'javaManager' is unread.
build-AppImage: PCL.Neo.Core/Models/Minecraft/MetadataFile.cs#L82
Non-nullable property 'Value' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
build-AppImage: PCL.Neo.Core/Utils/Result.cs#L15
Non-nullable field '_ok' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-AppImage: PCL.Neo.Core/Utils/Result.cs#L18
Possible null reference assignment.
build-AppImage: PCL.Neo.Core/Utils/Result.cs#L8
Non-nullable field '_error' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-AppImage: PCL.Neo.Core/Utils/Result.cs#L12
Possible null reference assignment.
build-WinExe: PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L69
Possible null reference return.
build-WinExe: PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L164
Non-nullable property 'IdentityToken' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
build-WinExe: PCL.Neo.Core/Service/Accounts/Storage/YggdrasilAccount.cs#L8
Non-nullable field '_serverUrl' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-WinExe: PCL.Neo.Core/Service/Game/GameLauncherService.cs#L188
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
build-WinExe: PCL.Neo.Core/Service/Game/GameService.cs#L15
Parameter 'javaManager' is unread.
build-WinExe: PCL.Neo.Core/Utils/Result.cs#L15
Non-nullable field '_ok' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-WinExe: PCL.Neo.Core/Utils/Result.cs#L18
Possible null reference assignment.
build-WinExe: PCL.Neo.Core/Utils/Result.cs#L8
Non-nullable field '_error' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
build-WinExe: PCL.Neo.Core/Utils/Result.cs#L12
Possible null reference assignment.
Access to disposed captured variable: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L280
Captured variable is disposed in the outer scope
Access to disposed captured variable: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L276
Captured variable is disposed in the outer scope
Access to disposed captured variable: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L196
Captured variable is disposed in the outer scope
Access to disposed captured variable: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L190
Captured variable is disposed in the outer scope
Access to disposed captured variable: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L268
Captured variable is disposed in the outer scope
Access to a static member of a type via a derived type: PCL.Neo/Animations/MarginAnimation.cs#L128
Access to a static member of a type via a derived type
Access to a static member of a type via a derived type: PCL.Neo/Animations/MarginAnimation.cs#L120
Access to a static member of a type via a derived type
Async function without await expression: PCL.Neo.Core/Service/Accounts/AccountService.cs#L497
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/Helpers/NotificationHelper.cs#L207
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L215
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/Services/NavigationService.cs#L149
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L237
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L257
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L226
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo.Core/Service/Accounts/AccountService.cs#L599
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo.Tests/Core/Models/FileHelper/FileTest.cs#L47
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L146
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo.Core/Service/Accounts/OAuthService/AuthCodeMode.cs#L67
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L170
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L249
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async function without await expression: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L359
This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.
Async method invocation without await expression: PCL.Neo/ViewModels/MainWindowViewModel.cs#L172
Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the 'await' operator to the result of the call.
Possible null reference assignment.: PCL.Neo.Core/Utils/Result.cs#L18
Possible null reference assignment
Possible null reference assignment.: PCL.Neo.Core/Utils/Result.cs#L12
Possible null reference assignment
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/MicrosoftAuth/MicrosoftAuthService.cs#L165
Possible null reference argument for parameter 'AccessToken' in 'PCL.Neo.Core.Service.Accounts.MicrosoftAuth.DeviceCodeData.DeviceCodeAccessToken.DeviceCodeAccessToken'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/OAuthService/MinecraftInfo.cs#L43
Possible null reference argument for parameter 'Alias' in 'PCL.Neo.Core.Service.Accounts.Storage.Cape.Cape'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/OAuthService/AuthCodeMode.cs#L32
Possible null reference argument for parameter 'capes' in 'PCL.Neo.Core.Service.Accounts.OAuthService.MinecraftInfo.CollectCapes'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/OAuthService/AuthCodeMode.cs#L33
Possible null reference argument for parameter 'skins' in 'PCL.Neo.Core.Service.Accounts.OAuthService.MinecraftInfo.CollectSkins'
Possible null reference argument for a parameter.: PCL.Neo/Utils/CollectionUtils.cs#L15
Possible null reference argument for parameter 'right' in 'PCL.Neo.Utils.CollectionUtils.CompareThreadStart.Invoke'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/MicrosoftAuth/MicrosoftAuthService.cs#L166
Possible null reference argument for parameter 'RefreshToken' in 'PCL.Neo.Core.Service.Accounts.MicrosoftAuth.DeviceCodeData.DeviceCodeAccessToken.DeviceCodeAccessToken'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/MicrosoftAuth/MicrosoftAuthService.cs#L211
Possible null reference argument for parameter 'capes' in 'PCL.Neo.Core.Service.Accounts.OAuthService.MinecraftInfo.CollectCapes'
Possible null reference argument for a parameter.: PCL.Neo/Utils/CollectionUtils.cs#L15
Possible null reference argument for parameter 'left' in 'PCL.Neo.Utils.CollectionUtils.CompareThreadStart.Invoke'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Audio/AudioService.cs#L115
Possible null reference argument for parameter 'path1' in 'System.IO.Path.Combine'
Possible null reference argument for a parameter.: PCL.Neo.Core/Service/Accounts/MicrosoftAuth/MicrosoftAuthService.cs#L212
Possible null reference argument for parameter 'skins' in 'PCL.Neo.Core.Service.Accounts.OAuthService.MinecraftInfo.CollectSkins'
Non-nullable member is uninitialized.: PCL.Neo.Core/Utils/Result.cs#L15
Non-nullable field '_ok' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
Non-nullable member is uninitialized.: PCL.Neo/ViewModels/MainWindowViewModel.cs#L80
Non-nullable property 'NavigationService' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the property as nullable.
Non-nullable member is uninitialized.: PCL.Neo/Utils/SearchUtils.cs#L22
Non-nullable field 'SearchSource' is uninitialized. Consider adding the 'required' modifier or declaring the field as nullable.
Non-nullable member is uninitialized.: PCL.Neo.Core/Service/Accounts/Storage/YggdrasilAccount.cs#L8
Non-nullable field '_serverUrl' is uninitialized. Consider adding the 'required' modifier or declaring the field as nullable.
Non-nullable member is uninitialized.: PCL.Neo.Core/Utils/Result.cs#L8
Non-nullable field '_error' must contain a non-null value when exiting constructor. Consider adding the 'required' modifier or declaring the field as nullable.
Non-nullable member is uninitialized.: PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L164
Non-nullable property 'IdentityToken' is uninitialized. Consider adding the 'required' modifier or declaring the property as nullable.
Non-nullable member is uninitialized.: PCL.Neo/Utils/SearchUtils.cs#L17
Non-nullable field 'Item' is uninitialized. Consider adding the 'required' modifier or declaring the field as nullable.
Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).: PCL.Neo/Utils/BoolToOnlineStatusConverter.cs#L19
Nullability of type of parameter 'value' does not match implicitly implemented member 'object? Avalonia.Data.Converters.IValueConverter.ConvertBack(object?, Type, object?, CultureInfo)' (possibly because of nullability attributes)
Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).: PCL.Neo/Utils/BoolToOnlineStatusConverter.cs#L9
Nullability of type of parameter 'parameter' does not match implicitly implemented member 'object? Avalonia.Data.Converters.IValueConverter.Convert(object?, Type, object?, CultureInfo)' (possibly because of nullability attributes)
Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).: PCL.Neo/Utils/BoolToOnlineStatusConverter.cs#L19
Nullability of type of parameter 'parameter' does not match implicitly implemented member 'object? Avalonia.Data.Converters.IValueConverter.ConvertBack(object?, Type, object?, CultureInfo)' (possibly because of nullability attributes)
Nullability of type of parameter doesn't match implicitly implemented member (possibly because of nullability attributes).: PCL.Neo/Utils/BoolToOnlineStatusConverter.cs#L9
Nullability of type of parameter 'value' does not match implicitly implemented member 'object? Avalonia.Data.Converters.IValueConverter.Convert(object?, Type, object?, CultureInfo)' (possibly because of nullability attributes)
Namespace does not correspond to file location: PCL.Neo.Core/Utils/TimeDateUtils.cs#L1
Namespace does not correspond to file location, must be: 'PCL.Neo.Core.Utils'
Namespace does not correspond to file location: PCL.Neo.Core/Const.cs#L4
Namespace does not correspond to file location, must be: 'PCL.Neo.Core'
Namespace does not correspond to file location: PCL.Neo.Core/Utils/Logger.cs#L7
Namespace does not correspond to file location, must be: 'PCL.Neo.Core.Utils'
Namespace does not correspond to file location: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/Data/YggdrasilAuthResponse.cs#L4
Namespace does not correspond to file location, must be: 'PCL.Neo.Core.Service.Accounts.IYggdrasilAuth.Data'
Expression is always 'true' or 'false' according to nullable reference types' annotations: PCL.Neo/Animations/AnimationExtensions.cs#L63
Expression is always false according to nullable reference types' annotations
Expression is always 'true' or 'false' according to nullable reference types' annotations: PCL.Neo/Animations/AnimationExtensions.cs#L186
Expression is always false according to nullable reference types' annotations
Expression is always 'true' or 'false' according to nullable reference types' annotations: PCL.Neo/Animations/AnimationExtensions.cs#L225
Expression is always false according to nullable reference types' annotations
Expression is always 'true' or 'false' according to nullable reference types' annotations: PCL.Neo/Animations/AnimationExtensions.cs#L125
Expression is always false according to nullable reference types' annotations
Conditional access qualifier expression is not null according to nullable reference types' annotations: PCL.Neo.Core/Service/Game/GameLauncherService.cs#L493
Conditional access qualifier expression is never null according to nullable reference types' annotations
Conditional access qualifier expression is not null according to nullable reference types' annotations: PCL.Neo.Core/Service/Game/GameLauncherService.cs#L424
Conditional access qualifier expression is never null according to nullable reference types' annotations
Conditional access qualifier expression is not null according to nullable reference types' annotations: PCL.Neo.Core/Service/Accounts/OAuthService/RedirectServer/RequestHelper.cs#L20
Conditional access qualifier expression is never null according to nullable reference types' annotations
Inconsistent synchronization on field: PCL.Neo.Core/Service/Audio/AudioService.cs#L444
The field is sometimes used inside synchronized block and sometimes used without synchronization
Inconsistent synchronization on field: PCL.Neo.Core/Service/Audio/AudioService.cs#L392
The field is sometimes used inside synchronized block and sometimes used without synchronization
Method with optional or 'params' parameter is hidden by overload: PCL.Neo/Helpers/NotificationHelper.cs#L87
Method with optional parameter is hidden by overload
Method with optional or 'params' parameter is hidden by overload: PCL.Neo/Helpers/NotificationHelper.cs#L86
Method with optional parameter is hidden by overload
Method with optional or 'params' parameter is hidden by overload: PCL.Neo/Helpers/NotificationHelper.cs#L65
Method with optional parameter is hidden by overload
Non-accessed field: PCL.Neo/Controls/MyRadioButton.axaml.cs#L21
Field '_isMouseDown' is assigned but its value is never used
Non-accessed field: PCL.Neo.Core/Service/Accounts/AccountService.cs#L23
Field '_yggdrasilApiTimeoutMs' is assigned but its value is never used
Non-accessed field: PCL.Neo.Core/Service/Accounts/AccountService.cs#L20
Field '_yggdrasilApiKey' is assigned but its value is never used
Non-accessed field (private accessibility): PCL.Neo/Controls/MyCard.axaml.cs#L12
Field '_animation' is assigned but its value is never used
Non-accessed field (private accessibility): PCL.Neo/Controls/MyCard.axaml.cs#L11
Field '_borderMain' is assigned but its value is never used
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L148
Positional property 'PCL.Neo.Core.Service.Accounts.OAuthService.OAuthData.RequireData.XstsRequire.Properties' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuth.cs#L70
Positional property 'PCL.Neo.Core.Service.Accounts.OAuthService.OAuth.XblToken.Uhs' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L21
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Cape.Alias' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L24
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Skin.State' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L24
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Skin.Variant' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L140
Positional property 'PCL.Neo.Core.Service.Accounts.OAuthService.OAuthData.RequireData.XboxLiveAuthRequire.PropertiesData.RpsTicket' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuth.cs#L70
Positional property 'PCL.Neo.Core.Service.Accounts.OAuthService.OAuth.XblToken.Token' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L24
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Skin.Id' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L21
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Cape.Url' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L24
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Skin.TextureKey' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L21
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Cape.State' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Storage/AccountTypesShared.cs#L21
Positional property 'PCL.Neo.Core.Service.Accounts.Storage.Cape.Id' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L155
Positional property 'PCL.Neo.Core.Service.Accounts.OAuthService.OAuthData.RequireData.XstsRequire.PropertiesData.UserTokens' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Exceptions/HttpError.cs#L7
Positional property 'PCL.Neo.Core.Service.Accounts.Exceptions.HttpError.Message' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Exceptions/HttpError.cs#L8
Positional property 'PCL.Neo.Core.Service.Accounts.Exceptions.HttpError.Content' is never accessed (except in implicit Equals/ToString implementations)
Non-accessed positional property (non-private accessibility): PCL.Neo.Core/Service/Accounts/Exceptions/HttpError.cs#L6
Positional property 'PCL.Neo.Core.Service.Accounts.Exceptions.HttpError.StatusCode' is never accessed (except in implicit Equals/ToString implementations)
Not accessed primary constructor parameter: PCL.Neo.Core/Service/Game/GameService.cs#L15
Primary constructor parameter 'javaManager' is never accessed
Assignment is not used: PCL.Neo.Core/Models/Minecraft/Java/JavaVerifier.cs#L251
Value assigned is not used in any execution path
Redundant member initializer: PCL.Neo.Core/Models/Minecraft/Game/Data/LaunchOptions.cs#L52
Initializing property by default value is redundant
Redundant member initializer: PCL.Neo.Core/Models/Minecraft/Game/Data/LaunchOptions.cs#L72
Initializing property by default value is redundant
Redundant member initializer: PCL.Neo.Core/Models/Minecraft/Game/Data/GameInfo.cs#L32
Initializing property by default value is redundant
Redundant member initializer: PCL.Neo.Core/Models/Minecraft/MetadataFile.cs#L31
Initializing property by default value is redundant
Redundant member initializer: PCL.Neo.Core/Utils/Logger/LogDelegate.cs#L21
Initializing property by default value is redundant
Redundant control flow jump statement: PCL.Neo.Core/Utils/Logger.cs#L183
Redundant control flow jump statement
Redundant member override: PCL.Neo/Controls/MyCard.axaml.cs#L25
Redundant method override
Redundant nullable warning suppression expression: PCL.Neo.Core/Service/Accounts/AccountService.cs#L467
The nullable warning suppression expression is redundant
Redundant nullable warning suppression expression: PCL.Neo.Core/Service/Accounts/AccountService.cs#L446
The nullable warning suppression expression is redundant
Redundant nullable warning suppression expression: PCL.Neo/Controls/MyRadioButton.axaml.cs#L169
The nullable warning suppression expression is redundant
Redundant nullable warning suppression expression: PCL.Neo/Controls/MyRadioButton.axaml.cs#L148
The nullable warning suppression expression is redundant
Redundant switch expression arms: PCL.Neo.Core/Utils/SystemUtils.cs#L79
Redundant switch expression arm
Redundant using directive: PCL.Neo.Core/Models/Minecraft/Game/Data/Arguments/ArgumentsAdapter.cs#L1
Using directive is not required by the code and can be safely removed
Return type of a function can be made non-nullable: PCL.Neo/Converters/DoublePercentageConverter.cs#L10
Return type of 'Convert' can be made non-nullable
Return type of a function can be made non-nullable: PCL.Neo/Converters/DoublePercentageConverter.cs#L17
Return type of 'ConvertBack' can be made non-nullable
Auto-property accessor is never used (non-private accessibility): PCL.Neo.Core/Models/Minecraft/Java/JavaSelector.cs#L29
Auto-property accessor 'RecommendationLevel.get' is never used
Auto-property accessor is never used (non-private accessibility): PCL.Neo.Core/Models/Minecraft/MetadataFile.cs#L176
Auto-property accessor 'ComplianceLevel.get' is never used
Avoid using 'async' for methods and functions with the 'void' return type: PCL.Neo/Views/MainWindow.axaml.cs#L217
Avoid using 'async' for method with the 'void' return type or catch all exceptions in it: any exceptions unhandled by the method might lead to the process crash
Avoid using 'async' for methods and functions with the 'void' return type: PCL.Neo/Controls/MyIconButton.axaml.cs#L55
Any exceptions unhandled by the 'async void' method might lead to the process crash
Avoid using 'async' for methods and functions with the 'void' return type: PCL.Neo/Controls/MyButton.axaml.cs#L42
Any exceptions unhandled by the 'async void' method might lead to the process crash
Avoid using 'async' for methods and functions with the 'void' return type: PCL.Neo/Controls/MyIconButton.axaml.cs#L39
Any exceptions unhandled by the 'async void' method might lead to the process crash
Avoid using 'async' for methods and functions with the 'void' return type: PCL.Neo/Controls/MyButton.axaml.cs#L57
Any exceptions unhandled by the 'async void' method might lead to the process crash
RoslynAnalyzers Provide ObsoleteAttribute message: PCL.Neo.Core/Service/Accounts/OAuthService/AuthCodeMode.cs#L7
Provide a message for the ObsoleteAttribute that marks AuthCodeMode as Obsolete
RoslynAnalyzers Provide ObsoleteAttribute message: PCL.Neo.Core/Service/Game/GameService.cs#L209
Provide a message for the ObsoleteAttribute that marks IsVersionInstalled as Obsolete
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L299
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L181
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L361
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Utils/StreamExt.cs#L11
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L400
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentNullException throw helper: PCL.Neo.Core/Utils/StreamExt.cs#L15
Use 'ArgumentNullException.ThrowIfNull' instead of explicitly throwing a new exception instance
RoslynAnalyzers Use ArgumentOutOfRangeException throw helper: PCL.Neo.Core/Utils/StreamExt.cs#L9
Use 'ArgumentOutOfRangeException.ThrowIfNegative' instead of explicitly throwing a new exception instance
RoslynAnalyzers Do not ignore method results: PCL.Neo.Core/Service/Game/GameService.cs#L263
IsJavaCompatibleWithGame calls TryParse but does not explicitly check whether the conversion succeeded. Either use the return value in a conditional statement or verify that the call site expects that the out argument will be set to the default value when the conversion fails.
RoslynAnalyzers Dispose methods should call SuppressFinalize: PCL.Neo.Core/Models/Minecraft/Game/GameEntity.cs#L53
Change GameEntity.Dispose() to call GC.SuppressFinalize(object). This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.
RoslynAnalyzers Dispose methods should call SuppressFinalize: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L125
Change NewLogger.Dispose() to call GC.SuppressFinalize(object). This will prevent unnecessary finalization of the object once it has been disposed and it has fallen out of scope.
RoslynAnalyzers Dispose methods should call SuppressFinalize: PCL.Neo.Core/Download/Downloader.cs#L91
Change Downloader.Dispose() to call GC.SuppressFinalize(object). This will prevent derived types that introduce a finalizer from needing to re-implement 'IDisposable' to call it.
RoslynAnalyzers Mark members as static: PCL.Neo.Core/Service/Audio/LinuxAudioService.cs#L29
Member 'CheckCommand' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo.Tests/Services/JobServiceTest.cs#L76
Member 'MonitorJobService' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/Controls/MyCard.axaml.cs#L48
Member 'HeightAnimation' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo.Core/Models/DownloadService.cs#L24
Member 'DownloadFileAsync' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo.Core/Utils/Logger.cs#L181
Member 'Log' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L196
Member 'CloseMessageBox' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L264
Member 'StartGame' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/App.axaml.cs#L66
Member 'DisableAvaloniaDataAnnotationValidation' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L458
Member 'GetServerName' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L249
Member 'OpenSettings' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L257
Member 'OpenMore' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L237
Member 'LaunchGame' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L189
Member 'ShowMessageBox' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L215
Member 'GameSettings' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L471
Member 'GetUserProperties' does not access instance data and can be marked as static
RoslynAnalyzers Mark members as static: PCL.Neo/ViewModels/MainWindowViewModel.cs#L226
Member 'ManageVersions' does not access instance data and can be marked as static
RoslynAnalyzers Use 'Environment.ProcessPath': PCL.Neo.Core/Const.cs#L31
Use 'Environment.ProcessPath' instead of 'Process.GetCurrentProcess().MainModule.FileName'
RoslynAnalyzers Use char literal for a single character lookup: PCL.Neo/Utils/StringUtils.cs#L78
Use 'string.Contains(char)' instead of 'string.Contains(string)' when searching for a single character
RoslynAnalyzers Prefer static 'HashData' method over 'ComputeHash': PCL.Neo.Tests/Core/Download/DownloadTest.cs#L72
Prefer static 'System.Security.Cryptography.SHA1.HashData' method over 'ComputeHash'
RoslynAnalyzers Prefer static 'HashData' method over 'ComputeHash': PCL.Neo.Tests/Core/Download/DownloadTest.cs#L125
Prefer static 'System.Security.Cryptography.SHA1.HashData' method over 'ComputeHash'
RoslynAnalyzers Prefer static 'HashData' method over 'ComputeHash': PCL.Neo.Tests/BitConvertorTest.cs#L16
Prefer static 'System.Security.Cryptography.MD5.HashData' method over 'ComputeHash'
RoslynAnalyzers Prefer static 'HashData' method over 'ComputeHash': PCL.Neo.Core/Service/Accounts/Storage/OfflineAccount.cs#L35
Prefer static 'System.Security.Cryptography.MD5.HashData' method over 'ComputeHash'
RoslynAnalyzers Use concrete types when possible for improved performance: PCL.Neo/App.axaml.cs#L30
Change return type of method 'ConfigureServices' from 'System.IServiceProvider' to 'Microsoft.Extensions.DependencyInjection.ServiceProvider' for improved performance
RoslynAnalyzers Use concrete types when possible for improved performance: PCL.Neo.Tests/Core/Service/Profiles/ProfileServiceTest.cs#L17
Change type of field '_service' from 'PCL.Neo.Core.Service.Profiles.IProfileService' to 'PCL.Neo.Core.Service.Profiles.ProfileService?' for improved performance
RoslynAnalyzers Avoid using 'Enumerable.Any()' extension method: PCL.Neo/Models/User/UserInfo.cs#L43
Prefer comparing 'Count' to 0 rather than using 'Any()', both for clarity and for performance
RoslynAnalyzers Avoid using 'Enumerable.Any()' extension method: PCL.Neo/Models/User/UserInfo.cs#L48
Prefer comparing 'Count' to 0 rather than using 'Any()', both for clarity and for performance
RoslynAnalyzers Avoid constant arrays as arguments: PCL.Neo/Services/StorageService.cs#L76
Prefer 'static readonly' fields over constant array arguments if the called method is called repeatedly and is not mutating the passed array
RoslynAnalyzers Use the 'StringComparison' method overloads to perform case-insensitive string comparisons: PCL.Neo.Core/Models/Minecraft/Java/Windows.cs#L118
Prefer using 'string.Equals(string, StringComparison)' to perform a case-insensitive comparison, but keep in mind that this might cause subtle changes in behavior, so make sure to conduct thorough testing after applying the suggestion, or if culturally sensitive comparison is not required, consider using 'StringComparison.OrdinalIgnoreCase'
RoslynAnalyzers Use the 'StringComparison' method overloads to perform case-insensitive string comparisons: PCL.Neo.Core/Service/Accounts/IYggdrasilAuth/YggdrasilAuthService.cs#L235
Prefer using 'string.Equals(string, StringComparison)' to perform a case-insensitive comparison, but keep in mind that this might cause subtle changes in behavior, so make sure to conduct thorough testing after applying the suggestion, or if culturally sensitive comparison is not required, consider using 'StringComparison.OrdinalIgnoreCase'
RoslynAnalyzers Use char overload: PCL.Neo/Utils/MathUtils.cs#L16
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char
RoslynAnalyzers Use char overload: PCL.Neo/Utils/StringUtils.cs#L215
Use 'string.StartsWith(char)' instead of 'string.StartsWith(string)' when you have a string with a single char
RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances: PCL.Neo.Tests/Core/Service/Profiles/ProfileServiceTest.cs#L64
Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances: PCL.Neo.Core/Models/Minecraft/Game/Versions.cs#L36
Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances: PCL.Neo.Tests/Core/Models/Configuration/ConfigurationManagerTest.cs#L34
Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances: PCL.Neo.Core/Models/Minecraft/Game/Versions.cs#L168
Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
RoslynAnalyzers Cache and reuse 'JsonSerializerOptions' instances: PCL.Neo.Tests/Core/Models/Configuration/ConfigurationManagerTest.cs#L46
Avoid creating a new 'JsonSerializerOptions' instance for every serialization operation. Cache and reuse instances instead.
RoslynAnalyzers Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString': PCL.Neo.Core/Service/Accounts/Storage/OfflineAccount.cs#L43
Prefer 'System.Convert.ToHexStringLower(byte\[\])' over call chains based on 'System.BitConverter.ToString(byte\[\])'
RoslynAnalyzers Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString': PCL.Neo.Tests/BitConvertorTest.cs#L24
Prefer 'System.Convert.ToHexStringLower(byte\[\])' over call chains based on 'System.BitConverter.ToString(byte\[\])'
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Service/Profiles/VersionTypeHelper.cs#L25
Method GetGameType passes 'root' as the paramName argument to a ArgumentNullException constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Service/Accounts/OAuthService/MinecraftInfo.cs#L38
Call the ArgumentOutOfRangeException constructor that contains a message and/or paramName parameter
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Service/Accounts/OAuthService/MinecraftInfo.cs#L18
Call the ArgumentOutOfRangeException constructor that contains a message and/or paramName parameter
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Service/Profiles/VersionTypeHelper.cs#L35
Method GetGameType passes 'root' as the paramName argument to a ArgumentNullException constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Models/Minecraft/Java/JavaSelector.cs#L250
Call the ArgumentOutOfRangeException constructor that contains a message and/or paramName parameter
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo/Utils/StringUtils.cs#L18
Call the ArgumentNullException constructor that contains a message and/or paramName parameter
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Models/Minecraft/Java/JavaFetcherOnline.cs#L202
Call the ArgumentOutOfRangeException constructor that contains a message and/or paramName parameter
RoslynAnalyzers Instantiate argument exceptions correctly: PCL.Neo.Core/Service/Game/GameService.cs#L119
Method DownloadLibrariesAsync passes 'Libraries' as the paramName argument to a ArgumentNullException constructor. Replace this argument with one of the method's parameter names. Note that the provided parameter name should have the exact casing as declared on the method.
RoslynAnalyzers Prefer generic overload when type is known: PCL.Neo.Core/Models/Audio/AudioFileSearcher.cs#L17
Prefer the generic overload 'System.Enum.Parse(string)' instead of 'System.Enum.Parse(System.Type, string)'
Template should be a static expression: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L100
The logging message template should not vary between calls to 'void Serilog.Core.Logger.Information(Exception?, string)'
Template should be a static expression: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L106
The logging message template should not vary between calls to 'void Serilog.Core.Logger.Warning(Exception?, string)'
Template should be a static expression: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L118
The logging message template should not vary between calls to 'void Serilog.Core.Logger.Fatal(Exception?, string)'
Template should be a static expression: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L94
The logging message template should not vary between calls to 'void Serilog.Core.Logger.Debug(Exception?, string)'
Template should be a static expression: PCL.Neo.Core/Utils/Logger/NewLogger.cs#L112
The logging message template should not vary between calls to 'void Serilog.Core.Logger.Error(Exception?, string)'
Class is never instantiated (non-private accessibility): PCL.Neo/ViewModels/Attributes.cs#L6
Class 'SubViewModelAttribute' is never instantiated
Class is never instantiated (non-private accessibility): PCL.Neo/Program.cs#L8
Class 'Program' is never instantiated
Class is never instantiated (non-private accessibility): PCL.Neo/ViewModels/Attributes.cs#L12
Class 'MainViewModelAttribute' is never instantiated
Class is never instantiated (non-private accessibility): PCL.Neo.Core/Service/Accounts/OAuthService/OAuthData.cs#L233
Record 'MinecraftAccessTokenResponse' is never instantiated
Class is never instantiated (non-private accessibility): PCL.Neo/Utils/SearchUtils.cs#L12
Class 'SearchEntry' is never instantiated
Convert constructor into member initializers: PCL.Neo/Controls/MyLoading.axaml.cs#L26
Convert constructor into member initializers
Convert constructor into member initializers: PCL.Neo/Controls/MyCard.axaml.cs#L14
Convert constructor into member initializers
'if' statement can be rewritten as '?:' expression: PCL.Neo.Core/Models/Minecraft/Java/JavaManager.cs#L263
Convert into method call with '?:' expression inside
'if' statement can be rewritten as '?:' expression: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L143
Convert into method call with '?:' expression inside
'if' statement can be rewritten as '?:' expression: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L319
Convert into method call with '?:' expression inside
'if' statement can be rewritten as '?:' expression: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L252
Convert into method call with '?:' expression inside
'if' statement can be rewritten as '?:' expression: PCL.Neo/Controls/MyLoading.axaml.cs#L194
Convert into method call with '?:' expression inside
'if' statement can be rewritten as '?:' expression: PCL.Neo.Core/Service/Audio/AudioDemo.cs#L62
Convert into method call with '?:' expression inside
Convert 'if' statement into 'switch': PCL.Neo.Core/Utils/TimeDateUtils.cs#L83
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo.Core/Utils/TimeDateUtils.cs#L105
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo.Core/Utils/TimeDateUtils.cs#L109
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo/Utils/MathUtils.cs#L42
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo/Models/MyColor.cs#L216
Convert 'if' statement into 'switch' expression
Convert 'if' statement into 'switch': PCL.Neo.Core/Utils/TimeDateUtils.cs#L107
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo.Core/Utils/TimeDateUtils.cs#L101
Convert 'if' statement into 'switch' statement
Convert 'if' statement into 'switch': PCL.Neo.Core/Models/Minecraft/Java/Unix.cs#L49
Convert 'if' statement into 'switch' statement
Replace 'switch' statement with 'switch' expression: PCL.Neo/Controls/MyButton.axaml.cs#L154
Convert 'switch' statement to 'switch' expression
Replace 'switch' statement with 'switch' expression: PCL.Neo/Animations/YAnimation.cs#L62
Convert 'switch' statement to 'switch' expression
Replace 'switch' statement with 'switch' expression: PCL.Neo/Controls/MyIconButton.axaml.cs#L184
Convert 'switch' statement to 'switch' expression
Replace 'switch' statement with 'switch' expression: PCL.Neo/Animations/XAnimation.cs#L62
Convert 'switch' statement to 'switch' expression
Event is never subscribed to (non-private accessibility): PCL.Neo.Core/Utils/Logger/NewLogger.cs#L15
Event 'OnMessageBoxLogEvent' is never subscribed to
Event is never subscribed to (non-private accessibility): PCL.Neo.Core/Utils/Logger/NewLogger.cs#L10
Event 'OnAssertLogEvent' is never subscribed to
Event is never subscribed to (non-private accessibility): PCL.Neo.Core/Utils/Logger/NewLogger.cs#L12
Event 'OnDeveloperLogEvent' is never subscribed to
Event is never subscribed to (non-private accessibility): PCL.Neo/Services/UserService.cs#L23
Event 'CurrentUserChanged' is never subscribed to
Event is never subscribed to (non-private accessibility): PCL.Neo.Core/Utils/Logger/NewLogger.cs#L13
Event 'OnFeedbackLogEvent' is never subscribed to
Extract common code: PCL.Neo.Core/Service/Audio/AudioService.cs#L303
Extract common code after 'if' statement
Extract common code: PCL.Neo/Helpers/AnimationHelper.cs#L56
Extract common code after 'if' statement
Foreach loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used: PCL.Neo.Core/Service/Game/GameLauncherService.cs#L157
Loop can be converted into LINQ-expression but another 'GetEnumerator' method will be used
Invert 'if' statement to reduce nesting: PCL.Neo.Core/Service/Audio/AudioService.cs#L583
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo/Controls/MyIconButton.axaml.cs#L58
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo.Core/Models/Minecraft/Java/Unix.cs#L81
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo/Controls/MyIconButton.axaml.cs#L42
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo/Controls/MyButton.axaml.cs#L46
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo/Controls/MyButton.axaml.cs#L60
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo/Controls/MyRadioButton.axaml.cs#L113
Invert 'if' statement to reduce nesting
Invert 'if' statement to reduce nesting: PCL.Neo.Core/Service/Game/GameService.cs#L225
Invert 'if' statement to reduce nesting
Loop can be converted into LINQ-expression: PCL.Neo.Core/Models/Minecraft/Java/Unix.cs#L174
Loop can be converted into LINQ-expression
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L152
Item is not correctly numbered. Expected item number 1, but got 4.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L187
Item is not correctly numbered. Expected item number 1, but got 3.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L156
Item is not correctly numbered. Expected item number 1, but got 5.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L169
Item is not correctly numbered. Expected item number 1, but got 2.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L116
Item is not correctly numbered. Expected item number 1, but got 2.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L200
Item is not correctly numbered. Expected item number 1, but got 4.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L72
Item is not correctly numbered. Expected item number 1, but got 5.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L142
Item is not correctly numbered. Expected item number 1, but got 2.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L63
Item is not correctly numbered. Expected item number 1, but got 4.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L36
Item is not correctly numbered. Expected item number 1, but got 2.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L121
Item is not correctly numbered. Expected item number 1, but got 3.
Incorrectly numbered list item: PCL.Neo.Core/Service/Audio/README.md#L47
Item is not correctly numbered. Expected item number 1, but got 3.
Incorrectly numbered list item: PCL.Neo.Core/Service/Profiles/README.md#L146
Item is not correctly numbered. Expected item number 1, but got 3.
Member can be made static (shared) (private accessibility): PCL.Neo/App.axaml.cs#L66
Method 'DisableAvaloniaDataAnnotationValidation' can be made static
Member can be made private (non-private accessibility): PCL.Neo/Services/UserService.cs#L28
Property 'CurrentUser' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L49
Constructor 'ScaleTransformScaleXAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/JobService.cs#L28
Accessor 'Progress.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo.Core/Models/Minecraft/MetadataFile.cs#L183
Accessor 'MinimumLauncherVersion.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L207
Method 'ShowMessageBoxIndirectAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Models/MyColor.cs#L135
Constructor 'MyColor' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Controls/MyLoading.axaml.cs#L67
Field 'TextLoadingProperty' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/NavigationService.cs#L37
Property 'ServiceProvider' can be made private
Member can be made private (non-private accessibility): PCL.Neo.Core/Utils/Result.cs#L22
Property 'IsSuccess' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Models/MyColor.cs#L130
Constructor 'MyColor' can be made private
Member can be made private (non-private accessibility): PCL.Neo.Core/Service/Game/GameService.cs#L17
Property 'DefaultGameDirectory' can be made private
Member can be made private (non-private accessibility): PCL.Neo.Core/Models/DownloadService.cs#L24
Method 'DownloadFileAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L110
Method 'ShowMessageBoxAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/NavigationService.cs#L50
Accessor 'CurrentSubViewModel.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Controls/MyButton.axaml.cs#L130
Field 'EventTypeProperty' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L49
Constructor 'RotateTransformAngleAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L27
Constructor 'ScaleTransformScaleYAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Utils/MathUtils.cs#L68
Method 'MathRound' can be made private
Member can be made private (non-private accessibility): PCL.Neo/ViewModels/MainWindowViewModel.cs#L20
Property 'NavigationService' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L84
Constructor 'RotateTransformAngleAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/YAnimation.cs#L27
Constructor 'YAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/ThemeHelper.cs#L34
Accessor 'ColorSemiTransparent.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L27
Constructor 'ScaleTransformScaleXAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L27
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/NavigationService.cs#L48
Accessor 'CurrentMainViewModel.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L27
Constructor 'RotateTransformAngleAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/JobService.cs#L92
Property 'CancellationTokenSource' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L42
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L58
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L84
Method 'ShowMessageBoxAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo.Tests/Core/Download/DownloadTest.cs#L57
Constant 'SizeOfSingleTestCase' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L47
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L80
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L49
Constructor 'ScaleTransformScaleYAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L60
Constructor 'RotateTransformAngleAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L60
Constructor 'ScaleTransformScaleXAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/JobService.cs#L94
Property 'CancellationToken' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/YAnimation.cs#L47
Constructor 'YAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L139
Method 'ShowMessageBoxAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L84
Constructor 'ScaleTransformScaleXAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L65
Method 'ShowMessageBoxAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Utils/CollectionUtils.cs#L9
Delegate 'CompareThreadStart' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L175
Method 'ShowMessageBoxAsync' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L60
Constructor 'ScaleTransformScaleYAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L84
Constructor 'ScaleTransformScaleYAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Program.cs#L24
Method 'BuildAvaloniaApp' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Services/JobService.cs#L29
Accessor 'Status.set' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Controls/MyLoading.axaml.cs#L53
Field 'TextErrorProperty' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/XAnimation.cs#L47
Constructor 'XAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/OpacityAnimation.cs#L74
Constructor 'OpacityAnimation' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Models/MyColor.cs#L156
Constructor 'MyColor' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Controls/MyButton.axaml.cs#L139
Field 'EventDataProperty' can be made private
Member can be made private (non-private accessibility): PCL.Neo/Animations/XAnimation.cs#L27
Constructor 'XAnimation' can be made private
Method supports cancellation: PCL.Neo.Core/Service/Audio/LinuxAudioService.cs#L99
Method has overload with cancellation support
Method supports cancellation: PCL.Neo.Tests/Core/Download/DownloadTest.cs#L316
Method has overload with cancellation support
Method supports cancellation: PCL.Neo.Core/Service/Audio/MacOsAudioService.cs#L74
Method has overload with cancellation support
Method supports cancellation: PCL.Neo.Tests/Services/JobServiceTest.cs#L97
Method has overload with cancellation support
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L19
Field 'Type' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L21
Field 'IsCloseWhenButton2Pressed' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L13
Field 'Message' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L15
Field 'Button1Text' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L20
Field 'IsCloseWhenButton1Pressed' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L18
Field 'ButtonPressedAction' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L22
Field 'IsCloseWhenButton3Pressed' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L17
Field 'Button3Text' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L16
Field 'Button2Text' is assigned but its value is never used
Non-accessed field (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L14
Field 'Title' is assigned but its value is never used
Redundant type declaration body: PCL.Neo/Helpers/ArchitectureHelper.cs#L4
Redundant empty class declaration body
Redundant type declaration body: PCL.Neo/Controls/MyMsg/IMessageBox.cs#L4
Redundant empty interface declaration body
Redundant type declaration body: PCL.Neo/ViewModels/ViewModelBase.cs#L6
Redundant empty class declaration body
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Models/Minecraft/Java/JavaVerifier.cs#L161
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Models/Minecraft/Java/JavaVerifier.cs#L262
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Models/Minecraft/Java/Unix.cs#L126
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Models/Minecraft/Java/JavaVerifier.cs#L254
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Utils/Logger.cs#L164
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Service/Accounts/Storage/OfflineAccount.cs#L53
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Convert to 'GeneratedRegexAttribute'.: PCL.Neo.Core/Models/Minecraft/Java/JavaData.cs#L218
Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.
RoslynAnalyzers Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time: PCL.Neo.Core/Service/Audio/WindowsAudioService.cs#L17
Mark the method 'waveOutGetVolume' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time
RoslynAnalyzers Use 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time: PCL.Neo.Core/Service/Audio/WindowsAudioService.cs#L20
Mark the method 'waveOutSetVolume' with 'LibraryImportAttribute' instead of 'DllImportAttribute' to generate P/Invoke marshalling code at compile time
Simplify conditional ternary expression: PCL.Neo.Core/Service/Audio/AudioService.cs#L385
Simplify conditional ternary expression
Simplify conditional ternary expression: PCL.Neo.Core/Service/Audio/AudioService.cs#L437
Simplify conditional ternary expression
Some values of the enum are not processed inside 'switch' statement: PCL.Neo.Core/Utils/Logger.cs#L145
Some values of the enum are not processed inside switch: Normal, default
Some values of the enum are not processed inside 'switch' statement: PCL.Neo.Core/Utils/Logger.cs#L165
Some values of the enum are not processed inside switch: Normal, default
Local variable has too wide declaration scope: PCL.Neo.Core/Utils/Logger.cs#L128
Local variable 'log' can be declared in inner scope
Type parameter could be declared as covariant or contravariant: PCL.Neo/Utils/CollectionUtils.cs#L9
The type parameter 'T' could be declared as contravariant
Unassigned field (non-private accessibility): PCL.Neo/Utils/SearchUtils.cs#L22
Field 'SearchSource' is never assigned
Type member is never used (non-private accessibility): PCL.Neo.Core/Models/DownloadService.cs#L94
Method 'DownloadAndDeCompressFileAsync' is never used
Type member is never used (non-private accessibility): PCL.Neo/Utils/CoreUtils.cs#L54
Enum member 'Exception' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L22
Constructor 'RotateTransformAngleAnimation' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L72
Constructor 'ScaleTransformScaleXAnimation' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleXAnimation.cs#L55
Constructor 'ScaleTransformScaleXAnimation' is never used
Type member is never used (non-private accessibility): PCL.Neo.Core/Service/Game/IGameService.cs#L34
Method 'IsJavaCompatibleWithGame' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L37
Constructor 'ScaleTransformScaleYAnimation' is never used
Type member is never used (non-private accessibility): PCL.Neo/Helpers/NotificationHelper.cs#L38
Field 'Button2ClickedBeforeClose' is never used
Type member is never used (non-private accessibility): PCL.Neo.Core/Service/Accounts/IAccountService.cs#L79
Method 'RemoveProfileFromAccountAsync' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/RotateTransformAngleAnimation.cs#L55
Constructor 'RotateTransformAngleAnimation' is never used
Type member is never used (non-private accessibility): PCL.Neo/Animations/ScaleTransformScaleYAnimation.cs#L72
Constructor 'ScaleTransformScaleYAnimation' is never used

Artifacts

Produced during runtime
Name Size Digest
linux.arm64
38 MB
sha256:d76776578edf4467e316c261417d5bed61d632e6349eaa2806b91148d8216030
linux.x64
40.2 MB
sha256:0232b5c1739874da59513a6034858b96f9960d74d50e22d96c3ba1c584987250
osx.mac.arm64
14.8 MB
sha256:425f2f32f43b68b233ce4f35d362c0ace367017dd67a517700300bedf3c9977a
osx.mac.x64
14.8 MB
sha256:30ef58ad8be8df9ce299b2e34ab9465abf0a0bec3b91d4ade24eecbb7e5eda48
win.arm64
40.1 MB
sha256:4ffb4caad9d13d62a778b4aa3f590a06578b7b7752c28d4677c9b613dbaad89d
win.x64
41.8 MB
sha256:1ee037c24cdf190a2512e7564e4c43e0059c628f170a5c3ca369da13fac71914
win.x86
38.9 MB
sha256:3176adb602aaa929d0bcef5ba6cf8dffc4c464b58aacd82cbf21f092915bdfe5