// ==UserScript==
// @name Miracle Scripts For cellcraft.io
// @namespace Miracle script, developed by mod's of cc...
// @version 5.2.3
// @description Best Cellcraft.io Script!
// @author DevAdmin,Dexan,Samira
// @license MIT
// @icon data:image/jpeg;base64,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
// @match https://cellcraft.io/
// @grant none
// @downloadURL none
// ==/UserScript==
(function() {
'use strict';
let $ = window.$;
const KEY_TABLE = { 0: "", 8: "BACKSPACE", 9: "TAB", 12: "CLEAR", 13: "ENTER", 16: "SHIFT", 17: "CTRL", 18: "ALT", 19: "PAUSE", 20: "CAPSLOCK", 27: "ESC", 32: "SPACE", 33: "PAGEUP", 34: "PAGEDOWN", 35: "END", 36: "HOME", 37: "LEFT", 38: "UP", 39: "RIGHT", 40: "DOWN", 44: "PRTSCN", 45: "INS", 46: "DEL", 65: "A", 66: "B", 67: "C", 68: "D", 69: "E", 70: "F", 71: "G", 72: "H", 73: "I", 74: "J", 75: "K", 76: "L", 77: "M", 78: "N", 79: "O", 80: "P", 81: "Q", 82: "R", 83: "S", 84: "T", 85: "U", 86: "V", 87: "W", 88: "X", 89: "Y", 90: "Z", 91: "WIN", 92: "WIN", 93: "CONTEXTMENU", 96: "NUM 0", 97: "NUM 1", 98: "NUM 2", 99: "NUM 3", 100: "NUM 4", 101: "NUM 5", 102: "NUM 6", 103: "NUM 7", 104: "NUM 8", 105: "NUM 9", 106: "NUM *", 107: "NUM +", 109: "NUM -", 110: "NUM .", 111: "NUM /", 144: "NUMLOCK", 145: "SCROLLLOCK" };
class Settings {
constructor(name, default_value) {
this.settings = {};
this.name = name;
this.load(default_value);
}
load(default_value) {
let raw_settings = localStorage.getItem(this.name);
this.settings = Object.assign({}, default_value, this.settings, JSON.parse(raw_settings));
}
save() {
localStorage.setItem(this.name, JSON.stringify(this.settings));
}
set(key, value) {
if (value === undefined) {
this.settings = key;
} else {
this.settings[key] = value;
}
this.save();
}
get(key) {
if (key === undefined) {
return this.settings;
} else {
return this.settings[key];
}
}
}
let settings = new Settings("linesplit_overlay", {
enabled: true,
binding: null
});
let current_key = false, pressing = false;
$("head").append(``);
let [w, h] = [, window.innerHeight];
$("body").append(`
`);
$(".dash-tab-settings").click(function(e) {
$("#roleSettings").css("display", "block");
$("#cLinesplitOverlay").removeAttr("disabled").parent().parent().css("display", "block");
});
$(".hotkey-col").eq(1).append(`Linesplit overlay
`);
$("#roleSettings").append(` Linesplit overlay
`);
$("#cLinesplitOverlay").change(function(e) {
let enabled = $(this).is(':checked');
settings.set("enabled", enabled);
$("#linesplit_overlay").css("display", enabled ? "block" : "none");
});
if (settings.get('enabled')) $("#cLinesplitOverlay").attr("checked", "");
$("#keyLinesplitOverlay").html(KEY_TABLE[settings.get("binding")]);
$("#keyLinesplitOverlay").click(function(e) {
$(this).addClass("selected");
current_key = true;
});
$("#keyLinesplitOverlay").contextmenu(function(e) {
$(this).addClass("selected");
settings.set("binding", null);
$(this).html("");
setTimeout(() => {
$(this).removeClass("selected");
}, 50);
current_key = false;
return false;
});
$(window).keyup(function(e) {
if (e.keyCode == settings.get("binding")) {
$("#linesplit_overlay").css("display", settings.get("enabled") ? "block" : "none");
pressing = false;
}
});
$(window).keydown(function(e) {
if (current_key) {
$("#keyLinesplitOverlay").html(KEY_TABLE[e.keyCode]);
settings.set("binding", e.keyCode);
setTimeout(() => {
$("#keyLinesplitOverlay").removeClass("selected");
}, 50);
current_key = false;
} else {
if (e.keyCode == settings.get("binding") && document.activeElement == document.body) {
$("#linesplit_overlay").css("display", !settings.get("enabled") ? "block" : "none");
pressing = true;
}
}
});
$(window).resize(function(e) {
let [w, h] = [window.innerWidth, window.innerHeight];
$("#point-top").css("left", `${window.innerWidth / 2}px`).css("top", `${0}px`);
$("#point-right").css("left", `${window.innerWidth}px`).css("top", `${window.innerHeight / 2}px`);
$("#point-bottom").css("left", `${window.innerWidth / 2}px`).css("top", `${window.innerHeight}px`);
$("#point-left").css("left", `${0}px`).css("top", `${window.innerHeight / 2}px`);
});
swal({
title: "Happy New Year!๐ฅณ!",
text: "Happy New Year Cellcraft.io Community, we hope to make few more updates soon! We love ya guys! <3",
icon: "success",
button: "Thx",
}, function() {
localStorage.setItem('miracleScripts', '');
swal({
title: "We love ya!",
text: 'Thank you for playing cellcraft.io new updates coming soon!',
type: "success"
});
});
var input = $("#chtbox");
var inputVal = input.val();
var prefix = "/";
input.on("keydown", function (e) {
function announce(arg1, arg2) {
var result;
if (arg2 === true) {
result = 'enabled';
} else if (arg2 === false) {
result = 'disabled';
}
if (result === 'enabled') {
$("#curser").fadeIn().text('The setting "'+arg1+'" is now '+result+'!').css({color: '#00c000'});
} else if (result === 'disabled') {
$("#curser").fadeIn().text('The setting "'+arg1+'" is now '+result+'!').css({color: '#ff0000'});
}
setTimeout(function() {
$("#curser").fadeOut();
}, 4000);
}
inputVal = input.val();
if ($(this).is(":focus") && e.keyCode == '13') {
// Ignore if message doesn't start with prefix
if (inputVal.indexOf(prefix) !== 0) return;
const args = inputVal.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
// commands
if (command === 'info') {
window.open('https://www.youtube.com/channel/UCebt69ThNxtKH3v6Ev4JCxg', '_blank');
$("#chtbox").val("")
}
}
})
window.miracleScripts = {
// News icon:
news: ' Yesrs will see them too. Skin made by Light. ',
// Player profiles
profiles: {
'JoNaThAnKiD1O1' : {
nickNameColor: '#00FF00',
},
'LusualYT' : {
nickNameColor: '#000000',
nickNameStrokeColor: '#000000',
nickNameStrokeWidth: 2,
},
'inaaa' : {
nickNameStrokeColor: 'deeppink',
},
},
banned: [],
// Source: http://stackoverflow.com/questions/1772179/get-character-value-from-keycode-in-javascript-then-trim#answer-23377822
keyboardMap: [
'', // [0]
'', // [1]
'', // [2]
'CANCEL', // [3]
'', // [4]
'', // [5]
'HELP', // [6]
'', // [7]
'BACK_SPACE', // [8]
'TAB', // [9]
'', // [10]
'', // [11]
'CLEAR', // [12]
'ENTER', // [13]
'ENTER_SPECIAL', // [14]
'', // [15]
'SHIFT', // [16]
'CONTROL', // [17]
'ALT', // [18]
'PAUSE', // [19]
'CAPS_LOCK', // [20]
'KANA', // [21]
'EISU', // [22]
'JUNJA', // [23]
'FINAL', // [24]
'HANJA', // [25]
'', // [26]
'ESCAPE', // [27]
'CONVERT', // [28]
'NONCONVERT', // [29]
'ACCEPT', // [30]
'MODECHANGE', // [31]
'SPACE', // [32]
'PAGE_UP', // [33]
'PAGE_DOWN', // [34]
'END', // [35]
'HOME', // [36]
'LEFT', // [37]
'UP', // [38]
'RIGHT', // [39]
'DOWN', // [40]
'SELECT', // [41]
'PRINT', // [42]
'EXECUTE', // [43]
'PRINTSCREEN', // [44]
'INSERT', // [45]
'DELETE', // [46]
'', // [47]
'0', // [48]
'1', // [49]
'2', // [50]
'3', // [51]
'4', // [52]
'5', // [53]
'6', // [54]
'7', // [55]
'8', // [56]
'9', // [57]
'COLON', // [58]
'SEMICOLON', // [59]
'LESS_THAN', // [60]
'EQUALS', // [61]
'GREATER_THAN', // [62]
'QUESTION_MARK', // [63]
'AT', // [64]
'A', // [65]
'B', // [66]
'C', // [67]
'D', // [68]
'E', // [69]
'F', // [70]
'G', // [71]
'H', // [72]
'I', // [73]
'J', // [74]
'K', // [75]
'L', // [76]
'M', // [77]
'N', // [78]
'O', // [79]
'P', // [80]
'Q', // [81]
'R', // [82]
'S', // [83]
'T', // [84]
'U', // [85]
'V', // [86]
'W', // [87]
'X', // [88]
'Y', // [89]
'Z', // [90]
'OS_KEY', // [91] Windows Key (Windows) or Command Key (Mac)
'', // [92]
'CONTEXT_MENU', // [93]
'', // [94]
'SLEEP', // [95]
'NUMPAD0', // [96]
'NUMPAD1', // [97]
'NUMPAD2', // [98]
'NUMPAD3', // [99]
'NUMPAD4', // [100]
'NUMPAD5', // [101]
'NUMPAD6', // [102]
'NUMPAD7', // [103]
'NUMPAD8', // [104]
'NUMPAD9', // [105]
'MULTIPLY', // [106]
'ADD', // [107]
'SEPARATOR', // [108]
'SUBTRACT', // [109]
'DECIMAL', // [110]
'DIVIDE', // [111]
'F1', // [112]
'F2', // [113]
'F3', // [114]
'F4', // [115]
'F5', // [116]
'F6', // [117]
'F7', // [118]
'F8', // [119]
'F9', // [120]
'F10', // [121]
'F11', // [122]
'F12', // [123]
'F13', // [124]
'F14', // [125]
'F15', // [126]
'F16', // [127]
'F17', // [128]
'F18', // [129]
'F19', // [130]
'F20', // [131]
'F21', // [132]
'F22', // [133]
'F23', // [134]
'F24', // [135]
'', // [136]
'', // [137]
'', // [138]
'', // [139]
'', // [140]
'', // [141]
'', // [142]
'', // [143]
'NUM_LOCK', // [144]
'SCROLL_LOCK', // [145]
'WIN_OEM_FJ_JISHO', // [146]
'WIN_OEM_FJ_MASSHOU', // [147]
'WIN_OEM_FJ_TOUROKU', // [148]
'WIN_OEM_FJ_LOYA', // [149]
'WIN_OEM_FJ_ROYA', // [150]
'', // [151]
'', // [152]
'', // [153]
'', // [154]
'', // [155]
'', // [156]
'', // [157]
'', // [158]
'', // [159]
'CIRCUMFLEX', // [160]
'EXCLAMATION', // [161]
'DOUBLE_QUOTE', // [162]
'HASH', // [163]
'DOLLAR', // [164]
'PERCENT', // [165]
'AMPERSAND', // [166]
'UNDERSCORE', // [167]
'OPEN_PAREN', // [168]
'CLOSE_PAREN', // [169]
'ASTERISK', // [170]
'PLUS', // [171]
'PIPE', // [172]
'HYPHEN_MINUS', // [173]
'OPEN_CURLY_BRACKET', // [174]
'CLOSE_CURLY_BRACKET', // [175]
'TILDE', // [176]
'', // [177]
'', // [178]
'', // [179]
'', // [180]
'VOLUME_MUTE', // [181]
'VOLUME_DOWN', // [182]
'VOLUME_UP', // [183]
'', // [184]
'', // [185]
'SEMICOLON', // [186]
'EQUALS', // [187]
'COMMA', // [188]
'MINUS', // [189]
'PERIOD', // [190]
'SLASH', // [191]
'BACK_QUOTE', // [192]
'', // [193]
'', // [194]
'', // [195]
'', // [196]
'', // [197]
'', // [198]
'', // [199]
'', // [200]
'', // [201]
'', // [202]
'', // [203]
'', // [204]
'', // [205]
'', // [206]
'', // [207]
'', // [208]
'', // [209]
'', // [210]
'', // [211]
'', // [212]
'', // [213]
'', // [214]
'', // [215]
'', // [216]
'', // [217]
'', // [218]
'OPEN_BRACKET', // [219]
'BACK_SLASH', // [220]
'CLOSE_BRACKET', // [221]
'QUOTE', // [222]
'', // [223]
'META', // [224]
'ALTGR', // [225]
'', // [226]
'WIN_ICO_HELP', // [227]
'WIN_ICO_00', // [228]
'', // [229]
'WIN_ICO_CLEAR', // [230]
'', // [231]
'', // [232]
'WIN_OEM_RESET', // [233]
'WIN_OEM_JUMP', // [234]
'WIN_OEM_PA1', // [235]
'WIN_OEM_PA2', // [236]
'WIN_OEM_PA3', // [237]
'WIN_OEM_WSCTRL', // [238]
'WIN_OEM_CUSEL', // [239]
'WIN_OEM_ATTN', // [240]
'WIN_OEM_FINISH', // [241]
'WIN_OEM_COPY', // [242]
'WIN_OEM_AUTO', // [243]
'WIN_OEM_ENLW', // [244]
'WIN_OEM_BACKTAB', // [245]
'ATTN', // [246]
'CRSEL', // [247]
'EXSEL', // [248]
'EREOF', // [249]
'PLAY', // [250]
'ZOOM', // [251]
'', // [252]
'PA1', // [253]
'WIN_OEM_CLEAR', // [254]
'' // [255]
],
banned: ['dexan'],
watermark: 'โ',
// Don't remove the spaces, they are used as separators! Source: https://emojiterra.com/de/liste/
emojis: '๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ โบ๏ธ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ถ ๐ ๐ ๐ฌ ๐ ๐ ๐ช ๐ด ๐ท ๐ต ๐ ๐ ๐ ๐ฎ ๐ฏ ๐ฒ ๐ณ ๐ฆ ๐ง ๐จ ๐ฐ ๐ฅ ๐ข ๐ญ ๐ฑ ๐ ๐ฃ ๐ ๐ ๐ฉ ๐ซ ๐ค ๐ก ๐ ๐ ๐ฟ ๐ ๐ฉ ๐น ๐บ ๐ป ๐ฝ ๐พ ๐บ ๐ธ ๐น ๐ป ๐ผ ๐ฝ ๐ ๐ฟ ๐พ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ โค๏ธ ๐ ๐ ๐ ๐ ๐ฏ ๐ข ๐ฅ ๐ซ ๐ฆ ๐จ ๐ฃ ๐ฌ ๐ญ ๐ค ๐ โ ๐ โ๏ธ ๐ ๐ ๐ ๐ โ๏ธ ๐ ๐ โ ๐ ๐ ๐ ๐ ๐ ๐
๐ช ๐ ๐ ๐ ๐
๐ ๐ถ ๐ฆ ๐ง ๐ฑ ๐จ ๐ฉ ๐ด ๐ต ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ฎ ๐ ๐ท ๐ธ ๐ณ ๐ฒ ๐ฐ ๐ผ ๐
๐ ๐ ๐ถ ๐ ๐ ๐ฏ ๐ ๐ ๐ ๐ฃ ๐ ๐ด ๐ต ๐ ๐ญ ๐ซ ๐ฌ ๐ ๐ ๐ช ๐ค ๐ฅ ๐ฃ ๐ต ๐ ๐ถ ๐ ๐ฉ ๐บ ๐ฑ ๐ ๐ฏ ๐
๐ ๐ด ๐ ๐ฎ ๐ ๐ ๐ ๐ท ๐ ๐ ๐ฝ ๐ ๐ ๐ ๐ช ๐ซ ๐ ๐ญ ๐ ๐ ๐น ๐ฐ ๐ ๐ป ๐จ ๐ผ ๐พ ๐ ๐ ๐ฃ ๐ค ๐ฅ ๐ฆ ๐ง ๐ธ ๐ ๐ข ๐ ๐ฒ ๐ ๐ณ ๐ ๐ฌ ๐ ๐ ๐ก ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ธ ๐ฎ ๐น ๐บ ๐ป ๐ผ ๐ท ๐ฑ ๐ฒ ๐ณ ๐ด ๐ต ๐พ ๐ฟ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐
๐ ๐ฝ ๐ ๐ฐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ณ ๐ฒ ๐ฑ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ข ๐ฃ ๐ค ๐ฅ ๐ก ๐ฆ ๐ง ๐จ ๐ฉ ๐ช ๐ ๐ฐ ๐ซ ๐ฌ ๐ญ ๐ฎ ๐ฏ ๐ผ โ ๐ต ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ด ๐ช ๐ ๐ ๐ ๐ ๐พ ๐ ๐ป ๐ ๐ก ๐ข ๐ฃ ๐ค ๐ฅ ๐ฆ ๐จ ๐ฉ ๐ช ๐ซ ๐ฌ ๐ญ ๐ฏ ๐ฐ ๐ ๐ผ ๐ฝ โช โฒ โบ ๐ ๐ ๐ ๐
๐ ๐ ๐ โจ๏ธ ๐ ๐ก ๐ข ๐ ๐ช ๐ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ฒ ๐ โฝ ๐จ ๐ฅ ๐ฆ ๐ง โ โต ๐ค ๐ข โ๏ธ ๐บ ๐ ๐ ๐ ๐ก ๐ โ โณ โ โฐ ๐ ๐ง ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ ๐ข ๐ ๐ฃ ๐ ๐ค ๐ ๐ฅ ๐ ๐ฆ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ โ๏ธ ๐ ๐ โญ ๐ ๐ ๐ โ๏ธ โ
๐ ๐ ๐ โ โก โ๏ธ โ ๐ฅ ๐ง ๐ ๐ ๐ ๐ ๐ โจ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ซ ๐ โฝ โพ ๐ ๐ ๐ ๐พ ๐ณ โณ ๐ฃ ๐ฝ ๐ฟ ๐ฏ ๐ฑ ๐ฎ ๐ฎ ๐ฐ ๐ฒ โ ๏ธ โฅ๏ธ โฆ๏ธ โฃ๏ธ ๐ ๐ ๐ด ๐ญ ๐จ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ก ๐ข ๐ ๐ ๐ฉ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ข ๐ฃ ๐ฏ ๐ ๐ ๐ผ ๐ต ๐ถ ๐ค ๐ง ๐ป ๐ท ๐ธ ๐น ๐บ ๐ป ๐ฑ ๐ฒ โ๏ธ ๐ ๐ ๐ ๐ ๐ ๐ป ๐ฝ ๐พ ๐ฟ ๐ ๐ฅ ๐ฌ ๐บ ๐ท ๐น ๐ผ ๐ ๐ ๐ก ๐ฆ ๐ฎ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ฐ ๐ ๐ ๐ฐ ๐ด ๐ต ๐ถ ๐ท ๐ธ ๐ณ ๐น ๐ฑ ๐ฒ โ๏ธ ๐ง ๐จ ๐ฉ ๐ค ๐ฅ ๐ฆ ๐ซ ๐ช ๐ฌ ๐ญ ๐ฎ โ๏ธ โ๏ธ ๐ ๐ผ ๐ ๐ ๐
๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ โ๏ธ ๐ ๐ ๐ ๐ ๐ ๐จ ๐ซ ๐ง ๐ฉ ๐ ๐ฌ ๐ญ ๐ก ๐ ๐ ๐ช ๐ฝ ๐ฟ ๐ ๐ฌ ๐ฟ ๐ง ๐ฎ ๐ฐ โฟ ๐น ๐บ ๐ป ๐ผ ๐พ ๐ ๐ ๐ ๐
โ ๏ธ ๐ธ โ ๐ซ ๐ณ ๐ญ ๐ฏ ๐ฑ ๐ท ๐ต ๐ โฌ๏ธ โ๏ธ โก๏ธ โ๏ธ โฌ๏ธ โ๏ธ โฌ
๏ธ โ๏ธ โ๏ธ โ๏ธ ๐ ๐ ๐ ๐ ๐ ๐ ๐ ๐ฏ โ โ โ โ โ โ โ โ โ โ โ โ โ ๐ ๐ ๐ โถ๏ธ โ๏ธ ๐ผ ๐ฝ ๐ฆ ๐ถ ๐ณ ๐ด โป๏ธ ๐ฑ ๐ ๐ฐ โญ โ
โ๏ธ โ๏ธ โ โ โ โ โ โฐ โฟ ใฝ๏ธ โณ๏ธ โด๏ธ โ๏ธ โผ๏ธ โ๏ธ โ โ โ โ ใฐ๏ธ ยฉ๏ธ ยฎ๏ธ โข๏ธ ๐ ๐ก ๐ข ๐ฃ ๐ค ๐
ฐ๏ธ ๐ ๐
ฑ๏ธ ๐ ๐ ๐ ๐ โ๏ธ ๐ ๐ ๐
พ๏ธ ๐ ๐
ฟ๏ธ ๐ ๐ ๐ ๐ ๐๏ธ ๐ท๏ธ ๐ถ ๐ฏ ๐ ๐น ๐ ๐ฒ ๐ ๐ธ ๐ด ๐ณ ใ๏ธ ใ๏ธ ๐บ ๐ต ๐ด ๐ต โซ โช โฌ โฌ โผ๏ธ โป๏ธ โพ โฝ โช๏ธ โซ๏ธ ๐ถ ๐ท ๐ธ ๐น ๐บ ๐ป ๐ ๐ ๐ณ ๐ฒ ๐ ๐ฉ ๐',
settings: null,
hotkeys: null,
mouse : {
x: 0,
y: 0,
lastMovedAt: null,
},
init: function() {
var self = this;
this.setupPolyfills();
this.hotkeys = JSON.parse(localStorage.getItem('hotkeys'));
this.auth();
this.config();
this.originalDrawImage = CanvasRenderingContext2D.prototype.drawImage;
CanvasRenderingContext2D.prototype.drawImage = this.drawImage;
document.querySelector('body').addEventListener('mousemove', function(event) {
self.mouse.x = event.clientX;
self.mouse.y = event.clientY;
self.mouse.lastMovedAt = Date.now();
});
this.moveRespawnBtn();
this.players();
this.animation();
this.chatLog();
this.halt();
this.dance();
this.favSkins();
this.paste();
this.replacements();
this.fpsPing();
this.timer();
this.alive();
this.skinChanger();
this.skinApplier();
this.nameCopier();
this.ultraSplit();
this.lineSplit();
this.waste();
this.guessing();
this.nameColor();
this.wearablesToggle();
this.keyboardLayout();
this.help();
this.commands();
console.log('๐ธ Miracle Scripts successfully loaded!');
},
config: function() {
var self = this;
var settings = null;
var loadSettings = function (stringifiedSettings) {
var defaultSettings = {
// To get keycodes: https://keycode.info
bindings: {
ultraSplit: 85, // U
wearables: 36, // POS1
animation: 17, // CTRL
paste: 33, // PAGE UP
dance: 34, // PAGE DOWN,
halt: 72, // H,
chatLog: 76, // L
skin1: 49, // 1
skin2: 50, // 2
skin3: 51, // 3
skin4: 52, // 4
skin5: 53, // 5
skin6: 54, // 6
skin7: 55, // 7
skin8: 56, // 8
skin9: 57, // 9
},
replacements: ":D|:smile:\n:*(|:sob:\n:'D|:sweat_smile:\nxD|:joy:\n/miracle|uses ๐๐ช๐ณ๐ข๐ค๐ญ๐ฆ ๐๐ค๐ณ๐ช๐ฑ๐ต,Install script from ๐๐ณ๐ฆ๐ข๐ด๐บ๐ง๐ฐ๐ณ๐ฌ.๐ฐ๐ณ๐จ/scripts/417832!\n:/xp|is currently level {amount} with โโโโโโโโโโ {percent%} of the next level completed",
primaryColor: '#f9138b',
targetLanguage: 'en',
favSkins: [],
quickSkins: [],
players: [],
showClock: true,
changeKeyboardLayout: false,
};
if (stringifiedSettings == null || stringifiedSettings == undefined || stringifiedSettings === '') {
settings = defaultSettings;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
} else {
settings = JSON.parse(stringifiedSettings);
if (settings === null || Object.getOwnPropertyNames(settings).length == 0) {
settings = defaultSettings;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
// Update for settings:
if (typeof settings.primaryColor === 'undefined') {
settings.primaryColor = defaultSettings.primaryColor;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.bindings.chatLog === 'undefined') {
settings.bindings.chatLog = defaultSettings.bindings.chatLog;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.favSkins === 'undefined') {
settings.favSkins = defaultSettings.favSkins;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.targetLanguage === 'undefined') {
settings.targetLanguage = defaultSettings.targetLanguage;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.quickSkins === 'undefined') {
settings.quickSkins = [];
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.installedVersion === 'undefined') {
settings.installedVersion = 1;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.players === 'undefined') {
settings.players = [];
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.bindings.skin1 === 'undefined') {
settings.bindings.skin1 = defaultSettings.bindings.skin1;
settings.bindings.skin2 = defaultSettings.bindings.skin2;
settings.bindings.skin3 = defaultSettings.bindings.skin3;
settings.bindings.skin4 = defaultSettings.bindings.skin4;
settings.bindings.skin5 = defaultSettings.bindings.skin6;
settings.bindings.skin6 = defaultSettings.bindings.skin6;
settings.bindings.skin7 = defaultSettings.bindings.skin7;
settings.bindings.skin8 = defaultSettings.bindings.skin8;
settings.bindings.skin9 = defaultSettings.bindings.skin9;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.showClock === 'undefined') {
settings.showClock = false;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.showKeyboardLayout === 'undefined') {
settings.showKeyboardLayout = false;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.bindings.ultraSplit === 'undefined') {
settings.bindings.ultraSplit = 85;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.bindings.wearables === 'undefined') {
settings.bindings.wearables = 36;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
if (typeof settings.bindings.halt === 'undefined') {
settings.bindings.halt = defaultSettings.bindings.halt;
localStorage.setItem('miracleScripts', JSON.stringify(settings));
}
}
self.settings = settings;
};
loadSettings(localStorage.getItem('miracleScripts'));
if (settings.installedVersion < this.getVersionAsInt()) {
if (settings.installedVersion > 1) { // We do not want to inform new scripts user of past updates
if (settings.installedVersion < this.getVersionAsInt('2.4.3')) {
window.alert('๐ข Miracle Scripts Update: \n\n' +
'As of version 2.4.3 the nickname color change feature has been removed ' +
'according to an official decision of the Agma team.\n\n' +
'To avoid trouble for its users Miracle Scripts respects this decision. ' +
'Therefore Miracle Scripts is a legit extension for Agma and using it is safe.'
);
}
if (settings.installedVersion < this.getVersionAsInt('2.5.6')) {
self.swal(
'Miracle Scripts Update',
'You may now use 20 slots for skins (previously: 15). Type /skin16 - /skin20 in the chat box!');
}
if (settings.installedVersion < this.getVersionAsInt('2.5.8')) {
self.swal(
'Miracle Scripts Update',
'New: You may now assign aliases and notes to players. The alias will be displayed in the friends list. To add an alias right click on a player\'s name in the chat or a cell and then click on "Show profile".');
}
if (settings.installedVersion < this.getVersionAsInt('2.6.0')) {
self.swal(
'Miracle Scripts Update',
'New: You may now bind keys to skin slots. Per default the keys 1 - 9 are bound to /skin1 - /skin9 .');
}
if (settings.installedVersion < this.getVersionAsInt('2.6.1')) {
self.swal(
'Miracle Scripts Update',
'New: Right click on a cell. Then click on Use Player\'s Wearables to use the same wearables as that player. (Of course you have to own the wearables.)');
}
if (settings.installedVersion < this.getVersionAsInt('2.6.4')) {
self.swal(
'Miracle Scripts Update',
'New: Want to see how late it is? Activate the clock in the settings!');
}
if (settings.installedVersion < this.getVersionAsInt('3.0.0')) {
self.swal(
'Miracle Scripts Update',
'ATTENTION! This script won\'t get any new features! The Agma staff keeps making new restrictions to this script, so there is no point to continue development. With this update, the /say command has been removed, as the Agma staff enforced this.');
}
if (settings.installedVersion < this.getVersionAsInt('3.1.3')) {
self.swal(
'Miracle Scripts Update',
'Just a friendly hint: Agma has a new powerup! It\'s called "Tactical Nuke" and can be found in the shop. Attention: It\'s the first of April ๐');
}
if (settings.installedVersion < this.getVersionAsInt('3.1.6')) {
self.swal(
'Miracle Scripts Update',
'New: Type /players in the chat to see how many players are online in Agma!');
}
if (settings.installedVersion < this.getVersionAsInt('3.3.0')) {
self.swal(
'Miracle Scripts Update',
'New: You may now see your keyboard layout as an overlay! Go to the settings to activate it.');
}
if (settings.installedVersion < this.getVersionAsInt('3.4.0')) {
self.swal(
'Miracle Scripts Update',
'New: ULTRA split! Press U to make an ultra split, which can split 1 cell to 64!! (The server has to support that!)');
}
if (settings.installedVersion < this.getVersionAsInt('3.6.0')) {
self.swal(
'Miracle Scripts Update',
'New: Toggle "wearables on/off" with a key! Default is POS1!');
}
if (settings.installedVersion < this.getVersionAsInt('4.0.0')) {
self.swal(
'Miracle Scripts Update',
'New: Type /guess to start a little guessing game in the chat! ๐ก Note that it only works with browsers that can display emojis.');
}
if (settings.installedVersion < this.getVersionAsInt('4.2.2')) {
self.swal(
'Miracle Scripts Update',
'New: Right click on a player to copy the player\'s name to the chat! (PS: You cannot use the name as your own name though!)');
}
if (settings.installedVersion < this.getVersionAsInt('4.3.2')) {
self.swal(
'Miracle Scripts Announcement',
'Prepare for some insane new Miracle features! This time it will be mind-blowing. To be released soon.');
}
if (settings.installedVersion < this.getVersionAsInt('5.0.2')) {
window.swal({
title: 'Miracle Scripts Update',
text: 'Today we released a great new feature to celebrate Miracle\'s 1 year anniversary :Free self-freezing ! ' +
'VIDEO ' +
' Press H to use it!',
html: true
});
}
if (settings.installedVersion < this.getVersionAsInt('5.0.6')) {
self.swal(
'Miracle Scripts Update',
'New: Anti-AFK! Doubling the countdown time till you get disconnected for being AFK from 5 to 10 minutes!!!');
}
}
settings.installedVersion = this.getVersionAsInt();
localStorage.setItem('miracleScripts', JSON.stringify(settings));
self.settings = settings;
}
if (settings.showNewsFeed) {
var defaultNews = 'Agma.io is the best io game I know. I hang out with friends, compete, and improve my skills and communication language. I love agma ๐ฅฐ - Liz';
var $newsElement = $('#cnt_panel .navbar p.text-center');
if ($newsElement.text().trim() === defaultNews) {
$newsElement.css('margin-bottom', '40px');
$newsElement.css('padding', '15px');
$newsElement.css('background-color', 'rgba(0, 0, 0, 0.5)');
$newsElement.html(self.news);
var $metaElement = $('AGsA News
');
$newsElement.parent().prepend($metaElement);
$metaElement.css('background-color', '#B5B9C0');
$metaElement.css('color', 'black');
}
}
var applyPrimaryColor = function () {
var primaryColorCss = '.miracle-primary-color-font { color: ' + self.settings.primaryColor + ' !important } .miracle-primary-color-background { background-color: ' + self.settings.primaryColor + ' !important }; ';
$('body').append('');
};
applyPrimaryColor();
// General fix for the size of the FontAwesome Icons in the context menu
$('body').append('');
// We need to have a delay, because the menu is not loaded right away
setTimeout(function () {
var $playButton = $('#playBtn');
var $specateButton = $('#spectateBtn');
$playButton.get(0).style.width = '33%';
$specateButton.get(0).style.width = '50%';
var $settingsButton = $('๐ ');
$settingsButton.insertAfter($specateButton);
var changeKey = function (event) {
var name = this.name.substr(4);
$(this).val(self.keyboardMap[event.keyCode]);
self.settings.bindings[name] = event.keyCode;
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
var deleteKey = function () {
var action = $(this).attr('data-action');
$('#miracle-settings input[name=key_' + action + ']').val('undefined');
self.settings.bindings[action] = null;
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
// Weird Agma scripting... press enter in the replacements textarea and the chat box gets focused!
// Therefore catch the keydown event (that happens earlier) and insert the linebreak manually,
// focus again (delayed) and go to the end of the text where the linebreak is.
// We can improve this later on...
var addReturn = function (event) {
if (event.keyCode === 13) {
var textarea = this;
$(textarea).text($(this).text() + '\n').focus();
setTimeout(function () {
$(textarea).focus();
textarea.setSelectionRange(textarea.value.length, textarea.value.length);
}, 1);
}
};
var changeReplacements = function () {
self.settings.replacements = $(this).val();
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
var changePrimaryColor = function () {
self.settings.primaryColor = $(this).val();
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
applyPrimaryColor();
};
var changeTargetLanguage = function () {
self.settings.targetLanguage = $(this).val();
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
var changeClock = function() {
self.settings.showClock = $(this).is(':checked');
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
var changeKeyboardLayout = function() {
self.settings.showKeyboardLayout = $(this).is(':checked');
localStorage.setItem('miracleScripts', JSON.stringify(self.settings));
};
var $modal = $('
');
$modal.append('Miracle Scripts For cellcraft.io ');
if (GM_info) {
$modal.append('Version ' + GM_info.script.version + ' ');
}
var $firstRow = $('');
var $secRow = $(' ');
var $thirdRow = $(' ');
var $element = $(' ').keyup(changeKey);
$firstRow.append(' Ultra-Split-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$firstRow.append(' Animation-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$firstRow.append(' Paste-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$firstRow.append(' Dance-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$firstRow.append(' Halt-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$firstRow.append(' Chat-Log-Key: ', $element);
$element = $('โ ').click(deleteKey);
$firstRow.append($element);
$element = $(' ').keyup(changeKey);
$secRow.append(' Use-First-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$secRow.append($element);
$element = $(' ').keyup(changeKey);
$secRow.append(' Use-Second-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$secRow.append($element);
$element = $(' ').keyup(changeKey);
$secRow.append(' Use-Third-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$secRow.append($element);
$element = $(' ').keyup(changeKey);
$secRow.append(' Use-Fourth-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$secRow.append($element);
$element = $(' ').keyup(changeKey);
$secRow.append(' Use-Fifth-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$secRow.append($element);
$element = $(' ').keyup(changeKey);
$thirdRow.append(' Use-Sixth-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$thirdRow.append($element);
$element = $(' ').keyup(changeKey);
$thirdRow.append(' Use-Seventh-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$thirdRow.append($element);
$element = $(' ').keyup(changeKey);
$thirdRow.append(' Use-Eighth-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$thirdRow.append($element);
$element = $(' ').keyup(changeKey);
$thirdRow.append(' Use-Ninth-Skin-Key: ', $element);
$element = $('โ ').click(deleteKey);
$thirdRow.append($element);
$element = $(' ').keyup(changeKey);
$thirdRow.append(' Toggle-Wearables-Key: ', $element);
$element = $('โ ').click(deleteKey);
$thirdRow.append($element);
var $table = $('