예제 #1
0
 public static void AcceptFriendRequest(string notificationId)
 {
     if (!string.IsNullOrEmpty(notificationId))
     {
         VRCApi.Request <ApiResponse>((response) => MainForm.Instance.OnAcceptFriendRequest(notificationId, response), $"auth/user/notifications/{notificationId}/accept", ApiMethod.PUT);
     }
 }
예제 #2
0
 public static void DeclineFriendRequest(string notificationId)
 {
     if (!string.IsNullOrEmpty(notificationId))
     {
         VRCApi.Request <ApiNotification>(MainForm.Instance.OnDeclineFriendRequest, $"auth/user/notifications/{notificationId}/hide", ApiMethod.PUT);
     }
 }
예제 #3
0
 public static void CancelFriendRequest(string userId)
 {
     if (!string.IsNullOrEmpty(userId))
     {
         VRCApi.Request <ApiResponse>((response) => MainForm.Instance.OnCancelFriendRequest(userId, response), $"user/{userId}/friendRequest", ApiMethod.DELETE);
     }
 }
예제 #4
0
 // AddFriend
 public static void SendFriendRequest(string userId)
 {
     if (!string.IsNullOrEmpty(userId))
     {
         VRCApi.Request <ApiNotification>((response) => MainForm.Instance.OnSendFriendRequest(userId, response), $"user/{userId}/friendRequest", ApiMethod.POST);
     }
 }
예제 #5
0
 // LoadFriendStatus
 public static void CheckFriendStatus(string userId)
 {
     if (!string.IsNullOrEmpty(userId))
     {
         VRCApi.Request <FriendStatus>((status) => MainForm.Instance.OnFriendStatus(userId, status), $"user/{userId}/friendStatus");
     }
 }
예제 #6
0
 // RemoveFriend
 public static void UnfriendUser(string userId)
 {
     if (!string.IsNullOrEmpty(userId))
     {
         VRCApi.Request <ApiResponse>((response) => MainForm.Instance.OnUnfriendUser(userId, response), $"auth/user/friends/{userId}", ApiMethod.DELETE);
     }
 }
예제 #7
0
 public static void Fetch(string id)
 {
     if (!string.IsNullOrEmpty(id))
     {
         VRCApi.Request <ApiWorld>(MainForm.Instance.OnWorld, $"worlds/{id}");
     }
 }
예제 #8
0
 public static void FetchAllMine()
 {
     // VRCApi.Request<List<ApiPlayerModeration>>(MainForm.Instance.OnPlayerModerations, "auth/user/playermoderations");
     VRCApi.Request <List <ApiPlayerModeration> >(MainForm.Instance.OnPlayerModerations, "auth/user/playermoderations?type=block");
     VRCApi.Request <List <ApiPlayerModeration> >(MainForm.Instance.OnPlayerModerations, "auth/user/playermoderations?type=mute");
     VRCApi.Request <List <ApiPlayerModeration> >(MainForm.Instance.OnPlayerModerations, "auth/user/playermoderations?type=hideAvatar");
 }
예제 #9
0
 public static void AssignToThisUser(string avatarId)
 {
     if (!string.IsNullOrEmpty(avatarId))
     {
         VRCApi.Request <ApiUser>(MainForm.Instance.OnCurrentUser, $"avatars/{avatarId}/select", ApiMethod.PUT);
     }
 }
예제 #10
0
 public static void Fetch(string id)
 {
     if (!string.IsNullOrEmpty(id))
     {
         VRCApi.Request <ApiAvatar>(MainForm.Instance.OnAvatar, $"avatars/{id}");
     }
 }
예제 #11
0
 public static void Fetch(string id, object arg)
 {
     if (!string.IsNullOrEmpty(id))
     {
         VRCApi.Request <ApiFile>((file) => MainForm.Instance.OnFile(arg, file), $"file/{id}");
     }
 }
