public List <ObjectGuid> Roommates; // The ID list for all of your roommates public HouseAccess() { Bitmask = 0; MonarchID = ObjectGuid.Invalid; GuestList = new Dictionary <ObjectGuid, GuestInfo>(); Roommates = new List <ObjectGuid>(); }
public HouseAccess(House house) { Bitmask = 0; MonarchID = ObjectGuid.Invalid; GuestList = new Dictionary <ObjectGuid, GuestInfo>(); Roommates = new List <ObjectGuid>(); if (house == null) { return; } if (house.MonarchId != null) { MonarchID = new ObjectGuid(house.MonarchId.Value); // for allegiance guest/storage access } if (house.OpenToEveryone) { Bitmask |= HARBitfield.OpenHouse; } foreach (var guest in house.Guests) { var player = PlayerManager.FindByGuid(guest.Key); if (player != null && player.Guid != MonarchID) { GuestList.Add(guest.Key, new GuestInfo(guest.Value, player.Name)); } if (player.Guid == MonarchID) { if (guest.Value) { Bitmask |= HARBitfield.AllegianceStorage; } else { Bitmask |= HARBitfield.AllegianceGuests; } } } if (house.HouseOwner == null) { return; } // add in players on house owner's account var owner = PlayerManager.FindByGuid(house.HouseOwner.Value); // added for people deleting accounts from their account db... if (owner == null || owner.Account == null) { Console.WriteLine($"HouseAccess({house.HouseInstance:X8}): couldn't find house owner {house.HouseOwner:X8}"); return; } var accountPlayers = Player.GetAccountPlayers(owner.Account.AccountId); foreach (var accountPlayer in accountPlayers) { if (owner.Guid != accountPlayer.Guid) { Roommates.Add(accountPlayer.Guid); } } }