.clubtransfer added, transfer ownership of your club
This commit is contained in:
		@@ -26,6 +26,19 @@ namespace NadekoBot.Modules.Xp
 | 
			
		||||
                _client = client;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
            public async Task ClubTransfer([Remainder]IUser newOwner)
 | 
			
		||||
            {
 | 
			
		||||
                var club = _service.TransferClub(Context.User, newOwner);
 | 
			
		||||
 | 
			
		||||
                if(club != null)
 | 
			
		||||
                    await ReplyConfirmLocalized("club_transfered", 
 | 
			
		||||
                        Format.Bold(club.Name), 
 | 
			
		||||
                        Format.Bold(newOwner.ToString())).ConfigureAwait(false);
 | 
			
		||||
                else
 | 
			
		||||
                    await ReplyErrorLocalized("club_transfer_failed").ConfigureAwait(false);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
			
		||||
            public async Task ClubAdmin([Remainder]IUser toAdmin)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -51,6 +51,27 @@ namespace NadekoBot.Modules.Xp.Services
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public ClubInfo TransferClub(IUser from, IUser newOwner)
 | 
			
		||||
        {
 | 
			
		||||
            ClubInfo club;
 | 
			
		||||
            using (var uow = _db.UnitOfWork)
 | 
			
		||||
            {
 | 
			
		||||
                club = uow.Clubs.GetByOwner(from.Id);
 | 
			
		||||
                var newOwnerUser = uow.DiscordUsers.GetOrCreate(newOwner);
 | 
			
		||||
 | 
			
		||||
                if (club == null ||
 | 
			
		||||
                    club.Owner.UserId != from.Id ||
 | 
			
		||||
                    !club.Users.Contains(newOwnerUser))
 | 
			
		||||
                    return null;
 | 
			
		||||
 | 
			
		||||
                club.Owner.IsClubAdmin = true; // old owner will stay as admin
 | 
			
		||||
                newOwnerUser.IsClubAdmin = true;
 | 
			
		||||
                club.Owner = newOwnerUser;
 | 
			
		||||
                uow.Complete();
 | 
			
		||||
            }
 | 
			
		||||
            return club;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool ToggleAdmin(IUser owner, IUser toAdmin)
 | 
			
		||||
        {
 | 
			
		||||
            bool newState;
 | 
			
		||||
@@ -58,14 +79,14 @@ namespace NadekoBot.Modules.Xp.Services
 | 
			
		||||
            {
 | 
			
		||||
                var club = uow.Clubs.GetByOwner(owner.Id);
 | 
			
		||||
                var adminUser = uow.DiscordUsers.GetOrCreate(toAdmin);
 | 
			
		||||
 | 
			
		||||
                if (club.OwnerId == adminUser.Id)
 | 
			
		||||
                    return true;
 | 
			
		||||
 | 
			
		||||
                
 | 
			
		||||
                if (club == null || club.Owner.UserId != owner.Id || 
 | 
			
		||||
                    !club.Users.Contains(adminUser))
 | 
			
		||||
                    throw new InvalidOperationException();
 | 
			
		||||
 | 
			
		||||
                if (club.OwnerId == adminUser.Id)
 | 
			
		||||
                    return true;
 | 
			
		||||
 | 
			
		||||
                newState = adminUser.IsClubAdmin = !adminUser.IsClubAdmin;
 | 
			
		||||
                uow.Complete();
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
@@ -925,5 +925,7 @@
 | 
			
		||||
  "administration_invalid": "Invalid / Can't be found ({0})",
 | 
			
		||||
  "administration_mass_kill_in_progress": "Mass Banning and Blacklisting of {0} users is in progress...",
 | 
			
		||||
  "administration_mass_kill_completed": "Mass Banning and Blacklisting of {0} users is complete.",
 | 
			
		||||
  "searches_failed_finding_novel": "Can't find that novel. Make sure you've typed the exact full name, and that it exists on novelupdates.com"
 | 
			
		||||
  "searches_failed_finding_novel": "Can't find that novel. Make sure you've typed the exact full name, and that it exists on novelupdates.com",
 | 
			
		||||
  "xp_club_transfered": "Ownership of the club {0} has been transfered to {1}",
 | 
			
		||||
  "xp_club_transfer_failed": "Transfer failed. You must be the club owner. Target must be a member of your club."
 | 
			
		||||
}
 | 
			
		||||
@@ -2871,6 +2871,13 @@
 | 
			
		||||
      "{0}clubcreate b1nzy's friends"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "clubtransfer": {
 | 
			
		||||
    "Cmd": "clubtransfer",
 | 
			
		||||
    "Desc": "Transfers the ownership of the club to another member of the club.",
 | 
			
		||||
    "Usage": [
 | 
			
		||||
      "{0}clubtransfer @b1nzy"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "clubinformation": {
 | 
			
		||||
    "Cmd": "clubinfo",
 | 
			
		||||
    "Desc": "Shows information about the club.",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user