diff --git a/VpSharp.Commands/Attributes/AliasesAttribute.cs b/VpSharp.Commands/Attributes/AliasesAttribute.cs
index dfbd700..76bfd0f 100644
--- a/VpSharp.Commands/Attributes/AliasesAttribute.cs
+++ b/VpSharp.Commands/Attributes/AliasesAttribute.cs
@@ -28,8 +28,15 @@ public sealed class AliasesAttribute : Attribute
public AliasesAttribute(string alias, params string[] aliases)
#pragma warning restore CA1019
{
- ArgumentNullException.ThrowIfNull(alias);
- ArgumentNullException.ThrowIfNull(aliases);
+ if (alias is null)
+ {
+ throw new ArgumentNullException(nameof(alias));
+ }
+
+ if (aliases is null)
+ {
+ throw new ArgumentNullException(nameof(aliases));
+ }
if (string.IsNullOrWhiteSpace(alias))
{
diff --git a/VpSharp.Commands/Attributes/CommandAttribute.cs b/VpSharp.Commands/Attributes/CommandAttribute.cs
index d73a8b7..b39e924 100644
--- a/VpSharp.Commands/Attributes/CommandAttribute.cs
+++ b/VpSharp.Commands/Attributes/CommandAttribute.cs
@@ -14,7 +14,11 @@ public sealed class CommandAttribute : Attribute
/// is empty, or consists of only whitespace.
public CommandAttribute(string name)
{
- ArgumentNullException.ThrowIfNull(name);
+ if (name is null)
+ {
+ throw new ArgumentNullException(nameof(name));
+ }
+
if (string.IsNullOrWhiteSpace(name))
{
throw new ArgumentException("Name cannot be empty");
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs
index c395675..bd85e50 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireAvatarNameAttribute.cs
@@ -14,7 +14,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
/// is .
public RequireAvatarNameAttribute(IEnumerable names)
{
- ArgumentNullException.ThrowIfNull(names);
+ if (names is null)
+ {
+ throw new ArgumentNullException(nameof(names));
+ }
+
Names = names.ToArray();
}
@@ -26,7 +30,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
[CLSCompliant(false)]
public RequireAvatarNameAttribute(params string[] names)
{
- ArgumentNullException.ThrowIfNull(names);
+ if (names is null)
+ {
+ throw new ArgumentNullException(nameof(names));
+ }
+
Names = names[..];
}
@@ -39,7 +47,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
///
protected internal override Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
return Task.FromResult(Names.Contains(context.Avatar.Name));
}
}
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotAttribute.cs
index 3afce7c..29183c7 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotAttribute.cs
@@ -8,7 +8,11 @@ public sealed class RequireBotAttribute : PreExecutionCheckAttribute
///
protected internal override Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
return Task.FromResult(context.Avatar.IsBot);
}
}
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotOwnerAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotOwnerAttribute.cs
index 9c2e3c6..e716ce9 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotOwnerAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireBotOwnerAttribute.cs
@@ -8,7 +8,11 @@ public sealed class RequireBotOwnerAttribute : PreExecutionCheckAttribute
///
protected internal override Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
return Task.FromResult(context.Avatar.UserId == context.Client.CurrentUser?.Id);
}
}
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireHumanAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireHumanAttribute.cs
index 83332a9..9fcc6f5 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireHumanAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireHumanAttribute.cs
@@ -8,7 +8,11 @@ public sealed class RequireHumanAttribute : PreExecutionCheckAttribute
///
protected internal override Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
return Task.FromResult(!context.Avatar.IsBot);
}
}
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs
index 35d7cdc..bd22c0a 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserIdAttribute.cs
@@ -14,7 +14,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
/// is .
public RequireUserIdAttribute(IEnumerable userIds)
{
- ArgumentNullException.ThrowIfNull(userIds);
+ if (userIds is null)
+ {
+ throw new ArgumentNullException(nameof(userIds));
+ }
+
UserIds = userIds.ToArray();
}
@@ -26,7 +30,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
[CLSCompliant(false)]
public RequireUserIdAttribute(params int[] userIds)
{
- ArgumentNullException.ThrowIfNull(userIds);
+ if (userIds is null)
+ {
+ throw new ArgumentNullException(nameof(userIds));
+ }
+
UserIds = userIds[..];
}
@@ -39,7 +47,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
///
protected internal override Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
return Task.FromResult(UserIds.Contains(context.Avatar.UserId));
}
}
diff --git a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs
index de275f8..f008b13 100644
--- a/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs
+++ b/VpSharp.Commands/Attributes/ExecutionChecks/RequireUserNameAttribute.cs
@@ -16,7 +16,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
/// is .
public RequireUserNameAttribute(IEnumerable names)
{
- ArgumentNullException.ThrowIfNull(names);
+ if (names is null)
+ {
+ throw new ArgumentNullException(nameof(names));
+ }
+
Names = names.ToArray();
}
@@ -28,7 +32,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
[CLSCompliant(false)]
public RequireUserNameAttribute(params string[] names)
{
- ArgumentNullException.ThrowIfNull(names);
+ if (names is null)
+ {
+ throw new ArgumentNullException(nameof(names));
+ }
+
Names = names[..];
}
@@ -41,7 +49,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
///
protected internal override async Task PerformAsync(CommandContext context)
{
- ArgumentNullException.ThrowIfNull(context);
+ if (context is null)
+ {
+ throw new ArgumentNullException(nameof(context));
+ }
+
VirtualParadiseUser user = await context.Avatar.GetUserAsync().ConfigureAwait(false);
return Names.Contains(user.Name);
}
diff --git a/VpSharp.Commands/CommandsExtension.cs b/VpSharp.Commands/CommandsExtension.cs
index ddf7d0e..62d46e6 100644
--- a/VpSharp.Commands/CommandsExtension.cs
+++ b/VpSharp.Commands/CommandsExtension.cs
@@ -33,8 +33,16 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
public CommandsExtension(VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
: base(client)
{
- ArgumentNullException.ThrowIfNull(client);
- ArgumentNullException.ThrowIfNull(configuration);
+ if (client is null)
+ {
+ throw new ArgumentNullException(nameof(client));
+ }
+
+ if (configuration is null)
+ {
+ throw new ArgumentNullException(nameof(configuration));
+ }
+
_configuration = configuration;
_configuration.Services ??= client.Services;
@@ -64,7 +72,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
///
public void RegisterCommands(Assembly assembly)
{
- ArgumentNullException.ThrowIfNull(assembly);
+ if (assembly is null)
+ {
+ throw new ArgumentNullException(nameof(assembly));
+ }
foreach (Type type in assembly.GetTypes())
{
@@ -136,7 +147,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
///
public void RegisterCommands(Type moduleType)
{
- ArgumentNullException.ThrowIfNull(moduleType);
+ if (moduleType is null)
+ {
+ throw new ArgumentNullException(nameof(moduleType));
+ }
if (moduleType.IsAbstract)
{
@@ -164,7 +178,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
///
protected internal override Task OnMessageReceived(VirtualParadiseMessage message)
{
- ArgumentNullException.ThrowIfNull(message);
+ if (message is null)
+ {
+ throw new ArgumentNullException(nameof(message));
+ }
if (message.Type != MessageType.ChatMessage)
{
diff --git a/VpSharp.Commands/VirtualParadiseClientExtensions.cs b/VpSharp.Commands/VirtualParadiseClientExtensions.cs
index 43e6a31..8f1dd1b 100644
--- a/VpSharp.Commands/VirtualParadiseClientExtensions.cs
+++ b/VpSharp.Commands/VirtualParadiseClientExtensions.cs
@@ -14,7 +14,11 @@ public static class VirtualParadiseClientExtensions
/// is .
public static CommandsExtension UseCommands(this VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
{
- ArgumentNullException.ThrowIfNull(client);
+ if (client is null)
+ {
+ throw new ArgumentNullException(nameof(client));
+ }
+
return client.AddExtension(configuration);
}
}
diff --git a/VpSharp/src/Entities/VirtualParadiseAvatar.cs b/VpSharp/src/Entities/VirtualParadiseAvatar.cs
index a1d05e0..5ca6f24 100644
--- a/VpSharp/src/Entities/VirtualParadiseAvatar.cs
+++ b/VpSharp/src/Entities/VirtualParadiseAvatar.cs
@@ -224,7 +224,11 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// Passing to will hide the name from the recipient.
public Task SendMessageAsync(string? name, string message, FontStyle fontStyle, Color color)
{
- ArgumentNullException.ThrowIfNull(message);
+ if (message is null)
+ {
+ throw new ArgumentNullException(nameof(message));
+ }
+
if (string.IsNullOrWhiteSpace(message))
{
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
@@ -282,7 +286,10 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// is .
public Task SendUriAsync(Uri uri, UriTarget target = UriTarget.Browser)
{
- ArgumentNullException.ThrowIfNull(uri);
+ if (uri is null)
+ {
+ throw new ArgumentNullException(nameof(uri));
+ }
// ReSharper disable once InconsistentlySynchronizedField
if (this == _client.CurrentAvatar)
@@ -306,7 +313,10 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// The client does not have permission to modify world settings.
public async Task SendWorldSettings(Action action)
{
- ArgumentNullException.ThrowIfNull(action);
+ if (action is null)
+ {
+ throw new ArgumentNullException(nameof(action));
+ }
// ReSharper disable once InconsistentlySynchronizedField
var builder = new WorldSettingsBuilder(_client, Session);
@@ -323,7 +333,11 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// is .
public Task TeleportAsync(VirtualParadiseWorld world, Vector3d position)
{
- ArgumentNullException.ThrowIfNull(world);
+ if (world is null)
+ {
+ throw new ArgumentNullException(nameof(world));
+ }
+
return TeleportAsync(world.Name, position, Rotation.None);
}
@@ -336,7 +350,11 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// is .
public Task TeleportAsync(VirtualParadiseWorld world, Vector3d position, Rotation rotation)
{
- ArgumentNullException.ThrowIfNull(world);
+ if (world is null)
+ {
+ throw new ArgumentNullException(nameof(world));
+ }
+
return TeleportAsync(world.Name, position, rotation);
}
@@ -358,15 +376,15 @@ public sealed class VirtualParadiseAvatar : IEquatable
/// The rotation to which this avatar should be teleported.
public async Task TeleportAsync(string world, Vector3d position, Rotation rotation)
{
- ArgumentNullException.ThrowIfNull(world);
-#if NET7_0_OR_GREATER
- ArgumentException.ThrowIfNullOrEmpty(world);
-#else
+ if (world is null)
+ {
+ throw new ArgumentNullException(nameof(world));
+ }
+
if (string.IsNullOrEmpty(world))
{
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(world));
}
-#endif
// ReSharper disable InconsistentlySynchronizedField
bool isSelf = this == _client.CurrentAvatar;
diff --git a/VpSharp/src/Entities/VirtualParadiseModelObject.cs b/VpSharp/src/Entities/VirtualParadiseModelObject.cs
index d45ce26..63bb547 100644
--- a/VpSharp/src/Entities/VirtualParadiseModelObject.cs
+++ b/VpSharp/src/Entities/VirtualParadiseModelObject.cs
@@ -52,7 +52,10 @@ public class VirtualParadiseModelObject : VirtualParadiseObject
///
public async Task ModifyAsync(Action action)
{
- ArgumentNullException.ThrowIfNull(action);
+ if (action is null)
+ {
+ throw new ArgumentNullException(nameof(action));
+ }
var taskCompletionSource = new TaskCompletionSource();
var builder = new VirtualParadiseModelObjectBuilder(Client, this, ObjectBuilderMode.Modify);
diff --git a/VpSharp/src/Entities/VirtualParadiseObject.cs b/VpSharp/src/Entities/VirtualParadiseObject.cs
index 721d51c..2d159d7 100644
--- a/VpSharp/src/Entities/VirtualParadiseObject.cs
+++ b/VpSharp/src/Entities/VirtualParadiseObject.cs
@@ -20,7 +20,11 @@ public abstract class VirtualParadiseObject : IEquatable
/// is .
protected internal VirtualParadiseObject(VirtualParadiseClient client, int id)
{
- ArgumentNullException.ThrowIfNull(client);
+ if (client is null)
+ {
+ throw new ArgumentNullException(nameof(client));
+ }
+
Client = client;
Id = id;
}
@@ -237,7 +241,10 @@ public abstract class VirtualParadiseObject : IEquatable
/// The builder whose values to extract.
protected internal virtual void ExtractFromBuilder(VirtualParadiseObjectBuilder builder)
{
- ArgumentNullException.ThrowIfNull(builder);
+ if (builder is null)
+ {
+ throw new ArgumentNullException(nameof(builder));
+ }
Location location = Location;
Vector3d position = builder.Position.ValueOr(location.Position);
@@ -256,7 +263,11 @@ public abstract class VirtualParadiseObject : IEquatable
/// is .
protected internal virtual void ExtractFromOther(VirtualParadiseObject virtualParadiseObject)
{
- ArgumentNullException.ThrowIfNull(virtualParadiseObject);
+ if (virtualParadiseObject is null)
+ {
+ throw new ArgumentNullException(nameof(virtualParadiseObject));
+ }
+
Location = virtualParadiseObject.Location;
ModificationTimestamp = virtualParadiseObject.ModificationTimestamp;
Owner = virtualParadiseObject.Owner;
diff --git a/VpSharp/src/Entities/VirtualParadiseWorld.cs b/VpSharp/src/Entities/VirtualParadiseWorld.cs
index 02679d1..1b69508 100644
--- a/VpSharp/src/Entities/VirtualParadiseWorld.cs
+++ b/VpSharp/src/Entities/VirtualParadiseWorld.cs
@@ -123,7 +123,10 @@ public sealed class VirtualParadiseWorld : IEquatable
/// The client does not have permission to modify world settings.
public async Task ModifyAsync(Action action)
{
- ArgumentNullException.ThrowIfNull(action);
+ if (action is null)
+ {
+ throw new ArgumentNullException(nameof(action));
+ }
var builder = new WorldSettingsBuilder(_client);
await Task.Run(() => action(builder)).ConfigureAwait(false);
diff --git a/VpSharp/src/Internal/DependencyInjectionUtility.cs b/VpSharp/src/Internal/DependencyInjectionUtility.cs
index 61b1112..af26e0b 100644
--- a/VpSharp/src/Internal/DependencyInjectionUtility.cs
+++ b/VpSharp/src/Internal/DependencyInjectionUtility.cs
@@ -17,14 +17,26 @@ internal static class DependencyInjectionUtility
public static object CreateInstance(Type type, VirtualParadiseClient client)
{
- ArgumentNullException.ThrowIfNull(type);
- ArgumentNullException.ThrowIfNull(client);
+ if (type is null)
+ {
+ throw new ArgumentNullException(nameof(type));
+ }
+
+ if (client is null)
+ {
+ throw new ArgumentNullException(nameof(client));
+ }
+
return CreateInstance(type, client.Services);
}
public static object CreateInstance(Type type, IServiceProvider? serviceProvider = null)
{
- ArgumentNullException.ThrowIfNull(type);
+ if (type is null)
+ {
+ throw new ArgumentNullException(nameof(type));
+ }
+
object? instance;
TypeInfo typeInfo = type.GetTypeInfo();
diff --git a/VpSharp/src/VirtualParadiseClient.Extensions.cs b/VpSharp/src/VirtualParadiseClient.Extensions.cs
index 43507e9..e9a2ab5 100644
--- a/VpSharp/src/VirtualParadiseClient.Extensions.cs
+++ b/VpSharp/src/VirtualParadiseClient.Extensions.cs
@@ -46,7 +46,10 @@ public sealed partial class VirtualParadiseClient
///
public VirtualParadiseClientExtension AddExtension(Type type, params object?[]? arguments)
{
- ArgumentNullException.ThrowIfNull(type);
+ if (type is null)
+ {
+ throw new ArgumentNullException(nameof(type));
+ }
if (!type.IsSubclassOf(typeof(VirtualParadiseClientExtension)))
{
@@ -85,7 +88,10 @@ public sealed partial class VirtualParadiseClient
/// No extension with the specified type is added to this client.
public VirtualParadiseClientExtension GetExtension(Type type)
{
- ArgumentNullException.ThrowIfNull(type);
+ if (type is null)
+ {
+ throw new ArgumentNullException(nameof(type));
+ }
VirtualParadiseClientExtension? result = _extensions.Find(e => e.GetType() == type);
if (result is null)
@@ -126,7 +132,10 @@ public sealed partial class VirtualParadiseClient
/// No extension with the specified type is added to this client.
public bool TryGetExtension(Type type, [NotNullWhen(true)] out VirtualParadiseClientExtension? extension)
{
- ArgumentNullException.ThrowIfNull(type);
+ if (type is null)
+ {
+ throw new ArgumentNullException(nameof(type));
+ }
extension = _extensions.Find(e => e.GetType() == type);
return extension is not null;
diff --git a/VpSharp/src/VirtualParadiseClient.Objects.cs b/VpSharp/src/VirtualParadiseClient.Objects.cs
index 5828751..61c1b02 100644
--- a/VpSharp/src/VirtualParadiseClient.Objects.cs
+++ b/VpSharp/src/VirtualParadiseClient.Objects.cs
@@ -160,7 +160,10 @@ public sealed partial class VirtualParadiseClient
private VirtualParadiseObject AddOrUpdateObject(VirtualParadiseObject obj)
{
- ArgumentNullException.ThrowIfNull(obj);
+ if (obj is null)
+ {
+ throw new ArgumentNullException(nameof(obj));
+ }
return _objects.AddOrUpdate(obj.Id, obj, (_, existing) =>
{
diff --git a/VpSharp/src/VirtualParadiseClient.cs b/VpSharp/src/VirtualParadiseClient.cs
index 2b3584e..d926787 100644
--- a/VpSharp/src/VirtualParadiseClient.cs
+++ b/VpSharp/src/VirtualParadiseClient.cs
@@ -46,7 +46,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
/// is .
public VirtualParadiseClient(VirtualParadiseConfiguration configuration)
{
- ArgumentNullException.ThrowIfNull(configuration);
+ if (configuration is null)
+ {
+ throw new ArgumentNullException(nameof(configuration));
+ }
+
Services = configuration.Services;
_configuration = new VirtualParadiseConfiguration(configuration);
Initialize();
@@ -298,7 +302,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
/// Connection to the world server timed out.
public async Task EnterAsync(VirtualParadiseWorld world)
{
- ArgumentNullException.ThrowIfNull(world);
+ if (world is null)
+ {
+ throw new ArgumentNullException(nameof(world));
+ }
+
await EnterAsync(world.Name).ConfigureAwait(false);
}
@@ -317,7 +325,10 @@ public sealed partial class VirtualParadiseClient : IDisposable
/// Connection to the world server timed out.
public async Task EnterAsync(string worldName)
{
- ArgumentNullException.ThrowIfNull(worldName);
+ if (worldName is null)
+ {
+ throw new ArgumentNullException(nameof(worldName));
+ }
if (CurrentWorld is not null)
{
@@ -555,7 +566,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
///
public Task SendMessageAsync(string message)
{
- ArgumentNullException.ThrowIfNull(message);
+ if (message is null)
+ {
+ throw new ArgumentNullException(nameof(message));
+ }
+
if (string.IsNullOrWhiteSpace(message))
{
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
@@ -628,7 +643,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
///
public Task SendMessageAsync(string? name, string message, FontStyle fontStyle, Color color)
{
- ArgumentNullException.ThrowIfNull(message);
+ if (message is null)
+ {
+ throw new ArgumentNullException(nameof(message));
+ }
+
if (string.IsNullOrWhiteSpace(message))
{
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));