Skip to content

Instantly share code, notes, and snippets.



Last active Aug 26, 2019
What would you like to do?
Curseforge Quality of Life Fixes, NOW MOVED TO:
// ==UserScript==
// @name Curseforge QOL Fixes
// @version 0.5
// @description Fix Minecraft default tab to search mods, fix browse button to go to /minecraft/mc-mods, add search box in the navbar, add All Files tab
// @author comp500
// @namespace
// @match*
// @updateURL
// @downloadURL
// @grant none
// @run-at document-end
// ==/UserScript==
(function() {
'use strict';
// Change the Browse link and the default Minecraft tab (from other links) to /minecraft/mc-mods
let regexBrowse = /^http:\/\/\/2Lzpfsl|https:\/\/\/minecraft\/?$/;
Array.from(document.getElementsByTagName("a")).filter(a => regexBrowse.test(a.href)).forEach(a => {a.href = ""});
// Add a search box
let searchBoxContainer = document.createElement("div");
searchBoxContainer.className = "flex mr-4 items-center";
searchBoxContainer.innerHTML = `<form action="/minecraft/mc-mods/search" method="get" novalidate="novalidate" autocomplete="false">
<div class="flex flex-col h-full justify-between">
<div class="input input--icon" style="color: #000">
<i class="search textgray-900 flex items-center justify-center">
<svg class="icon" viewBox="0 0 20 20" width="16" height="16"><use xlink:href="/Content/2-0-7166-24694/Skins/CurseForge/images/twitch/Object/Search.svg#Object/Search"></use></svg>
<input type="text" name="search" id="6" placeholder="Search Mods">
let insertLocation = document.querySelector(".private-message");
if (insertLocation != null) {
// @Inject(method = "the navbar", at = @At("HEAD"))
insertLocation.parentNode.insertBefore(searchBoxContainer, insertLocation);
// Add an "All Files" tab
let pathMatches = /\/minecraft\/mc-mods\/([a-z][\da-z\-_]{0,127})/.exec(document.location.pathname);
let files = document.getElementById("nav-files");
if (pathMatches != null && pathMatches.length == 2 && files != null) {
let slug = pathMatches[1];
let allFiles = document.createElement("li");
let isAllFilesPage = /\/minecraft\/mc-mods\/[a-z][\da-z\-_]{0,127}\/files\/all/.test(document.location.pathname);
if (isAllFilesPage) {
allFiles.className = "border-b-2 border-primary-500 b-list-item p-nav-item px-2 pb-1/10 -mb-1/10 text-gray-500";
files.className = "b-list-item p-nav-item px-2 pb-1/10 -mb-1/10 text-gray-500";
} else {
allFiles.className = "b-list-item p-nav-item px-2 pb-1/10 -mb-1/10 text-gray-500";
allFiles.innerHTML = `<a href="/minecraft/mc-mods/${slug}/files/all" class="text-${isAllFilesPage ? "primary" : "gray"}-500 hover:no-underline">
<span class="b-list-label">
All Files
files.parentNode.insertBefore(allFiles, files.nextSibling);

This comment has been minimized.

Copy link

@Unknow0059 Unknow0059 commented Aug 26, 2019

That's great. Thanks a lot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.