您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Logic for rotating custom texts on Discord
// ==UserScript== // @name Discord/Shapes - Rules // @namespace http://tampermonkey.net/ // @version 1.2 // @description Logic for rotating custom texts on Discord // @author Vishanka // @match https://discord.com/channels/* // @grant none // @run-at document-idle // ==/UserScript== (function() { 'use strict'; // Custom texts to cycle through const customRules = [ "<Rule1: Type here instructions you want to have reiterated. The AI will deprioritize your prompt so it needs to be reminded.>", "<Rule2: Be mindful of the commas and syntax here, every entry except the last one needs a comma.>", "<Rule3: Put the Rules or whatever you reiterate between these brackets or otherwise the hiding script will not hide them.>", "<Rule4: You can disable the rules in the main script by unticking the checkbox.>", "<Rule5: Be mindful that this last entry doesn't have a comma You can add as many rules as you like.>" ]; let currentIndex = 0; // Function to determine the current rule index by scanning last two messages function determineCurrentIndex() { const messageItems = document.querySelectorAll('li[class^="messageListItem_"]'); if (messageItems.length >= 1) { // Check the last message first const lastMessage = Array.from(messageItems[messageItems.length - 1].querySelectorAll('span')).map(span => span.innerText).join('') || messageItems[messageItems.length - 1].innerText; for (let i = 0; i < customRules.length; i++) { if (lastMessage.includes(`<Rule${i + 1}:`)) { currentIndex = (i + 1) % customRules.length; return; } } } // If not found in the last message, check the second to last message if (messageItems.length >= 2) { const secondLastMessage = Array.from(messageItems[messageItems.length - 2].querySelectorAll('span')).map(span => span.innerText).join('') || messageItems[messageItems.length - 2].innerText; for (let i = 0; i < customRules.length; i++) { if (secondLastMessage.includes(`<Rule${i + 1}:`)) { currentIndex = (i + 1) % customRules.length; return; } } } } // Expose necessary elements to be used by the second script window.customRuleLogic = { customRules, determineCurrentIndex, getCurrentText: function() { determineCurrentIndex(); const customRule = '\n' + customRules[currentIndex]; currentIndex = (currentIndex + 1) % customRules.length; return customRule; } }; })();