- // ==UserScript==
- // @name InfoCell
- // @namespace http://tampermonkey.net/
- // @version 2024-09-28
- // @description Some infos
- // @author qwd
- // @match https://cellcraft.io/
- // @icon https://www.google.com/s2/favicons?sz=64&domain=cellcraft.io
- // @grant none
- // @license qwd
- // ==/UserScript==
-
- function Accounts() {
- var wrapper = document.getElementById("overlays");
- var closeOpen = document.createElement("div");
- closeOpen.innerHTML = (`<div id="OpenClose" style="border-radius: 7px;">
- <img src="https://cdn.iconscout.com/icon/premium/png-256-thumb/dropdown-2425289-2035004.png?f=webp&w=256" style="width: 30px; background-color: white; margin-left: 2%; boder-radius: 7px; cursor: pointer">
- </div>`);
- var altBox = document.createElement("div");
- altBox.innerHTML = (`<div id="altBox" style="border: 2px solid white; width: 300px; height: 300px; overflow-y: auto; scrollbar-color: white; scrollbar-width: thin; background-color: black; color: white; margin-left: 2%; position: absolute; width: 25%; border-radius: 7px;">
- <p style="font-size: 30px; font-weight: 900; display: flex; justify-content: center">Accounts</p>
- <div style="display: flex">
- <p style="margin-left: 1%;">AccountName</p>
- <p style="margin-left: 22%;">Recs</p>
- <p style="margin-left: 5%;">Speeds</p>
- </div>
- <div id="accountBox"></div>
- <button id="addAccount" style="border: 2px solid white; background-color: black; color: white; padding: 5px; margin-left: 94%; border-radius: 7px;">+</button>
- </div>`);
- wrapper.appendChild(closeOpen);
- wrapper.appendChild(altBox);
-
- var status = 1;
- closeOpen.addEventListener("click", closeOpenFunc);
- function closeOpenFunc() {
- if (status === 0) {
- altBox.style.display="block";
- status++
- }
- else {
- altBox.style.display="none";
- status--
- }
- }
-
- var addBtn = document.getElementById("addAccount");
- addBtn.addEventListener("click", addAccount);
-
- var accounts = [];
-
- loadAccounts();
-
- function addAccount() {
- var accountIndex = accounts.length;
- var accountline = createAccountLine(accountIndex, "", "", "");
- document.getElementById("accountBox").appendChild(accountline);
- accounts.push({ index: accountIndex, name: "", rec: "", speed: "" });
- saveAccounts();
- }
-
- function createAccountLine(index, name, rec, speed) {
- var accountline = document.createElement("div");
- accountline.setAttribute('id', `acc${index}`);
- accountline.setAttribute('style', "display: flex; gap: 10px; padding: 5px;");
-
-
- accountline.innerHTML = `
- <div id="acc${index}name" contenteditable="true" style="width: 200px; color: white; border: 1px solid white; padding: 5px; border-radius: 7px;" placeholder="name">${name}</div>
- <div id="acc${index}rec" contenteditable="true" style="width: 50px; color: white; border: 1px solid white; padding: 5px;border-radius: 7px;" placeholder="rec">${rec}</div>
- <div id="acc${index}speed" contenteditable="true" style="width: 50px; color: white; border: 1px solid white; padding: 5px;border-radius: 7px;" placeholder="speed">${speed}</div>
- `;
-
-
- attachInputListeners(accountline, index);
-
-
- var setRecNullBtn = document.createElement("button");
- setRecNullBtn.textContent = "0";
- setRecNullBtn.setAttribute('style', "width: 30px; background-color: #2e3034; border-radius: 7px;");
- setRecNullBtn.addEventListener('click', function() {
- setToNull(index, 'rec');
- });
-
- var setSpeedNullBtn = document.createElement("button");
- setSpeedNullBtn.textContent = "0";
- setSpeedNullBtn.setAttribute('style', "width: 30px; background-color: #2e3034; border-radius: 7px;");
- setSpeedNullBtn.addEventListener('click', function() {
- setToNull(index, 'speed');
- });
-
-
- var removeBtn = document.createElement("button");
- removeBtn.textContent = "-";
- removeBtn.setAttribute('style', "width: 30px; background-color: red;");
- removeBtn.addEventListener('click', function() {
- removeAccount(index);
- });
-
-
- accountline.appendChild(setRecNullBtn);
- accountline.appendChild(setSpeedNullBtn);
- accountline.appendChild(removeBtn);
-
- return accountline;
- }
-
- function attachInputListeners(accountline, index) {
- const nameDiv = accountline.querySelector(`#acc${index}name`);
- const recDiv = accountline.querySelector(`#acc${index}rec`);
- const speedDiv = accountline.querySelector(`#acc${index}speed`);
-
- nameDiv.addEventListener('input', function() {
- accounts[index].name = this.innerText;
- saveAccounts();
- });
-
- recDiv.addEventListener('input', function() {
- accounts[index].rec = this.innerText;
- saveAccounts();
- });
-
- speedDiv.addEventListener('input', function() {
- accounts[index].speed = this.innerText;
- saveAccounts();
- });
- }
-
- function setToNull(id, field) {
- document.getElementById(`acc${id}${field}`).innerText = "0";
- accounts[id][field] = "0";
- saveAccounts();
- }
-
- function removeAccount(accountIndex) {
- var accountToRemove = document.getElementById(`acc${accountIndex}`);
- if (accountToRemove) {
- accountToRemove.remove();
- }
-
- accounts.splice(accountIndex, 1);
- updateAccounts();
- saveAccounts();
- }
-
- function updateAccounts() {
- accounts.forEach((account, index) => {
- var accountDiv = document.getElementById(`acc${index}`);
- if (accountDiv) {
- accountDiv.setAttribute('id', `acc${index}`);
- var divs = accountDiv.querySelectorAll('div');
- divs[0].setAttribute('id', `acc${index}name`);
- divs[1].setAttribute('id', `acc${index}rec`);
- divs[2].setAttribute('id', `acc${index}speed`);
-
- divs[0].innerText = account.name;
- divs[1].innerText = account.rec;
- divs[2].innerText = account.speed;
-
-
- attachInputListeners(accountDiv, index);
- }
- });
- }
-
- function saveAccounts() {
- localStorage.setItem('accounts', JSON.stringify(accounts));
- }
-
- function loadAccounts() {
- var storedAccounts = localStorage.getItem('accounts');
- if (storedAccounts) {
- accounts = JSON.parse(storedAccounts);
- accounts.forEach(account => {
- var accountIndex = account.index;
- addAccountFromData(accountIndex, account.name, account.rec, account.speed);
- });
- }
- }
-
- function addAccountFromData(index, name, rec, speed) {
- var accountline = createAccountLine(index, name, rec, speed);
- document.getElementById("accountBox").appendChild(accountline);
- }
- }
-
- setTimeout(Accounts, 3000);
-
- function infos() {
- var canvas = document.querySelector(".inner-overlays");
- var box = document.createElement("div");
- box.innerHTML = (`
- <div style="background-color: white; margin-top: 200px; position: absolute; z-index: +1; border-radius: 7px; margin-left: 5%; padding: 20px; width: 300px;">
- Info by qwd
- <div id="Levelq">Level: Loading</div>
- <div id="Progressq">XP Gained: Loading</div>
- <div id="coinsq">Coins: Loading</div>
- <div id="coinsgained">Coins gained: Loading</div>
- <div id="playedq">Played: Loading</div>
- </div>
- `);
- canvas.appendChild(box);
-
- var level = document.getElementById("Levelq");
- var xpbarRaw = document.querySelector(".exp-bar").textContent;
- var xpbar = parseInt(xpbarRaw);
- var progress = document.getElementById("Progressq");
- var coins = document.getElementById("coinsq");
- var coinsgained = document.getElementById("coinsgained");
- var coinsStatusRawOld = document.getElementById("coinsDash").textContent;
- var coinsStatusOld = parseInt(coinsStatusRawOld);
- function update() {
- var lvl = document.getElementById("level").textContent;
- level.innerHTML = "Level: " + lvl;
-
- var xpbarNewRaw = document.querySelector(".exp-bar").textContent;
- var xpbarNew = parseInt(xpbarNewRaw);
- var xpProgress = xpbarNew - xpbar;
- progress.innerHTML = "XP Gained: " + xpProgress + "%";
-
- var coinsStatusRaw = document.getElementById("coinsDash").textContent;
- coins.innerHTML = "Coins: " + coinsStatusRaw;
-
- var coinsStatus = parseInt(coinsStatusRaw);
- var coinsgainedValue = coinsStatus - coinsStatusOld;
- coinsgained.innerHTML = "Coins gained: " + coinsgainedValue;
- }
- setInterval(update, 2000)
-
- let seconds = 0;
- var timer = document.getElementById("playedq");
-
- function formatTimeUnit(unit) {
- return unit < 10 ? '0' + unit : unit;
- }
-
- function updateTimer() {
- seconds++;
-
- const days = Math.floor(seconds / (60 * 60 * 24));
- const hours = Math.floor((seconds % (60 * 60 * 24)) / (60 * 60));
- const minutes = Math.floor((seconds % (60 * 60)) / 60);
- const secs = seconds % 60;
-
- let displayTime = '';
-
- if (days > 0) {
- displayTime += formatTimeUnit(days) + ' d ';
- }
- if (hours > 0 || days > 0) {
- displayTime += formatTimeUnit(hours) + ' h ';
- }
- if (minutes > 0 || hours > 0 || days > 0) {
- displayTime += formatTimeUnit(minutes) + ' m ';
- }
-
- displayTime += formatTimeUnit(secs) + ' s';
- timer.innerHTML = "Played: " + displayTime;
- }
-
- setInterval(updateTimer, 1000);
- }
- setTimeout(infos, 3000);
-
-
-
-