Esempio n. 1
0
        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));
            }
        }