music player for arras (beta)

pls no cringe for music choice. also change stuff as you please.

  1. // ==UserScript==
  2. // @name music player for arras (beta)
  3. // @namespace its kinda workin out
  4. // @match *://arras.io/*
  5. // @match *://arrax.io/*
  6. // @grant none
  7. // @version 2
  8. // @author onion
  9. // @description pls no cringe for music choice. also change stuff as you please.
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13.  
  14. //creating audio element
  15. let audio = document.createElement('audio');
  16. let audio1 = document.createElement('audio');
  17. let nextthing = document.createElement('audio');
  18. let uhm = document.createElement('audio');
  19. let tetris = document.createElement('audio');
  20. let rise = document.createElement('audio');
  21. let sour = document.createElement('audio');
  22. let ops = document.createElement('audio');
  23. let efs = document.createElement('audio');
  24. let erika = document.createElement('audio');
  25. let vd = document.createElement('audio');
  26. let reichstag = document.createElement('audio');
  27. let ussr1 = document.createElement('audio');
  28. let ussr2 = document.createElement('audio');
  29. let ussr3 = document.createElement('audio');
  30. var number = 1;
  31. var elementp = document.createElement('style');
  32. var sonata = document.createElement('audio');
  33. var classical = document.createElement('audio');
  34.  
  35.  
  36.  
  37.  
  38.  
  39. let ps = document.createElement('button');
  40. ps.style.backgroundColor = "transparent";
  41. ps.style.width = "100%";
  42. ps.style.height = "100%";
  43. ps.style.pointerEvents = "none";
  44. ps.style.position = "absolute";
  45. ps.style.top = "0";
  46. ps.style.left = "0";
  47. ps.style.zIndex = "100000";
  48.  
  49.  
  50.  
  51.  
  52. document.body.appendChild(ps);
  53.  
  54. //const canvas = document.querySelector("canvas");
  55.  
  56.  
  57. if (!document.getElementById('jwd')) {
  58. var rect = document.createElement('div');
  59. rect.id = 'jwd';
  60. rect.style.cssText = 'position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) rotate(0); width: 1000%; height: 50px; background-color: red; transform-origin: center; z-index: 1000000; opacity: 0.15; pointer-events: none;';
  61. document.body.style.cssText = 'cursor: crosshair !important; '
  62. // append the rectangle to the body
  63. //canvas.append(rect);
  64. document.body.append(rect);
  65.  
  66. // calculate the rotation angle based on mouse position
  67. document.onmousemove = function(e) {
  68. var angle = Math.atan2(e.pageY - window.innerHeight/2, e.pageX - window.innerWidth/2);
  69. rect.style.transform = 'translate(-50%, -50%) rotate(' + angle + 'rad)';
  70. };
  71. };
  72.  
  73.  
  74. //document.getElementById("#canvas").backgroundImage = "linear-gradient( 358.4deg, rgba(249,151,119,1) -2.1%, rgba(98,58,162,1) 90% );";
  75.  
  76. var sadsad = `
  77. #canvas {
  78. backgroundImage: linear-gradient( 358.4deg, rgba(249,151,119,1) -2.1%, rgba(98,58,162,1) 90% );
  79. }
  80.  
  81. `;
  82.  
  83. document.head.append(sadsad);
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. // Set sources
  97. // classical music 2 hours
  98. classical.src = "https://cdn.glitch.me/b1fc10cc-5b67-4847-88d6-c342a69adfee/videoplayback%20(7).m4a?v=1679525707955";
  99. // moonlight sonata nightmare
  100. sonata.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1088229398152491108/videoplayback_5.m4a";
  101. // ussr anthem 1977 russian
  102. ussr3.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084286826103181312/soviet-anthem.mp3";
  103. // ussr anthem 1944 english
  104. ussr2.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084286889831448626/soviet-anthem_en.mp3";
  105. // ussr anthem 1944 russian
  106. ussr1.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084286842473545799/soviet-anthem1944.mp3";
  107. // national anthem of nazi germany
  108. reichstag.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084285133269508157/de-naz.mp3";
  109. // victory day russian ssr song
  110. vd.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084202798733860986/yt5s.com_-_Eng_CC_Victory_Day___Soviet_Song_128_kbps.mp3";
  111. // erika
  112. erika.src = "https://cdn.discordapp.com/attachments/1068333890596524033/1084201573711888466/yt5s.com_-_German_Soldiers_Song_-__Erika__with_English_Subtitles_128_kbps.mp3";
  113. // live a lie
  114. efs.src = "https://cdn.discordapp.com/attachments/1009208113200631949/1081768386679279616/videoplayback_4.m4a";
  115. // Rest
  116. ops.src = 'https://cdn.discordapp.com/attachments/1009208113200631949/1081654159624900628/videoplayback_3.m4a';
  117. // dont surrender
  118. sour.src = 'https://cdn.discordapp.com/attachments/1009208113200631949/1081014554915504148/videoplayback_2.m4a';
  119. // RISE
  120. rise.src = "https://cdn.discordapp.com/attachments/1009208113200631949/1080989152620851250/videoplayback_1.m4a";
  121. //take over
  122. audio.src = 'https://cdn.discordapp.com/attachments/967213871267971072/1027416621318414406/8mb.video-Vf9-wfenD0dA.m4a';
  123. //egzod royalty
  124. audio1.src = 'https://cdn.discordapp.com/attachments/1068333890596524033/1089017554091126824/videoplayback_8.m4a';
  125. //the fat rat
  126. nextthing.src = 'https://cdn.discordapp.com/attachments/1009208113200631949/1076650551024033872/TheFatRat_-_Unity.mp3';
  127. //tetris theme song
  128. tetris.src = 'https://cdn.discordapp.com/attachments/1009208113200631949/1078813267440439336/Tetris.mp3';
  129. // forgot lolz
  130. uhm.src = 'https://cdn.discordapp.com/attachments/1009208113200631949/1076657096881348628/Rick_Astley_-_Never_Gonna_Give_You_Up_Official_Music_Video.mp3';
  131. // Check if player already exists
  132. let player = document.querySelector('.player');
  133.  
  134. if (!player) {
  135. // Create player
  136. player = document.createElement('div');
  137. player.className = 'player';
  138.  
  139. // Create buttons
  140. let playButton = document.createElement('button');
  141. playButton.innerHTML = 'start';
  142. playButton.className = "btn";
  143. let pauseButton = document.createElement('button');
  144. pauseButton.innerHTML = 'pause';
  145. pauseButton.className = "btn";
  146. let endButton = document.createElement('button');
  147. endButton.innerHTML = 'end';
  148. endButton.className = "btn";
  149. let choicer = document.createElement('select');
  150. choicer.innerHTML = 'music';
  151. choicer.id = 'select';
  152. let option1 = document.createElement('option');
  153. option1.innerHTML = 'Take Over';
  154. option1.value = '1';
  155. option1.className = "btn";
  156. choicer.appendChild(option1);
  157. let option2 = document.createElement('option');
  158. option2.innerHTML = 'Royalty';
  159. option2.value = '2';
  160. option2.className = "btn";
  161. choicer.appendChild(option2);
  162. let option3 = document.createElement('option');
  163. option3.innerHTML = "The Fat Rat";
  164. option3.value = '3';
  165. option3.className = "btn";
  166. choicer.appendChild(option3);
  167. let option4 = document.createElement('option');
  168. option4.innerHTML = 'Rickroll';
  169. option4.value = '4';
  170. option4.className = "btn";
  171. choicer.appendChild(option4);
  172. let option5 = document.createElement('option');
  173. option5.innerHTML = 'Tetris';
  174. option5.value = '5';
  175. option5.className = "btn";
  176. choicer.appendChild(option5);
  177. let option6 = document.createElement('option');
  178. option6.innerHTML = 'RISE';
  179. option6.value = '6';
  180. option6.className = "btn";
  181. choicer.appendChild(option6);
  182. let option7 = document.createElement('option');
  183. option7.innerHTML = "Don't surrender.";
  184. option7.value = '7';
  185. option7.className = "btn";
  186. choicer.appendChild(option7);
  187. let option8 = document.createElement('option');
  188. option8.innerHTML = "Rest";
  189. option8.value = '8';
  190. option8.className = 'btn';
  191. choicer.appendChild(option8);
  192. let option9 = document.createElement('option');
  193. option9.innerHTML = "Live a Lie";
  194. option9.value = '9';
  195. option9.className = 'btn';
  196. choicer.appendChild(option9);
  197. let option10 = document.createElement('option');
  198. option10.innerHTML = "Erika";
  199. option10.value = '10';
  200. option10.className = 'btn';
  201. choicer.appendChild(option10);
  202. let option11 = document.createElement('option');
  203. option11.innerHTML = "Victory Day!";
  204. option11.value = '11';
  205. option11.className = 'btn';
  206. choicer.appendChild(option11);
  207. let option12 = document.createElement('option');
  208. option12.innerHTML = "卍";
  209. option12.value = '12';
  210. option12.className = 'btn';
  211. choicer.appendChild(option12);
  212. let option13 = document.createElement('option');
  213. option13.innerHTML = "USSR Anthem 1944 - Russian";
  214. option13.value = '13';
  215. option13.className = 'btn';
  216. choicer.appendChild(option13);
  217. let option14 = document.createElement('option');
  218. option14.innerHTML = "USSR Anthem 1944 - English";
  219. option14.value = '14';
  220. option14.className = 'btn';
  221. choicer.appendChild(option14);
  222. let option15 = document.createElement('option');
  223. option15.innerHTML = "USSR Anthem 1977 - Russian";
  224. option15.value = '15';
  225. option15.className = 'btn';
  226. choicer.appendChild(option15);
  227. let option16 = document.createElement('option');
  228. option16.innerHTML = "Moonlight Sonata Nightmare";
  229. option16.value = '16';
  230. option16.className = 'btn';
  231. choicer.appendChild(option16);
  232. let option17 = document.createElement('option');
  233. option17.innerHTML = "Classical Music 2 Hours";
  234. option17.value = '17';
  235. option17.className = 'btn';
  236. choicer.appendChild(option17);
  237. let credits = document.createElement('button');
  238. credits.id = 'credits';
  239. credits.className = "btn";
  240. credits.innerHTML = 'by onion';
  241.  
  242. // Append buttons to player
  243. player.appendChild(choicer);
  244. player.appendChild(playButton);
  245. player.appendChild(pauseButton);
  246. player.appendChild(endButton);
  247. player.appendChild(credits);
  248.  
  249. // Append player to document
  250. document.body.appendChild(player);
  251.  
  252. // Set player to be on top of everything
  253. player.style.zIndex = 9999;
  254. player.style.position = 'fixed';
  255. player.style.top = 0;
  256. player.style.left = 0;
  257. credits.style.fontSize = '10';
  258.  
  259.  
  260.  
  261.  
  262. var visible = false;
  263.  
  264.  
  265. document.addEventListener("keydown", function (e) {
  266. if (e.key == "p") {
  267. if (visible) {
  268. playButton.style.display = 'none';
  269. pauseButton.style.display = 'none';
  270. endButton.style.display = 'none';
  271. visible = false;
  272. } else {
  273. playButton.style.display = 'unset';
  274. pauseButton.style.display = 'unset';
  275. endButton.style.display = 'unset';
  276. visible = true;
  277. };
  278. };
  279. });
  280.  
  281.  
  282. // Add event listeners
  283. playButton.addEventListener('click', () => {
  284. if (number == 1) {
  285. audio.play();
  286. } else if (number == 2) {
  287. audio1.play();
  288. } else if (number == 3) {
  289. nextthing.play();
  290. } else if (number == 4) {
  291. uhm.play();
  292. } else if (number == 5) {
  293. tetris.play();
  294. } else if (number == 6) {
  295. rise.play();
  296. } else if (number == 7) {
  297. sour.play();
  298. } else if (number == 8) {
  299. ops.play();
  300. } else if (number == 9) {
  301. efs.play();
  302. } else if (number == 10) {
  303. erika.play();
  304. } else if (number == 11) {
  305. vd.play();
  306. } else if (number == 12) {
  307. reichstag.play();
  308. } else if (number == 13) {
  309. ussr1.play();
  310. } else if (number == 14) {
  311. ussr2.play();
  312. } else if (number == 15) {
  313. ussr3.play();
  314. } else if (number == 16) {
  315. sonata.play();
  316. } else if (number == 17) {
  317. classical.play();
  318. }
  319. });
  320.  
  321. pauseButton.addEventListener('click', () => {
  322. if (number == 1) {
  323. audio.pause();
  324. } else if (number == 2) {
  325. audio1.pause();
  326. } else if (number == 3) {
  327. nextthing.pause();
  328. } else if (number == 4) {
  329. uhm.pause();
  330. } else if (number == 5) {
  331. tetris.pause();
  332. } else if (number == 6) {
  333. rise.pause();
  334. } else if (number == 7) {
  335. sour.pause();
  336. } else if (number == 8) {
  337. ops.pause();
  338. } else if (number == 9) {
  339. efs.pause();
  340. } else if (number == 10) {
  341. erika.pause();
  342. } else if (number == 11) {
  343. vd.pause();
  344. } else if (number == 12) {
  345. reichstag.pause();
  346. } else if (number == 13) {
  347. ussr1.pause();
  348. } else if (number == 14) {
  349. ussr2.pause();
  350. } else if (number == 15) {
  351. ussr3.pause();
  352. } else if (number == 16) {
  353. sonata.pause();
  354. } else if (number == 17) {
  355. classical.pause();
  356. }
  357. });
  358.  
  359. endButton.addEventListener('click', () => {
  360. if (number == 1) {
  361. audio.pause();
  362. audio.currentTime = 0;
  363. } else if (number == 2) {
  364. audio1.pause();
  365. audio1.currentTime = 0;
  366. } else if (number == 3) {
  367. nextthing.pause();
  368. nextthing.currentTime = 0;
  369. } else if (number == 4) {
  370. uhm.pause();
  371. uhm.currentTime = 0;
  372. } else if (number == 5) {
  373. tetris.pause();
  374. tetris.currentTime = 0;
  375. } else if (number == 6) {
  376. rise.pause();
  377. rise.currentTime = 0;
  378. } else if (number == 7) {
  379. sour.pause();
  380. sour.currentTime = 0;
  381. } else if (number == 8) {
  382. ops.pause();
  383. ops.currentTime = 0;
  384. } else if (number == 9) {
  385. efs.pause();
  386. efs.currentTime = 0;
  387. } else if (number == 10) {
  388. erika.pause();
  389. erika.currentTime = 0;
  390. } else if (number == 11) {
  391. vd.pause();
  392. vd.currentTime = 0;
  393. } else if (number == 12) {
  394. reichstag.pause();
  395. reichstag.currentTime = 0;
  396. } else if (number == 13) {
  397. ussr1.pause();
  398. ussr1.currentTime = 0;
  399. } else if (number == 14) {
  400. ussr2.pause();
  401. ussr2.currentTime = 0;
  402. } else if (number == 15) {
  403. ussr3.pause();
  404. ussr3.currentTime = 0;
  405. } else if (number == 16) {
  406. sonata.pause();
  407. sonata.currentTime = 0;
  408. } else if (number == 17) {
  409. classical.pause();
  410. classical.currentTime = 0;
  411. }
  412. });
  413.  
  414. let playCount = 0;
  415.  
  416. tetris.addEventListener('ended', () => {
  417. if (playCount < 2) {
  418. playCount++;
  419. tetris.currentTime = 0;
  420. tetris.play();
  421. }
  422. });
  423.  
  424.  
  425.  
  426. var menu = document.getElementById("select");
  427.  
  428. var selected_option = menu.options[menu.selectedIndex].value;
  429.  
  430. menu.onchange = function () {
  431. number = parseInt(menu.value);
  432. }
  433.  
  434. } else {
  435. var visible = false;
  436.  
  437.  
  438. document.addEventListener("keydown", function (e) {
  439. if (e.key == "p") {
  440. if (visible) {
  441. playButton.style.display = 'none';
  442. pauseButton.style.display = 'none';
  443. endButton.style.display = 'none';
  444. visible = false;
  445. } else {
  446. playButton.style.display = 'unset';
  447. pauseButton.style.display = 'unset';
  448. endButton.style.display = 'unset';
  449. visible = true;
  450. };
  451. };
  452. });
  453.  
  454.  
  455. // Add event listeners
  456.  
  457.  
  458.  
  459. var menu = document.getElementById("select");
  460.  
  461. var selected_option = menu.options[menu.selectedIndex].value;
  462.  
  463. menu.onchange = function () {
  464. number = parseInt(menu.value);
  465. }
  466. }
  467.  
  468.  
  469. const progressBar = document.createElement('div');
  470. progressBar.style.position = 'fixed';
  471. progressBar.style.top = '0';
  472. progressBar.style.left = '0';
  473. progressBar.style.width = '50px';
  474. progressBar.style.height = '3px';
  475. progressBar.style.backgroundColor = '#29d';
  476. progressBar.zIndex = 9999;
  477. progressBar.margin = 'auto';
  478.  
  479. document.body.appendChild(progressBar);
  480.  
  481. let progress = 0;
  482. let intervalId;
  483. let isAnimating = false;
  484.  
  485. function startProgressBar() {
  486. if (!isAnimating) {
  487. isAnimating = true;
  488. intervalId = setInterval(() => {
  489. progress += 1;
  490. progressBar.style.width = `${progress}%`;
  491. if (progress === 100) {
  492. clearInterval(intervalId);
  493. setTimeout(() => {
  494. progress = 0;
  495. progressBar.style.width = '0';
  496. isAnimating = false;
  497. }, 800);
  498. }
  499. }, 8);
  500. }
  501. }
  502.  
  503. function resetProgressBar() {
  504. clearInterval(intervalId);
  505. progress = 0;
  506. progressBar.style.width = '0';
  507. isAnimating = false;
  508. }
  509.  
  510. document.addEventListener('mousedown', (event) => {
  511. if (!isAnimating) {
  512. startProgressBar();
  513. }
  514. });
  515.  
  516. document.addEventListener('mouseup', () => {
  517. resetProgressBar();
  518. });
  519.  
  520. document.addEventListener('mouseleave', () => {
  521. resetProgressBar();
  522. });
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533. var cursor = document.createElement("div");
  534. cursor.id = "custom-cursor";
  535. cursor.style.zIndex = "218039732198";
  536. document.body.appendChild(cursor);
  537.  
  538. // Add the custom cursor CSS to the page
  539. var css = document.createElement("style");
  540. css.type = "text/css";
  541. css.innerHTML = ".custom-cursor { cursor: url('https://img.favpng.com/25/12/17/portable-network-graphics-clip-art-image-transparency-computer-icons-png-favpng-Cz19qWQrGKt8RD7RE6Yn42Xr5.jpg'), auto; position: fixed; width: 30px; height: 30px; z-index: 9999; }";
  542. document.head.appendChild(css);
  543. // Update the position of the custom cursor on mouse move
  544. document.addEventListener("mousemove", function(e) {
  545. cursor.style.left = e.clientX + "px";
  546. cursor.style.top = e.clientY + "px";
  547. });