//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();
        }
Beispiel #2
0
        /*
         * 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);
            }
        }
Beispiel #3
0
        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);
                }
            }
        }
Beispiel #4
0
        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());
            }
        }