private void OnMessagingGotGameMessage(Messages.PluginMessage msg)
 {
     OnScreenLog.Add("Got message...");
     SonyNpMessaging.GameData gameData = default(SonyNpMessaging.GameData);
     byte[] messageAttachment          = Messaging.GetMessageAttachment();
     gameData.ReadFromBuffer(messageAttachment);
     OnScreenLog.Add(" text: " + gameData.text);
     OnScreenLog.Add(" item1: " + gameData.item1);
     OnScreenLog.Add(" item2: " + gameData.item2);
 }
 private void OnMessagingGotInGameDataMessage(Messages.PluginMessage msg)
 {
     SonyNpMessaging.GameData gameData = default(SonyNpMessaging.GameData);
     OnScreenLog.Add("Got in-game data message...");
     while (Messaging.InGameDataMessagesRecieved())
     {
         Messaging.InGameDataMessage inGameDataMessage = Messaging.GetInGameDataMessage();
         gameData.ReadFromBuffer(inGameDataMessage.data);
         OnScreenLog.Add(string.Concat(new object[]
         {
             " ID: ",
             inGameDataMessage.messageID,
             " text: ",
             gameData.text,
             " item1: ",
             gameData.item1,
             " item2: ",
             gameData.item2
         }));
     }
 }
 public void MenuMessaging(MenuStack menuStack)
 {
     this.menuMessaging.Update();
     if (this.menuMessaging.AddItem("Show Messages & Invites", User.get_IsSignedInPSN() && !Messaging.IsBusy()))
     {
         Messaging.ShowRecievedDataMessageDialog();
     }
     if (this.menuMessaging.AddItem("Send Session Invite", User.get_IsSignedInPSN() && Matching.get_InSession()))
     {
         string text = "Join my session";
         int    num  = 8;
         Matching.InviteToSession(text, num);
     }
     if (this.menuMessaging.AddItem("Send Game Invite", User.get_IsSignedInPSN() && !Messaging.IsBusy()))
     {
         byte[] data = new SonyNpMessaging.GameInviteData
         {
             taunt = "I got an awesome score, can you do better?",
             level = 1,
             score = 123456789
         }.WriteToBuffer();
         Messaging.MsgRequest msgRequest = new Messaging.MsgRequest();
         msgRequest.set_body("Game invite");
         msgRequest.expireMinutes = 30;
         msgRequest.set_data(data);
         msgRequest.npIDCount = 8;
         string dataDescription = "Some data to test invite messages";
         string dataName        = "Test data";
         msgRequest.dataDescription = dataDescription;
         msgRequest.dataName        = dataName;
         msgRequest.iconPath        = Application.get_streamingAssetsPath() + "/PSP2SessionImage.jpg";
         Messaging.SendMessage(msgRequest);
     }
     if (this.menuMessaging.AddItem("Send Data Message", User.get_IsSignedInPSN() && !Messaging.IsBusy()))
     {
         SonyNpMessaging.GameData gameData = default(SonyNpMessaging.GameData);
         gameData.text  = "Here's some data";
         gameData.item1 = 2;
         gameData.item2 = 987654321;
         byte[] data2 = gameData.WriteToBuffer();
         Messaging.MsgRequest msgRequest2 = new Messaging.MsgRequest();
         msgRequest2.set_body("Data message");
         msgRequest2.expireMinutes = 0;
         msgRequest2.set_data(data2);
         msgRequest2.npIDCount = 8;
         string dataDescription2 = "Some data to test messages";
         string dataName2        = "Test data";
         msgRequest2.dataDescription = dataDescription2;
         msgRequest2.dataName        = dataName2;
         msgRequest2.iconPath        = Application.get_streamingAssetsPath() + "/PSP2SessionImage.jpg";
         Messaging.SendMessage(msgRequest2);
     }
     if (this.menuMessaging.AddItem("Send In Game Data (Session)", Matching.get_InSession() && !Messaging.IsBusy()))
     {
         Matching.SessionMemberInfo[] members = Matching.GetSession().members;
         if (members == null)
         {
             return;
         }
         int num2 = -1;
         for (int i = 0; i < members.Length; i++)
         {
             if ((members[i].memberFlag & 4) == null)
             {
                 num2 = i;
                 break;
             }
         }
         if (num2 >= 0)
         {
             OnScreenLog.Add("Sending in game data message to " + members[num2].get_npOnlineID());
             SonyNpMessaging.GameData gameData2 = default(SonyNpMessaging.GameData);
             gameData2.text  = "Here's some data";
             gameData2.item1 = 2;
             gameData2.item2 = 987654321;
             byte[] array = gameData2.WriteToBuffer();
             Messaging.SendInGameDataMessage(members[num2].get_npID(), array);
         }
         else
         {
             OnScreenLog.Add("No session member to send to.");
         }
     }
     if (this.menuMessaging.AddItem("Send In Game Message (Friend)", User.get_IsSignedInPSN() && !Messaging.IsBusy()))
     {
         Friends.Friend[] cachedFriendsList = Friends.GetCachedFriendsList();
         if (cachedFriendsList.Length > 0)
         {
             int num3 = 0;
             if (num3 >= 0)
             {
                 OnScreenLog.Add("Sending in game data message to " + cachedFriendsList[num3].get_npOnlineID());
                 SonyNpMessaging.GameData gameData3 = default(SonyNpMessaging.GameData);
                 gameData3.text  = "Here's some data";
                 gameData3.item1 = 2;
                 gameData3.item2 = 987654321;
                 byte[] array2 = gameData3.WriteToBuffer();
                 Messaging.SendInGameDataMessage(cachedFriendsList[num3].get_npID(), array2);
             }
             else
             {
                 OnScreenLog.Add("No friends in this context.");
             }
         }
         else
         {
             OnScreenLog.Add("No friends cached.");
             OnScreenLog.Add("refresh the friends list then try again.");
         }
     }
     if (this.menuMessaging.AddBackIndex("Back", true))
     {
         menuStack.PopMenu();
     }
 }