예제 #12
0
 public static void RemoveFavorite(string objectId)
 {
     if (!string.IsNullOrEmpty(objectId))
     {
         VRCApi.Request <ApiResponse>(MainForm.Instance.OnRemoveFavorite, $"favorites/{objectId}", ApiMethod.DELETE);
     }
 }
예제 #13
0
 public static void SetStatus(string userId, string status, string statusDescription)
 {
     VRCApi.Request <ApiUser>(MainForm.Instance.OnSetStatus, $"users/{userId}", ApiMethod.PUT, new Dictionary <string, object>()
     {
         ["status"]            = status,
         ["statusDescription"] = statusDescription
     });
 }
예제 #14
0
 public static void Fetch(string worldId, string instanceId)
 {
     if (!string.IsNullOrEmpty(worldId) &&
         !string.IsNullOrEmpty(instanceId))
     {
         VRCApi.Request <ApiWorldInstance>(MainForm.Instance.OnWorldInstance, $"worlds/{worldId}/{instanceId}");
     }
 }
예제 #15
0
 public static void FetchRecentList()
 {
     VRCApi.Request <List <ApiWorld> >(MainForm.Instance.OnWorlds, "worlds/recent", ApiMethod.GET, new Dictionary <string, object>
     {
         ["n"]             = 100,
         ["offset"]        = 0,
         ["releaseStatus"] = "all"
     });
 }
예제 #16
0
 public static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     LocalConfig.LoadConfig();
     VRCApi.LoadCookie();
     Application.Run(new MainForm());
     VRCApi.SaveCookie();
     LocalConfig.SaveConfig();
 }
예제 #17
0
 public static void SendModeration(string targetUserId, ModerationType type)
 {
     if (!string.IsNullOrEmpty(targetUserId))
     {
         VRCApi.Request <ApiPlayerModeration>(MainForm.Instance.OnSendModeration, "auth/user/playermoderations", ApiMethod.POST, new Dictionary <string, object>
         {
             ["moderated"] = targetUserId,
             ["type"]      = ModerationTypeToAPIString(type)
         });
     }
 }
예제 #18
0
 public static void DeleteModeration(string targetUserId, ModerationType type)
 {
     if (!string.IsNullOrEmpty(targetUserId))
     {
         VRCApi.Request <ApiResponse>(MainForm.Instance.OnDeleteModeration, "auth/user/unplayermoderate", ApiMethod.PUT, new Dictionary <string, object>
         {
             ["moderated"] = targetUserId,
             ["type"]      = ModerationTypeToAPIString(type)
         });
     }
 }
예제 #19
0
 public static void FetchMyList()
 {
     VRCApi.Request <List <ApiWorld> >(MainForm.Instance.OnWorlds, "worlds", ApiMethod.GET, new Dictionary <string, object>
     {
         ["n"]             = 100,
         ["offset"]        = 0,
         ["user"]          = "******",
         ["sort"]          = "updated",
         ["order"]         = "descending",
         ["releaseStatus"] = "all"
     });
 }
예제 #20
0
 public static void FetchUsers(string search)
 {
     if (!string.IsNullOrEmpty(search))
     {
         VRCApi.Request <List <ApiUser> >(MainForm.Instance.OnUsers, "users", ApiMethod.GET, new Dictionary <string, object>
         {
             ["n"]      = 25,
             ["offset"] = 0,
             ["search"] = search
         });
     }
 }
예제 #21
0
 public static void SendMessage(string userId, string message)
 {
     if (!string.IsNullOrEmpty(userId) &&
         !string.IsNullOrEmpty(message))
     {
         // ApiNotification이긴한데 오류가 나길래 귀찮아서 걍 함
         VRCApi.Request <ApiResponse>((response) => MainForm.Instance.OnSendMessage(userId, response), $"user/{userId}/message", ApiMethod.POST, new Dictionary <string, object>
         {
             ["type"]    = "message",
             ["message"] = message
         });
     }
 }
