mirror of
https://github.com/oliverbooth/VpSharp
synced 2024-11-09 22:55:42 +00:00
refactor: replace throw helper with explicit null check
This commit is contained in:
parent
682edbe8c6
commit
5ffc7a5a3b
@ -28,8 +28,15 @@ public sealed class AliasesAttribute : Attribute
|
|||||||
public AliasesAttribute(string alias, params string[] aliases)
|
public AliasesAttribute(string alias, params string[] aliases)
|
||||||
#pragma warning restore CA1019
|
#pragma warning restore CA1019
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(alias);
|
if (alias is null)
|
||||||
ArgumentNullException.ThrowIfNull(aliases);
|
{
|
||||||
|
throw new ArgumentNullException(nameof(alias));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aliases is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(aliases));
|
||||||
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(alias))
|
if (string.IsNullOrWhiteSpace(alias))
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,11 @@ public sealed class CommandAttribute : Attribute
|
|||||||
/// <exception cref="ArgumentException"><paramref name="name" /> is empty, or consists of only whitespace.</exception>
|
/// <exception cref="ArgumentException"><paramref name="name" /> is empty, or consists of only whitespace.</exception>
|
||||||
public CommandAttribute(string name)
|
public CommandAttribute(string name)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(name);
|
if (name is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(name));
|
||||||
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(name))
|
if (string.IsNullOrWhiteSpace(name))
|
||||||
{
|
{
|
||||||
throw new ArgumentException("Name cannot be empty");
|
throw new ArgumentException("Name cannot be empty");
|
||||||
|
@ -14,7 +14,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="names" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="names" /> is <see langword="null" />.</exception>
|
||||||
public RequireAvatarNameAttribute(IEnumerable<string> names)
|
public RequireAvatarNameAttribute(IEnumerable<string> names)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(names);
|
if (names is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(names));
|
||||||
|
}
|
||||||
|
|
||||||
Names = names.ToArray();
|
Names = names.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,7 +30,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
|
|||||||
[CLSCompliant(false)]
|
[CLSCompliant(false)]
|
||||||
public RequireAvatarNameAttribute(params string[] names)
|
public RequireAvatarNameAttribute(params string[] names)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(names);
|
if (names is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(names));
|
||||||
|
}
|
||||||
|
|
||||||
Names = names[..];
|
Names = names[..];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +47,11 @@ public sealed class RequireAvatarNameAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task<bool> PerformAsync(CommandContext context)
|
protected internal override Task<bool> PerformAsync(CommandContext context)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(context);
|
if (context is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(context));
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(Names.Contains(context.Avatar.Name));
|
return Task.FromResult(Names.Contains(context.Avatar.Name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,11 @@ public sealed class RequireBotAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task<bool> PerformAsync(CommandContext context)
|
protected internal override Task<bool> PerformAsync(CommandContext context)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(context);
|
if (context is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(context));
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(context.Avatar.IsBot);
|
return Task.FromResult(context.Avatar.IsBot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,11 @@ public sealed class RequireBotOwnerAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task<bool> PerformAsync(CommandContext context)
|
protected internal override Task<bool> 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);
|
return Task.FromResult(context.Avatar.UserId == context.Client.CurrentUser?.Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,11 @@ public sealed class RequireHumanAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task<bool> PerformAsync(CommandContext context)
|
protected internal override Task<bool> PerformAsync(CommandContext context)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(context);
|
if (context is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(context));
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(!context.Avatar.IsBot);
|
return Task.FromResult(!context.Avatar.IsBot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="userIds" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="userIds" /> is <see langword="null" />.</exception>
|
||||||
public RequireUserIdAttribute(IEnumerable<int> userIds)
|
public RequireUserIdAttribute(IEnumerable<int> userIds)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(userIds);
|
if (userIds is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(userIds));
|
||||||
|
}
|
||||||
|
|
||||||
UserIds = userIds.ToArray();
|
UserIds = userIds.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,7 +30,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
|
|||||||
[CLSCompliant(false)]
|
[CLSCompliant(false)]
|
||||||
public RequireUserIdAttribute(params int[] userIds)
|
public RequireUserIdAttribute(params int[] userIds)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(userIds);
|
if (userIds is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(userIds));
|
||||||
|
}
|
||||||
|
|
||||||
UserIds = userIds[..];
|
UserIds = userIds[..];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +47,11 @@ public sealed class RequireUserIdAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task<bool> PerformAsync(CommandContext context)
|
protected internal override Task<bool> PerformAsync(CommandContext context)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(context);
|
if (context is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(context));
|
||||||
|
}
|
||||||
|
|
||||||
return Task.FromResult(UserIds.Contains(context.Avatar.UserId));
|
return Task.FromResult(UserIds.Contains(context.Avatar.UserId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="names" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="names" /> is <see langword="null" />.</exception>
|
||||||
public RequireUserNameAttribute(IEnumerable<string> names)
|
public RequireUserNameAttribute(IEnumerable<string> names)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(names);
|
if (names is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(names));
|
||||||
|
}
|
||||||
|
|
||||||
Names = names.ToArray();
|
Names = names.ToArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,7 +32,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
|
|||||||
[CLSCompliant(false)]
|
[CLSCompliant(false)]
|
||||||
public RequireUserNameAttribute(params string[] names)
|
public RequireUserNameAttribute(params string[] names)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(names);
|
if (names is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(names));
|
||||||
|
}
|
||||||
|
|
||||||
Names = names[..];
|
Names = names[..];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +49,11 @@ public sealed class RequireUserNameAttribute : PreExecutionCheckAttribute
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override async Task<bool> PerformAsync(CommandContext context)
|
protected internal override async Task<bool> PerformAsync(CommandContext context)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(context);
|
if (context is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(context));
|
||||||
|
}
|
||||||
|
|
||||||
VirtualParadiseUser user = await context.Avatar.GetUserAsync().ConfigureAwait(false);
|
VirtualParadiseUser user = await context.Avatar.GetUserAsync().ConfigureAwait(false);
|
||||||
return Names.Contains(user.Name);
|
return Names.Contains(user.Name);
|
||||||
}
|
}
|
||||||
|
@ -33,8 +33,16 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
|
|||||||
public CommandsExtension(VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
|
public CommandsExtension(VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
|
||||||
: base(client)
|
: base(client)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(client);
|
if (client is null)
|
||||||
ArgumentNullException.ThrowIfNull(configuration);
|
{
|
||||||
|
throw new ArgumentNullException(nameof(client));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (configuration is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(configuration));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
_configuration = configuration;
|
_configuration = configuration;
|
||||||
_configuration.Services ??= client.Services;
|
_configuration.Services ??= client.Services;
|
||||||
@ -64,7 +72,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public void RegisterCommands(Assembly assembly)
|
public void RegisterCommands(Assembly assembly)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(assembly);
|
if (assembly is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(assembly));
|
||||||
|
}
|
||||||
|
|
||||||
foreach (Type type in assembly.GetTypes())
|
foreach (Type type in assembly.GetTypes())
|
||||||
{
|
{
|
||||||
@ -136,7 +147,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public void RegisterCommands(Type moduleType)
|
public void RegisterCommands(Type moduleType)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(moduleType);
|
if (moduleType is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(moduleType));
|
||||||
|
}
|
||||||
|
|
||||||
if (moduleType.IsAbstract)
|
if (moduleType.IsAbstract)
|
||||||
{
|
{
|
||||||
@ -164,7 +178,10 @@ public sealed class CommandsExtension : VirtualParadiseClientExtension
|
|||||||
/// <inheritdoc />
|
/// <inheritdoc />
|
||||||
protected internal override Task OnMessageReceived(VirtualParadiseMessage message)
|
protected internal override Task OnMessageReceived(VirtualParadiseMessage message)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(message);
|
if (message is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(message));
|
||||||
|
}
|
||||||
|
|
||||||
if (message.Type != MessageType.ChatMessage)
|
if (message.Type != MessageType.ChatMessage)
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,11 @@ public static class VirtualParadiseClientExtensions
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="client" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="client" /> is <see langword="null" />.</exception>
|
||||||
public static CommandsExtension UseCommands(this VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
|
public static CommandsExtension UseCommands(this VirtualParadiseClient client, CommandsExtensionConfiguration configuration)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(client);
|
if (client is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(client));
|
||||||
|
}
|
||||||
|
|
||||||
return client.AddExtension<CommandsExtension>(configuration);
|
return client.AddExtension<CommandsExtension>(configuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -224,7 +224,11 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <remarks>Passing <see langword="null" /> to <paramref name="name" /> will hide the name from the recipient.</remarks>
|
/// <remarks>Passing <see langword="null" /> to <paramref name="name" /> will hide the name from the recipient.</remarks>
|
||||||
public Task<VirtualParadiseMessage> SendMessageAsync(string? name, string message, FontStyle fontStyle, Color color)
|
public Task<VirtualParadiseMessage> 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))
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
{
|
{
|
||||||
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
||||||
@ -282,7 +286,10 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="uri" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="uri" /> is <see langword="null" />.</exception>
|
||||||
public Task SendUriAsync(Uri uri, UriTarget target = UriTarget.Browser)
|
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
|
// ReSharper disable once InconsistentlySynchronizedField
|
||||||
if (this == _client.CurrentAvatar)
|
if (this == _client.CurrentAvatar)
|
||||||
@ -306,7 +313,10 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <exception cref="UnauthorizedAccessException">The client does not have permission to modify world settings.</exception>
|
/// <exception cref="UnauthorizedAccessException">The client does not have permission to modify world settings.</exception>
|
||||||
public async Task SendWorldSettings(Action<WorldSettingsBuilder> action)
|
public async Task SendWorldSettings(Action<WorldSettingsBuilder> action)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(action);
|
if (action is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(action));
|
||||||
|
}
|
||||||
|
|
||||||
// ReSharper disable once InconsistentlySynchronizedField
|
// ReSharper disable once InconsistentlySynchronizedField
|
||||||
var builder = new WorldSettingsBuilder(_client, Session);
|
var builder = new WorldSettingsBuilder(_client, Session);
|
||||||
@ -323,7 +333,11 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="world" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="world" /> is <see langword="null" />.</exception>
|
||||||
public Task TeleportAsync(VirtualParadiseWorld world, Vector3d position)
|
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);
|
return TeleportAsync(world.Name, position, Rotation.None);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,7 +350,11 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="world" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="world" /> is <see langword="null" />.</exception>
|
||||||
public Task TeleportAsync(VirtualParadiseWorld world, Vector3d position, Rotation rotation)
|
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);
|
return TeleportAsync(world.Name, position, rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,15 +376,15 @@ public sealed class VirtualParadiseAvatar : IEquatable<VirtualParadiseAvatar>
|
|||||||
/// <param name="rotation">The rotation to which this avatar should be teleported.</param>
|
/// <param name="rotation">The rotation to which this avatar should be teleported.</param>
|
||||||
public async Task TeleportAsync(string world, Vector3d position, Rotation rotation)
|
public async Task TeleportAsync(string world, Vector3d position, Rotation rotation)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(world);
|
if (world is null)
|
||||||
#if NET7_0_OR_GREATER
|
{
|
||||||
ArgumentException.ThrowIfNullOrEmpty(world);
|
throw new ArgumentNullException(nameof(world));
|
||||||
#else
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(world))
|
if (string.IsNullOrEmpty(world))
|
||||||
{
|
{
|
||||||
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(world));
|
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(world));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// ReSharper disable InconsistentlySynchronizedField
|
// ReSharper disable InconsistentlySynchronizedField
|
||||||
bool isSelf = this == _client.CurrentAvatar;
|
bool isSelf = this == _client.CurrentAvatar;
|
||||||
|
@ -52,7 +52,10 @@ public class VirtualParadiseModelObject : VirtualParadiseObject
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public async Task ModifyAsync(Action<VirtualParadiseModelObjectBuilder> action)
|
public async Task ModifyAsync(Action<VirtualParadiseModelObjectBuilder> action)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(action);
|
if (action is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(action));
|
||||||
|
}
|
||||||
|
|
||||||
var taskCompletionSource = new TaskCompletionSource<ReasonCode>();
|
var taskCompletionSource = new TaskCompletionSource<ReasonCode>();
|
||||||
var builder = new VirtualParadiseModelObjectBuilder(Client, this, ObjectBuilderMode.Modify);
|
var builder = new VirtualParadiseModelObjectBuilder(Client, this, ObjectBuilderMode.Modify);
|
||||||
|
@ -20,7 +20,11 @@ public abstract class VirtualParadiseObject : IEquatable<VirtualParadiseObject>
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="client" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="client" /> is <see langword="null" />.</exception>
|
||||||
protected internal VirtualParadiseObject(VirtualParadiseClient client, int id)
|
protected internal VirtualParadiseObject(VirtualParadiseClient client, int id)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(client);
|
if (client is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(client));
|
||||||
|
}
|
||||||
|
|
||||||
Client = client;
|
Client = client;
|
||||||
Id = id;
|
Id = id;
|
||||||
}
|
}
|
||||||
@ -237,7 +241,10 @@ public abstract class VirtualParadiseObject : IEquatable<VirtualParadiseObject>
|
|||||||
/// <param name="builder">The builder whose values to extract.</param>
|
/// <param name="builder">The builder whose values to extract.</param>
|
||||||
protected internal virtual void ExtractFromBuilder(VirtualParadiseObjectBuilder builder)
|
protected internal virtual void ExtractFromBuilder(VirtualParadiseObjectBuilder builder)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(builder);
|
if (builder is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(builder));
|
||||||
|
}
|
||||||
|
|
||||||
Location location = Location;
|
Location location = Location;
|
||||||
Vector3d position = builder.Position.ValueOr(location.Position);
|
Vector3d position = builder.Position.ValueOr(location.Position);
|
||||||
@ -256,7 +263,11 @@ public abstract class VirtualParadiseObject : IEquatable<VirtualParadiseObject>
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="virtualParadiseObject" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="virtualParadiseObject" /> is <see langword="null" />.</exception>
|
||||||
protected internal virtual void ExtractFromOther(VirtualParadiseObject virtualParadiseObject)
|
protected internal virtual void ExtractFromOther(VirtualParadiseObject virtualParadiseObject)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(virtualParadiseObject);
|
if (virtualParadiseObject is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(virtualParadiseObject));
|
||||||
|
}
|
||||||
|
|
||||||
Location = virtualParadiseObject.Location;
|
Location = virtualParadiseObject.Location;
|
||||||
ModificationTimestamp = virtualParadiseObject.ModificationTimestamp;
|
ModificationTimestamp = virtualParadiseObject.ModificationTimestamp;
|
||||||
Owner = virtualParadiseObject.Owner;
|
Owner = virtualParadiseObject.Owner;
|
||||||
|
@ -123,7 +123,10 @@ public sealed class VirtualParadiseWorld : IEquatable<VirtualParadiseWorld>
|
|||||||
/// <exception cref="UnauthorizedAccessException">The client does not have permission to modify world settings.</exception>
|
/// <exception cref="UnauthorizedAccessException">The client does not have permission to modify world settings.</exception>
|
||||||
public async Task ModifyAsync(Action<WorldSettingsBuilder> action)
|
public async Task ModifyAsync(Action<WorldSettingsBuilder> action)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(action);
|
if (action is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(action));
|
||||||
|
}
|
||||||
|
|
||||||
var builder = new WorldSettingsBuilder(_client);
|
var builder = new WorldSettingsBuilder(_client);
|
||||||
await Task.Run(() => action(builder)).ConfigureAwait(false);
|
await Task.Run(() => action(builder)).ConfigureAwait(false);
|
||||||
|
@ -17,14 +17,26 @@ internal static class DependencyInjectionUtility
|
|||||||
|
|
||||||
public static object CreateInstance(Type type, VirtualParadiseClient client)
|
public static object CreateInstance(Type type, VirtualParadiseClient client)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(type);
|
if (type is null)
|
||||||
ArgumentNullException.ThrowIfNull(client);
|
{
|
||||||
|
throw new ArgumentNullException(nameof(type));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (client is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(client));
|
||||||
|
}
|
||||||
|
|
||||||
return CreateInstance(type, client.Services);
|
return CreateInstance(type, client.Services);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static object CreateInstance(Type type, IServiceProvider? serviceProvider = null)
|
public static object CreateInstance(Type type, IServiceProvider? serviceProvider = null)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(type);
|
if (type is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(type));
|
||||||
|
}
|
||||||
|
|
||||||
object? instance;
|
object? instance;
|
||||||
|
|
||||||
TypeInfo typeInfo = type.GetTypeInfo();
|
TypeInfo typeInfo = type.GetTypeInfo();
|
||||||
|
@ -46,7 +46,10 @@ public sealed partial class VirtualParadiseClient
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public VirtualParadiseClientExtension AddExtension(Type type, params object?[]? arguments)
|
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)))
|
if (!type.IsSubclassOf(typeof(VirtualParadiseClientExtension)))
|
||||||
{
|
{
|
||||||
@ -85,7 +88,10 @@ public sealed partial class VirtualParadiseClient
|
|||||||
/// <exception cref="InvalidOperationException">No extension with the specified type is added to this client.</exception>
|
/// <exception cref="InvalidOperationException">No extension with the specified type is added to this client.</exception>
|
||||||
public VirtualParadiseClientExtension GetExtension(Type type)
|
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);
|
VirtualParadiseClientExtension? result = _extensions.Find(e => e.GetType() == type);
|
||||||
if (result is null)
|
if (result is null)
|
||||||
@ -126,7 +132,10 @@ public sealed partial class VirtualParadiseClient
|
|||||||
/// <exception cref="InvalidOperationException">No extension with the specified type is added to this client.</exception>
|
/// <exception cref="InvalidOperationException">No extension with the specified type is added to this client.</exception>
|
||||||
public bool TryGetExtension(Type type, [NotNullWhen(true)] out VirtualParadiseClientExtension? extension)
|
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);
|
extension = _extensions.Find(e => e.GetType() == type);
|
||||||
return extension is not null;
|
return extension is not null;
|
||||||
|
@ -160,7 +160,10 @@ public sealed partial class VirtualParadiseClient
|
|||||||
|
|
||||||
private VirtualParadiseObject AddOrUpdateObject(VirtualParadiseObject obj)
|
private VirtualParadiseObject AddOrUpdateObject(VirtualParadiseObject obj)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(obj);
|
if (obj is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(obj));
|
||||||
|
}
|
||||||
|
|
||||||
return _objects.AddOrUpdate(obj.Id, obj, (_, existing) =>
|
return _objects.AddOrUpdate(obj.Id, obj, (_, existing) =>
|
||||||
{
|
{
|
||||||
|
@ -46,7 +46,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
|
|||||||
/// <exception cref="ArgumentNullException"><paramref name="configuration" /> is <see langword="null" />.</exception>
|
/// <exception cref="ArgumentNullException"><paramref name="configuration" /> is <see langword="null" />.</exception>
|
||||||
public VirtualParadiseClient(VirtualParadiseConfiguration configuration)
|
public VirtualParadiseClient(VirtualParadiseConfiguration configuration)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(configuration);
|
if (configuration is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(configuration));
|
||||||
|
}
|
||||||
|
|
||||||
Services = configuration.Services;
|
Services = configuration.Services;
|
||||||
_configuration = new VirtualParadiseConfiguration(configuration);
|
_configuration = new VirtualParadiseConfiguration(configuration);
|
||||||
Initialize();
|
Initialize();
|
||||||
@ -298,7 +302,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
|
|||||||
/// <exception cref="TimeoutException">Connection to the world server timed out.</exception>
|
/// <exception cref="TimeoutException">Connection to the world server timed out.</exception>
|
||||||
public async Task EnterAsync(VirtualParadiseWorld world)
|
public async Task EnterAsync(VirtualParadiseWorld world)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(world);
|
if (world is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(world));
|
||||||
|
}
|
||||||
|
|
||||||
await EnterAsync(world.Name).ConfigureAwait(false);
|
await EnterAsync(world.Name).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,7 +325,10 @@ public sealed partial class VirtualParadiseClient : IDisposable
|
|||||||
/// <exception cref="TimeoutException">Connection to the world server timed out.</exception>
|
/// <exception cref="TimeoutException">Connection to the world server timed out.</exception>
|
||||||
public async Task<VirtualParadiseWorld> EnterAsync(string worldName)
|
public async Task<VirtualParadiseWorld> EnterAsync(string worldName)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(worldName);
|
if (worldName is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(worldName));
|
||||||
|
}
|
||||||
|
|
||||||
if (CurrentWorld is not null)
|
if (CurrentWorld is not null)
|
||||||
{
|
{
|
||||||
@ -555,7 +566,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public Task<VirtualParadiseMessage> SendMessageAsync(string message)
|
public Task<VirtualParadiseMessage> SendMessageAsync(string message)
|
||||||
{
|
{
|
||||||
ArgumentNullException.ThrowIfNull(message);
|
if (message is null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(message));
|
||||||
|
}
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(message))
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
{
|
{
|
||||||
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
||||||
@ -628,7 +643,11 @@ public sealed partial class VirtualParadiseClient : IDisposable
|
|||||||
/// </exception>
|
/// </exception>
|
||||||
public Task<VirtualParadiseMessage> SendMessageAsync(string? name, string message, FontStyle fontStyle, Color color)
|
public Task<VirtualParadiseMessage> 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))
|
if (string.IsNullOrWhiteSpace(message))
|
||||||
{
|
{
|
||||||
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
throw new ArgumentException(ExceptionMessages.ValueCannotBeEmpty, nameof(message));
|
||||||
|
Loading…
Reference in New Issue
Block a user