From 36fd467819470f54b3474999e893dc0803942e96 Mon Sep 17 00:00:00 2001 From: shadow8t4 Date: Wed, 18 Apr 2018 18:15:11 -0500 Subject: [PATCH 1/3] Script updates. --- MoCha/Assets/EmptyClass.cs | 12 ++++ MoCha/Assets/EmptyClass.cs.meta | 13 ++++ MoCha/Assets/PlayerInfo.cs | 35 ++++++++++ MoCha/Assets/PlayerInfo.cs.meta | 13 ++++ MoCha/Assets/Scenes/Testing.unity | Bin 36592 -> 39440 bytes MoCha/Assets/Scripts/GetData.cs | 102 +++++++++++++++++++++++++++--- 6 files changed, 165 insertions(+), 10 deletions(-) create mode 100644 MoCha/Assets/EmptyClass.cs create mode 100644 MoCha/Assets/EmptyClass.cs.meta create mode 100644 MoCha/Assets/PlayerInfo.cs create mode 100644 MoCha/Assets/PlayerInfo.cs.meta diff --git a/MoCha/Assets/EmptyClass.cs b/MoCha/Assets/EmptyClass.cs new file mode 100644 index 0000000..4b9bdfe --- /dev/null +++ b/MoCha/Assets/EmptyClass.cs @@ -0,0 +1,12 @@ +using System; + +namespace AssemblyCSharp +{ + public class EmptyClass + { + public EmptyClass () + { + } + } +} + diff --git a/MoCha/Assets/EmptyClass.cs.meta b/MoCha/Assets/EmptyClass.cs.meta new file mode 100644 index 0000000..2f0d987 --- /dev/null +++ b/MoCha/Assets/EmptyClass.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 9ccd5f892b119d749980bbde89a80e70 +timeCreated: 1524075474 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/PlayerInfo.cs b/MoCha/Assets/PlayerInfo.cs new file mode 100644 index 0000000..8288825 --- /dev/null +++ b/MoCha/Assets/PlayerInfo.cs @@ -0,0 +1,35 @@ +using UnityEngine; +using System.Collections; + +public class PlayerInfo +{ + public string username = "[{\"username\":\"test\", \"user_id\": 1}]"; + public int user_id = 0; + + public PlayerInfo() + { + username = ""; + user_id = 0; + } + + public void setUsername(string user) + { + username = user; + } + + public string getUsername() + { + return username; + } + + public void setUserId(int id) + { + user_id = id; + } + + public int getUserId() + { + return user_id; + } +} + diff --git a/MoCha/Assets/PlayerInfo.cs.meta b/MoCha/Assets/PlayerInfo.cs.meta new file mode 100644 index 0000000..b926322 --- /dev/null +++ b/MoCha/Assets/PlayerInfo.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: db6fec37a2679474e90cb02700d9533e +timeCreated: 1524075765 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/MoCha/Assets/Scenes/Testing.unity b/MoCha/Assets/Scenes/Testing.unity index 7f5561af05aa23704e62ac10cbc58351ab292fd5..c11dac8df82d9ef15858745d1d5112f082517469 100644 GIT binary patch delta 1396 zcmai!-%FEW6vxjyr;W0l{ZPp{W+*sV&7}(~X(kq41Pz25<&EfMMyBnT&7gN8u5}~J zM?!*dRu|q#%hwAb3n?ifQ~v;oF1xYpt~>ia@1CdEn`rRxob!2~=bZDN^L@AT%#>L$ zS&4=i(NpYH3Oo1O+8I{7T7Q@+s;95k4o*}1iN>&-u}%x-I6%|}--6X3SP0Ce5EX$n z%Dcrxb@2CLc?DYrn}T16_2%oC8yf`<65Yklb1dbVN}GW4;9GGpbjV2ZPOzyGBgyB> z^JjU$Ww1vg;F@55yrv5bVd;xtNx=}7)&2Jg0&nb^20|AvI&*}<9BhKssy7WL>=()i0py|z*gb&&Scb+&#z%8$5A86W5H&@ zUW$Vgg87dT)tiXNB_>$19ED&cI8Kv-Wh#tr**tU|k7yC>djSzb(E3L&p9HB{8&N+D z{&pJzTC0q?ZweLwlbzYlHAMO4RWPZUAAXdhvPqD2pGI+Zy;i&UC*{l1P z%v|rRbG$8YY$Y}oE1Mg>nRjR6HO=yaz}=*=l0Mjff4jS?Pc8}hcv<~;WvM*rGg0;; zQTqorn{ctM2Ns*qynaKuU^PML9uKl*_n4{ z;ttk4YSFHYtQ2sAE!``&?QM`$5l^7Ua*bAKEn_u`Vq(EmwJG~vOQ(7irI2kuJnyW< zsZcaJ7&+&5cMpVng5guqV0XyfKhPcOa>pXUaKzo{^19Aw&h)1uW*xQhq&_)yomMY*A!JiDZ#-h=IJA5F-C(-9UnMFQcw)U0WZmq3w|7vhHUzwMBb?9BXc2thtq9fW# z`rMf|iw#Y~27=s>8pFKZ5)eiK$q^vS?7gn3 z?T)s{+GMn}wQ1htygy^A^TMc5PrJi@5mWWzRY19=7oXgAP5;JEDj;*^kbK@V<#EYW h*X5Xyt%IPntNjLNcB)AgJxK^5 diff --git a/MoCha/Assets/Scripts/GetData.cs b/MoCha/Assets/Scripts/GetData.cs index ed3a068..8f96f2f 100644 --- a/MoCha/Assets/Scripts/GetData.cs +++ b/MoCha/Assets/Scripts/GetData.cs @@ -1,11 +1,21 @@ using UnityEngine; using UnityEngine.Networking; using System.Collections; +using System.Collections.Generic; using UnityEngine.UI; +/* + * USAGE + * + * Just put this script into a button that needs + * to execute the HTTP request, and in the text field + * write the exact URL needed for the request. + * + * */ + + public class GetData : MonoBehaviour { - //string displayText = ""; Text objectText; void Start() @@ -13,16 +23,14 @@ public class GetData : MonoBehaviour objectText = GetComponentInParent (); } - public void DisplayStuff() + public void DisplayStuff(string request) { - StartCoroutine (MakeRequest ()); - //Debug.Log (displayText); - //objectText.text = displayText; + StartCoroutine (MakeRequest (request)); } - IEnumerator MakeRequest() + IEnumerator MakeRequest(string request) { - using (UnityWebRequest www = UnityWebRequest.Get("https://corder.tech/mocha/users/1")) + using (UnityWebRequest www = UnityWebRequest.Get(request)) { yield return www.SendWebRequest(); @@ -31,14 +39,88 @@ public class GetData : MonoBehaviour Debug.Log(www.error); } else - { + { + + //this should be saved somewhere else... + List players; + // Show results as text - //Debug.Log(www.downloadHandler.text); - objectText.text = www.downloadHandler.text; + players = ParseJsonRaw(www.downloadHandler.text); + objectText.text = DisplayInfo (players); // Or retrieve results as binary data byte[] results = www.downloadHandler.data; } } } + + public List ParseJsonRaw(string json) + { + List players = new List(); + string tempjson = ""; + + bool ignorequotes = false; + bool specialchar = false; + bool insideobject = false; + + foreach (char c in json) + { + if (insideobject) + { + tempjson += c; + } + + if (c == '\"') + { + if (!specialchar) + { + ignorequotes = !ignorequotes; + } + } + + if(specialchar) + { + specialchar = false; + } + + if(c == '\\') + { + specialchar = true; + } + + if (!ignorequotes) + { + if (c == '{') + { + insideobject = true; + tempjson += c; + } + else if (c == '}') + { + insideobject = false; + players.Add(ParseJson(tempjson)); + tempjson = ""; + } + } + } + + return players; + } + + public PlayerInfo ParseJson(string json) + { + return JsonUtility.FromJson(json); + } + + public string DisplayInfo(List p) + { + string output = ""; + + foreach (PlayerInfo pi in p) + { + output += "Player ID: " + pi.user_id + "\t\tUser: " + pi.username + "\n"; + } + + return output; + } } From 51d06cfd0c18b12dc440514700ebb41ba972e6c8 Mon Sep 17 00:00:00 2001 From: Alex Huddleston Date: Wed, 18 Apr 2018 21:49:39 -0500 Subject: [PATCH 2/3] Leaderboard Scene. --- MoCha/Assets/EmptyClass.cs | 12 - MoCha/Assets/Scenes/Testing.unity | Bin 39440 -> 39088 bytes MoCha/Assets/Scripts/GetData.cs | 123 ++--------- MoCha/Assets/Scripts/GetLeaderboard.cs | 41 ++++ .../GetLeaderboard.cs.meta} | 4 +- MoCha/Assets/Scripts/MochaParser.cs | 208 ++++++++++++++++++ MoCha/Assets/Scripts/MochaParser.cs.meta | 13 ++ MoCha/Assets/{ => Scripts}/PlayerInfo.cs | 22 +- MoCha/Assets/{ => Scripts}/PlayerInfo.cs.meta | 0 MoCha/ProjectSettings/ProjectVersion.txt | 2 +- 10 files changed, 280 insertions(+), 145 deletions(-) delete mode 100644 MoCha/Assets/EmptyClass.cs create mode 100644 MoCha/Assets/Scripts/GetLeaderboard.cs rename MoCha/Assets/{EmptyClass.cs.meta => Scripts/GetLeaderboard.cs.meta} (77%) create mode 100644 MoCha/Assets/Scripts/MochaParser.cs create mode 100644 MoCha/Assets/Scripts/MochaParser.cs.meta rename MoCha/Assets/{ => Scripts}/PlayerInfo.cs (51%) rename MoCha/Assets/{ => Scripts}/PlayerInfo.cs.meta (100%) diff --git a/MoCha/Assets/EmptyClass.cs b/MoCha/Assets/EmptyClass.cs deleted file mode 100644 index 4b9bdfe..0000000 --- a/MoCha/Assets/EmptyClass.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace AssemblyCSharp -{ - public class EmptyClass - { - public EmptyClass () - { - } - } -} - diff --git a/MoCha/Assets/Scenes/Testing.unity b/MoCha/Assets/Scenes/Testing.unity index c11dac8df82d9ef15858745d1d5112f082517469..35779746044bec78b69f82b7c7777354d35b1e51 100644 GIT binary patch delta 4505 zcmbtW4NzRw6~1p-*fjyfg#YDdflXKeVSyx24TSI`pg3#<74p-thBc`CY!)JHLc(eg z!4QExB*G+4u@h&|@rUF^Wt=FaNv1@bMkj5J9oweP*k(FfHl69zX)~thymxO{;*Mpe zZ}#rJ_dEA|_ndRjJ?{;l(oCJu#4_eGFg7;D7`qF{7VKG$B|9%O=S1udNn)^HijtUo zM6zpR7?YTWWd<;}7gy=AnXpNWL3mK7A88tw9uLa$BfW=9zX=-hBVEI#qdI@Od8$GgLJ0!5Iqe*j2xdb)wD|A}EgDoowzKso4 zFdfG>6+a}~44VV}(ZQzTBq&JgL)j(^ZB?}P0=$;I`qmB;JF96sZxactOf!midL?d& z$WL+0QTLIrJ~<%4TdNC|B>{_;+|QS2Q#bfVK9e)}TE8zn)F*;s#ey$Ma6Y{eW;6TI zo*zWVk2~k(%tb8;A7}2Kdv0RPoEg1dVVX}#5x~` z))Qw^9Yr{$lQZ!e*_ z#Hw(^dKBP~nX$1V6@L}+W&~+Na*iHaPq>@oY4S)#tpwj!UPj8LrR@7v5C2&9`Cixa z@_co#Z~6#Vek2A^S5^v+^;#&XQE#hS2!-aIiW3Y*Yi97QYiobER9h}Uc-^DQaV)<6 zah&i#of`ASQmP{uD)_{&RGi4ldVjifolsZaQvZS)gT>SvIrV?G_){+B(vq$Iq~)CY z;MPC+rm(1bTe;c|X!9E`MF?-3o~L)ge+1H7FamCbYMmVx3teBC0g$GBDkX@PXFDTGiPN0SsT zo?AcQ!l)spT2O&s2u(P?iH`{q%u(RX$%l7i%nw+t9nSTp;@uq`ZLNi@qv^@^$CWWt z1-16BjzVT_wz=%i%F=fBNW0zHYHP8#vzi@kPVAiaUAyh=9r*r)7U%XJ7j8l)P=BL3 z2s_rV!A}|NDHAqx%oxC!1udfmTR3J#B?>jYQ7+}=QpdUw+l@W(eabN}P6Xd)9P3B& z43)2kUFP64vJ1kb>1_((Rm6mW$sB7yNiS}o$CkpeYlzk1{0?j;juqho2hNvayP3Y1 zIyQxvFpy;s)`Od(7Ja)d$0jKtV^3 z;n*-{l5p;$KRWRCFgA_YF5F)U*9-?OAq#}F9GgQ-5T4=KccBY}2U7l#N`ywNp!+yq zFUKYj69zudvHUQ`!Z7@l-93FAtiVrKVc{qDpZp0CIuIM+gumh#TY<(PhBmQ_9J6o? zZDPOXSOa3iIH#(9iDO>GL{wuhJyngO9@c=teHKTQGzJx9*ATPf91Uf09Lo<^mC+^^ z&#_6wYH*IcEP-Pzg0a&$rvx6p=jV@N$7T@|dyH_bB9gJ=bpEu^!$B{B7#cco;MiF7 zLbygbHi;)Fq7|2|+m!M!helsD|I=L*df}NfNR7{_xE<%ZK7O$Lcx7qz-Ho+wNa<`%EBNlR zSE@~~J{>q-|L@I%k?PXesokGHfA+HnJk9g}+BNZ)=Lm(N&P4gW&IAoy?bmwTTKLix zZ4mdIB0*PZp?Wa5)LjV;dzQn|-WV{Chbq@d^#xA2Vj*)NICSC+>fke1jI9J5dm>@R zwF0c&VW8hTts_=uJqy3wn;o*iZmcXtf)wPAgjrW8Hz!M!4bl;nfySbA5E+#rUd+(E zGA)%K80|IQZr|)+B&3apViHx95XUVGiw4Z9(v3ame9gOq*cE2D-kqv0IpH#L+vH>2 z$0QhhK@SrLP0&25mz(#GNx7mF5Wl$YG#2GR1a+YhD?!y#S@CD}E3T+j8yItAW4!+e z14~aNx-mztC^&}CsIn|}W366ng3lU7mA)Uap&_yL7|nRX3$s^6=J3PUuCy7+MSQL*_@5W;&O7eOiKkyxC)*J?_D@m0F?J3tL*d}<*20x>i^_*C$#@u&?!fF*8w!?1!O{LINrG?s&0y@; z%f^9xk>g>$w$m*H$H8zo?befT;5}l2hJg&|IvDI3G%csA$729lgS9;GgJE*8klbTO zD9N!^6hl~_878{4vhh$beX4F7I||mJxe!WEV?Y^J5q#j{_gfq%6!{MB9xBMeA@`gX?{wXUsUFSp2WLy6sm))yWF%zB9B z3r{ZoZv+FFf#w@QokznVFevkAIHQdI09iN>8CB$?xv8Q)(LPPQEYYdbd(r1ql@q1< z#!ocZ6hIpIh))O_``!w=(=gkc5`SA-dw;>07mr=38^uc9xY-@4Rk&-rO>0C^CO%Q3 YXe@3P4Mklr;<%}!!vP~N8KkuT0?k>4JOBUy delta 4621 zcmcIn3s98T6~6zn3mbU^5|F2`z#^4YJ;OjooO@E31eHQnMpg6=s0PbnI!g{|G#%waMK|( z?Hzyaz2AAK5Ab_mm3No**UG zg8Udit;~2%5!TP6u2iYAG3^6YIA9)mJtu3^^L+0y3*m*n9?0Rq*{!KW^yL+14~~)opre!2W9Yx7)Yfu+`o+o{d4>Ca5&mEix?U;g-z=M)M1c z7;64WHPqBcvHmz3ewDTJWbsx&nmRd@WV+!ZHemN=eshxgP`<&{=d_@IZ(Xm~m z=;|&y@{?Wujx6DdGVA|BZiLzu>+EXRo8J@dTCs!*8@Ovu?3%meoF&KembI*j~cQcB8f^<$Gv-^S$!b`m6k53A)I=v`Ex~fJ~f(C z|JkCx%({89%Q*FC4)p@mS6yf}aO(SxTT%|_oV9K*B9w>KUsnX;#0IegjNwcc)^N-e zz?c~;h!}QotO|vwDybPh%`p#RMYtyqlh5oV5}QWMg)>epg=3|t{2=ZhV$97_Id~nx zDg>9{XXKa(Pi(_|Fn;$lx{1Wb5bMO56f(1lh2v55`$h>I$EFYyvhUq&izW8Q(XxFw zlk7PKb2Ih^g2Lk|&X|v;36IZntPPJB9$TBz5=r40Vu!fGl^ipmwMB?g6l@%8L`>+* z7P4rq3C~wTn8U#-1cfoby?MxjWL6bAXZ7zmb{#RnH_5Tau(?CtWdn=H{&LAdo zE1qNdk1$q=G*rP7RLso=5hP*cXUjMvdz7)wxJMF8;(J!Jrbz$J?U8>CJWu7QFk`NV1Yf;6t7S&6hQw!pr8%);6(EDO7bpcpA zW(3a>gSwgNx$vD{sT}AYXYDqG+`sS66CYeTnmRvz8YO_@TNCW`x)j7hBpzu?bgHDo(Qs#c#~OBX8VAIVpeD_lG?M5il&iQY)nuqp3ajH5|O!85%f zU>Gn4(}Ppk>2$U_7*q^ky7fNuoc8)gOG|5gW1Xe5!`|KzX2~|^m{)NT4U`WZh5W%tc%|=jXaJ%w ztx!o4Ouo2X(m^>SK{muFt6aW6q3kDt_LE4D9430^u-G3|_Q!^kB5eE|G3nr{!gX~x z1=2^NP-@>uJXDR4{Js$z{w)}dfyt40zPig-@n9Myo`O;0=^VA--;<*@Jq2rg&zDHR z>ipWPUoILP9Vi+gt?7v_scW&T(S!c(^;+tgqDpj11LYaHoHW7hfndC}Si1Lhl%b@B zhUjjz7Tu55qC1jFbeftUN=?#f)Ma6&+h7!RMYG5S--4lc1t$8V;md)C!^Sa*9!w-f z+3Q7vl3N%c6p1eJzf7uRbmlvf>JgDu7ArE*poIFl>g (); - } + public string request = "http://corder.tech/mocha/users/*"; - public void DisplayStuff(string request) + void Start() { - StartCoroutine (MakeRequest (request)); + thisbutton = GetComponent