private async void OnRegionEntered(RegionHooks.RegionEnteredEventArgs e) { var city = await Cities.FindByRegionAsync(e.Region.Name); if (city != null) { var first = city.Discovered.Count == 0; if (!e.Player.HasPermission("citiez.all") && !city.Discovered.Contains(e.Player.Account.ID) && await Cities.DiscoverAsync(city.Name, e.Player)) { if (first && await Cities.AddDiscoveryAsync(city.Name, e.Player)) { e.Player.SendInfoMessage(string.Format(Config.FirstDiscoveredCity, city.Name)); } e.Player.SendInfoMessage(string.Format(Config.DiscoveredCity, city.Name)); } var discovery = await Cities.GetDiscoveryAsync(city.Name); if (discovery == null) { return; } e.Player.SendInfoMessage(string.Format(Config.WelcomeMessage, city.Name, discovery.User.Name)); } }