您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds an option in the reply bar to keep reply pings off automatically.
当前为
- // ==UserScript==
- // @name Always-Off Ping Reply
- // @namespace http://tampermonkey.net/
- // @version 1
- // @description Adds an option in the reply bar to keep reply pings off automatically.
- // @author TheVoidUnknown
- // @match https://discord.com/channels/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=discord.com
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js
- // @grant GM_setValue
- // @grant GM_getValue
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- jQuery(function($){
- let toggle = GM_getValue('toggle');
- let css
- let html
- if (toggle == null) { // Set toggle switch to true when running for the first time
- GM_setValue('toggle', true);
- toggle = true
- }
- function define() {
- css = `
- .switch {
- position: relative;
- display: inline-block;
- width: 35px;
- height: 20px;
- }
- .switch input {
- opacity: 0;
- width: 0;
- height: 0;
- }
- .slider {
- position: absolute;
- cursor: pointer;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- background-color: var(--text-muted);
- -webkit-transition: .4s;
- transition: .4s;
- }
- .slider:before {
- position: absolute;
- content: "";
- height: 16px;
- width: 16px;
- left: 2px;
- bottom: 2px;
- background-color: var(--text-normal);
- -webkit-transition: .4s;
- transition: .4s;
- }
- input:checked + .slider {
- background-color: var(--text-link);
- }
- input:focus + .slider {
- box-shadow: 0 0 1px #2196F3;
- }
- input:checked + .slider:before {
- -webkit-transform: translateX(15px);
- -ms-transform: translateX(15px);
- transform: translateX(15px);
- }
- .slider.round {
- border-radius: 34px;
- }
- .slider.round:before {
- border-radius: 50%;
- }
- `
- html = `
- <div id="alwaysOffPings_wrapper" style="padding: 8px;">
- <label id="infoTxt" style="
- font-family: var(--font-primary);
- font-size: 14px;
- line-height: 18px;
- color: var(--header-secondary);
- ">Always Off Pings:
- </label>
- <label class="switch" id="alwaysOffPings">
- <input type="checkbox" id="switchCheckBox" checked=${toggle}>
- <span class="slider round"></span>
- </label>
- </div>
- <div class="separator" style="width: 1px; height: 20px; background-color: var(--background-modifier-accent);" aria-hidden="true"></div>`
- }
- define();
- // ^ This function is solely to let me minimize these 50 lines
- let style = document.createElement("style");
- style.id = "epicStyle";
- style.innerHTML = css;
- document.head.append(style)
- // No. Dont say it. I was too lazy to do it the right way.
- // If it works it works
- let loop = setInterval(function(){
- let replyBar = document.querySelector('[class^="actions"]');
- let checkbox = document.querySelector('#switchCheckBox');
- let mention = document.querySelector('[class*="mentionButton"]');
- try{checkbox.addEventListener('change', (event) => {
- GM_setValue('toggle',checkbox.checked);
- toggle = GM_getValue('toggle');
- })}catch{};
- if (replyBar!=null && checkbox==null) {
- $('[class*="actions"]').prepend(html);
- } else if (replyBar!=null && mention.parentElement.ariaChecked == "true" && toggle==true){
- mention.parentElement.click();
- } else if (replyBar!=null && toggle==false) {
- mention.parentElement.style.display = 'block'
- } else if (replyBar!=null && toggle==true) {
- mention.parentElement.style.display = 'none'
- };
- },10);
- })})();