scratch extesion: array by rssaromeo

none

  1. // ==UserScript==
  2. // @name scratch extesion: array by rssaromeo
  3. // @version 3
  4. // @description none
  5. // @run-at document-start
  6. // @tag lib
  7. // @author rssaromeo
  8. // @license GPLv3
  9. // @match *://*/*
  10. // @include *
  11. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABhQTFRFAAAAF+bDDodz////Ftq5F+TCFdGxF+XCTsAXuAAAAAh0Uk5TAP/////////VylQyAAABPElEQVR4nL2VbQ7CMAiGS0z8vR7K+99EvMFsoXy00nW6xEaXRh5eWoYASRdsut1f9qvucvILPwDn32lAbDdCgKyYWLADsldpCDqATBaFCX6CCnS3QH2ACPSnJG96QBMYb0FGbEA19mlqxkpBLNAIJCAUYPfyZSAQIHcG4ggsgQWYRBAJmEZQgCJkO3lSwWeNARwhBLBKAEf4ESj32IEvOQVSBejjCplW8UJK9QmA7xECNdV/AbhiQ6C+zQVwWwGPFXC/fIavgEyp3ypZtg6QRAVAn8nrwPRdnKwoWkNNCnBctMuyPwMc//Wm7aE1iAXQ+sNxA1m2oCNAu1wYQ7vcRIIjCBBPHGnFZByDtE6s3T6aejYOhoGT3DRwE8dr2MDxM8sIVBGdeqKf1TOem8MpPTASq9ltNW7T32ugbd+QRu9l+R1fTwAAAABJRU5ErkJggg==
  12. // @grant none
  13. // @namespace https://greasyfork.org/users/1184528
  14. // ==/UserScript==
  15.  
  16. ;(async () => {
  17. await loadlib("libloader").waitforlib("scratchextesnsionmanager")
  18. const {
  19. newext,
  20. newmenu,
  21. newblock,
  22. bt,
  23. inp,
  24. gettarget,
  25. totype,
  26. scratch_math,
  27. projectid,
  28. canvas,
  29. scratchvar,
  30. scratchlist,
  31. } = loadlib("scratchextesnsionmanager")
  32. var vm
  33. loadlib("libloader")
  34. .waitforlib("scratch")
  35. .then(() => (vm = loadlib("scratch").vm))
  36.  
  37. newext(
  38. "array",
  39. "rssaromeo",
  40. class {
  41. keeponlyone({ arr: arrname }) {
  42. try {
  43. var [sprite, arrname] = JSON.parse(arrname)
  44. var newarr = scratchlist(arrname, undefined, sprite)
  45. newarr = newarr.filter((e, i) => i == newarr.indexOf(e))
  46. if (scratchlist(arrname, undefined, sprite))
  47. scratchlist(arrname, newarr, sprite)
  48. else return JSON.stringify(newarr)
  49. } catch (e) {
  50. error(e)
  51. }
  52. }
  53. },
  54. [
  55. newblock(bt.cmd, "keeponlyone", "make [arr] unique", [
  56. newmenu("listnames", { defaultValue: "" }),
  57. ]),
  58. ],
  59. "17e6c3",
  60. //"12B398",
  61. "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAABhQTFRFAAAAF+bDDodz////Ftq5F+TCFdGxF+XCTsAXuAAAAAh0Uk5TAP/////////VylQyAAABPElEQVR4nL2VbQ7CMAiGS0z8vR7K+99EvMFsoXy00nW6xEaXRh5eWoYASRdsut1f9qvucvILPwDn32lAbDdCgKyYWLADsldpCDqATBaFCX6CCnS3QH2ACPSnJG96QBMYb0FGbEA19mlqxkpBLNAIJCAUYPfyZSAQIHcG4ggsgQWYRBAJmEZQgCJkO3lSwWeNARwhBLBKAEf4ESj32IEvOQVSBejjCplW8UJK9QmA7xECNdV/AbhiQ6C+zQVwWwGPFXC/fIavgEyp3ypZtg6QRAVAn8nrwPRdnKwoWkNNCnBctMuyPwMc//Wm7aE1iAXQ+sNxA1m2oCNAu1wYQ7vcRIIjCBBPHGnFZByDtE6s3T6aejYOhoGT3DRwE8dr2MDxM8sIVBGdeqKf1TOem8MpPTASq9ltNW7T32ugbd+QRu9l+R1fTwAAAABJRU5ErkJggg=="
  62. )
  63. })()