Esempio n. 1
0
        public static void TransmitFriendUpdate(Friend friend, string[] fields)
        {
            //Generate message
            var upd = new JObject();

            upd["msg"] = "colupd";
            upd["ops"] = new JArray {
                friend.Update("friends", fields)
            };
            Browsers.AsyncSendTo(m => m.friendlist != null && m.friendlist.Any(x => x.id == friend.id), new TextArgs(upd.ToString(Formatting.None), "friend"),
                                 req => { });
        }
Esempio n. 2
0
        public static void TransmitPartyUpdate(Party party, string[] fields)
        {
            //Generate message
            var upd = new JObject();

            upd["msg"] = "colupd";
            upd["ops"] = new JArray {
                party.Update("parties", fields)
            };
            Browsers.AsyncSendTo(m => m.party != null && m.party.id == party.id, new TextArgs(upd.ToString(Formatting.None), "party"),
                                 req => { });
        }
Esempio n. 3
0
        public static void TransmitMatchmakeUpdate(Matchmake matchmake, string[] fields)
        {
            //Generate message
            var upd = new JObject();

            upd["msg"] = "colupd";
            upd["ops"] = new JArray {
                matchmake.Update("matchmake", fields)
            };
            Browsers.AsyncSendTo(m => m.matchmake != null && m.matchmake.id == matchmake.id, new TextArgs(upd.ToString(Formatting.None), "lobby"),
                                 req => { });
        }
Esempio n. 4
0
        public void HandleMessage(ITextArgs textArgs)
        {
            try
            {
                var jdata = JObject.Parse(textArgs.data);
                var id    = jdata["msg"];
                if (id == null)
                {
                    return;
                }
                var command = id.Value <string>();
                switch (command)
                {
                case OnInstalledMod.Msg:
                {
                    var msg = jdata.ToObject <OnInstalledMod>();
                    log.Debug(SteamID + " -> installed " + msg.Mod.name + ".");
                    Mods.Add(msg.Mod);
                    Browser.AsyncSendTo(x => x.user != null && x.user.steam.steamid == SteamID, BrowserController.InstallResponse("The mod has been installed.", true), rf => { });
                    break;
                }

                case OnDeletedMod.Msg:
                {
                    var msg = jdata.ToObject <OnDeletedMod>();
                    log.Debug(SteamID + " -> removed " + msg.Mod.name + ".");
                    var localMod = Mods.FirstOrDefault(m => Equals(msg.Mod, m));
                    if (localMod != null)
                    {
                        Mods.Remove(localMod);
                    }
                    break;
                }

                case Init.Msg:
                {
                    var msg = jdata.ToObject <Init>();
                    InitData = msg;
                    if (msg.Version != Version.ClientVersion)
                    {
                        this.SendJson(JObject.FromObject(new Shutdown()).ToString(Formatting.None), "commands");
                        return;
                    }
                    foreach (var mod in msg.Mods.Where(mod => mod != null && mod.name != null && mod.version != null))
                    {
                        Mods.Add(mod);
                    }
                    //Insert the client into the DB
                    RegisterClient();
                    break;
                }

                case RequestMod.Msg:
                {
                    var msg = jdata.ToObject <RequestMod>();
                    var mod = D2MPMaster.Mods.Mods.ByName(msg.Mod.name);
                    if (mod != null && mod.playable)
                    {
                        if (!Mods.Any(m => m.name == mod.name && m.version == mod.version))
                        {
                            this.InstallMod(this.UID, mod);
                        }
                    }

                    break;
                }
                }
            }
            catch (Exception ex)
            {
                log.Error("Error parsing client message.", ex);
            }
        }