您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Format user profiles :D
// ==UserScript== // @name Mine-Craft User API Profile Formatter Mine-Craft.io - Mine-Craft.fun // @namespace http://tampermonkey.net/ // @version 1.1 // @description Format user profiles :D // @author Junes // @match https://mine-craft.io/api/users/* // @match https://mine-craft.fun/api/users/* // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; function timeAgo(date) { const seconds = Math.floor((new Date() - date) / 1000); const years = Math.floor(seconds / 31536000); const months = Math.floor((seconds % 31536000) / 2592000); const days = Math.floor((seconds % 2592000) / 86400); const hours = Math.floor((seconds % 86400) / 3600); const minutes = Math.floor((seconds % 3600) / 60); const remainingSeconds = seconds % 60; let timeString = []; if (years > 0) timeString.push(years + " year" + (years > 1 ? "s" : "")); if (months > 0) timeString.push(months + " month" + (months > 1 ? "s" : "")); if (days > 0) timeString.push(days + " day" + (days > 1 ? "s" : "")); if (days === 0) { if (hours > 0) timeString.push(hours + " hour" + (hours > 1 ? "s" : "")); if (minutes > 0) timeString.push(minutes + " minute" + (minutes > 1 ? "s" : "")); if (remainingSeconds > 0) timeString.push(remainingSeconds + " second" + (remainingSeconds > 1 ? "s" : "")); } return timeString.length > 0 ? timeString.join(", ") + " ago" : "just now"; } function formatSpan(color, text) { return `<span style="color: ${color};">${text}</span>`; } function formatNumberWithCommas(number) { return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } function cleanFormat(text) { return text.replace(/§[0-9a-zA-Z]/g, '').trim(); } fetch(window.location.href) .then(response => response.json()) .then(data => { const user = data.user; const registeredDate = new Date(user.date_register * 1000); const lastLoginDate = new Date(user.last_login * 1000); const lastActiveDate = new Date(user.last_active * 1000); const lastOfflineDate = new Date(user.last_offline * 1000); const formattedProfile = ` ${formatSpan('turquoise', '- User Profile of:')} ${formatSpan('orange', cleanFormat(user.nickname))} ${formatSpan('turquoise', '- User ID:')} ${formatSpan('orange', user.id)} ${formatSpan('turquoise', '- Nickname:')} ${formatSpan('orange', cleanFormat(user.nickname))} ${formatSpan('turquoise', '- Type:')} ${formatSpan('orange', user.type)} ${formatSpan('turquoise', '- Role ID:')} ${formatSpan('orange', user.role_id)} ${formatSpan('turquoise', '- Prefix:')} ${formatSpan('orange', cleanFormat(user.prefix))} ${formatSpan('turquoise', '- Email:')} ${formatSpan('orange', user.email)} ${formatSpan('turquoise', '- Skin ID:')} ${formatSpan('orange', user.skin_id)} ${formatSpan('turquoise', '- Balance:')} ${formatSpan('orange', formatNumberWithCommas(user.balance))} ${formatSpan('turquoise', '- Date Registered:')} ${formatSpan('orange', registeredDate.toLocaleString())} - ${formatSpan('red', timeAgo(registeredDate))} ${formatSpan('turquoise', '- Last Login:')} ${formatSpan('orange', lastLoginDate.toLocaleString())} - ${formatSpan('red', timeAgo(lastLoginDate))} ${formatSpan('turquoise', '- Last Active:')} ${formatSpan('orange', lastActiveDate.toLocaleString())} - ${formatSpan('red', timeAgo(lastActiveDate))} ${formatSpan('turquoise', '- Last Offline:')} ${formatSpan('orange', lastOfflineDate.toLocaleString())} - ${formatSpan('red', timeAgo(lastOfflineDate))} ${formatSpan('turquoise', '- Ad Block:')} ${formatSpan('orange', user.ad_block)} ${formatSpan('turquoise', '- Online:')} ${formatSpan('orange', user.online)} ${formatSpan('turquoise', '- Invisible:')} ${formatSpan('orange', user.invisible)} ${formatSpan('turquoise', '- Calls:')} ${formatSpan('orange', user.calls)} ${formatSpan('turquoise', '- Transfers:')} ${formatSpan('orange', user.transfers)} ${formatSpan('turquoise', '- Friends:')} ${formatSpan('orange', user.friends)} ${formatSpan('turquoise', '- Verified:')} ${formatSpan('orange', user.verified)} ${formatSpan('turquoise', '- Legend:')} ${formatSpan('orange', user.legend)} ${formatSpan('turquoise', '- Disabled:')} ${formatSpan('orange', user.disabled)} ${formatSpan('turquoise', '- Bot:')} ${formatSpan('orange', user.bot)} ${formatSpan('turquoise', '- No Ads:')} ${formatSpan('orange', user.no_ads)} ${formatSpan('turquoise', '- Search Tag:')} ${formatSpan('orange', cleanFormat(user.search_tag))} ${formatSpan('turquoise', '- About:')} ${formatSpan('lightgreen', cleanFormat(user.about))} `; document.body.innerHTML = `<pre>${formattedProfile}</pre>`; }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址