コード例 #1
0
        public static World FindWorldOrPrintMatches(Player player, string worldName)
        {
            if (player == null)
            {
                throw new ArgumentNullException("player");
            }
            if (worldName == null)
            {
                throw new ArgumentNullException("worldName");
            }
            List <World> matches         = new List <World>(FindWorlds(worldName));
            SearchingForWorldEventArgs e = new SearchingForWorldEventArgs(player, worldName, matches, false);

            RaiseSearchingForWorldEvent(e);
            matches = e.Matches;

            if (matches.Count == 0)
            {
                player.NoWorldMessage(worldName);
                return(null);
            }
            else if (matches.Count > 1)
            {
                player.ManyMatchesMessage("world", matches.ToArray());
                return(null);
            }
            else
            {
                return(matches[0]);
            }
        }
コード例 #2
0
        internal static void RaiseSearchingForWorldEvent(SearchingForWorldEventArgs e)
        {
            var h = SearchingForWorld;

            if (h != null)
            {
                h(null, e);
            }
        }
コード例 #3
0
ファイル: Worlds.cs プロジェクト: team9000/fcraft-team9000
        public static void OnSearchingForWorld(Object sender, SearchingForWorldEventArgs e)
        {
            //if (!e.ToJoin) return;
            if (e.Matches.Count <= 1)
            {
                return;
            }
            World found = FindWorldNum(e.SearchTerm);

            if (found != null)
            {
                e.Matches.Clear();
                e.Matches.Add(found);
            }
        }
コード例 #4
0
        /// <summary> Finds all worlds that match the given name.
        /// Autocompletes. Raises SearchingForWorld event.
        /// Target worlds are not guaranteed to have a loaded map.</summary>
        /// <param name="player"> Player who is calling the query. May be null. </param>
        /// <param name="name"> Full or partial world name. </param>
        /// <returns> An array of 0 or more worlds that matched the name. </returns>
        public static World[] FindWorlds([CanBeNull] Player player, [NotNull] string name)
        {
            if (name == null)
            {
                throw new ArgumentNullException("name");
            }
            World[] matches = FindWorldsNoEvent(name);
            var     h       = SearchingForWorld;

            if (h != null)
            {
                SearchingForWorldEventArgs e = new SearchingForWorldEventArgs(player, name, matches.ToList());
                h(null, e);
                matches = e.Matches.ToArray();
            }
            return(matches);
        }