ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² Π΄ΠΈΡΠΊΠΎΡΠ΄Π΅
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΡΠ° Π² ΠΠΈΡΠΊΠΎΡΠ΄ Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ
Π£ ΡΡΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° Β«DiscordΒ» ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ Π±ΠΎΡΠ° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ°ΠΊΠΎΠΉ Π±ΠΎΡ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ, Π½ΠΎ Π±ΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° Π±ΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΡΠΎΠ², ΠΏΠΎΠΈΡΠΊΠ° Π½ΡΠΆΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΠ³Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡ ΠΎΠΆΠΈΡ Π·Π°Π΄Π°Ρ. Π ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΡΠ° Π² ΠΠΈΡΠΊΠΎΡΠ΄ Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ, ΠΈ ΠΊΠ°ΠΊΠΎΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ² ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ.
ΠΠΎΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΠΈΡΠΊΠΎΡΠ΄
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² ΠΠΈΡΠΊΠΎΡΠ΄Π΅
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ Π½Π°ΠΌ Π±ΠΎΡΠ° Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° Π½Π° Β«ΠΠΈΡΠΊΠΎΡΠ΄Β»:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΎΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ. Β«InfoΒ» β ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π±ΠΎΡΠ΅ Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ², Β«FeaturesΒ» β ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π±ΠΎΡΠ°, Β«UsageΒ» β ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΡΠΎΠΌ.
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π·Π΄Π΅ΡΡ Β«ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°Β»;
ΠΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ Π² Discord
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ Π·Π²ΡΠΊΠΎΠΌ Ρ Π±ΠΎΡΠ° Π² ΠΠΈΡΠΊΠΎΡΠ΄ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΡΠΎΠΌ
Π§ΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΡΡΠ΅ΠΊ Π² ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ Π±ΠΎΡΠ° Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ++request (ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½ΡΠΆΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ½ΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Ρ), Π° Π·Π°ΡΠ΅ΠΌ Π½Π°Π±Π΅ΡΠΈΡΠ΅ ++music play. ΠΡ ΡΡΠ»ΡΡΠΈΡΠ΅ ΠΌΡΠ·ΡΠΊΡ, ΠΈ Π²ΡΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΉΠ΄ΡΡ Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΠΌΡΠΉ Π±ΠΎΡΠΎΠΌ ΡΡΠ΅ΠΊ.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΠ° Π±ΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΉΡΠΈ ΠΈΠ· Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ°ΡΠ°, ΠΏΠΎΡΠΎΠΌΡ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΅Π³ΠΎ Π²Π½ΠΎΠ²Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ++voice.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ Discord.js
Jul 21, 2019 Β· 8 min read
API discord ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΡΠΎΠ². Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ. ΠΠΎΡ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΌΡΠ·ΡΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° discord-Π±ΠΎΡΠ°
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ discord.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΠΏΠΎΡΡΠ°Π» ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° βnew applicationβ.
ΠΠ°ΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ βcreateβ.
ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Π±ΠΎΡ ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° βadd botβ.
ΠΠΎΡ ΡΠΎΠ·Π΄Π°Π½! Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π±ΠΎΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π±ΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° OAuth2 URL.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ OAuth2 ΠΈ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π±ΠΎΡΠ° Π² ΠΏΠ°Π½Π΅Π»ΠΈ scope.
ΠΠ° Ρ Π΅ΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ URL ΠΈ Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅Ρ.
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΡΠ΅ΡΠ²Π΅Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΎΡΠΈΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ URL ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ βauthorizeβ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π°.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄Π²Π΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ npm init. ΠΠΎΡΠ»Π΅ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄ΡΡ Π·Π°Π΄Π°Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠΏΡΠΎΡΠΎΠ². ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π° ΡΠ°ΠΉΠ»Π°, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅. Π― ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ VS Code ΠΈ ΠΎΡΠΊΡΡΠ²Π°Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ½ΠΎΠ²Ρ Discord js
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ, Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° config.json. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π΄Π»Ρ Π±ΠΎΡΠ° ΡΠΎΠΊΠ΅Π½ ΠΈ ΠΏΡΠ΅ΡΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ»ΡΡΠ°ΡΡ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½Π° ΡΠ½ΠΎΠ²Π° Π·Π°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ°Π» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ discord ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° bot.
ΠΡΠΎ Π²ΡΠ΅, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΡΠ°ΠΉΠ»Π΅ config.json. ΠΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° javascript.
Π‘Π½Π°ΡΠ°Π»Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π²ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ°ΡΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΊΠ΅Π½Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π»ΠΎΠ³ΠΈΠ½.
ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΡ listeners, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ console.log ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΠΎΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ node. ΠΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ online Π² discord ΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²Π΅Π΄Π΅ΡΡΡβReady!β
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ
ΠΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡΡ online. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠΈΡΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΡΠ΅ ΠΈ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π½ΠΈΡ .
ΠΠ»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ listener Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΡ message, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡ message.
ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ: Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠ»ΠΎ ΠΎΡ Π±ΠΎΡΠ°, ΡΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ.
Π ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π°Π²ΡΠΎΡΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±ΠΎΡ. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ.
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΠ°. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ.
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if.
Π ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°, ΡΠΎ Π²Π²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΡΠ°Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ send().
Π£Π·Π½Π°Π², ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½
ΠΠ°ΡΠ½Π΅ΠΌ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ play. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΠ΅ΡΠ½Ρ ΠΈ Π³ΠΈΠ»ΡΠ΄ΠΈΡ (Π³ΠΈΠ»ΡΠ΄ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈ ΡΠ°ΡΡΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°). Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠ°Π½Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ytdl.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ map Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π²ΡΠ΅ ΠΏΠ΅ΡΠ½ΠΈ, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Ρ.
ΠΠ°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ async ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ execute ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌ ΡΠ°ΡΠ΅, ΠΈ Π΅ΡΡΡ Π»ΠΈ Ρ Π±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΠΏΠΈΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠ΅ΡΠ½Π΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π΅Π΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡ song. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ytdl, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ΅ΡΠ½Π΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½Π° youtube.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡ song.
ΠΠΎΡΠ»Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π»ΠΈ serverQueue, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡΠ·ΡΠΊΠ° ΡΠΆΠ΅ ΠΈΠ³ΡΠ°Π΅Ρ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ½Ρ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ serverQueue ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ Π½Π΅Ρ, ΡΠΎ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΌΡΠ·ΡΠΊΡ.
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ serverQueue ΠΏΡΡΡΡΠΌ. ΠΡΠ»ΠΈ Π½Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΡΠ΄Π° ΠΏΠ΅ΡΠ½Ρ.
ΠΡΠ»ΠΈ serverQueue ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null, ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ.
Π ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, Π° ΠΏΠ΅ΡΠ½Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΌΠ°ΡΡΠΈΠ² songs.
ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ play(), ΠΊΠΎΡΠΎΡΡΡ Π·Π°ΡΠ΅ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ.
ΠΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π½
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΠ΅ΡΠ½ΠΈ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ play, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ (Π³ΠΈΠ»ΡΠ΄ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ½Ρ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡ) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ song ΠΏΡΡΡΡΠΌ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅ΠΌ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΠΊΠ°Π½Π°Π» ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΠ°ΡΠ΅ΠΌ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ playStream() ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ½ΠΈ.
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ stream ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΅Π³ΠΎ URL-Π°Π΄ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ½ΠΈ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π΄Π²Π° listeners, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ end ΠΈ error.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ. Π Π΅ΠΊΡΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π΄ΡΡΠ³Π°Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ.
ΠΡΠΎΠΏΡΡΠΊ ΠΏΠ΅ΡΠ΅Π½
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΠΏΡΡΠΊΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΠΈ play() Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ½ΠΈ.
Π ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π²Π΅Π» ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π² Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ½ΠΈ Π΄Π»Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ°.
ΠΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅Π½
Π€ΡΠ½ΠΊΡΠΈΡ stop() ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° skip(), Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ² songs ΠΎΡΠΈΡΠ°Π΅ΡΡΡ, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π±ΠΎΡ ΡΠ΄Π°Π»ΡΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΡΠ°Ρ.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ index.js:
ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ°:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π£ Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ! ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² API Discord ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Ρ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π±ΠΎΡΠ°.
ΠΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΉ Π±ΠΎΡ Π΄Π»Ρ Discord
Discord ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²ΡΠ΅ΠΌΡΠΏΡΠ΅ΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΉ Π±ΠΎΡ Π΄Π»Ρ Discord Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΎΡΠΎΠ±ΡΡ ΠΎΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡ Π΅Π³ΠΎ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½ Π΄Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ ΡΠΏΠ΅ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ.
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?
ΠΠΎΡ Π΄Π»Ρ ΠΠΈΡΠΊΠΎΡΠ΄Π°: ΠΌΡΠ·ΡΠΊΠ°, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ Π²Π΅ΡΠ°ΡΠ΅Π»Ρ, Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ ΠΈ Ρ.Π΄. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π°ΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΡΠΎ ΠΎΠ½ ΠΎΡΠ»ΠΈΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΊΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΠ΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΠΠΈΡΠΊΠΎΡΠ΄Π΅, Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»ΡΠ±ΠΈΠΌΡΡ ΠΌΡΠ·ΡΠΊΡ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΡΠ»Π°Π±ΠΈΡΡΡΡ.
ΠΠ»Ρ Discord ΠΌΡΠ·ΡΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠΎΡΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π² ΠΏΠ»Π°Π½Π΅ ΡΠΏΡΠΎΡΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π΅ΡΠ°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ ΡΡΠΎΠΈΡ ΡΠΏΡΡΠΊΠ°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡ Π² ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ, ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ, ΠΏΠΎΠ²ΡΡΠΈΠ² ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ².
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ?
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² ΠΠΈΡΠΊΠΎΡΠ΄? Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ ΡΠ»ΠΎΠΆΠ½ΠΎ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ:
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΠΎΡΠ° Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠΎ Π½Π° ΡΡΠΎΠΌ Π½Π΅ ΡΡΠΎΠΈΡ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, Π²Π΅Π΄Ρ Π½ΡΠΆΠ½ΠΎ Π² Π½Π΅Π³ΠΎ Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΡΠ·ΡΠΊΠΈ. Π Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ, ΡΠΎ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΎΡΡΠΎΠΌΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½Π°ΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΌ Π±ΠΎΡΠΎΠΌ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ:
ΠΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π²ΡΠ΅, ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π΅Ρ. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄ΡΡΡΡ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅Ρ Ρ ΠΎΡΠΎΡΠ΅Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΈΠ΅.
ΠΡΡΡΠΈΠ΅ Π±ΠΎΡΡ Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ Π΄Π»Ρ ΠΠΈΡΠΊΠΎΡΠ΄Π° 2021 β ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΊΠ°Π½Π°Π» Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ
ΠΠ°Π΄ΡΠΌΠ°Π½Π½ΡΠΉ, ΠΊΠ°ΠΊ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π³Π΅ΠΉΠΌΠ΅ΡΠΎΠ², Π±ΠΎΡ Discord Π±ΡΡΡΡΠΎ ΡΡΠ°Π» ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ ΠΈ Ρ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ»Π°Π²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ β ΠΈΠ·-Π·Π° ΠΏΠΎΠ½ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π°, ΡΠ΅ΠΌ Ρ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠΎΠ². ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΠ΅ΠΊ ΡΠ΅ΡΠ²ΠΈΡΠ° β Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΠΈΡΠΊΠΎΡΠ΄ Π΄Π΅ΡΡΡΠΊΠΈ Π±ΠΎΡΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ .
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΡΠ° Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅ ΠΠΈΡΠΊΠΎΡΠ΄ ΠΈ ΡΡΠΎ ΡΡΠΎ Π΄Π°Π΅Ρ
Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π² 2015 Π³ΠΎΠ΄Ρ ΠΊΠ°ΠΊ Β«ΡΠ΅ΡΡΠΈΡΠΎΡΠΈΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ³ΡΠΎΠΌΠ°Π½ΠΎΠ²Β», ΠΠΈΡΠΊΠΎΡΠ΄ ΡΠΆΠ΅ ΡΠ΅ΡΠ΅Π· 2 Π³ΠΎΠ΄Π° ΡΡΠ°Π» Π½Π°Π±ΠΈΡΠ°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ»ΠΎΡΠ°Π΄ΠΊΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π½ΠΈΡ Β«Π²ΡΠ΅Ρ ΡΠΎ Π²ΡΠ΅ΠΌΠΈΒ». ΠΠ±ΡΡΡΠ½ΡΠ»ΡΡ ΡΠ°ΠΊΠΎΠΉ ΡΠΏΡΠΎΡ ΠΏΡΠΎΡΡΠΎΡΠΎΠΉ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ Π² ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΡΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠ»Π°ΠΌΡ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ Π±ΠΎΡΡ
ΠΠ° Π³Π΅ΠΉΠΌΠ΅ΡΡΠΊΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°Π½Π°ΡΡ Β«Π€ΠΎΡΠΌΡΠ»Ρ-1Β», Π»ΡΠ±ΠΈΡΠ΅Π»ΠΈ Π²ΡΠ·Π°Π½ΠΈΡ, Π±ΠΎΠΉΡΠΊΠ°ΡΡΡ, Π±Π»ΠΎΠ³Π΅ΡΡ, ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠ²ΠΎΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡ. ΠΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠΎΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ΅Π±ΡΠ΅Π½Π΄ΠΈΠ½Π³Ρ. ΠΠ° ΠΠΈΡΠΊΠΎΡΠ΄Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π²ΠΈΠ΄Π΅ΠΎΡΠ°Ρ, ΠΈ ΠΎΠ½ ΡΡΠ°Π» ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅Ρ Β«Π΄Π»Ρ Π²ΡΠ΅Ρ Β».
Π’ΠΎΠ»ΡΠΊΠΎ Π·Π° 6 ΠΌΠ΅ΡΡΡΠ΅Π² ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ²Π΅Π»ΠΈΡΠΈΠ»Π°ΡΡ ΠΏΠΎΡΡΠΈ Π²Π΄Π²ΠΎΠ΅, ΠΈ Π½Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠΎΠ»Ρ Π² ΡΡΠΎΠΌ ΡΡΠ³ΡΠ°Π» ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±ΠΎΡΡ.
ΠΠΎΠ²ΠΎΡΡ ΠΏΡΠΎΡΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π±ΠΎΡ β ΡΡΠΎ ΡΠΌΠ½ΡΠΉ ΡΠΎΠ±ΠΎΡ-ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΡΡΡ Π½Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ: Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΠΎΡΡΠΈ, ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅, ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π΅Ρ ΠΌΡΠ·ΡΠΊΡ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ΅ΠΊΠΈ ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠ°ΠΌ, Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΆΠΈΠ·Π½Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΎΡΠ΅ ΠΈ ΠΊΠΎΠΌΡΠΎΡΡΠ½Π΅Π΅.
ΠΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΎΡΡ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΎΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡΡ ΡΡΠ΅Π΄ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Discord. ΠΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ΅ Π·Π°Π»ΠΎΠΆΠ΅Π½Ρ Π½Π΅ Π±ΡΠ»ΠΈ: ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΡ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΌΡΠ·ΡΠΊΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ Π΅Π΅ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² Discord Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΎΡΠΎΠ±ΡΡ Π½Π°Π²ΡΠΊΠΎΠ² ΠΈ Π·Π½Π°Π½ΠΈΠΉ ΡΡΡ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
ΠΠ»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° Discord ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ Π±ΠΎΡΠΎΠ². ΠΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΠΉ, Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠ»Π°Π²Π½ΠΎΠ΅, Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π±ΠΎΡΠ°
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² ΠΊΠ°Π½Π°Π» Discord Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±ΠΎΡΠ° Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ:
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΠΎΡΠΎΠ² Π΄Π»Ρ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° Discord. ΠΡ Π²ΡΠ±ΠΎΡ Π½Π°ΠΏΡΡΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅Π»ΠΈ ΠΏΡΠ΅ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Ρ ΠΎΡΡ Π² Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠΌ ΡΠ²ΠΎΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ +/- ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ
ΠΡΠ·ΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΡΠΎΠΏΠΈΡΠ°Π½Ρ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Usage Π½Π° ΡΠ°ΠΉΡΠ΅, ΠΎΡΠΊΡΠ΄Π° Π΅Π³ΠΎ ΡΠΊΠ°ΡΠ°Π»ΠΈ. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ Π±ΠΎΡΠΎΠ², Π½ΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Β«ΡΡΡΠ°Π³ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΒ» Π±ΠΎΡΠΎΠΌ, Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Π²ΠΎΠ΄ΠΈΠΌ Β«++helpΒ», ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ±ΠΈΡΠ°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π±ΠΎΡ Π² Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΉ ΡΠ°Ρ. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅Π»ΡΠ·Ρ Π·Π°Π±ΡΠ²Π°ΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ Π½Π°ΡΠ°Π»ΠΎΡΡ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ Π² ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ Π±ΠΎΡΠ° ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΎΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ, ΠΈ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Discord, ΡΠΎ Π»ΡΡΡΠ΅ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ.
Groovy ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ β ΡΠΎΠΏ Π»ΡΡΡΠΈΡ Π±ΠΎΡΠΎΠ² Π΄Π»Ρ ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΠ° Discord
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ±ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±ΠΎΡΠΎΠ².
Π Π΅ΡΠ»ΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡ Π»ΡΡΡΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ , ΡΠΎ ΠΈΠΌΠΈ Π±Π΅ΡΡΠΏΠΎΡΠ½ΠΎ ΡΠ²Π»ΡΡΡΡΡ:
ΠΠ° Fredboat ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΡ, Π·Π°Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ ΡΡΡΠ»ΠΊΡ.
ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈ ΡΡΠ°Π²ΠΈΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡΡ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΡ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
ΠΠ»Π°Π²Π½Π°Ρ ΡΠΈΡΠΊΠ° β ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠΎ Spotify, ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡ Π²Π°ΡΡΠ°ΡΡΡΡ Π½Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π±ΠΎΡ Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π½Π° Groovy ΠΈΠΌΠ΅Π΅ΡΡΡ: Π·Π°ΡΠΈΠΊΠ»Π΅Π½Π½ΠΎΠ΅ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠΎΠ², ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄ΡΡΠ³ΠΎΠ΅. Π Π°Π±ΠΎΡΠ°Π΅Ρ Π±ΠΎΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎΠ½Π°ΡΠ° ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ»Π°ΡΠ½ΡΠΌΠΈ.
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ ΡΡΠΎ Π±ΠΎΡ Groovy ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡ Π²Π°ΡΡΠ°ΡΡΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ². Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π»Π΅Π³ΠΊΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π±Π΅Π· ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΠ±ΠΎΠ΅Π² ΠΈ ΠΏΡΠΎΡΠΈΡ Π±Π°Π³ΠΎΠ²
Π‘ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΡΠΎΠΈΡΡ ΠΈΠΌΠΏΡΠΎΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Β«ΠΊΠ°ΡΠ°ΠΎΠΊΠ΅Β» ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ΅Π±Ρ Β«Π·Π²Π΅Π·Π΄ΠΎΠΉ ΠΌΠΈΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π½ΡΒ».
ΠΠΎ Π΅ΡΡΡ Ρ Tony Bamanaboni XD ΠΈ ΡΠ²ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ. ΠΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΠ»ΠΈΠ²Π°ΡΡ Π½ΠΈΠ·ΠΊΠΈΠ΅ ΠΈΠ»ΠΈ Π²ΡΡΠΎΠΊΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ, Π·Π°Π΄Π°Π²Π°ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΌ Π±ΠΎΡΠΎΠΌ Π΄Π»Ρ Discord Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Tony Bamanaboni XD, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ Π² ΠΏΠ»Π΅ΠΉ-Π»ΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π½ΡΠΆΠ½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΡ, ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π²ΡΠΊΠΎΠ²ΡΠ΅ ΡΠΈΠ»ΡΡΡΡ
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΠΎΡΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ.
ΠΠΎ ΠΏΡΠ΅ΠΌΠΈΡΠΌ-Π²Π΅ΡΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ°ΠΌ Π³ΡΠΎΠΌΠΊΠΎΡΡΠΈ, ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΡΠΎΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π±ΠΎΡΠΎΠ² Ρ ΠΌΡΠ·ΡΠΊΠΎΠΉ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Discord. ΠΠ΅Π΄Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ Π±ΠΎΡΡ Π·Π°Π²ΠΎΠ΅Π²Π°Π»ΠΈ Π»ΡΠ±ΠΎΠ²Ρ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈ ΡΡΠΎΠΌ, ΡΠΏΠΈΡΠΎΠΊ ΠΈΡ Π²Π΅ΡΡΠΌΠ° Π²Π½ΡΡΠΈΡΠ΅Π»Π΅Π½, ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ±ΠΎΡΠ° ΡΠ΅Π±Π΅ Β«ΠΏΠΎ Π΄ΡΡΠ΅Β».
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ° Π² Discord
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΎ ΡΡΡΠ½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±ΠΎΡΠ° Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ Π² Discord. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ, Π΅ΡΠ»ΠΈ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ JavaScript. Π‘ΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π½Π°ΠΌΠΈ Π±ΠΎΡ Π±ΡΠ» ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½, Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΠ°ΠΏΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΈΡΠ°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ, Π½ΠΎ ΠΈ ΠΏΠΎΡΠ²Π»ΡΡΡΠΈΠ΅ΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠΎΠ΄Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΈΠ΅ Π±ΡΠ΄ΡΡ.
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΉ Π΄Π»Ρ Π²Π°Ρ ΠΈΠ»ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠ΅ Π±ΠΎΡΡ Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ. Π ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ.
Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΆΠ΄ΡΠΉ Π±ΠΎΡ Π΄Π»Ρ ΠΠΈΡΠΊΠΎΡΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ°Π»Π΅ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². Π’Π°ΠΊ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΎΠ±ΡΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΎΡΠ°, ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π΅Π³ΠΎ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² Π»ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΡΠ° Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ ΡΠΎΠΊΠ΅Π½ΠΎΠΌ, Π° Π±ΠΎΡ ΡΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠ»Π°ΠΉΠ½-ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠΆΠ΅ Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠΊΠ° ΠΌΡ Π½Π΅ Π²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌ Π±ΠΎΡΠ° Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³ Π΄Π»Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π¨Π°Π³ 2: ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ
Π ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ Π½ΠΈΡ . Π ΡΡΠΎΠΌ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»Π΅Π΄Ρ Π·Π° ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π ΠΈΡΠΎΠ³Π΅ Π² Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΡΠ°ΠΉΠ»Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ Node.js ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠΌ ΠΏΠΎΡΠ»Π΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ. ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ Π±ΠΎΡΠ° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΡΡΡΠ΄Π½ΠΎΡΡΠ΅ΠΉ, Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ.
Π¨Π°Π³ 3: Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΠΎΡΠ°
ΠΡ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π±ΠΎΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ ΠΏΠ°ΡΠ° ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΡ Π·Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΏΡΠ΅ΡΠΈΠΊΡ (ΡΠΈΠΌΠ²ΠΎΠ» ΠΏΠ΅ΡΠ΅Π΄ Π²Π²ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅) ΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² API. ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ ΡΠΊΠ°ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° JS ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, Π΅ΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΡΠ°Π½Π΅Π΅. Π ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π½ΠΈΠΆΠ΅ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΠ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ ΡΠ°Π±ΠΎΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π²Π²ΠΎΠ΄Ρ ΡΡΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΠ° ΡΡΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ, Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊΡΠΎΠΉΡΠ΅ Π΅Π³ΠΎ, Π½Π΅ Π·Π°Π±ΡΠ² ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ, ΠΈ ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉΡΠ΅ ΠΊ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π±ΠΎΡΠ° Π΄Π»Ρ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΡΠ·ΡΠΊΠΈ.
Π¨Π°Π³ 4: ΠΡΠΎΠ±Π½ΡΠΉ Π·Π°ΠΏΡΡΠΊ Π±ΠΎΡΠ°
const Discord = require(‘discord.js’);
const <
prefix,
token,
> = require(‘./config.json’);
const ytdl = require(‘ytdl-core’);
const client = new Discord.Client();
client.login(token);
client.once(‘ready’, () =><
console.log(‘Ready!’);
>);
client.once(‘reconnecting’, () =><
console.log(‘Reconnecting!’);
>);
client.once(‘disconnect’, () =><
console.log(‘Disconnect!’);
>);
Π¨Π°Π³ 5: ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ°
ΠΡΡΠ°Π»ΡΡ ΡΠ°ΠΌΡΠΉ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ β Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ°. ΠΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ: ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ½ΠΈ ΠΈΠ»ΠΈ Π΅Π΅ Π°Π΄ΡΠ΅ΡΠ°, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅ ΡΡΠΎ Ρ Π±ΠΎΡΠ° Π΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π½ΡΠΆΠ½ΠΎ Π»ΠΈΡΡ ΡΠΊΠ°Π·Π°ΡΡ Π΅ΠΌΡ Π½Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ JavaScript, ΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΉΠ»Π΅ Β«index.jsΒ».
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ:
client.on(‘message’, async message => <
ΠΠ½Π° ΡΠΎΡΡΠΎΠΈΡ Π²ΡΠ΅Π³ΠΎ ΠΈΠ· Π΄Π²ΡΡ ΡΡΡΠΎΠΊ, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±ΠΎΡΡ ΠΏΡΠΈΠ½ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ Π±ΠΎΡΠΎΠ² Π»ΡΠ±ΡΡ ΡΠΈΠΏΠΎΠ². ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ Π±ΠΎΡΠΎΠ², Π²Π²Π΅Π΄Ρ
if (message.author.bot) return;
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΠΏΡΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΠΎΡΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠ΅ΡΠΈΠΊΡ, ΡΡΠΎΠ±Ρ Π±ΠΎΡ ΠΏΡΠΈΠ½ΡΠ» ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ»ΠΈ Π²Π΅ΡΠ½ΡΠ» Π΅Π΅.
if (!message.content.startsWith(prefix)) return;
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² if, Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
const serverQueue = queue.get(message.guild.id);
if (message.content.startsWith(`$
execute(message, serverQueue);
return;
> else if (message.content.startsWith(`$
skip(message, serverQueue);
return;
> else if (message.content.startsWith(`$
stop(message, serverQueue);
return;
> else <
message.channel.send(‘ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ!’)
>
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ send(») ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Π΄ΡΡΠ³ ΠΎΠ½ Π²Π²ΠΎΠ΄ΠΈΡ Π½Π΅ΡΠ°Π±ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π½Π°Π΄ΠΏΠΈΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠ°Ρ .
const queue = new Map();
ΠΠ½ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ½ΠΈ ΠΈΠ³ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ°Π»Π΅Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ Π΅ΡΡΡ Π»ΠΈ Ρ Π±ΠΎΡΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ.
Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ytdl, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ Π±ΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ½ΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Ρ YouTube, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ Π΅Π΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ»Ρ Π½Π΅Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π²ΡΡΠ°Π²ΠΈΡΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π°.
const songInfo = await ytdl.getInfo(args[1]);
const song = <
title: songInfo.title,
url: songInfo.video_url,
>;
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΏΠΎΠ½ΡΡΡ, Π΅ΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ½ΠΈ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ Π½Π°ΡΠ°ΡΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅.
>else <
serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`$
>
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΡΡ Π΅ΠΌΠ° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ½Ρ Π² ΠΌΠ°ΡΡΠΈΠ² ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Π²ΠΎΠ΄Π΅ !play, ΠΏΡΠΎΠ²Π΅ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ Π²ΡΠ±ΠΈΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΡΠΌΠΈ.
// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
const queueContruct = <
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
>;
// Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°
queue.set(message.guild.id, queueContruct);
// ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π² Π½Π°Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΏΠ΅ΡΠ΅Π½
queueContruct.songs.push(song);
try <
// ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΡΠ°ΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅
var connection = await voiceChannel.join();
queueContruct.connection = connection;
// ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ½ΠΈ
play(message.guild, queueContruct.songs[0]);
> catch (err) <
// ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π΅ΡΠ»ΠΈ Π±ΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΡΠ°ΡΡ
console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
>
function play(guild, song) <
const serverQueue = queue.get(guild.id);
if (!song) <
serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>
>
ΠΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΆΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ playStream() ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠ΅ΠΊ.
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on(‘end’, () => <
console.log(‘ΠΡΠ·ΡΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ»Π°ΡΡ!’);
// Π£Π΄Π°Π»ΡΠ΅Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ½Ρ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
serverQueue.songs.shift();
// Π‘Π½ΠΎΠ²Π° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ½Π΅ΠΉ
play(guild, serverQueue.songs[0]);
>)
.on(‘error’, error => <
console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΏΠ΅ΡΠ΅Π½, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ³ΡΠ°ΡΡ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠ·Π°Π±ΠΎΡΡΡΠ΅ΡΡ ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, Π° Π·Π°ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ:
function skip(message, serverQueue) <
if (!message.member.voiceChannel) return message.channel.send(‘ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΡΠ·ΡΠΊΡ!’);
if (!serverQueue) return message.channel.send(‘ΠΠ΅Ρ ΠΏΠ΅ΡΠ½ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ!’);
serverQueue.connection.dispatcher.end();
>
ΠΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΡΡ Π΅ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π½ΠΎ Π±Π»ΠΎΠΊ Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠ±ΡΠ΅ΡΠ°Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠΉ Π²ΠΈΠ΄:
function stop(message, serverQueue) <
if (!message.member.voiceChannel) return message.channel.send(‘
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π² Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΡΠ·ΡΠΊΡ!’);
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
>
Π£ΡΠΈΡΡΠ²Π°ΠΉΡΠ΅, ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΊΡΠΎ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ ΡΠ·ΡΠΊΠΎΠΌ JavaScript ΠΈΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π΅Π³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ΅ΡΠΈΠ» ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π±ΠΎΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π²Π»Π°Π΄Π΅Π΅ΡΠ΅ Π½Π°Π²ΡΠΊΠ°ΠΌΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π²Π°ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈ ΠΎ ΡΠ΅ΠΌ Π½Π΅ Π³ΠΎΠ²ΠΎΡΡΡ, ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°Π²ΡΡΠ΅ Π²Π΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π² ΡΠ°ΠΉΠ», Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Π±ΠΎΡΠ° Π½Π° ΡΡΡΡΠΊΠΈΠ΅ (ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠ°Ρ ) ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ΅ΡΡ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°ΠΊΠΎΠΉ Π²ΠΈΠ΄:
const Discord = require(‘discord.js’);
const <
prefix,
token,
> = require(‘./config.json’);
const ytdl = require(‘ytdl-core’);
const client = new Discord.Client();
const queue = new Map();
client.on(‘message’, async message => <
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
const serverQueue = queue.get(message.guild.id);
if (message.content.startsWith(`$
execute(message, serverQueue);
return;
> else if (message.content.startsWith(`$
skip(message, serverQueue);
return;
> else if (message.content.startsWith(`$
stop(message, serverQueue);
return;
> else <
message.channel.send(‘You need to enter a valid command!’)
>
>);
async function execute(message, serverQueue) <
const args = message.content.split(‘ ‘);
const songInfo = await ytdl.getInfo(args[1]);
const song = <
title: songInfo.title,
url: songInfo.video_url,
>;
if (!serverQueue) <
const queueContruct = <
textChannel: message.channel,
voiceChannel: voiceChannel,
connection: null,
songs: [],
volume: 5,
playing: true,
>;
try <
var connection = await voiceChannel.join();
queueContruct.connection = connection;
play(message.guild, queueContruct.songs[0]);
> catch (err) <
console.log(err);
queue.delete(message.guild.id);
return message.channel.send(err);
>
> else <
serverQueue.songs.push(song);
console.log(serverQueue.songs);
return message.channel.send(`$
>
function skip(message, serverQueue) <
if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);
if (!serverQueue) return message.channel.send(‘There is no song that I could skip!’);
serverQueue.connection.dispatcher.end();
>
function stop(message, serverQueue) <
if (!message.member.voiceChannel) return message.channel.send(‘You have to be in a voice channel to stop the music!’);
serverQueue.songs = [];
serverQueue.connection.dispatcher.end();
>
function play(guild, song) <
const serverQueue = queue.get(guild.id);
if (!song) <
serverQueue.voiceChannel.leave();
queue.delete(guild.id);
return;
>
const dispatcher = serverQueue.connection.playStream(ytdl(song.url))
.on(‘end’, () => <
console.log(‘Music ended!’);
serverQueue.songs.shift();
play(guild, serverQueue.songs[0]);
>)
.on(‘error’, error => <
console.error(error);
>);
dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);
>
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ Π»ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π±ΠΎΡΠ°, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΊΠ°Π½Π°Π»Ρ ΠΈ Π²Π²Π΅ΡΡΠΈ Π»ΡΠ±ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΠΈΠ², ΠΊΠ°ΠΊ Π½Π° ΡΡΠΎ ΠΎΡΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π±ΠΎΡ.
ΠΡΠ»ΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ Π²Π°ΡΠΈΠ°Π½Ρ Π±ΠΎΡΠ° Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ Π½Π° ΡΠΎΠΌ ΠΆΠ΅ GitHub ΠΈ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. ΠΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΎΡΡΠ°Π΅ΡΡΡ ΡΠΎΡ ΠΆΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ Π³ΠΎΡΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉΡΠ΅ ΠΊ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΡΠ°.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΡ Π±ΠΎΡΠ° Π½Π° Ρ ΠΎΡΡΠΈΠ½Π³, ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΡΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°Π²Π°ΡΠ°ΡΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΊΡΡΡΡΡ ΠΏΠ»ΠΎΡΠ°Π΄ΠΎΠΊ, ΠΎΡΠΊΡΠ΄Π° Π΅Π³ΠΎ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°ΡΡ. ΠΡΠ΅ ΡΡΠΎ β ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΡΠΎΠΈΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΡΠΎΡΠΈΠ»ΠΈ ΡΠ²ΠΎΠΉ Π½Π°Π²ΡΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΡΠΎΠ² ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ Π² ΡΠ΅ΡΠΈ.
ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π½Π° ΡΠ°ΠΉΡΠ΅ Π΅ΡΠ΅ 12540 ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΡ Lumpics.ru Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ (CTRL+D) ΠΈ ΠΌΡ ΡΠΎΡΠ½ΠΎ Π΅ΡΠ΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠΌΡΡ Π²Π°ΠΌ.
ΠΡΠ±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΠ΅ Π°Π²ΡΠΎΡΠ°, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ ΡΡΠ°ΡΡΠ΅ΠΉ Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡ .