//private GameObject[] cameraHelper = new GameObject[2]; public void Awake() { instance = this; VRCToolsLogger.Info("Initialising VRCTools " + VRCToolsVersion + " for game version " + GAMEVERSION); VRCTServerManager.Init(); VRCTServerManager.InitConnection(); VRCTServerManager.GetLastestVersion(); VRCToolsLogger.Init(false); ChangeCacheFolder(); //VRCToolsLogger.Info("Game download path: " + Application.persistentDataPath); try { DiscordLoader.Init(); discordInit = true; } catch (Exception e) { Console.WriteLine("An error occured during the initialisation of DRPC:"); Console.WriteLine(e); } try { AvatarUtils.Init(); avatarInit = true; } catch (Exception e) { Console.WriteLine("An error occured during the initialisation of AvatarUtils:"); Console.WriteLine(e); } /* * try * { * InitEnhancedCamera(); * } * catch (Exception e) * { * Console.WriteLine("An error occured during the initialisation of the Enhanced Camera:"); * Console.WriteLine(e); * } */ DontDestroyOnLoad(this); VRCToolsLogger.Info("Initialised successfully !"); MessageGUI(Color.green, "Using VRCTools " + VERSION, 8); MessageGUI(Color.green, "Made By Slaynash", 8); VRCTServerManager.ShowMOTD(); }
/* * private static void Send(String request) * { * byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(request + "\n"); * nwStream.Write(bytesToSend, 0, bytesToSend.Length); * nwStream.Flush(); * VRCToolsLogger.Info(">>> " + request); * } * * private static string Receive() * { * String r = ""; * while (true) * { * byte[] bytesToRead = new byte[client.ReceiveBufferSize]; * int bytesRead = nwStream.Read(bytesToRead, 0, client.ReceiveBufferSize); * string text = Encoding.ASCII.GetString(bytesToRead, 0, bytesRead); * r += text; * if (text.EndsWith("\n")) break; * else VRCToolsLogger.Info("response not ending with \\n, continuing reception..."); * } * VRCToolsLogger.Info("<<< " + r); * return r; * } */ private static VRCTResponse RequestSync(String request) { lock (requestLocker) { //Send(request); byte[] bytesToSend = ASCIIEncoding.ASCII.GetBytes(request + "\n"); nwStream.Write(bytesToSend, 0, bytesToSend.Length); nwStream.Flush(); VRCToolsLogger.Info(">>> " + request); //VRCTResponse response = JsonUtility.FromJson<VRCTResponse>(Receive()); String r = ""; while (true) { byte[] bytesToRead = new byte[client.ReceiveBufferSize]; int bytesRead = nwStream.Read(bytesToRead, 0, client.ReceiveBufferSize); string text = Encoding.ASCII.GetString(bytesToRead, 0, bytesRead); r += text; if (text.EndsWith("\n")) { break; } else { VRCToolsLogger.Info("response not ending with \\n, continuing reception..."); } } VRCToolsLogger.Info("<<< " + r); VRCTResponse response = JsonUtility.FromJson <VRCTResponse>(r); //VRCTResponse response = BestHTTP.JSON.Json.Decode(r) as VRCTResponse; if (response.returncode == ReturnCodes.BANNED_ACCOUNT) { VRCToolsLogger.Warn("Request rejected: Account banned (" + response.data + ")"); VRCToolsMainComponent.MessageGUI(Color.red, "Request rejected: Account banned (" + response.data + ")", 3); } else if (response.returncode == ReturnCodes.BANNED_ADDRESS) { VRCToolsLogger.Warn("Request rejected: Address banned (" + response.data + ")"); VRCToolsMainComponent.MessageGUI(Color.red, "Request rejected: Address banned (" + response.data + ")", 3); } return(response); } }
internal static void ShowMOTD() { if (!InitConnection()) { return; } VRCTRequest request = new VRCTRequest("GETMOTD", ""); VRCTResponse response = RequestSync(request.AsJson()); if (response.returncode == ReturnCodes.SUCCESS) { string[] motdLines = response.data.Split(new string[] { "<br />" }, StringSplitOptions.None); foreach (string line in motdLines) { VRCToolsMainComponent.MessageGUI(Color.white, line, 20); } } }
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()); } }