public static int AddAvatar(ApiAvatar apiAvatar) { if (!InitConnection()) { return(-1); } SerializableApiAvatar avatar = new SerializableApiAvatar( apiAvatar.id, apiAvatar.name, apiAvatar.imageUrl, apiAvatar.authorName, apiAvatar.authorId, apiAvatar.assetUrl, apiAvatar.description, apiAvatar.tags, apiAvatar.version, apiAvatar.unityPackageUrl, apiAvatar.thumbnailImageUrl ); VRCTResponse response = RequestSync(new VRCTRequest("ADD", avatar.AsJson()).AsJson()); if (response.returncode != ReturnCodes.SUCCESS && response.returncode != ReturnCodes.AVATAR_ALREADY_IN_FAV) { if (response.returncode != ReturnCodes.BANNED_ADDRESS && response.returncode != ReturnCodes.BANNED_ACCOUNT) { VRCToolsLogger.Error("Unable to add avatar to favorites: error " + response.returncode); } return(response.returncode); } VRCToolsLogger.Info("Avatar added to favorites sucessfully"); return(ReturnCodes.SUCCESS); }
public static List <object> GetAvatars() { List <object> avatars = new List <object>(); VRCToolsLogger.Info("getAvatars"); if (!InitConnection()) { return(avatars); } VRCTRequest request = new VRCTRequest("GET", ""); VRCTResponse response = RequestSync(request.AsJson()); if (response.returncode != ReturnCodes.SUCCESS) { if (response.returncode != ReturnCodes.BANNED_ACCOUNT && response.returncode != ReturnCodes.BANNED_ADDRESS) { VRCToolsLogger.Error("Unable to get avatars: error code " + response.returncode); } return(avatars); } VRCToolsLogger.Info(response.data); List <SerializableApiAvatar> serializedAvatars = SerializableApiAvatar.ParseJson(response.data); foreach (SerializableApiAvatar serializedAvatar in serializedAvatars) { avatars.Add(serializedAvatar.getDictionary()); } return(avatars); }
public void OnGUI() { try { int currentPadding = 20; currentPadding += VRCTServerManager.OnGUI(currentPadding); currentPadding += VRCToolsLogger.OnGUI(currentPadding); foreach (KeyValuePair <int, GUIMessage> e in messagesList.Reverse()) { GUI.color = e.Value.color; GUI.Label(new Rect(0, Screen.height - currentPadding, Screen.width, 20), e.Value.message); currentPadding += 20; } } catch (Exception e) { VRCToolsLogger.Error(e.ToString()); } }
//*/ public void Update() { try { VRCTServerManager.Update(); VRCToolsLogger.Update(); if (discordInit) { DiscordLoader.Update(); } if (avatarInit) { AvatarUtils.Update(); } } catch (Exception e) { VRCToolsLogger.Error(e.ToString()); } }
private void ChangeCacheFolder() { if (!File.Exists("vrctools_datapath.txt")) { StreamWriter writer = new StreamWriter("vrctools_datapath.txt", true); writer.WriteLine(Application.persistentDataPath); writer.Close(); } StreamReader reader = new StreamReader("vrctools_datapath.txt"); string targetPath = reader.ReadLine(); reader.Close(); try { DirectoryInfo di = Directory.CreateDirectory(targetPath); targetPath = di.FullName; } catch (Exception e) { VRCToolsLogger.Error(e.ToString()); VRCToolsLogger.Info("Current cache path: " + Application.persistentDataPath); return; } Func <string> funcPath = () => { return(targetPath); }; BestHTTP.HTTPManager.RootCacheFolderProvider = funcPath; Type httpManager = typeof(VRC.Core.ApiAvatar).Assembly.GetType("VRC.Core.BestHTTP.HTTPManager"); Type httpCacheService = typeof(VRC.Core.ApiAvatar).Assembly.GetType("VRC.Core.BestHTTP.Caching.HTTPCacheService"); httpManager.GetMethod("set_RootCacheFolderProvider", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Invoke(null, new object[] { funcPath }); httpCacheService.GetMethod("set_CacheFolder", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).Invoke(null, new object[] { null }); httpCacheService.GetMethod("CheckSetup", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static).Invoke(null, new object[] { }); VRCToolsLogger.Info("Current cache path: " + targetPath); }
public static bool InitConnection() { if (client == null || !client.Connected) { try { client = new TcpClient(SERVER_IP, PORT_NO); if (!client.Connected) { return(false); } nwStream = client.GetStream(); Thread.Sleep(100); } catch (Exception e) { VRCToolsLogger.Error(e.ToString()); return(false); } return(true); } return(true); }
public static void Update() { try { lock (cb) { foreach (Action a in cb) { a(); } cb.Clear(); } if (Input.GetKey(KeyCode.LeftControl) && Input.GetKeyDown(KeyCode.O)) { if (PlayerManager.GetCurrentPlayer() == null) { VRCToolsLogger.Info("Unable to get current player"); VRCToolsMainComponent.MessageGUI(Color.red, "Unable to get current player", 3); } else { VRCPlayer vrcPlayer1 = PlayerManager.GetCurrentPlayer().vrcPlayer; ApiAvatar apiAvatar1 = DeobfGetters.getApiAvatar(); if (apiAvatar1 == null) { VRCToolsLogger.Error("Your avatar couldn't be retrieved. Maybe your Assembly-CSharp.dll is in the wrong version ?"); return; } Boolean f = false; if (apiAvatar1.releaseStatus != "public") { VRCToolsMainComponent.MessageGUI(Color.red, "Couldn't add avatar to list: This avatar is not public ! (" + apiAvatar1.name + ")", 3); } foreach (String s in apiAvatar1.tags) { if (s == "favorite") { f = true; break; } } if (!f) { VRCToolsLogger.Info("Adding avatar to favorite: " + apiAvatar1.name); VRCToolsLogger.Info("Description: " + apiAvatar1.description); int rc = VRCTServerManager.AddAvatar(apiAvatar1); if (rc == ReturnCodes.SUCCESS) { apiAvatar1.tags.Add("favorite"); VRCToolsMainComponent.MessageGUI(Color.green, "Successfully favorited avatar " + apiAvatar1.name, 3); } else if (rc == ReturnCodes.AVATAR_ALREADY_IN_FAV) { apiAvatar1.tags.Add("favorite"); VRCToolsMainComponent.MessageGUI(Color.yellow, "Already in favorite list: " + apiAvatar1.name, 3); } else if (rc == ReturnCodes.AVATAR_PRIVATE) { apiAvatar1.tags.Add("favorite"); VRCToolsMainComponent.MessageGUI(Color.red, "Couldn't add avatar to list: This avatar is not public ! (" + apiAvatar1.name + ")", 3); } else { VRCToolsMainComponent.MessageGUI(Color.red, "Unable to favorite avatar (error " + rc + "): " + apiAvatar1.name, 3); } } else { VRCToolsLogger.Info("This avatar is already in favorite list"); VRCToolsMainComponent.MessageGUI(Color.yellow, "Already in favorite list: " + apiAvatar1.name, 3); } } } } catch (Exception e) { VRCToolsLogger.Error(e.ToString()); } }