Skip to content

Instantly share code, notes, and snippets.

@Heolink
Last active November 18, 2015 17:58
Show Gist options
  • Save Heolink/985dd7027bbb2e27c2b4 to your computer and use it in GitHub Desktop.
Save Heolink/985dd7027bbb2e27c2b4 to your computer and use it in GitHub Desktop.
HabitRpg Litle
// ==UserScript==
// @name HabitRpg Litle
// @namespace HabitRpgLitle
// @include https://habitica.com/*
// @exclude https://habitica.com/bower*
// @version 1.2.2
// @grant none
// @run-at document-end
// ==/UserScript==
function exec(fn) {
var script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.textContent = '(' + fn + ')();';
document.body.appendChild(script); // run the script
document.body.removeChild(script); // clean up
}
window.addEventListener('load', function () {
// script injection
exec(function () {
//ajout du forEach pour les Array
var arrayMethods = Object.getOwnPropertyNames(Array.prototype);
arrayMethods.forEach(attachArrayMethodsToNodeList);
function attachArrayMethodsToNodeList(methodName) {
NodeList.prototype[methodName] = Array.prototype[methodName];
};
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}
function addStyleString(str) {
var node = document.createElement('style');
node.innerHTML = str;
document.body.appendChild(node);
}
function merge_options(obj1,obj2){
var obj3 = {};
for (var attrname in obj1) { obj3[attrname] = obj1[attrname]; }
for (var attrname in obj2) { obj3[attrname] = obj2[attrname]; }
return obj3;
}
var Ajax = {
get: function(url, callback) {
var request = new XMLHttpRequest();
request.open('GET', url, true);
request.onload = function() {
callback(request)
};
request.onerror = function() {
// There was a connection error of some sort
};
request.send();
}
}
var hre = {};
//settings par default
hre.settings = {
debug: false,
module: {
portraits: {
activated: true,
pet: true,
party: true,
level: true
},
previewBackground: {
activated: true
},
items: {
activated: true
}
}
};
hre.utils = {
dot: function(obj, dot) {
var keys = dot.split('.');
var tmpVar = null;
if(typeof keys == 'string' || keys.length == 1) {
return obj[dot];
}
for(var i = 0; i < keys.length; i++) {
if( obj.hasOwnProperty( keys[i] ) ) {
tmpVar = obj[keys[i]];
}
if(i == keys.length - 1) {
return tmpVar;
}
}
},
moduleActivated: function (module) {
if (!hre.utils.dot(hre.settings.module, module).activated) {
hre.debug('Module non activé : '+module)
return false;
}
if (this.moduleAllDesactivated(hre.utils.dot(hre.settings.module, module))) {
hre.debug('Tous les modules sont désactivé : '+module)
return false;
}
return true;
},
moduleAllDesactivated: function (module) {
for (var index in module) {
if (module[index]) {
return false;
}
}
return true;
},
findUserById: function(id, users) {
for(var index in users) {
if(users[index]._id == id) {
return users[index];
}
}
},
findUserByName: function(name, users) {
for(var index in users) {
if(users[index].profile.name == name) {
return users[index];
}
}
},
refreshDatasParty: function(time, callback) {
setInterval(function () {
callback()
}, time);
}
};
hre.debug = function (debug) {
if (hre.settings.debug) {
console.log(debug);
}
}
var getAjaxProfileTimeout = function(time) {
var intervalCheck = setInterval(function(){
var id = ajaxProfileTimeout.shift();
if(id) {
Ajax.get('https://habitrpg.com:443/api/v2/members/'+id.id, function(request){
if (request.status >= 200 && request.status < 400) {
// Success!
var resp = request.responseText;
var data = JSON.parse(resp);
/*data.stats.hp = getRandomInt(0, 45);*/
hre.datas.party.group.members[id.index] = data;
} else {
// We reached our target server, but it returned an error
}
});
}
if(!ajaxProfileTimeout.length > 0) {
clearInterval(intervalCheck);
}
}, time);
var promise = new Promise(function(resolve, reject) {
var it = setInterval(function(){
if(ajaxProfileTimeout.length == 0) {
clearInterval(it);
resolve(true);
}
}, 1000);
});
return promise;
}
var ajaxProfileTimeout = [];
hre.datas = {
setParty: function(){
this.party = angular.element('[ng-controller="PartyCtrl"]').scope();
return this.party;
},
party: null,
updatePartyMembersDatas: function(time) {
var $this = this;
var promise = new Promise(function(resolve, reject) {
var currentUser = angular.element('[ng-controller="UserCtrl"]').scope().profile
for(var index in hre.datas.party.group.members ) {
if(currentUser._id != hre.datas.party.group.members[index]._id ) {
var id = hre.datas.party.group.members[index]._id;
ajaxProfileTimeout[index] = {id:id, index:index};
}
}
getAjaxProfileTimeout(time).then(function(result){
resolve(true);
})
});
return promise;
}
}
hre.storage = {
get: function (key, d) {
if (this.__activated()) {
if (this.__exist(key)) {
return localStorage.getItem(key);
} else {
return d;
}
}
return d;
},
set: function (key, value) {
if (this.__activated()) {
localStorage.setItem(key, value);
return true;
}
return false;
},
__exist: function (key) {
return (key in localStorage) ? true : false;
},
__activated: function () {
return (typeof localStorage != 'undefined') ? true : false;
}
}
hre.run = function () {
hre.debug('Run App');
settings = hre.storage.get(hre.options.storage.options);
if(settings) {
hre.settings = merge_options(JSON.parse(settings), hre.settings);
}
hre.datas.setParty();
hre.portraits.init();
hre.items.init();
hre.previewBackground.init();
hre.options.init();
}
hre.waitToExist = function (selector, exec, obj) {
var nameVar = 'i' + Math.floor(Math.random()*1000001);
hre.debug('var setInterval : ' + nameVar);
window[nameVar] = setInterval(function () {
var elements = document.querySelectorAll(selector);
if (elements.length >= 1) {
clearInterval(window[nameVar]);
hre.debug('clear interval '+nameVar)
exec(elements, obj);
}
}, 3000);
}
hre.waitToPage = function (page, exec, obj) {
if(location.hash == page) {
exec(obj)
}
window.addEventListener('hashchange', function(e){
if(location.hash == page) {
exec(obj)
}
}, false);
}
var Player = function (player) {
this.datas = {
pet: null,
level: null,
name: null
}
this.fullDatas = null;
this.selectors = {
level: '.avatar-level',
pet: '.current-pet',
name: '.avatar-name'
}
this.dom = player;
this.level = function () {
if (this.datas.level) {
return this.datas.level;
}
this.datas.level = this.dom.querySelector(this.selectors.level);
return this.datas.level;
}
this.pet = function () {
if (this.datas.pet) {
return this.datas.pet;
}
this.datas.pet = this.dom.querySelector(this.selectors.pet);
return this.datas.pet;
}
this.name = function () {
if (this.datas.name) {
return this.datas.name;
}
this.datas.name = this.dom.querySelector(this.selectors.name);
return this.datas.name;
}
this.setFullDatas = function(players) {
var $this = this;
players.forEach(function(p){
if(p.profile.name == $this.name().textContent) {
$this.fullDatas = p;
}
});
}
};
hre.portraits = {
selectors: {
players: '.herobox-wrap'
},
storage: {},
players: null,
player: null,
colorHealth: function(p) {
if(p.stats.hp == 50) {
return '#71B05B'
}
if(p.stats.hp >= 45) {
return '#8BBF79'
}
if(p.stats.hp >= 40) {
return '#D9EAD3'
}
if(p.stats.hp >= 35) {
return '#FFE26D'
}
if(p.stats.hp >= 30) {
return '#FFEA97'
}
if(p.stats.hp >= 25) {
return '#FCE5CD'
}
if(p.stats.hp >= 20) {
return '#F4A24C'
}
if(p.stats.hp >= 15) {
return '#F28B21'
}
if(p.stats.hp >= 10) {
return '#E6B8AF'
}
if(p.stats.hp >= 5) {
return '#C96652'
}
if(p.stats.hp >= 5) {
return '#B94F3A'
}
},
petTo: function (d, player) {
if (d == 'left') {
if (hre.settings.module.portraits.level) {
player.level().style.display = 'none';
}
player.level().style.left = 'inherit';
player.level().style.right = '0px';
player.pet().style.right = 'inherit';
player.pet().style.left = '4px';
player.pet().style.transform = 'none';
} else if (d == 'right') {
if (hre.settings.module.portraits.level) {
player.level().style.display = 'none';
}
player.level().style.left = '4px';
player.level().style.right = 'inherit';
player.pet().style.right = '0px';
player.pet().style.left = 'inherit';
player.pet().style.transform = 'scaleX(-1)';
}else if (d == 'level') {
player.level().style.display = 'block';
} else {
player.level().style.display = 'block';
if (false) {
player.level().style.left = 'inherit';
player.level().style.right = '0px';
player.pet().style.right = 'inherit';
player.pet().style.left = '4px';
player.pet().style.transform = 'none';
}
}
},
petDirection: function (p) {
if (!hre.settings.module.portraits.pet) {
return;
}
var player = new Player(p);
var pet = player.pet();
var name = player.name().textContent;
var petOption = hre.storage.get('habitPersoPet-' + name, 'left');
this.petTo(petOption, player);
pet.onclick = function (e) {
e.stopPropagation();
if (petOption == 'left') {
petOption = 'right';
} else {
petOption = 'left';
}
hre.storage.set('habitPersoPet-' + name, petOption);
}
p.onmouseover = function () {
hre.portraits.petTo('level', player);
}
p.onmouseout = function () {
hre.portraits.petTo(petOption, player)
}
},
setHealthColor: function(player) {
var ctnBarPv = player.dom.querySelector('.health')
ctnBarPv.style.borderColor = this.colorHealth(player.fullDatas) + ' transparent transparent transparent';
},
refresh: function(time){
var $that = this;
if (!hre.utils.moduleActivated('portraits')) {
return;
}
hre.datas.updatePartyMembersDatas(time).then(function(result){
$that.players = hre.datas.party.group.members;
hre.waitToExist(hre.portraits.selectors.players, function (players, $this) {
players.forEach(function (p) {
var player = new Player(p);
player.setFullDatas(hre.datas.party.group.members);
$this.setHealthColor(player)
});
}, $that)
});
},
stats: function(p) {
//var $this = this;
var player = new Player(p);
if(p.hasAttribute('ng-controller')) {
player.fullDatas = this.player;
} else {
player.setFullDatas(this.players);
}
//var figure = player.dom.querySelector('.herobox');
var ctnBarPv = document.createElement('div');
ctnBarPv.className = ctnBarPv.className + "health";
ctnBarPv.style.borderColor = this.colorHealth(player.fullDatas) + ' transparent transparent transparent';
player.name().parentNode.insertBefore(ctnBarPv, player.name());
},
init: function () {
if (!hre.utils.moduleActivated('portraits')) {
return;
}
hre.waitToExist(this.selectors.players, function (players, $this) {
$this.players = hre.datas.setParty().group.members
$this.player = angular.element('[ng-controller="UserCtrl"]').scope().profile
angular.element('[ng-click="castStart(skill)"]').on('click', function(e){
var li = e.currentTarget.parentNode.parentNode
if(li) {
if(li.querySelector('.shop_heallAll')) {
$this.refresh(2000);
}
}
});
//angular.element('[ng-controller="UserCtrl"]').scope().party.$get()
addStyleString('[ng-controller="PartyCtrl"] .health { width: 0; height: 0; border-style: solid; border-width: 15px 15px 0 0; border-color: #71B05B transparent transparent transparent; position: absolute; top: 0px; }')
players.forEach(function (player) {
$this.petDirection(player);
$this.stats(player);
});
hre.debug('Module portraits ready')
}, this)
}
}
hre.items = {
page: '#/options/inventory/equipment',
selectors: {
equipementTitle: 'h3.equipment-title'
},
text: {
btnSet: {
default: 'Enregistrer le Set',
success: 'Set enregistré'
},
btnLoad: {
default: 'Charger le Set',
success: 'Set chargé',
error: 'Pas de set enregistré'
},
btnDelete: {
default: 'Supprimer le Set',
success: 'Set supprimé'
}
},
class: {
btnSet: {
default: 'btn btn-default',
success: 'btn btn-success'
},
btnLoad: {
default: 'btn btn-default',
success: 'btn btn-success',
error: 'btn btn-error'
},
btnDelete: {
default: 'btn btn-warning',
success: 'btn btn-success',
error: 'btn btn-error'
}
},
storage: {
save: 'habitSetItems',
save2: 'habitSetItems2'
},
buildUi: function(equipementTitle) {
var $this = this;
var divParent = equipementTitle.parentNode;
var customEquipementUl = document.createElement('ul');
var customEquipementSet = document.createElement('li');
var customEquipementLoad = document.createElement('li');
var customEquipementSetButton = document.createElement('button');
var customEquipementLoadButton = document.createElement('button');
customEquipementSet.style.float = 'left';
customEquipementSet.style.listStyle = 'none';
customEquipementLoad.style.float = 'left';
customEquipementLoad.style.listStyle = 'none';
customEquipementSetButton.className = this.class.btnSet.default;
customEquipementSetButton.innerHTML = this.text.btnSet.default;
customEquipementLoadButton.className = this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = this.text.btnLoad.default;
customEquipementSet.appendChild(customEquipementSetButton);
customEquipementLoad.appendChild(customEquipementLoadButton);
customEquipementUl.appendChild(customEquipementSet);
customEquipementUl.appendChild(customEquipementLoad);
equipementTitle.parentNode.insertBefore(customEquipementUl, equipementTitle.nextSibling);
customEquipementSetButton.onclick = function (e) {
var setItems = [
];
var itemsSelected = divParent.querySelectorAll('li.inventory-gear button.selectableInventory');
if (itemsSelected.length > 1) {
itemsSelected.forEach(function (item) {
var classe = item.className;
var match = classe.match(/shop_[a-z0-9_]+/i);
if (match.length > 0) {
var name = match[0];
setItems.push(name);
}
});
if (setItems.length > 0) {
localStorage.setItem($this.storage.save, setItems);
customEquipementSetButton.innerHTML = $this.text.btnSet.success;
customEquipementSetButton.className = $this.class.btnSet.success;
setTimeout(function () {
customEquipementSetButton.className = $this.class.btnSet.default;
customEquipementSetButton.innerHTML =$this.text.btnSet.default;
}, 1000);
}
}
}
customEquipementLoad.onclick = function (e) {
if (localStorage.getItem($this.storage.save)) {
var setItems = localStorage.getItem($this.storage.save).split(',');
var btnClean = divParent.querySelector('button.ng-binding');
btnClean.click();
setItems.forEach(function (item) {
divParent.querySelector('li.inventory-gear button.' + item).click()
});
customEquipementLoadButton.innerHTML = $this.text.btnLoad.success;
customEquipementLoadButton.className = $this.class.btnLoad.success;
setTimeout(function () {
customEquipementLoadButton.className = $this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = $this.text.btnLoad.default;
}, 1000);
} else {
customEquipementLoadButton.innerHTML = $this.text.btnLoad.error;
customEquipementLoadButton.className = $this.class.btnLoad.error;
setTimeout(function () {
customEquipementLoadButton.className = $this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = $this.text.btnLoad.default;
}, 1000);
}
}
},
buildUi2: function(equipementTitle) {
var $this = this;
var divParent = equipementTitle.parentNode;
var customEquipementUl = document.createElement('ul');
var customEquipementSet = document.createElement('li');
var customEquipementLoad = document.createElement('li');
var customEquipementSetButton = document.createElement('button');
var customEquipementLoadButton = document.createElement('button');
var customEquipementDeleteButton = document.createElement('button');
customEquipementSet.style.float = 'left';
customEquipementSet.style.listStyle = 'none';
customEquipementLoad.style.float = 'left';
customEquipementLoad.style.listStyle = 'none';
customEquipementSetButton.className = this.class.btnSet.default;
customEquipementSetButton.innerHTML = this.text.btnSet.default;
customEquipementLoadButton.className = this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = this.text.btnLoad.default;
customEquipementSet.appendChild(customEquipementSetButton);
customEquipementLoad.appendChild(customEquipementLoadButton);
customEquipementUl.appendChild(customEquipementSet);
customEquipementUl.appendChild(customEquipementLoad);
equipementTitle.parentNode.insertBefore(customEquipementUl, equipementTitle.nextSibling);
customEquipementDeleteButton.className = this.class.btnDelete.default;
customEquipementDeleteButton.innerHTML = this.text.btnDelete.default;
var customEquipementSelect = false;
var costumesItems = {};
if (localStorage.getItem($this.storage.save2)) {
var costumesItems = JSON.parse(localStorage.getItem($this.storage.save2));
if(Object.keys(costumesItems).length) {
customEquipementSelect = document.createElement('select');
customEquipementSelect.style.padding = '4px';
customEquipementSelect.style.marginLeft = '10px';
customEquipementSelect.style.marginRight = '10px';
for(var index in costumesItems) {
var customEquipementOption = document.createElement('option')
customEquipementOption.innerHTML = index;
customEquipementOption.value = index;
customEquipementSelect.appendChild(customEquipementOption)
}
customEquipementLoad.appendChild(customEquipementDeleteButton)
customEquipementLoad.appendChild(customEquipementSelect)
}
}
customEquipementSetButton.onclick = function (e) {
var setItems = [
];
var itemsSelected = divParent.querySelectorAll('li[ng-if="user.preferences.costume"] button.selectableInventory');
if (itemsSelected.length > 1) {
itemsSelected.forEach(function (item) {
var classe = item.className;
var match = classe.match(/shop_[a-z0-9_]+/i);
if (match.length > 0) {
var name = match[0];
setItems.push(name);
}
});
if (setItems.length > 0) {
var nameSet = prompt('Nom du set');
costumesItems[nameSet] = setItems;
localStorage.setItem($this.storage.save2, JSON.stringify(costumesItems));
if(!customEquipementSelect) {
customEquipementSelect = document.createElement('select');
customEquipementSelect.style.padding = '4px';
customEquipementSelect.style.marginLeft = '10px';
customEquipementSelect.style.marginRight = '10px';
customEquipementLoad.appendChild(customEquipementSelect)
}
var customEquipementOption = document.createElement('option')
customEquipementOption.innerHTML = nameSet;
customEquipementOption.value = nameSet;
customEquipementSelect.appendChild(customEquipementOption);
customEquipementSelect.value = nameSet;
customEquipementSetButton.innerHTML = $this.text.btnSet.success;
customEquipementSetButton.className = $this.class.btnSet.success;
setTimeout(function () {
customEquipementSetButton.className = $this.class.btnSet.default;
customEquipementSetButton.innerHTML =$this.text.btnSet.default;
}, 1000);
}
}
}
customEquipementLoadButton.onclick = function (e) {
if (localStorage.getItem($this.storage.save2)) {
var setItems = costumesItems[customEquipementSelect.value];
var btnClean = divParent.querySelector('button.ng-binding');
btnClean.click();
setItems.forEach(function (item) {
divParent.querySelector('li[ng-if="user.preferences.costume"] button.' + item).click()
});
customEquipementLoadButton.innerHTML = $this.text.btnLoad.success;
customEquipementLoadButton.className = $this.class.btnLoad.success;
setTimeout(function () {
customEquipementLoadButton.className = $this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = $this.text.btnLoad.default;
}, 1000);
} else {
customEquipementLoadButton.innerHTML = $this.text.btnLoad.error;
customEquipementLoadButton.className = $this.class.btnLoad.error;
setTimeout(function () {
customEquipementLoadButton.className = $this.class.btnLoad.default;
customEquipementLoadButton.innerHTML = $this.text.btnLoad.default;
}, 1000);
}
}
customEquipementDeleteButton.onclick = function (e) {
if (localStorage.getItem($this.storage.save2)) {
if(!confirm('Etes-vous sûr ?')) {
return;
}
var btnClean = divParent.querySelector('button[ng-click=\'dequip("costume");\']');
btnClean.click();
delete costumesItems[customEquipementSelect.value];
var optionDelete = divParent.querySelector('option[value="'+customEquipementSelect.value+'"]')
optionDelete.parentNode.removeChild(optionDelete)
localStorage.setItem($this.storage.save2, JSON.stringify(costumesItems));
customEquipementDeleteButton.innerHTML = $this.text.btnDelete.success;
customEquipementDeleteButton.className = $this.class.btnDelete.success;
setTimeout(function () {
customEquipementDeleteButton.className = $this.class.btnDelete.default;
customEquipementDeleteButton.innerHTML = $this.text.btnDelete.default;
}, 1000);
} else {
customEquipementDeleteButton.innerHTML = $this.text.btnDelete.error;
customEquipementDeleteButton.className = $this.class.btnDelete.error;
setTimeout(function () {
customEquipementDeleteButton.className = $this.class.btnDelete.default;
customEquipementDeleteButton.innerHTML = $this.text.btnDelete.default;
}, 1000);
}
}
},
init: function(){
if(!hre.utils.moduleActivated('items')) {
return;
}
hre.waitToPage(this.page, function($this){
equipementTitle = document.querySelectorAll($this.selectors.equipementTitle);
equipementTitleItems = equipementTitle[0];
equipementTitleSets = equipementTitle[1];
$this.buildUi(equipementTitleItems);
$this.buildUi2(equipementTitleSets);
hre.debug('Module items ready')
}, this);
}
}
hre.previewBackground = {
page: '#/options/profile/backgrounds',
selectors: {
backgroundsExist: '.background-locked',
backgrounds: '.customize-option',
heroBox: '.herobox'
},
text: {
preview: 'Preview'
},
buildUi: function() {
var $this = this;
var heroBox = document.querySelector(this.selectors.heroBox);
var backgrounds = document.querySelectorAll(this.selectors.backgrounds);
var nobackground = 'noBackgroundImage';
var currentBackground = heroBox.className.match(/background_[a-z_]+/, '');
if( !currentBackground ) {
currentBackground = nobackground;
} else {
currentBackground = currentBackground[0];
}
var count = 0;
backgrounds.forEach(function (background) {
count++;
var backgroundName = /background_[a-z_]+/.exec(background.className)[0];
background.addEventListener('mouseover', function(e) {
heroBox.className = heroBox.className.replace(/noBackgroundImage/, '').replace(/background_[a-z_]+/, '').replace(/background_/, '')
heroBox.className = heroBox.className + ' ' + backgroundName
})
background.addEventListener('mouseleave', function(e) {
heroBox.className = heroBox.className.replace(/noBackgroundImage/, '').replace(/background_[a-z_]+/, '').replace(/background_/, '')
heroBox.className = heroBox.className + ' ' + currentBackground
})
});
},
init: function() {
if(!hre.utils.moduleActivated('previewBackground')) {
return;
}
hre.waitToPage(this.page, function ($this) {
$this.buildUi();
hre.debug('Module previewBackground ready')
}, this)
}
}
hre.options = {
page: '#/options/settings/settings',
storage: {
options: 'hre-settings'
},
selectors: {
optionsExist: 'input[ng-model="user.preferences.dayStart"]',
toAppend: 'div.tab-content:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1)'
},
text: {
preview: 'Preview'
},
template: {
box:
'<div class="panel panel-default">' +
'<div class="panel-heading">' +
'<span>Options d\'HabitRpg Extended</span>' +
'</div>' +
'<div class="panel-body">' +
'<div class="checkbox"><label><input type="checkbox" name="hre[pet]" value="1"><span>Module pour changer le pet de place</span></label></div>' +
'<div class="checkbox"><label><input type="checkbox" name="hre[level]" value="1"><span>Module pour masquer le niveau</span></label></div>' +
'<div class="checkbox"><label><input type="checkbox" name="hre[background]" value="1"><span>Module pour visualiser l\'arrière-plans</span></label></div>' +
'<div class="checkbox"><label><input type="checkbox" name="hre[items]" value="1"><span>Module pour le gestionnaire de set</span></label></div>' +
'<div class="checkbox"><label><input type="checkbox" name="hre[debug]" value="1"><span>Afficher du debug dans la console</span></label></div>' +
'</div>' +
'</div>'
},
buildUi: function() {
var $this = this;
var box = document.createElement('div');
box.classList.add('personal-options');
box.classList.add('col-md-6');
box.innerHTML = $this.template.box
document.querySelector($this.selectors.toAppend).appendChild(box);
var pet = document.querySelector('input[name="hre[pet]"]');
pet.checked = hre.settings.module.portraits.pet;
pet.onclick = function(){
var v;
if(this.checked) {
v = true;
} else {
v = false;
}
hre.settings.module.portraits.pet = v;
var json = JSON.stringify(hre.settings);
hre.storage.set($this.storage.options, json)
}
var level = document.querySelector('input[name="hre[level]"]');
level.checked = hre.settings.module.portraits.level
level.onclick = function(){
var v;
if(this.checked) {
v = true;
} else {
v = false;
}
hre.settings.module.portraits.level = v;
var json = JSON.stringify(hre.settings);
hre.storage.set($this.storage.options, json)
}
var background = document.querySelector('input[name="hre[background]"]');
background.checked = hre.settings.module.previewBackground.activated
background.onclick = function(){
var v;
if(this.checked) {
v = true;
} else {
v = false;
}
hre.settings.module.previewBackground.activated = v;
var json = JSON.stringify(hre.settings);
hre.storage.set($this.storage.options, json)
}
var items = document.querySelector('input[name="hre[items]"]');
items.checked = hre.settings.module.items.activated;
items.onclick = function(){
var v;
if(this.checked) {
v = true;
} else {
v = false;
}
hre.settings.module.items.activated = v;
var json = JSON.stringify(hre.settings);
hre.storage.set($this.storage.options, json)
}
var debug = document.querySelector('input[name="hre[debug]"]');
debug.checked = hre.settings.debug;
debug.onclick = function(){
var v;
if(this.checked) {
v = true;
} else {
v = false;
}
hre.settings.debug = v;
var json = JSON.stringify(hre.settings);
hre.storage.set($this.storage.options, json)
}
},
init: function() {
hre.waitToPage(this.page, function ($this) {
$this.buildUi()
hre.debug('Module options ready')
}, this)
}
}
//alert('ok');
hre.run();
});
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment