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 => { }); }
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 => { }); }
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 => { }); }
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); } }