コード例 #1
0
 static void Prefix(DistributedMatchUp.Match[] requests, DistributedMatchUp.Match backfillSeedMatch)
 {
     foreach (var m in requests)
     {
         Debug.Log(DateTime.Now.ToString() + ": HOST: FindGameSessionToCreate req " + m.uid + " maxp=" + m.maxPlayers + " #p=" + JArray.Parse(m.matchData["mm_players"].stringValue).Count);
     }
     if (backfillSeedMatch != null)
     {
         var m = backfillSeedMatch;
         Debug.Log(DateTime.Now.ToString() + ": HOST: FindGameSessionToCreate backfill " + m.uid + " maxp=" + m.maxPlayers + " #p=" + JArray.Parse(m.matchData["mm_players"].stringValue).Count);
     }
 }
コード例 #2
0
        private static void Prefix(List <DistributedMatchUp.Match> candidates, DistributedMatchUp.Match backfillSeedMatch)
        {
            if (HostArg == null || backfillSeedMatch != null)
            {
                return;
            }
            List <DistributedMatchUp.Match> delReqs = new List <DistributedMatchUp.Match>();

            foreach (var req in candidates)
            {
                foreach (var player in JArray.Parse(req.matchData["mm_players"].stringValue))
                {
                    JObject attrs = (player as JObject)["PlayerAttributes"] as JObject;
                    if (!attrs.TryGetValue("password", out JToken passwordAttrToken) || passwordAttrToken == null)
                    {
                        continue;
                    }
                    var passwordAttr     = passwordAttrToken as JObject;
                    var passwordAttrType = (string)passwordAttr["attributeType"];
                    if (passwordAttrType != "STRING" && passwordAttrType != "STRING_LIST")
                    {
                        continue;
                    }
                    string password = (string)(passwordAttrType == "STRING_LIST" ? ((JArray)passwordAttr["valueAttribute"])[0] : passwordAttr["valueAttribute"]);
                    if (password == "")
                    {
                        continue;
                    }
                    var    i    = password.IndexOf('_'); // allow password suffix with '_'
                    string name = i == -1 ? password : password.Substring(0, i);
                    if (!name.Equals(HostArg, StringComparison.InvariantCultureIgnoreCase))
                    {
                        Debug.LogFormat("{0}: {1}: Match with wrong host ignored: {2}", DateTime.Now.ToString(), HostArg, name);
                        delReqs.Add(req);
                        break;
                    }
                }
            }
            foreach (var req in delReqs)
            {
                candidates.Remove(req);
            }
        }
コード例 #3
0
        static void Postfix(DistributedMatchUp.Match __result)
        {
            var m = __result;

            Debug.Log(DateTime.Now.ToString() + " " + System.Diagnostics.Process.GetCurrentProcess().Id + ": received " + (m == null ? "null" : m.uid + " type " + m.matchData["mm_ticketType"] + " tickets " + m.matchData.GetValueSafe("mm_mmTickets")));
        }
コード例 #4
0
 static void Postfix(DistributedMatchUp __instance)
 {
     DistributedMatchUp.Match m = __instance.ActiveMatch;
     Debug.Log(DateTime.Now.ToString() + " " + System.Diagnostics.Process.GetCurrentProcess().Id + ": update match " + m.uid + " updated to " + m.matchData["mm_ticketType"]);
 }