public async Task <Result <FeedbackMessage> > LeaveRoleplayAsync ( [AutocompleteProvider("roleplay::joined")] Roleplay roleplay ) { var removeUserResult = await _discordRoleplays.RemoveUserFromRoleplayAsync(roleplay, _context.User.ID); if (!removeUserResult.IsSuccess) { return(Result <FeedbackMessage> .FromError(removeUserResult)); } return(new FeedbackMessage ( $"Left <@{roleplay.Owner.DiscordID}>'s roleplay \"{roleplay.Name}\"", _feedback.Theme.Secondary )); }
public async Task LeaveRoleplayAsync(Roleplay roleplay) { if (!(this.Context.User is IGuildUser guildUser)) { return; } var removeUserResult = await _discordRoleplays.RemoveUserFromRoleplayAsync(roleplay, guildUser); if (!removeUserResult.IsSuccess) { await _feedback.SendErrorAsync(this.Context, removeUserResult.ErrorReason); return; } var roleplayOwnerUser = await this.Context.Guild.GetUserAsync((ulong)roleplay.Owner.DiscordID); await _feedback.SendConfirmationAsync(this.Context, $"Left {roleplayOwnerUser.Mention}'s roleplay \"{roleplay.Name}\""); }
public async Task <RuntimeResult> LeaveRoleplayAsync(Roleplay roleplay) { if (!(this.Context.User is IGuildUser guildUser)) { return(RuntimeCommandResult.FromError("The current user isn't a guild user.")); } var removeUserResult = await _discordRoleplays.RemoveUserFromRoleplayAsync(roleplay, guildUser); if (!removeUserResult.IsSuccess) { return(removeUserResult.ToRuntimeResult()); } var roleplayOwnerUser = await this.Context.Guild.GetUserAsync((ulong)roleplay.Owner.DiscordID); return(RuntimeCommandResult.FromSuccess ( $"Left {roleplayOwnerUser.Mention}'s roleplay \"{roleplay.Name}\"" )); }