Skip to content
This repository was archived by the owner on May 17, 2023. It is now read-only.

Commit 794e779

Browse files
Update FavsExporterByPlague.cs
1 parent a39e0d2 commit 794e779

File tree

1 file changed

+54
-62
lines changed

1 file changed

+54
-62
lines changed

UniversalFavsExporter/UniversalFavsExporter/FavsExporterByPlague.cs

Lines changed: 54 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -40,89 +40,81 @@ public IEnumerator VRChat_OnUiManagerInit()
4040

4141
public IEnumerator DelayedUIInit()
4242
{
43-
//Get All Fav Lists
44-
var AvatarFavsArea =
45-
GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Vertical Scroll View/Viewport/Content/");
43+
MelonLogger.Msg("Init!");
4644

47-
while (AvatarFavsArea == null || !AvatarFavsArea.active)
45+
while (true)
4846
{
49-
yield return new WaitForSeconds(1f);
47+
//Get All Fav Lists
48+
var AvatarFavsArea =
49+
GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Vertical Scroll View/Viewport/Content/");
5050

51-
AvatarFavsArea = GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Vertical Scroll View/Viewport/Content/");
52-
}
51+
while (AvatarFavsArea == null || !AvatarFavsArea.active)
52+
{
53+
yield return new WaitForSeconds(1f);
5354

54-
for (var i = 0; i < AvatarFavsArea.transform.childCount; i++)
55-
{
56-
var Child = AvatarFavsArea.transform.GetChild(i);
55+
AvatarFavsArea = GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Vertical Scroll View/Viewport/Content/");
56+
}
5757

58-
if (Child.GetComponent<UiAvatarList>() != null) // Is A Avi List
58+
var Lists = Resources.FindObjectsOfTypeAll<UiAvatarList>().Select(o => o.transform).ToList();
59+
60+
for (var i = 0; i < Lists.Count; i++)
5961
{
60-
//Make Button
61-
var Dupe = UnityEngine.Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Change Button"), Child.Find("Button"));
62+
var Child = Lists[i];
6263

63-
Dupe.GetComponent<RectTransform>().sizeDelta = new Vector2(30f, 80f);
64+
if (Child.GetComponent<UiAvatarList>() != null && Child.Find("Button/TitleText/FavsExporter") == null) // Is A Avi List
65+
{
66+
//Make Button
67+
var Dupe = UnityEngine.Object.Instantiate(GameObject.Find("UserInterface/MenuContent/Screens/Avatar/Change Button"), Child.Find("Button"));
6468

65-
//This Is Done To Fix Positioning
66-
Dupe.transform.localPosition = new Vector3(115f, 0f, 0f);
67-
Dupe.transform.SetParent(Child.Find("Button/TitleText"));
69+
Dupe.name = "FavsExporter";
70+
Dupe.GetComponent<RectTransform>().sizeDelta = new Vector2(30f, 80f);
6871

69-
Dupe.GetComponentInChildren<Text>(true).text = "E";
70-
Dupe.GetComponent<Button>().onClick = new Button.ButtonClickedEvent();
71-
Dupe.GetComponent<Button>().onClick.AddListener(DelegateSupport.ConvertDelegate<UnityAction>(
72-
new Action(() =>
73-
{
74-
var FavsInList = Child.GetComponentsInChildren<VRCUiContentButton>(true)
75-
.Select(o => o.field_Public_String_0).Where(p => p != null).ToList();
72+
//This Is Done To Fix Positioning
73+
Dupe.transform.localPosition = new Vector3(115f, 0f, 0f);
74+
Dupe.transform.SetParent(Child.Find("Button/TitleText"));
7675

77-
if (FavsInList.Count > 0)
76+
Dupe.GetComponentInChildren<Text>(true).text = "E";
77+
Dupe.GetComponent<Button>().onClick = new Button.ButtonClickedEvent();
78+
Dupe.GetComponent<Button>().onClick.AddListener(DelegateSupport.ConvertDelegate<UnityAction>(
79+
new Action(() =>
7880
{
79-
var Json = JsonConvert.SerializeObject(FavsInList);
81+
var FavsInList = Child.GetComponentsInChildren<VRCUiContentButton>(true)
82+
.Select(o => o.field_Public_String_0).Where(p => p != null).ToList();
8083

81-
if (!Directory.Exists(Environment.CurrentDirectory + "\\ExportedFavs"))
84+
if (FavsInList.Count > 0)
8285
{
83-
Directory.CreateDirectory(Environment.CurrentDirectory + "\\ExportedFavs");
84-
}
86+
var Json = JsonConvert.SerializeObject(FavsInList);
8587

86-
var FilePath = Environment.CurrentDirectory + "\\ExportedFavs\\" +
87-
MakeValidFileName(Child.Find("Button/TitleText").GetComponent<Text>().text) + ".json";
88+
if (!Directory.Exists(Environment.CurrentDirectory + "\\ExportedFavs"))
89+
{
90+
Directory.CreateDirectory(Environment.CurrentDirectory + "\\ExportedFavs");
91+
}
8892

89-
File.WriteAllText(FilePath, Json);
93+
var FilePath = Environment.CurrentDirectory + "\\ExportedFavs\\" +
94+
MakeValidFileName(Child.Find("Button/TitleText").GetComponent<Text>().text) + ".json";
9095

91-
ChillOkayPopup("Alert",
92-
"Your Fav List Was Exported To: " + FilePath + "\n\nYou Can Move It To " +
93-
Environment.CurrentDirectory +
94-
"\\UserData\\FavCatImport\\ To Import The Fav List Into Plague's Modpack.\n\nModpack Discord Invite: https://plague.cx",
95-
PopupType.FullScreen);
96-
}
97-
else
98-
{
99-
ChillOkayPopup("Error",
100-
"No Favs In List To Export!",
101-
PopupType.FullScreen);
102-
}
103-
})));
104-
105-
Dupe.SetActive(Child.gameObject.active);
96+
File.WriteAllText(FilePath, Json);
10697

107-
EnableDisableListener Listener = null;
98+
ChillOkayPopup("Alert",
99+
"Your Fav List Was Exported To: " + FilePath + "\n\nYou Can Move It To " +
100+
Environment.CurrentDirectory +
101+
"\\UserData\\FavCatImport\\ To Import The Fav List Into Plague's Modpack.\n\nModpack Discord Invite: https://plague.cx",
102+
PopupType.FullScreen);
103+
}
104+
else
105+
{
106+
ChillOkayPopup("Error",
107+
"No Favs In List To Export!",
108+
PopupType.FullScreen);
109+
}
110+
})));
108111

109-
Listener = Child.gameObject.GetComponent<EnableDisableListener>() == null ? Child.gameObject.AddComponent<EnableDisableListener>() : Child.gameObject.GetComponent<EnableDisableListener>();
110-
111-
Listener.OnEnabled += () =>
112-
{
113112
Dupe.SetActive(true);
114-
};
115-
116-
Listener.OnDisabled += () =>
117-
{
118-
Dupe.SetActive(false);
119-
};
113+
}
120114
}
121-
}
122-
123-
MelonLogger.Msg("Init!");
124115

125-
yield break;
116+
yield return new WaitForSeconds(5f);
117+
}
126118
}
127119

128120
static char[] _invalids;

0 commit comments

Comments
 (0)