From 22ef6f34279892186a5d55a38e41f76ed8ff428d Mon Sep 17 00:00:00 2001 From: Wizzy69 Date: Thu, 21 Apr 2022 12:55:25 +0300 Subject: [PATCH] patch --- BUILDS/net5.0/MusicCommands.deps.json | 126 ++++++++++++------------- BUILDS/net5.0/MusicCommands.dll | Bin 15872 -> 19968 bytes BUILDS/net5.0/PluginManager.dll | Bin 38400 -> 41984 bytes BUILDS/net5.0/ref/MusicCommands.dll | Bin 8192 -> 8704 bytes DiscordBot/DiscordBot.csproj | 2 +- DiscordBot/Program.cs | 2 +- MusicCommands/LinkMusic.cs | 62 +++++++++--- MusicCommands/LinkType.cs | 13 +++ MusicCommands/MusicCommands.csproj | 2 + MusicCommands/lplay.cs | 10 +- PluginManager/Online/PluginsManager.cs | 14 ++- PluginManager/Online/ServerCom.cs | 2 +- PluginManager/Others/Functions.cs | 63 ++++++++++++- PluginManager/PluginManager.csproj | 2 +- 14 files changed, 202 insertions(+), 96 deletions(-) create mode 100644 MusicCommands/LinkType.cs diff --git a/BUILDS/net5.0/MusicCommands.deps.json b/BUILDS/net5.0/MusicCommands.deps.json index 51ae4ed..ab767ba 100644 --- a/BUILDS/net5.0/MusicCommands.deps.json +++ b/BUILDS/net5.0/MusicCommands.deps.json @@ -14,28 +14,28 @@ "MusicCommands.dll": {} } }, - "Discord.Net/3.1.0": { + "Discord.Net/3.5.0": { "dependencies": { - "Discord.Net.Commands": "3.1.0", - "Discord.Net.Core": "3.1.0", - "Discord.Net.Interactions": "3.1.0", - "Discord.Net.Rest": "3.1.0", - "Discord.Net.WebSocket": "3.1.0", - "Discord.Net.Webhook": "3.1.0" + "Discord.Net.Commands": "3.5.0", + "Discord.Net.Core": "3.5.0", + "Discord.Net.Interactions": "3.5.0", + "Discord.Net.Rest": "3.5.0", + "Discord.Net.WebSocket": "3.5.0", + "Discord.Net.Webhook": "3.5.0" } }, - "Discord.Net.Commands/3.1.0": { + "Discord.Net.Commands/3.5.0": { "dependencies": { - "Discord.Net.Core": "3.1.0" + "Discord.Net.Core": "3.5.0" }, "runtime": { "lib/net5.0/Discord.Net.Commands.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, - "Discord.Net.Core/3.1.0": { + "Discord.Net.Core/3.5.0": { "dependencies": { "Newtonsoft.Json": "13.0.1", "System.Collections.Immutable": "5.0.0", @@ -44,59 +44,59 @@ }, "runtime": { "lib/net5.0/Discord.Net.Core.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, - "Discord.Net.Interactions/3.1.0": { + "Discord.Net.Interactions/3.5.0": { "dependencies": { - "Discord.Net.Core": "3.1.0", - "Discord.Net.Rest": "3.1.0", - "Discord.Net.WebSocket": "3.1.0", + "Discord.Net.Core": "3.5.0", + "Discord.Net.Rest": "3.5.0", + "Discord.Net.WebSocket": "3.5.0", "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", "System.Collections.Immutable": "5.0.0", "System.Reactive": "5.0.0" }, "runtime": { "lib/net5.0/Discord.Net.Interactions.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, - "Discord.Net.Rest/3.1.0": { + "Discord.Net.Rest/3.5.0": { "dependencies": { - "Discord.Net.Core": "3.1.0" + "Discord.Net.Core": "3.5.0" }, "runtime": { "lib/net5.0/Discord.Net.Rest.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, - "Discord.Net.Webhook/3.1.0": { + "Discord.Net.Webhook/3.5.0": { "dependencies": { - "Discord.Net.Core": "3.1.0", - "Discord.Net.Rest": "3.1.0" + "Discord.Net.Core": "3.5.0", + "Discord.Net.Rest": "3.5.0" }, "runtime": { "lib/net5.0/Discord.Net.Webhook.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, - "Discord.Net.WebSocket/3.1.0": { + "Discord.Net.WebSocket/3.5.0": { "dependencies": { - "Discord.Net.Core": "3.1.0", - "Discord.Net.Rest": "3.1.0" + "Discord.Net.Core": "3.5.0", + "Discord.Net.Rest": "3.5.0" }, "runtime": { "lib/net5.0/Discord.Net.WebSocket.dll": { - "assemblyVersion": "3.1.0.0", - "fileVersion": "3.1.0.0" + "assemblyVersion": "3.5.0.0", + "fileVersion": "3.5.0.0" } } }, @@ -147,7 +147,7 @@ "System.ValueTuple/4.5.0": {}, "PluginManager/1.0.0": { "dependencies": { - "Discord.Net": "3.1.0" + "Discord.Net": "3.5.0" }, "runtime": { "PluginManager.dll": {} @@ -161,54 +161,54 @@ "serviceable": false, "sha512": "" }, - "Discord.Net/3.1.0": { + "Discord.Net/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-GAY7d+k8UN5BsObGpysvg7ca6YwTqvesTouM8S8eBWSmwGnK38iceVkURg0QNAG70tlJ4w8S/BOjocRRvXU2MQ==", - "path": "discord.net/3.1.0", - "hashPath": "discord.net.3.1.0.nupkg.sha512" + "sha512": "sha512-IUtexpvogudb1rllKBWkIEpBVQoToMjtVo81KPkt+gNMe7KtRDcZJgcn6+72viMtyw0e95OJPXFV5VEA/n2OQQ==", + "path": "discord.net/3.5.0", + "hashPath": "discord.net.3.5.0.nupkg.sha512" }, - "Discord.Net.Commands/3.1.0": { + "Discord.Net.Commands/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-EZdtrAqj6Uspyz4CvIwFP/UQ4XUpXjIPG1b5LrfAKOo12ks4k6XO7up2h+UsHexk7mEz4sfZxkEXGrW6PSh+/Q==", - "path": "discord.net.commands/3.1.0", - "hashPath": "discord.net.commands.3.1.0.nupkg.sha512" + "sha512": "sha512-ClTv8aiTlitvS48YatRiTLvgE2f2uKgmHNPVBIuvJBHZO2u4bZCzoN1fid+pZn2sbVOkt8uftlLGzz5DSZlFIA==", + "path": "discord.net.commands/3.5.0", + "hashPath": "discord.net.commands.3.5.0.nupkg.sha512" }, - "Discord.Net.Core/3.1.0": { + "Discord.Net.Core/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-Oxz3CiWVvenSaHRYZeCKgRqzcWqdjGYmpxVVN2vPikt6bTN+xHAR4jczk8plKDDdINt7Lac37iLsRaqzUtJZpQ==", - "path": "discord.net.core/3.1.0", - "hashPath": "discord.net.core.3.1.0.nupkg.sha512" + "sha512": "sha512-rCzzaznMVQ+bLMxOpYwTyqm9V22kMy6BxlQisSxemHZDe2Jedz3Clp/a0dToACLz+Dlp3u+jYUfCBnTz7L6f4g==", + "path": "discord.net.core/3.5.0", + "hashPath": "discord.net.core.3.5.0.nupkg.sha512" }, - "Discord.Net.Interactions/3.1.0": { + "Discord.Net.Interactions/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-XzLChVRQGniUU8kdLMDYEOjifzvrcsOiAdKm/pO/PGPpZSMWSzPWlJUWaQlWMtOImrYULzRejOeoc2/3K3R30Q==", - "path": "discord.net.interactions/3.1.0", - "hashPath": "discord.net.interactions.3.1.0.nupkg.sha512" + "sha512": "sha512-wE9+V9DJ7r+1s4euOi4sGPIAt4sD7r+Tk5s9mrlbLCHVQTK4KllAvcrL25bPFI38FuFceREEzFoRlTrekSyB2Q==", + "path": "discord.net.interactions/3.5.0", + "hashPath": "discord.net.interactions.3.5.0.nupkg.sha512" }, - "Discord.Net.Rest/3.1.0": { + "Discord.Net.Rest/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-97kdAYjlNuuOnhRQW/OoGK2oBObvpzZlCSPJjIcI4DneEq6k2WIFhG00fvxK7DCVTlB5BgBMAT1BeRUk4/rUxQ==", - "path": "discord.net.rest/3.1.0", - "hashPath": "discord.net.rest.3.1.0.nupkg.sha512" + "sha512": "sha512-BnTdLFuuQsKvCv08VQrD4X1Hw2Xp+MELIRQiDiKfG01IiQlRTN+1gc3LB1zXgn5xBvC0HXjHxwV22GrMD9uKHQ==", + "path": "discord.net.rest/3.5.0", + "hashPath": "discord.net.rest.3.5.0.nupkg.sha512" }, - "Discord.Net.Webhook/3.1.0": { + "Discord.Net.Webhook/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-cZFxFf9H3GUBITlx1b7IskglgjJxSYpOIZOtyVW2WnPp7LpnxlOi1piRG22fH9fdhCC/RyDx3gZtYfN6WzacCw==", - "path": "discord.net.webhook/3.1.0", - "hashPath": "discord.net.webhook.3.1.0.nupkg.sha512" + "sha512": "sha512-vCIGZS+m88sQDuFmdbUqg+2RIXS/NJWx8ei3MX+ZEYiAvOkDgQfkIlEnU1NKpds6ivTt5GFlv6UzcWubb5VJ1w==", + "path": "discord.net.webhook/3.5.0", + "hashPath": "discord.net.webhook.3.5.0.nupkg.sha512" }, - "Discord.Net.WebSocket/3.1.0": { + "Discord.Net.WebSocket/3.5.0": { "type": "package", "serviceable": true, - "sha512": "sha512-6OsLNXHNKC/laDKoBD+T0Km0vzqHaCcBOaI/NA8Qsed935MtEOTy7juorF22gF6TYOeoclUgSINrHCY4zWvxpA==", - "path": "discord.net.websocket/3.1.0", - "hashPath": "discord.net.websocket.3.1.0.nupkg.sha512" + "sha512": "sha512-LjBOvcP40vJ+dhOtBDi8haEeblPAKpAIqR04NBzTM1/0RVavJZH89ovfSQIk42ygkiOaDV4E2x0Mmh6DRoIYcw==", + "path": "discord.net.websocket/3.5.0", + "hashPath": "discord.net.websocket.3.5.0.nupkg.sha512" }, "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { "type": "package", diff --git a/BUILDS/net5.0/MusicCommands.dll b/BUILDS/net5.0/MusicCommands.dll index 58fc01a2af5f93aa7a201677fe00e336c8220e85..bae106e340c6f6bc8e3ebf661748dceee1c27813 100644 GIT binary patch literal 19968 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 literal 15872 zcmeHO4RBo5bw2Oz?%N;9vb6fKZ2YtGAB!cgC0hpJ7+bO=+XBlrmSsb5kXO>Pym+-w z?AtX~>h7_D;FiDe=pQh;yNgxR=2}ue`Nd^d+P{2Ui07>%$G-NWQ*!|AA zZ-3+;hR$?4oi@*Y=iYPfx#ygF?m73~_x7p(y&oYD5qWW+JW2EbO1?S;zB9<9xoW}J ztLXmV<4q43TOM!Pxj*4VCerp;IzAp5iKkL_CNgYA(%Dobk&5(e8;FeCqgHIjjL>3N z^!8q&Ery4d&WYVn(DouNj8qt{MCXHIYU-6cQATj@#Z6Q#b*1fQ0^2XwF+kAy^3dKJ znU(*SN*84ku1d(=#+AK9J?w~6uRM4_YaAeA6W;X|Aqtc+2Y_!b!($oiPzLyDI{?~b ztghX_%ry)&U`2)03;= z!kdGMUelL@5ni*(o2%opJ~xw#!`uM|z< zm;{rQH(JFd_r;`XR;hsCD-fizjMOal2$&1Lg3KD{B0Y{q9>)Uoz&IjY)aT}NahPc^ z6}<2jBhfk9SA*I~mM#QiU(I57t)U|bOmBk?UqE4Th;!1nYW6#IAy}~&+r|FH0BW30 zZI}4B88q01uwnnUaN*4@=fanZaRL9X;IclqjElqE0Y*bmnSbY`zpJ%Ap$ox^%3YIZ zoo@2$n*D8EG#hSE$Ur6T*k<^+#_2Azc@-O?a!4b#85zhnujay+!5A+tp_tL8yc4)QaULy&pZl!lx^Q%Df6y$DVA zVt~r9iY`I9yi+wS2}yFPKn@Y%G8OhjF@|P3ZmTJ7sZ@u#I8l#?I!DzPxSISibdXLj6%qT@{lTQPo8Q;2G>jY$e+TOfAHa_`c* zW}l6q3+2((dxSyV38TW_k}Gh7F_eB5)74O?FB|b2vSR@3MMQ6CdAE3xZGjh&W#UCy zD%gt<+Dy-1iIqW3aU&eb#ff@EjCLgVgse8mTKaqw7{!o=h6WoE7P1jwp;~X)8$~dN zmiMYz@VzLj@#YXxOP!4R_-wOb zMV*>rLs}|zX|H9D=fJ_#<8x|*oF_5{*?DS$(TkYlc-?e*bRAQdQ5OOPZY17ZyKw(K z5R9vMAp+Qi!bE2II+lT`A}lo5gpP;}E^ddXjod;eh=?fGEmKV~p+R%l>oH8b z6M!?X3#FTRY$-A?$_3Uh-t5Ahd60krQLJu?8G2&`oo#6_%SiW_Tv>M)mO@x^^1O~=>q+FDc9m^rNPUNuYX zI*zVvU#-8!KP%?zILeczrkEqcF_1%gc*||Jdy8fkb3iAfHZw5YOwIvq=Eo%*#7v~Y znap(4Kuxhudn5EjHvzz)Ix(Y}D{L8;Wzm4;!{m7g)&$pl{_T?|ksTq<0x?LYye1Ug z%#w6=l<3huref8X{6Img;mn&*egh@qRPuo7oFAV+w0sKp9G5G(F@BJbz!yUi~U~7bAkKJeh<+HJVZ!a_#J!V zS=J>F`ge>o;F%?rzFyHp4%xiyrwPOI((nGo&-*!SkUU0uc);!@@a3C~Ari+Ij|< z(ad2Fl*0utqz#xG#_b&tVGpnzY=Fh)g~~mqnC>yfoOVoESH|j;&L&s{r=LxxSf-j{ z_R^8ytY?9ZawyS`3FNxCYjGX|a16FNIOeCsj^S254{%wQo7@>k3&~9?90XWB9|X88 z9RwIFaIl%o!DWequ>uGCiaEq*0QxY&*zu@7Oo-ieI;`t-_)7>Cj}{9#htJ04W^UIg z28RLSv5!8D@+p+FQS!xfAHZuU-#mr>GNPpo_blXcfuH+u{;ve>LfqJ(-E#?ENDN$z zmbj^K!jL>IVg8gz`vm1?Z1?7=Fmh(mo40Cat4cLGb%?2A<%Bez%8P zuOx=!e&+8*Jw$Uu-v{S&=v76(QV#^e^i=3>z}23ogJD`9dOFxZOFUPH=Frm6UFfxn zxbKz#%X!xSL|_j6qsjDu=)GKE)MV{%Nb7~B^311?25$AgI89$P~71&sp(39wO zJ)XS{`Z2MzfT88of$})b1^gXk8Z^^bjJ^f!=b=6$_$=rKy#RO*#lZQZ)B^@n78xr+ z>5%$*V>Rk6SP58Wxtw>luv2=yd;T8q&mi{aM+E*_M)ybB40?l%Ynj0#ZK3kfE%t1W zVCv|m#(ba};~CW$c7T45qWc7UIrw`O!z0Jvy4W>-#=h!e=Xe-<$i)sA&mig^cCnEF zV~@Dl`F_S8)tK?5Zx=MoZz5c*-9!wYtFgdO%+Fz#RtR=o;AJxok9W9jzek&&I^8zE zKko5UpKgPcF;9R-T+Uwg4A!axF1B4A1(tF9eI2$`&|w$*j{hjI8#O0=1^Hh|A91nI z`W;|D7EF7hlAd)j_CzK9%*EIfmGlc2V^37luUw2hQAxjbG4@0yy`eGjL?s!#)ViLi zrjTG-Up3XZ80)L1Mi*m!)wICHSYI_QbTQUfO-o#i^;J_;W1_E`jtHhbUq?5)oIKNY z^kElceRXuFi?O~s`b!sMeRXt?i?O~s`jm^YzB>Ah#zbEo-7lEd*GLb!oUE^rzT;x7 zuaSP>Vyv%`o^&zR*GNyh80%}KpSl?9YozBiCi)tweG&WfI{Lb4d*;#&f@$sZ=(cIt zU4p%2d_QE;Jh}xB%S103U-X;YRd3cY|jd79{(OR zfVvlJ9@AgImR*2%2+t#c1&VGxTi^dK`T`s&4EiQ)J2Uia?d^7mxs2>eh1AfnU6!5;#QM}1I5W0sR6!{O*8^#03mdgT<5uU=ZW>wM^>Uq@P z4*ompSNZ<{=ntKsCun&fY9x$JX3Rj{Y&WhpeqgLI7E9k2=^He-Z;SN(oUu@4jdp2W zE3IpV{yKfaJZ3y-+!y?^v4tA_-!{%OE(<(m7zS%MjJI*xdCYhLYi`hB?Los2|J+L7 zGTt(FinKiT#8Fz+0t$tyA0V{qCF>r$?hIbpc0iHu&09-`( z12)qy0awx6fbYS%ErydtJ>Vrm9{}v6D=6aaq!HTf?VM^j|u#=z=s7sB9IjKiU{l!xL4pYbp?IEdrYz9 zy!Q%v5K!vo74$FOyvg;5{|0Uq_@cnh08@?$jM4zcG)Xtm?Q|b`jhBoI)K=v|Zh4VG zK6uQJ90|}Y&+wP#5x@#R!<~vLj|%_9fQVK=KSr%E<{5w$IFB00otdc5fF}&B9W|&|BZ_$Ss6{=DCo==J zdej@>DTRABU?XBop*9b24pwjlya{kVqD}!{0vMrl0h_S)C_E?OEg#yJ11_Z%fahX0 zQh4@T1$Z8<23&@-vI5_QfE=p|d=~+>(t5x)>H_3*u|l6-ta}sC9-=g~RnS4yE9emF zm2?>ON;-o244hu)0e%4WD!K*rD*7Pm%jw(nB<(RqjO&bBjHAXk3{zDqZ=ToP^6T?> zKI133!u3^^$Ba*>{e!B(K5=T#2K3||rd-}D!P99+r0;aTAD*V;tLj?mJKdJp8E8#@ z)-j!LROE%=w+dKPiKv)?IH*EAoCiOyz*FKXN})W0`xfjTuVRI|%81h)xF5y+jBz7{ z)s3`N#c3n%+i~B8`%4O{)($&~_gm{$4-K`^+KG5(zgrziCahG(MbA-I&Ze`*n5Ogq7k>JYSk}2Dj2c#-7lv-F7Mkb2QS!b5(}-jt^U-GP3RQ ztb?k9LAq6$_`#GD-)C)0b=%_;Nh{+r_cIH2r$Va@i7giCU};p8|jmQid}YM#1fIz zV-07=#;o*)w0(^XL6g_6Ya4R;olV z=;uk;Wu+Zt+UbpbseN{OJkDttPo9+vbGk1vmQ4#^Nr?895O-L~_#vq|rS^ga+tXMd zkXuDh78+PUJT+Nra05i>nZ$4+naGs2a!4US2liXZq`SJ(hDprK!FV!j(H1Ly5EGb9 zBd{~cNythe%}$BEm^(;r*=g%nvcwyLBm%D%Qt950&j78Y8$1P!*EWf!0^uNsRsrdo zmM}%Ctds>zRx=Eb^V5lqCX;TIZtw2bSuWZ)#4$=){oQ645mDO;%Z0F(EgzC{&$ojMp{o4PM=?wBD65 zDcBUscIC5d*4WT8Lqo%Q=cet+>{uezA5UTROHSnEh>2(q`pneC{;bRQk5M= z@AkCG%D5Z9^wRs@fR#Ro-ZItOlkrK^VJ2Y*~ru1G-UCE?zD zrq3iUW4D|Fu^I89#zo>~b$7$jTHJPhaxCnpJOOqJW6(idw1oH6BEs5)AW13_gOE>+ z#?zxnY8(T^8#}B~B-{vZg5^y*Z>irtXl><>a9v~cQUV{zm$@Tu$zeyy35GlEu5=nD z9tV?n7D?jN3}pFsw-%vs%929~JcCAPAD&ZeP$J-pfFpqu_W}GQR_YnSQ+Nuk<9Mg@ zKBAdfU=zSuhQ&WXyZk2y5DjX)UcV8Jn)Nl88{u9&>T;!){H=ILRy`lz zYM?O?q55zasLa}eC(@eyjoi?}IKG$#emCQ-z6gc$cQUn|@pi6taIM3KTK-;>JXN^Z z5)~k(g!7-7>GuV~z4bMhLVq|K9t=hd))wxqGIh!7(OOF|l9@0h6>3$A?W>+|ghHy& z*&D(84H?`Z!&+M84+V5B#oS5HUa%j<`(t$8}MCh$*F zwI?56{`{rNtn!%QUWK2I&G4kx4Cg#g5zXfxP@iwL(BuUGdq5pD?j?@%s@9hxcR58pQG*PWo^uZ&xEF3I|h0NT2%iJ-yXQH_hbIwEd0aC4`0qQde-dWX9Z`^ zu7s0~CnEzHJ~2h)wV1QVJu+>uGrJR+{axGp_Du8D9((wzJu-=VQdR~LFugf8F*-~G zo4Z!7KA&9Os|&h$eEBE;>g}ETTUNyH{kv%U&XT!XxgIIu<+aW-KB6InVNWvIAID?O zIKP>*EO{K`9w(PT#;I;77xkz5|0)mgcQg2AiYPzbEMA!KE!Y|8%(of$WqXNU zR~0@nq+R$$W(csCcA(aWzqH#5ybo}r{;NBB$otz9`dvC};7gbIu2C*8V3}B<^#B@> z%4fNaIKA=Nt`7&DeK_#&wHR-_@oNoQ`IP9OosT~Ww5FsTUy^w@L#P3pGT`Ea-Pjo< zEfyYqPGs1QgCKl>KdY-k-)_j`^DFC^#EA4so)wf1W}0VQc<`1 z8z!dN_)aofv0oTPdv`%b8d6H*Yr_$-wRp46F!DN|E12%VITh=xVG!>F86Y}{^|OE H=YjtO?azk* diff --git a/BUILDS/net5.0/PluginManager.dll b/BUILDS/net5.0/PluginManager.dll index 0928abbe3d2801464d2ba86ffe64163f77559349..4592f3bb8c10ffbeb108df92634516656ed38bb6 100644 GIT binary patch literal 41984 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 literal 38400 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 Y$M^ - + diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 5f12ecf..ad4efd5 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -137,7 +137,7 @@ namespace DiscordBot { string[] split = line.Split(','); Console.WriteLine($"Downloading item: {split[1]}"); - await ServerCom.DownloadFileAsync(split[0], split[1], i, lines.Count); + await ServerCom.DownloadFileAsync(split[0], "./" + split[1], i, lines.Count); Functions.WriteColorText($"Downloaded item {split[1]}"); i++; } diff --git a/MusicCommands/LinkMusic.cs b/MusicCommands/LinkMusic.cs index 8247ac8..bf040cc 100644 --- a/MusicCommands/LinkMusic.cs +++ b/MusicCommands/LinkMusic.cs @@ -1,26 +1,66 @@ -using Discord.Net; - -using System; -using System.Collections.Generic; +using System; using System.IO; -using System.Linq; using System.Net; -using System.Text; using System.Threading.Tasks; - namespace MusicCommands { public class LinkMusic { - private string URL; + public string URL { get; private set; } + public LinkType type { get; private set; } + + public LinkMusic(string URL) { this.URL = URL; + if (URL.StartsWith("https://www.youtube.com/watch?v=")) + type = LinkType.YOUTUBE; + else if (URL.StartsWith("https://open.spotify.com/track/")) + type = LinkType.SPOTIFY; + else type = LinkType.RAW; } - public async Task GetMusicStreamAsync() + + private async Task GetYoutubeVideoID() { - WebClient client = new WebClient(); - return await client.OpenReadTaskAsync(this.URL); + //https://www.youtube.com/watch?v=i-p--m7qaCM&ab_channel=Leviathan + return URL.Split("=")[1].Split('&')[0]; + } + + public async Task GetStream() + { + Stream s; + if (type == LinkType.SPOTIFY) s = await GetSpotifyMusicStreamAsync(); + else if (type == LinkType.YOUTUBE) s = await GetYoutubeMusicStreamAsync(); + else s = await GetRAWMusicStreamAsync(); + return s; + } + + private async Task GetSpotifyMusicStreamAsync() + { + Stream response = null; + return response; + } + + private async Task GetYoutubeMusicStreamAsync() + { + //https://www.youtube.com/get_video_info?video_id={id}&el=detailpage + string ID = await GetYoutubeVideoID(); + + + using (var webc = new WebClient()) + { + Stream s = await webc.OpenReadTaskAsync($"https://www.youtube.com/get_video_info?video_id={ID}&el=detailpage"); + string str = await new StreamReader(s).ReadToEndAsync(); + Console.WriteLine(str); + + await Task.Delay(-1); + } + return null; + } + + private async Task GetRAWMusicStreamAsync() + { + return await new WebClient().OpenReadTaskAsync(URL); } } } diff --git a/MusicCommands/LinkType.cs b/MusicCommands/LinkType.cs new file mode 100644 index 0000000..3a65356 --- /dev/null +++ b/MusicCommands/LinkType.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MusicCommands +{ + public enum LinkType + { + YOUTUBE, RAW, SPOTIFY + } +} diff --git a/MusicCommands/MusicCommands.csproj b/MusicCommands/MusicCommands.csproj index be8cdaa..a63efed 100644 --- a/MusicCommands/MusicCommands.csproj +++ b/MusicCommands/MusicCommands.csproj @@ -2,10 +2,12 @@ net5.0 + warnings ../BUILDS/ + none diff --git a/MusicCommands/lplay.cs b/MusicCommands/lplay.cs index 43e33f3..fe06e8d 100644 --- a/MusicCommands/lplay.cs +++ b/MusicCommands/lplay.cs @@ -7,13 +7,6 @@ using Discord; using PluginManager.Interfaces; using PluginManager.Others; -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace MusicCommands { class lplay : DBCommand @@ -33,7 +26,6 @@ namespace MusicCommands public async void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM) { - Data.voiceChannel = (context.User as IGuildUser)?.VoiceChannel; if (Data.voiceChannel == null) { await context.Channel.SendMessageAsync("User must be in a voice channel, or a voice channel must be passed as an argument."); return; } @@ -44,7 +36,7 @@ namespace MusicCommands if (Data.CurrentlyRunning != null) Data.CurrentlyRunning.Stop(); LinkMusic music = new LinkMusic(Functions.GetArguments(message)[0]); - Data.CurrentlyRunning = new MusicPlayer(await music.GetMusicStreamAsync(), discord); + Data.CurrentlyRunning = new MusicPlayer(await music.GetStream(), discord); await Data.CurrentlyRunning.StartSendAudio(); } } diff --git a/PluginManager/Online/PluginsManager.cs b/PluginManager/Online/PluginsManager.cs index 76a1620..dc47cf6 100644 --- a/PluginManager/Online/PluginsManager.cs +++ b/PluginManager/Online/PluginsManager.cs @@ -32,15 +32,15 @@ namespace PluginManager.Online var op = Functions.GetOperatinSystem(); string[] lines = text.Split('\n'); int len = lines.Length; - string[] titles = { "Name", "Description", "Plugin Type" }; - data.Add(new string[] { "-", "-", "-" }); + string[] titles = { "Name", "Description", "Plugin Type", "Libraries" }; + data.Add(new string[] { "-", "-", "-", "-" }); data.Add(titles); - data.Add(new string[] { "-", "-", "-" }); + data.Add(new string[] { "-", "-", "-", "-" }); for (int i = 0; i < len; i++) { if (lines[i].Length <= 2) continue; string[] content = lines[i].Split(','); - string[] display = new string[3]; + string[] display = new string[4]; if (op == PluginManager.Others.OperatingSystem.WINDOWS) { if (content[4].Contains("Windows")) @@ -48,6 +48,10 @@ namespace PluginManager.Online display[0] = content[0]; display[1] = content[1]; display[2] = content[2]; + if (content.Length == 6 && (content[5] != null || content[5].Length > 2)) + display[3] = ((await ServerCom.ReadTextFromFile(content[5])).Count + 1).ToString(); + + else display[3] = "1"; data.Add(display); continue; } @@ -65,7 +69,7 @@ namespace PluginManager.Online } } - data.Add(new string[] { "-", "-", "-" }); + data.Add(new string[] { "-", "-", "-", "-" }); Functions.FormatAndAlignTable(data); } diff --git a/PluginManager/Online/ServerCom.cs b/PluginManager/Online/ServerCom.cs index df24653..c5df790 100644 --- a/PluginManager/Online/ServerCom.cs +++ b/PluginManager/Online/ServerCom.cs @@ -33,7 +33,7 @@ namespace PluginManager.Online string oldTitle = Console.Title ?? ""; client.DownloadProgressChanged += (sender, e) => { - Console.Title = e.BytesReceived / 1024 + "/" + e.TotalBytesToReceive / 1024 + " (" + e.ProgressPercentage + "%) (" + downloadNumber + " / " + totalToDownload + ")"; + Console.Title = e.BytesReceived + "/" + e.TotalBytesToReceive + " (" + e.ProgressPercentage + "%) (" + downloadNumber + " / " + totalToDownload + ")"; }; client.DownloadFileCompleted += (sender, e) => { diff --git a/PluginManager/Others/Functions.cs b/PluginManager/Others/Functions.cs index 6cd2e85..f8cece8 100644 --- a/PluginManager/Others/Functions.cs +++ b/PluginManager/Others/Functions.cs @@ -174,14 +174,68 @@ namespace PluginManager.Others return command.Arguments; } + /// /// A way to create a table based on input data - /// EpicWings (Pasca Robert) este cel mai bun - /// Special thanks to Kami-sama <3 /// /// The List of arrays of strings that represent the rows. public static void FormatAndAlignTable(List data) { + char tableLine = '-'; + char tableCross = '+'; + char tableWall = '|'; + + int[] len = new int[data[0].Length]; + foreach (var line in data) + { + for (int i = 0; i < line.Length; i++) + if (line[i].Length > len[i]) + len[i] = line[i].Length; + } + + + foreach (string[] row in data) + { + //Console.Write("\t"); + if (row[0][0] == tableLine) Console.Write(tableCross); + else Console.Write(tableWall); + for (int l = 0; l < row.Length; l++) + { + if (row[l][0] == tableLine) + { + for (int i = 0; i < len[l] + 4; ++i) + Console.Write(tableLine); + } + else if (row[l].Length == len[l]) + { + Console.Write(" "); + Console.Write(row[l]); + Console.Write(" "); + } + else + { + + int lenHalf = row[l].Length / 2; + for (int i = 0; i < ((len[l] + 4) / 2 - lenHalf); ++i) + Console.Write(" "); + Console.Write(row[l]); + for (int i = (len[l] + 4) / 2 + lenHalf + 1; i < len[l] + 4; ++i) + Console.Write(" "); + if (row[l].Length % 2 == 0) + Console.Write(" "); + } + + if (row[l][0] == tableLine) Console.Write(tableCross); + else Console.Write(tableWall); + } + Console.WriteLine(); //end line + + } + + + //Obsolite + #region Old Code -> Spacing by the lomgest item in any cell + /* int maxLen = 0; foreach (string[] row in data) foreach (string s in row) @@ -192,7 +246,7 @@ namespace PluginManager.Others foreach (string[] row in data) { - Console.Write("\t"); + //Console.Write("\t"); if (row[0] == "-") Console.Write("+"); else Console.Write("|"); @@ -225,7 +279,8 @@ namespace PluginManager.Others else Console.Write("|"); } Console.WriteLine(); //end line - } + }*/ + #endregion } /// diff --git a/PluginManager/PluginManager.csproj b/PluginManager/PluginManager.csproj index c084911..2ceefd2 100644 --- a/PluginManager/PluginManager.csproj +++ b/PluginManager/PluginManager.csproj @@ -6,7 +6,7 @@ - +