@@ -13,12 +13,9 @@ namespace Discord.Commands | |||||
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] | [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)] | ||||
public class RequireOwnerAttribute : PreconditionAttribute | public class RequireOwnerAttribute : PreconditionAttribute | ||||
{ | { | ||||
private IApplication application; | |||||
public override async Task<PreconditionResult> CheckPermissions(CommandContext context, CommandInfo command, IDependencyMap map) | public override async Task<PreconditionResult> CheckPermissions(CommandContext context, CommandInfo command, IDependencyMap map) | ||||
{ | { | ||||
if (application == null) | |||||
application = await context.Client.GetApplicationInfoAsync(); | |||||
var application = await context.Client.GetApplicationInfoAsync(); | |||||
if (context.User.Id == application.Owner.Id) return PreconditionResult.FromSuccess(); | if (context.User.Id == application.Owner.Id) return PreconditionResult.FromSuccess(); | ||||
return PreconditionResult.FromError("Command can only be run by the owner of the bot"); | return PreconditionResult.FromError("Command can only be run by the owner of the bot"); | ||||
} | } | ||||
@@ -38,6 +38,7 @@ namespace Discord.WebSocket | |||||
private int _nextAudioId; | private int _nextAudioId; | ||||
private bool _canReconnect; | private bool _canReconnect; | ||||
private DateTimeOffset? _statusSince; | private DateTimeOffset? _statusSince; | ||||
private RestApplication _application; | |||||
/// <summary> Gets the shard of of this client. </summary> | /// <summary> Gets the shard of of this client. </summary> | ||||
public int ShardId { get; } | public int ShardId { get; } | ||||
@@ -333,8 +334,10 @@ namespace Discord.WebSocket | |||||
} | } | ||||
/// <inheritdoc /> | /// <inheritdoc /> | ||||
public Task<RestApplication> GetApplicationInfoAsync() | |||||
=> ClientHelper.GetApplicationInfoAsync(this); | |||||
public async Task<RestApplication> GetApplicationInfoAsync() | |||||
{ | |||||
return _application ?? (_application = await ClientHelper.GetApplicationInfoAsync(this)); | |||||
} | |||||
/// <inheritdoc /> | /// <inheritdoc /> | ||||
public SocketGuild GetGuild(ulong id) | public SocketGuild GetGuild(ulong id) | ||||