예제 #22
0
 private void button_login_Click(object sender, EventArgs e)
 {
     if (Enabled)
     {
         var username = textbox_username.Text;
         var password = textbox_password.Text;
         if (!(string.IsNullOrEmpty(username) || string.IsNullOrEmpty(password)))
         {
             Enabled = false;
             VRCApi.Login(username, password);
         }
     }
 }
예제 #23
0
 private static void FetchAll(Action <List <ApiNotification> > callback, Dictionary <string, object> param, int count = 100, int offset = 0)
 {
     param["n"]      = count;
     param["offset"] = offset;
     VRCApi.Request <List <ApiNotification> >((list) =>
     {
         if (list.Count == count)
         {
             FetchAll(callback, param, count, offset + count);
         }
         callback.Invoke(list);
     }, "auth/user/notifications", ApiMethod.GET, param);
 }
예제 #24
0
 private static void FetchList(Action <List <ApiAvatar> > callback, Dictionary <string, object> param, int count = 100, int offset = 0)
 {
     param["n"]      = count;
     param["offset"] = offset;
     VRCApi.Request <List <ApiAvatar> >((list) =>
     {
         if (list.Count == count && offset + count < 500)
         {
             FetchList(callback, param, count, offset + count);
         }
         callback.Invoke(list);
     }, "avatars", ApiMethod.GET, param);
 }
예제 #25
0
        public static void FetchList(FavoriteType type, string tags = null)
        {
            var param = new Dictionary <string, object>
            {
                ["n"]    = 100,
                ["type"] = type.ToString().ToLower()
            };

            if (!string.IsNullOrEmpty(tags))
            {
                param["tags"] = tags;
            }
            VRCApi.Request <List <ApiFavorite> >((list) => MainForm.Instance.OnFavorites(type, list), "favorites", ApiMethod.GET, param);
        }
예제 #26
0
 public static void FetchList(string search)
 {
     if (!string.IsNullOrEmpty(search))
     {
         VRCApi.Request <List <ApiWorld> >(MainForm.Instance.OnWorlds, "worlds", ApiMethod.GET, new Dictionary <string, object>
         {
             ["n"]             = 100,
             ["offset"]        = 0,
             ["sort"]          = "popularity",
             ["order"]         = "descending",
             ["search"]        = search,
             ["releaseStatus"] = "public"
         });
     }
 }
예제 #27
0
 public static void FetchListByUser(string userId)
 {
     if (!string.IsNullOrEmpty(userId))
     {
         VRCApi.Request <List <ApiWorld> >(MainForm.Instance.OnWorlds, "worlds", ApiMethod.GET, new Dictionary <string, object>
         {
             ["n"]             = 100,
             ["offset"]        = 0,
             ["userId"]        = userId,
             ["sort"]          = "updated",
             ["order"]         = "descending",
             ["releaseStatus"] = "public"
         });
     }
 }
예제 #28
0
 public static void AddFavorite(string objectId, FavoriteType type, string tags = null)
 {
     if (!string.IsNullOrEmpty(objectId))
     {
         var param = new Dictionary <string, object>()
         {
             ["type"]       = type.ToString().ToLower(),
             ["favoriteId"] = objectId
         };
         if (!string.IsNullOrEmpty(tags))
         {
             param["tags"] = tags;
         }
         VRCApi.Request <ApiFavorite>(MainForm.Instance.OnAddFavorite, "favorites", ApiMethod.POST, param);
     }
 }
예제 #29
0
 private void button_login_with_steam_Click(object sender, EventArgs e)
 {
     if (Enabled)
     {
         if (VRChatRPC.Update())
         {
             Enabled = false;
             VRCApi.ThridPartyLogin("steam", new Dictionary <string, object>
             {
                 ["steamTicket"] = VRChatRPC.GetAuthSessionTicket()
             });
         }
         else
         {
             MessageBox.Show("Login via Steam failed, It only works when VRChat is running.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
예제 #30
0
 public static void FetchAllAgainstMe()
 {
     VRCApi.Request <List <ApiPlayerModeration> >(MainForm.Instance.OnPlayerModerationsAgainstMe, "auth/user/playermoderated");
 }