mirror of
				https://github.com/EndPwnArchive/EndPwn3Plugins.git
				synced 2024-08-14 23:57:06 +00:00 
			
		
		
		
	update and add new plugins
This commit is contained in:
		
							parent
							
								
									e49c518ef3
								
							
						
					
					
						commit
						96fa1502ba
					
				
					 10 changed files with 207 additions and 50 deletions
				
			
		| 
						 | 
					@ -6,7 +6,7 @@ exports.manifest = {
 | 
				
			||||||
exports.start = function(){
 | 
					exports.start = function(){
 | 
				
			||||||
    document.addEventListener("dblclick", ev => {
 | 
					    document.addEventListener("dblclick", ev => {
 | 
				
			||||||
        let target = ev.target;
 | 
					        let target = ev.target;
 | 
				
			||||||
        if(target.className.includes("markup")) {
 | 
					        if(target && target.className && target.className.includes("markup")) {
 | 
				
			||||||
            let msg = target;
 | 
					            let msg = target;
 | 
				
			||||||
            let opt = msg.parentNode.querySelector(".btn-option");
 | 
					            let opt = msg.parentNode.querySelector(".btn-option");
 | 
				
			||||||
            opt.click();
 | 
					            opt.click();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,14 @@
 | 
				
			||||||
exportsexports = {
 | 
					exports = {
 | 
				
			||||||
    manifest: {
 | 
					    manifest: {
 | 
				
			||||||
        author: "Cynosphere, Adryd",
 | 
					        author: "Cynosphere, Adryd",
 | 
				
			||||||
        name: "Mentions Fixer",
 | 
					        name: "Mentions Fixer",
 | 
				
			||||||
        description: "See hidden channel mentions and remove #deleted-channel."
 | 
					        description: "See hidden channel mentions and remove #deleted-channel.",
 | 
				
			||||||
 | 
					        replacements: [
 | 
				
			||||||
 | 
					            {signature:'/t\\.type===(.+)\\.ChannelTypes\\.GUILD_TEXT&&(.+)\\.default\\.can\\((.+)\\.Permissions\\.VIEW_CHANNEL,n,t\\)/',payload:'true'},
 | 
				
			||||||
 | 
					            {signature:/"#deleted-channel"/g,payload:'"<#"+e[1]+">"'},
 | 
				
			||||||
 | 
					            {signature:'/"@deleted-role"/',payload:'"<@&"+e[1]+">"'},
 | 
				
			||||||
 | 
					            {signature:'/guildId:null!=t\\?t\\.guild_id:null,/',payload:'guildId:null!=t.guild_id?t.guild_id:"@me",'}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    replacements: {
 | 
					
 | 
				
			||||||
        '/t\\.type===(.+)\\.ChannelTypes\\.GUILD_TEXT&&(.+)\\.default\\.can\\((.+)\\.Permissions\\.VIEW_CHANNEL,n,t\\)/':'true',
 | 
					 | 
				
			||||||
        '/"#deleted-channel"/':'"<#"+e[1]+">"',
 | 
					 | 
				
			||||||
        '/"@deleted-role"/':'"<@&"+e[1]+">"',
 | 
					 | 
				
			||||||
        '/guildId:null!=t\\?t\\.guild_id:null,/':'guildId:null!=t.guild_id?t.guild_id:"@me",'
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										97
									
								
								plugins/glsandbox.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								plugins/glsandbox.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,97 @@
 | 
				
			||||||
 | 
					shwatcher = null, shtag = null, setupShaders = function (n) {
 | 
				
			||||||
 | 
					    var e = fs.readFileSync(n, "utf-8");
 | 
				
			||||||
 | 
					    null === shtag && (shtag = document.createElement("script").modify(x=>x.type ="x-shader/x-vertex").withId('shaderCode'), document.head.appendChild(shtag)), shtag.innerHTML = e, null === shwatcher && (shwatcher = fs.watch(n, {
 | 
				
			||||||
 | 
					        encoding: "utf-8"
 | 
				
			||||||
 | 
					    }, function (e, w) {
 | 
				
			||||||
 | 
					        if ("change" === e) {
 | 
				
			||||||
 | 
					            var i = fs.readFileSync(n, "utf-8");
 | 
				
			||||||
 | 
					            shtag.innerHTML = i
 | 
				
			||||||
 | 
					            compile();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }))
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports = {
 | 
				
			||||||
 | 
					    manifest: {
 | 
				
			||||||
 | 
					        author: "Cynosphere",
 | 
				
			||||||
 | 
					        name: "GLSandboxBG",
 | 
				
			||||||
 | 
					        description: "GL shaders as a background",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    start: function(){
 | 
				
			||||||
 | 
					        createElement('script')
 | 
				
			||||||
 | 
					        .modify(x=>{
 | 
				
			||||||
 | 
					            x.type = 'text/javascript';
 | 
				
			||||||
 | 
					            x.src = 'https://rawgit.com/Cynosphere/42aec2ef76646dc52cff435cc5447f48/raw/36c3c45abee126f8550d3f3fc039b3136ab92c90/glsandbox.js?_='+Date.now();
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        .appendTo(document.head);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        createElement('script')
 | 
				
			||||||
 | 
					        .withId('surfaceVertexShader')
 | 
				
			||||||
 | 
					        .modify(x=>x.type = 'x-shader/x-vertex')
 | 
				
			||||||
 | 
					        .withContents(`attribute vec3 position;
 | 
				
			||||||
 | 
					attribute vec2 surfacePosAttrib;
 | 
				
			||||||
 | 
					varying vec2 surfacePosition;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					    surfacePosition = surfacePosAttrib;
 | 
				
			||||||
 | 
					    gl_Position = vec4( position, 1.0 );
 | 
				
			||||||
 | 
					}`)
 | 
				
			||||||
 | 
					        .appendTo(document.head);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        createElement('script')
 | 
				
			||||||
 | 
					        .withId('fragmentShader')
 | 
				
			||||||
 | 
					        .modify(x=>x.type = 'x-shader/x-vertex')
 | 
				
			||||||
 | 
					        .withContents(`#ifdef GL_ES
 | 
				
			||||||
 | 
					precision mediump float;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uniform vec2 resolution;
 | 
				
			||||||
 | 
					uniform sampler2D texture;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					    vec2 uv = gl_FragCoord.xy / resolution.xy;
 | 
				
			||||||
 | 
					    gl_FragColor = texture2D( texture, uv );
 | 
				
			||||||
 | 
					}`)
 | 
				
			||||||
 | 
					        .appendTo(document.head);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        createElement('script')
 | 
				
			||||||
 | 
					        .withId('vertexShader')
 | 
				
			||||||
 | 
					        .modify(x=>x.type = 'x-shader/x-vertex')
 | 
				
			||||||
 | 
					        .withContents(`attribute vec3 position;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void main() {
 | 
				
			||||||
 | 
					    gl_Position = vec4( position, 1.0 );
 | 
				
			||||||
 | 
					}`)
 | 
				
			||||||
 | 
					        .appendTo(document.head);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        createElement('canvas')
 | 
				
			||||||
 | 
					        .withId("glsandbox")
 | 
				
			||||||
 | 
					        .modify(x=>{
 | 
				
			||||||
 | 
					            x.style.height = "100%";
 | 
				
			||||||
 | 
					            x.style.width = "100%";
 | 
				
			||||||
 | 
					            x.style.top = 0;
 | 
				
			||||||
 | 
					            x.style.left = 0;
 | 
				
			||||||
 | 
					            x.style.position = "absolute";
 | 
				
			||||||
 | 
					            x.style["z-index"] = 0;
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					        .appendTo($('[class^="app-"]'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $(".app").modify(x=>x.style['z-index']=1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(!$api.localStorage.get('glsbbg_firstrun')){
 | 
				
			||||||
 | 
					            console.log("%c[GLSandboxBG] ","font-weight:bold;background: linear-gradient(to bottom right, #c080ff, #ff80c0);-webkit-background-clip: text;-webkit-text-fill-color: transparent;",`To edit the shader, edit the file located in \`${$api.data}shader.frag\``);
 | 
				
			||||||
 | 
					            console.log("%c[GLSandboxBG] ","font-weight:bold;background: linear-gradient(to bottom right, #c080ff, #ff80c0);-webkit-background-clip: text;-webkit-text-fill-color: transparent;","If the file doesn't exist, just create it.");
 | 
				
			||||||
 | 
					            $api.localStorage.set('glsbbg_firstrun',true);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (fs.existsSync($api.data + 'shader.frag'))
 | 
				
			||||||
 | 
					            setupShaders($api.data + 'shader.frag');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        document.addEventListener("ep-ready",_=>{
 | 
				
			||||||
 | 
					            setTimeout(_=>{
 | 
				
			||||||
 | 
					                initGLSB();
 | 
				
			||||||
 | 
					                if (gl) animate();
 | 
				
			||||||
 | 
					            },500);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -91,9 +91,7 @@ exports.start = function(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function onImageOpen(element) {
 | 
					    function onImageOpen(element) {
 | 
				
			||||||
        let wrap = document.querySelector('div[class*="imageWrapper-"]');
 | 
					        let wrap = document.querySelector('div[class*="imageWrapper-"]');
 | 
				
			||||||
        const openOrig = document.querySelectorAll(
 | 
					        const openOrig = document.querySelectorAll('div a[class*="downloadLink-"]')[0];
 | 
				
			||||||
          'div a[class^="downloadLink-"]'
 | 
					 | 
				
			||||||
        )[0];
 | 
					 | 
				
			||||||
        openOrig.style.display = "none";
 | 
					        openOrig.style.display = "none";
 | 
				
			||||||
        const origLink = openOrig.getAttribute("href");
 | 
					        const origLink = openOrig.getAttribute("href");
 | 
				
			||||||
        var menuColors = 10; // how many color buttons to show in the menu
 | 
					        var menuColors = 10; // how many color buttons to show in the menu
 | 
				
			||||||
| 
						 | 
					@ -142,11 +140,11 @@ exports.start = function(){
 | 
				
			||||||
        function fixElem(elemToFix) {
 | 
					        function fixElem(elemToFix) {
 | 
				
			||||||
          if (electron.process.platform == "win32" || electron.process.platform == "darwin") {
 | 
					          if (electron.process.platform == "win32" || electron.process.platform == "darwin") {
 | 
				
			||||||
            menu.style.zIndex = 3003;
 | 
					            menu.style.zIndex = 3003;
 | 
				
			||||||
            menu.style.top = "22px";
 | 
					            menu.style.top = $('[class*="typeWindows-"]').clientHeight+"px";
 | 
				
			||||||
            menu.style.position = "absolute";
 | 
					            menu.style.position = "absolute";
 | 
				
			||||||
            menu.style.left = 0;
 | 
					            menu.style.left = 0;
 | 
				
			||||||
            elemToFix.style.top = "22px";
 | 
					            elemToFix.style.top = $('[class*="typeWindows-"]').clientHeight+"px";
 | 
				
			||||||
            elemToFix.style.height = "calc(100vh - 22px)";
 | 
					            elemToFix.style.height = `calc(100vh - ${$('[class*="typeWindows-"]').clientHeight}px)`;
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            elemToFix.style.height = "100vh";
 | 
					            elemToFix.style.height = "100vh";
 | 
				
			||||||
            elemToFix.style.top = 0;
 | 
					            elemToFix.style.top = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,9 @@ exports = {
 | 
				
			||||||
    manifest: {
 | 
					    manifest: {
 | 
				
			||||||
        author: "Cynosphere",
 | 
					        author: "Cynosphere",
 | 
				
			||||||
        name: "Restore Local Storage",
 | 
					        name: "Restore Local Storage",
 | 
				
			||||||
        description: "Restore window.localStorage."
 | 
					        description: "Restore window.localStorage.",
 | 
				
			||||||
    },
 | 
					        replacements: [
 | 
				
			||||||
    replacements: {
 | 
					            {signature:'try{delete window.localStorage}catch(e){}',payload:''}
 | 
				
			||||||
        'try{delete window.localStorage}catch(e){}':''
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
exportsexports = {
 | 
					exports = {
 | 
				
			||||||
    manifest: {
 | 
					    manifest: {
 | 
				
			||||||
        author: "Cynosphere, janeptrv",
 | 
					        author: "Cynosphere, janeptrv",
 | 
				
			||||||
        name: "osu! Typing",
 | 
					        name: "osu! Typing",
 | 
				
			||||||
| 
						 | 
					@ -7,9 +7,9 @@ exportsexports = {
 | 
				
			||||||
    start: function(){
 | 
					    start: function(){
 | 
				
			||||||
        var sounds = [];
 | 
					        var sounds = [];
 | 
				
			||||||
        for (var i = 1; i < 4; i++) {
 | 
					        for (var i = 1; i < 4; i++) {
 | 
				
			||||||
            sounds.push(new Audio(`https://github.com/janeptrv/sounds/blob/master/osu_typing_click${i}.wav?raw=true`));
 | 
					            sounds.push(new Audio(`https://raw.githubusercontent.com/janeptrv/sounds/master/osu_typing_click${i}.wav`));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const backspace = new Audio("https://github.com/janeptrv/sounds/blob/master/osu_typing_erase.wav?raw=true");
 | 
					        const backspace = new Audio("https://raw.githubusercontent.com/janeptrv/sounds/master/osu_typing_erase.wav");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        var keys = {};
 | 
					        var keys = {};
 | 
				
			||||||
        function typingSound(ev) {
 | 
					        function typingSound(ev) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,13 +1,13 @@
 | 
				
			||||||
exports.manifest = {
 | 
					exports.manifest = {
 | 
				
			||||||
    author: "Adryd, BlockBuilder57, Cynosphere",
 | 
					    author: "Adryd, BlockBuilder57, Cynosphere",
 | 
				
			||||||
    name: "Sailboat",
 | 
					    name: "Sailboat",
 | 
				
			||||||
    description: "Login as bot accounts."
 | 
					    description: "Login as bot accounts.",
 | 
				
			||||||
}
 | 
						replacements = [
 | 
				
			||||||
exports.replacements = {
 | 
							{signature:'/i.default.Store.pauseEmittingChanges\\(\\),t.user.bot/',payload:'false'},
 | 
				
			||||||
	'/i.default.Store.pauseEmittingChanges\\(\\),t.user.bot/':'false',
 | 
							{signature:'/.\\._reset\\(!0,1e3,"Disconnect requested by user"\\)/',payload:'console.log("delightfully devilish seymour")'},
 | 
				
			||||||
	'/.\\._reset\\(!0,1e3,"Disconnect requested by user"\\)/':'console.log("delightfully devilish seymour")',
 | 
							{signature:'/\\.experiments;v={},t\\.forEach/',payload:'.experiments;if(t==undefined) return;v={},t.forEach'},
 | 
				
			||||||
	'/\\.experiments;v={},t\\.forEach/':'.experiments;if(t==undefined) return;v={},t.forEach',
 | 
							{signature:'/CONNECTION_OPEN:function\\(e\\){f=e\\.connected/',payload:'CONNECTION_OPEN:function(e){if(e.connectedAccounts==undefined) return; f=e.connected'},
 | 
				
			||||||
	'/CONNECTION_OPEN:function\\(e\\){f=e\\.connected/':'CONNECTION_OPEN:function(e){if(e.connectedAccounts==undefined) return; f=e.connected',
 | 
							{signature:'/function S\\(e\\){var t=arguments/',payload:'function S(e){if(e==undefined) return; var t=arguments'},
 | 
				
			||||||
	'/function S\\(e\\){var t=arguments/':'function S(e){if(e==undefined) return; var t=arguments',
 | 
							{signature:'totalUnavailableGuilds,n=[];',payload:'totalUnavailableGuilds,n=[];if(e.readState==undefined) return;'}
 | 
				
			||||||
	'totalUnavailableGuilds,n=[];':'totalUnavailableGuilds,n=[];if(e.readState==undefined) return;'
 | 
						]
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -28,10 +28,10 @@ exports = {
 | 
				
			||||||
    manifest: {
 | 
					    manifest: {
 | 
				
			||||||
        author: "Cynosphere, BlockBuilder57",
 | 
					        author: "Cynosphere, BlockBuilder57",
 | 
				
			||||||
        name: "Settings API",
 | 
					        name: "Settings API",
 | 
				
			||||||
        description: "Hijack the settings menu in any way you feel."
 | 
					        description: "Hijack the settings menu in any way you feel.",
 | 
				
			||||||
    },
 | 
					        replacements: [
 | 
				
			||||||
    replacements: {
 | 
					            {signature:'/function z\\(\\){return\\[{(.+)}]}/',payload:'window.$settingsapi={sections:[{$1}]};function z(){return window.$settingsapi.sections;}'}
 | 
				
			||||||
        '/function z\\(\\){return\\[{(.+)}]}/':'window.$settingsapi={sections:[{$1}]};function z(){return window.$settingsapi.sections;}',
 | 
					        ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    start: function(){
 | 
					    start: function(){
 | 
				
			||||||
        var buttons = $api.util.findFuncExports('button-', 'colorBlack');
 | 
					        var buttons = $api.util.findFuncExports('button-', 'colorBlack');
 | 
				
			||||||
| 
						 | 
					@ -50,18 +50,26 @@ exports = {
 | 
				
			||||||
            ourSections: [],
 | 
					            ourSections: [],
 | 
				
			||||||
            _callbacks: {},
 | 
					            _callbacks: {},
 | 
				
			||||||
            _panels: {},
 | 
					            _panels: {},
 | 
				
			||||||
            addSection: function(name,label,callback,color){
 | 
					            addSection: function(name,label,color=null,callback){
 | 
				
			||||||
                let data = {};
 | 
					                let data = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                data.section = name || `SAPI_${Math.floor(Math.random()*10000)}`;
 | 
					                data.section = name || `SAPI_${Math.floor(Math.random()*10000)}`;
 | 
				
			||||||
                data.label = label;
 | 
					                data.label = label;
 | 
				
			||||||
                data.color = color || undefined;
 | 
					                data.color = color;
 | 
				
			||||||
                data.element = $api.util.findConstructor('FormSection', 'FormSection').FormSection;
 | 
					                data.element = $api.util.findConstructor('FormSection', 'FormSection').FormSection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $settingsapi.ourSections.push(data);
 | 
					                $settingsapi.ourSections.push(data);
 | 
				
			||||||
                $settingsapi.sections.splice($settingsapi.sections.length-4,0,data);
 | 
					                $settingsapi.sections.splice($settingsapi.sections.length-4,0,data);
 | 
				
			||||||
                $settingsapi._callbacks[name] = callback;
 | 
					                $settingsapi._callbacks[name] = callback;
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            addDivider: function(){
 | 
				
			||||||
 | 
					                $settingsapi.ourSections.push({section:"DIVIDER"});
 | 
				
			||||||
 | 
					                $settingsapi.sections.splice($settingsapi.sections.length-4,0,{section:"DIVIDER"});
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            addHeader: function(label){
 | 
				
			||||||
 | 
					                $settingsapi.ourSections.push({section:"HEADER",label:label});
 | 
				
			||||||
 | 
					                $settingsapi.sections.splice($settingsapi.sections.length-4,0,{section:"HEADER",label:label});
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            exportSections: function(){
 | 
					            exportSections: function(){
 | 
				
			||||||
                let out = "";
 | 
					                let out = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -141,7 +149,7 @@ exports = {
 | 
				
			||||||
                        )
 | 
					                        )
 | 
				
			||||||
                        .withText(text);
 | 
					                        .withText(text);
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                createInput: function(v) {
 | 
					                createInput: function(v, p) {
 | 
				
			||||||
                    return createElement("input")
 | 
					                    return createElement("input")
 | 
				
			||||||
                        .withClass(
 | 
					                        .withClass(
 | 
				
			||||||
                            misc.inputDefault,
 | 
					                            misc.inputDefault,
 | 
				
			||||||
| 
						 | 
					@ -149,7 +157,8 @@ exports = {
 | 
				
			||||||
                            misc.size16,
 | 
					                            misc.size16,
 | 
				
			||||||
                            'epMargin'
 | 
					                            'epMargin'
 | 
				
			||||||
                        )
 | 
					                        )
 | 
				
			||||||
                        .modify(x => x.value = v)
 | 
					                        .modify(x => x.value = v ? v : "")
 | 
				
			||||||
 | 
					                        .modify(x => x.placeholder = p ? p : "")
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                updateSwitch: function(s, w) {
 | 
					                updateSwitch: function(s, w) {
 | 
				
			||||||
                    if (s.checked) {
 | 
					                    if (s.checked) {
 | 
				
			||||||
| 
						 | 
					@ -181,23 +190,52 @@ exports = {
 | 
				
			||||||
                                .modify(x => x.type = 'checkbox')
 | 
					                                .modify(x => x.type = 'checkbox')
 | 
				
			||||||
                                .modify(x => x.checked = i)
 | 
					                                .modify(x => x.checked = i)
 | 
				
			||||||
                                .modify(x => x.onchange = () => {
 | 
					                                .modify(x => x.onchange = () => {
 | 
				
			||||||
                                    updateSwitch(s, w);
 | 
					                                    $settingsapi.elements.updateSwitch(s, w);
 | 
				
			||||||
                                    c(s.checked);
 | 
					                                    c(s.checked);
 | 
				
			||||||
                                })
 | 
					                                })
 | 
				
			||||||
                        )
 | 
					                        )
 | 
				
			||||||
                    $settingsapi.elements.updateSwitch(s, w);
 | 
					                    $settingsapi.elements.updateSwitch(s, w);
 | 
				
			||||||
                    return w;
 | 
					                    return w;
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                internal:{
 | 
				
			||||||
 | 
					                    panels:panels,
 | 
				
			||||||
 | 
					                    panels2:panels2,
 | 
				
			||||||
 | 
					                    buttons:buttons,
 | 
				
			||||||
 | 
					                    checkboxes:checkboxes,
 | 
				
			||||||
 | 
					                    misc:misc,
 | 
				
			||||||
 | 
					                    misc2:misc2,
 | 
				
			||||||
 | 
					                    headers:headers
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Example settings tab
 | 
					        //Example settings tab
 | 
				
			||||||
        /*$settingsapi.addSection("TESTING","test owo",function(pnl){
 | 
					        $settingsapi.addDivider();
 | 
				
			||||||
            $settingsapi.elements.createH2("Hello World!").appendTo(pnl);
 | 
					        $settingsapi.addHeader("Element Testing");
 | 
				
			||||||
        });*/
 | 
					        $settingsapi.addSection("TESTING","Element Test Page",null,function(pnl){
 | 
				
			||||||
 | 
					            let em = $settingsapi.elements;
 | 
				
			||||||
 | 
					            em.createH2("Hello World! Heading 2").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createH5("Hello World! Heading 5").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createButton("Button!").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createWarnButton("Warning Button!").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createDangerButton("Danger Button!").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createInput("","Input Box!").appendTo(pnl);
 | 
				
			||||||
 | 
					            em.createSwitch().appendTo(pnl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $api.events.hook("USER_SETTINGS_MODAL_SET_SECTION", function(e){
 | 
					            let v = em.createVerticalPanel().appendTo(pnl);
 | 
				
			||||||
            if ($settingsapi._panels[e.section]) $settingsapi._panels[e.section].remove();
 | 
					            let h = em.createHorizontalPanel().appendTo(pnl);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            em.createH2("Vertical Panel!").appendTo(v);
 | 
				
			||||||
 | 
					            em.createButton("Beep Boop").appendTo(v);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            em.createH2("Horizontal Panel!").appendTo(h);
 | 
				
			||||||
 | 
					            em.createButton("Boop Beep").appendTo(h);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function setupSettings(e){
 | 
				
			||||||
 | 
					            for(let i in $settingsapi._panels){
 | 
				
			||||||
 | 
					                $settingsapi._panels[i].remove();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for(let i in $settingsapi.ourSections){
 | 
					            for(let i in $settingsapi.ourSections){
 | 
				
			||||||
                let data = $settingsapi.ourSections[i];
 | 
					                let data = $settingsapi.ourSections[i];
 | 
				
			||||||
| 
						 | 
					@ -212,6 +250,9 @@ exports = {
 | 
				
			||||||
                    $settingsapi._callbacks[data.section]($settingsapi._panels[data.section]);
 | 
					                    $settingsapi._callbacks[data.section]($settingsapi._panels[data.section]);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        });
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $api.events.hook("USER_SETTINGS_MODAL_SET_SECTION",setupSettings);
 | 
				
			||||||
 | 
					        $api.events.hook("USER_SETTINGS_MODAL_INIT",e=>setTimeout(_=>setupSettings(e),200));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								plugins/silenttyping.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								plugins/silenttyping.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					window._silenttyping = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports = {
 | 
				
			||||||
 | 
					    manifest: {
 | 
				
			||||||
 | 
					        author:"Cynosphere",
 | 
				
			||||||
 | 
					        name:"SilentTyping",
 | 
				
			||||||
 | 
					        description:"Toggleable typing indicators. Toggle with Ctrl+F12",
 | 
				
			||||||
 | 
					        replacements:[
 | 
				
			||||||
 | 
					            {signature:/sendTyping:function\((.)\){(.*)}/,payload:"sendTyping:function($1){if(window._silenttyping) return;$2}"}
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    start:function(){
 | 
				
			||||||
 | 
					        document.addEventListener("keydown", function(ev) {
 | 
				
			||||||
 | 
					            if (ev.ctrlKey && ev.key == "F12") {
 | 
				
			||||||
 | 
					                window._silenttyping = !window._silenttyping;
 | 
				
			||||||
 | 
					                $api.ui.fakeMsg(`Your typing indicator is now ${window._silenttyping ? "dis" : "en"}abled`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -2,9 +2,9 @@ exports = {
 | 
				
			||||||
    manifest: {
 | 
					    manifest: {
 | 
				
			||||||
        author: "Cynosphere",
 | 
					        author: "Cynosphere",
 | 
				
			||||||
        name: "Spotify Premium Spoof",
 | 
					        name: "Spotify Premium Spoof",
 | 
				
			||||||
        description: "Spoofs premium check and allows listen along without premium."
 | 
					        description: "Spoofs premium check and allows listen along without premium.",
 | 
				
			||||||
    },
 | 
					        replacements: [
 | 
				
			||||||
    replacements: {
 | 
					            {signature:'r.isPremium=n',payload:'r.isPremium=true'}
 | 
				
			||||||
        'r.isPremium=n':'r.isPremium=true'
 | 
					        ]
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue