disable best friends feature & improvements
- disabled best friends feature - improved load asset by ID in avatar sandbox (originally was quickly added cause I was bored, now it actually works with different asset types and stuff) - add work in progress "automatic ad bidding" feature modal - fixed apply membership themes with nested setting objects - fixed try-on items feature defaulting to giving the preview avatar shirt and pants even if the user's avatar didn't have them - fixed "download place file" because site no longer uses csrf tokens
This commit is contained in:
parent
8258f2b892
commit
6a42004dba
11 changed files with 198 additions and 49 deletions
|
|
@ -174,10 +174,21 @@ if (new URLSearchParams(window.location.search).has('sandbox')) {
|
|||
});
|
||||
|
||||
let LoadAsset = document.getElementById('load-asset');
|
||||
const LoadAssetType = document.getElementById('load-asset-type')
|
||||
LoadAsset.addEventListener('click', async function () {
|
||||
console.log('clickk');
|
||||
const MeshURL = (await (await fetch('https://api.polytoria.com/v1/assets/serve-mesh/' + LoadAsset.previousElementSibling.value)).json()).url;
|
||||
Avatar.items.push(MeshURL);
|
||||
if (!LoadAsset.previousElementSibling.value.startsWith('http') && !LoadAsset.previousElementSibling.value.startsWith('data:')) {
|
||||
if (LoadAssetType.options[LoadAssetType.selectedIndex].value === 'hat') {
|
||||
Avatar.items.push((await (await fetch('https://api.polytoria.com/v1/assets/serve-mesh/' + LoadAsset.previousElementSibling.value)).json()).url);
|
||||
} else {
|
||||
Avatar[LoadAssetType.options[LoadAssetType.selectedIndex].value] = (await (await fetch('https://api.polytoria.com/v1/assets/serve/' + LoadAsset.previousElementSibling.value + '/Asset')).json()).url;
|
||||
}
|
||||
} else {
|
||||
if (LoadAssetType.options[LoadAssetType.selectedIndex].value === 'hat') {
|
||||
Avatar.items.push(LoadAsset.previousElementSibling.value);
|
||||
} else {
|
||||
Avatar[LoadAssetType.options[LoadAssetType.selectedIndex].value] = LoadAsset.previousElementSibling.value
|
||||
}
|
||||
}
|
||||
UpdateAvatar();
|
||||
});
|
||||
});
|
||||
|
|
@ -190,7 +201,7 @@ if (new URLSearchParams(window.location.search).has('sandbox')) {
|
|||
}
|
||||
|
||||
function UpdateAvatar() {
|
||||
GenerateHash().then((hash) => {
|
||||
FormatAvatar().then((hash) => {
|
||||
IFrame.addEventListener('load', function () {
|
||||
IFrame.src = 'https://polytoria.com/ptstatic/itemview/#' + hash;
|
||||
});
|
||||
|
|
@ -272,10 +283,19 @@ async function FormatAvatar() {
|
|||
// Hats, Tools: https://api.polytoria.com/v1/assets/serve-mesh/:id
|
||||
// or: https://api.polytoria.com/v1/assets/serve/:id/Asset
|
||||
|
||||
const meshPromises = Avatar.items.map(async (item, index) => {
|
||||
if (typeof item === 'number') {
|
||||
console.log(item);
|
||||
FormattedAvatar.items[index] = await FetchMesh(item)
|
||||
console.log('after url');
|
||||
//Avatar.items[index] = URL
|
||||
}
|
||||
});
|
||||
|
||||
Avatar.items.forEach(async (item, index) => {
|
||||
if (typeof item === 'number') {
|
||||
console.log(item);
|
||||
await FetchMesh(item)
|
||||
FetchMesh(item)
|
||||
.then((URL) => {
|
||||
console.log('URL: ' + URL);
|
||||
FormattedAvatar.items[index] = URL;
|
||||
|
|
@ -294,12 +314,10 @@ async function FormatAvatar() {
|
|||
}
|
||||
|
||||
if (FormattedAvatar.face === undefined) { FormattedAvatar.face = 'https://c0.ptacdn.com/static/3dview/DefaultFace.png'; }
|
||||
if (!FormattedAvatar.face.startsWith('data:') && !FormattedAvatar.face.startsWith('http')) {
|
||||
if (FormattedAvatar.face && typeof FormattedAvatar.face === 'number') {
|
||||
FormattedAvatar.face = await FetchAsset(FormattedAvatar.face);
|
||||
} else {
|
||||
FormattedAvatar.face = 'https://c0.ptacdn.com/static/3dview/DefaultFace.png';
|
||||
}
|
||||
if (FormattedAvatar.face && typeof FormattedAvatar.face === 'number') {
|
||||
FormattedAvatar.face = await FetchAsset(FormattedAvatar.face);
|
||||
} else if (FormattedAvatar.face === undefined) {
|
||||
FormattedAvatar.face = 'https://c0.ptacdn.com/static/3dview/DefaultFace.png';
|
||||
}
|
||||
|
||||
if (typeof FormattedAvatar.shirt === 'number') {
|
||||
|
|
@ -308,9 +326,14 @@ async function FormatAvatar() {
|
|||
if (typeof FormattedAvatar.pants === 'number') {
|
||||
FormattedAvatar.pants = await FetchAsset(FormattedAvatar.pants);
|
||||
}
|
||||
|
||||
await Promise.all(meshPromises)
|
||||
|
||||
console.log('Real Avatar: ', Avatar, 'Formatted: ', FormattedAvatar);
|
||||
return FormattedAvatar;
|
||||
console.log('Real Avatar: ', Avatar)
|
||||
console.log('Formatted: ', FormattedAvatar)
|
||||
console.log('URI: ', btoa(encodeURIComponent(JSON.stringify(FormattedAvatar))))
|
||||
console.log('Fix: ', JSON.stringify(decodeURIComponent(atob(btoa(encodeURIComponent(JSON.stringify(FormattedAvatar)))))));
|
||||
return btoa(encodeURIComponent(JSON.stringify(FormattedAvatar)));
|
||||
}
|
||||
|
||||
function LoadMyself() {
|
||||
|
|
@ -399,6 +422,23 @@ async function FetchMesh(id) {
|
|||
return null;
|
||||
}
|
||||
console.log('https://api.polytoria.com/v1/assets/serve-mesh/:id'.replace(':id', id));
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
fetch('https://api.polytoria.com/v1/assets/serve-mesh/:id'.replace(':id', id))
|
||||
.then((response) => {
|
||||
if (!response.ok) {
|
||||
throw new Error('Network not ok');
|
||||
}
|
||||
return response.json();
|
||||
})
|
||||
.then((data) => {
|
||||
console.log(data, 'finished', data.url);
|
||||
resolve(data.url);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.log('Fetch error: ' + error);
|
||||
});
|
||||
})
|
||||
return fetch('https://api.polytoria.com/v1/assets/serve-mesh/:id'.replace(':id', id))
|
||||
.then((response) => {
|
||||
if (!response.ok) {
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ function PinnedGames() {
|
|||
}
|
||||
|
||||
function BestFriends() {
|
||||
return
|
||||
Array.from(document.querySelectorAll('[bestFriend]')).forEach((element) => {
|
||||
element.removeAttribute('bestFriend');
|
||||
element.getElementsByClassName('friend-name')[0].style.color = 'initial';
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
let UserID = window.location.pathname.split('/')[2];
|
||||
let Username = window.location.pathname.split('/')[2];
|
||||
const AvatarRow = document.getElementsByClassName('d-flex flex-row flex-nowrap overflow-x-scroll px-3 px-lg-0 mb-2 mb-lg-0')[0];
|
||||
const AvatarHeading = document.querySelector('.section-title:has(i.fa-user-crown)');
|
||||
|
||||
|
|
@ -9,9 +9,9 @@ let CalculateButton;
|
|||
|
||||
let Utilities;
|
||||
|
||||
if (UserID) {
|
||||
if (Username) {
|
||||
(async () => {
|
||||
UserID = (await (await fetch('https://api.polytoria.com/v1/users/')).json()).id;
|
||||
UserID = (await (await fetch('https://api.polytoria.com/v1/users/find?username=' + Username )).json()).id;
|
||||
Utilities = await import(chrome.runtime.getURL('resources/utils.js'));
|
||||
Utilities = Utilities.default;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
const AssetID = window.location.pathname.split('/')[2];
|
||||
const LibraryType = document.querySelectorAll('ol a')[1].innerText.toLowerCase();
|
||||
const LibraryTypes = ['model', 'audio', 'decal', 'mesh'];
|
||||
const LibraryTypes = ['model', 'audio', 'decal', 'mesh', 'shirt', 'pant'];
|
||||
|
||||
if (LibraryTypes.filter((x) => !LibraryTypes.some(element => element.startsWith(LibraryType))).length > 0) {
|
||||
chrome.storage.sync.get(['PolyPlus_Settings'], function (result) {
|
||||
chrome.storage.sync.get(['PolyPlus_Settings'], async function (result) {
|
||||
Settings = result.PolyPlus_Settings || {};
|
||||
|
||||
if (Settings.LibraryDownloadsOn === false) {
|
||||
|
|
@ -18,6 +18,7 @@ if (LibraryTypes.filter((x) => !LibraryTypes.some(element => element.startsWith(
|
|||
DownloadLink.innerHTML = `<i class="fa-duotone fa-download"></i> Download`;
|
||||
Dropdown.insertBefore(DownloadLink, Dropdown.children[Dropdown.children.length - 1]);
|
||||
|
||||
console.log('type', LibraryType, LibraryType.startsWith('shirt'), LibraryType.startsWith('pant'))
|
||||
switch (LibraryType) {
|
||||
case LibraryType.startsWith('model'):
|
||||
DownloadLink.href = 'https://api.polytoria.com/v1/models/get-model?id=' + AssetID;
|
||||
|
|
@ -26,21 +27,39 @@ if (LibraryTypes.filter((x) => !LibraryTypes.some(element => element.startsWith(
|
|||
const AudioBlob = new Blob([document.getElementsByTagName('audio')[0]], {type: 'octet-steam'});
|
||||
DownloadLink.href = URL.createObjectURL(AudioBlob);
|
||||
DownloadLink.download = document.getElementsByTagName('h1')[0].innerText + '.mp3';
|
||||
case LibraryType.startsWith('decal'):
|
||||
case (LibraryType.startsWith('decal')):
|
||||
const DecalBlob = new Blob([document.getElementsByClassName('store-thumbnail')[0]], {type: 'image/png'});
|
||||
DownloadLink.href = URL.createObjectURL(DecalBlob);
|
||||
DownloadLink.download = document.getElementsByTagName('h1')[0].innerText + '.png';
|
||||
break;
|
||||
}
|
||||
|
||||
if (LibraryType.startsWith('mesh')) {
|
||||
if (LibraryType.startsWith('shirt') || LibraryType.startsWith('pant')) {
|
||||
let ClothingURL = null;
|
||||
DownloadLink.addEventListener('click', async function () {
|
||||
if (ClothingURL !== null) {
|
||||
return;
|
||||
}
|
||||
ClothingURL = (await (await fetch('https://api.polytoria.com/v1/assets/serve/' + AssetID + '/Asset')).json());
|
||||
|
||||
if (ClothingURL.success === true) {
|
||||
//const ClothingBlob = new Blob([(await (await fetch(ClothingURL.url)).blob())], {type: 'image/png'})
|
||||
const ClothingBlob = (await (await fetch(ClothingURL.url)).blob())
|
||||
DownloadLink.href = URL.createObjectURL(ClothingBlob);
|
||||
DownloadLink.download = document.getElementsByTagName('h1')[0].innerText + '.png';
|
||||
|
||||
DownloadLink.click();
|
||||
} else {
|
||||
alert('Failure to fetch .png file for clothing item');
|
||||
}
|
||||
});
|
||||
} else if (LibraryType.startsWith('mesh')) {
|
||||
let MeshURL = null;
|
||||
DownloadLink.addEventListener('click', async function () {
|
||||
if (MeshURL !== null) {
|
||||
return;
|
||||
}
|
||||
MeshURL = await fetch('https://api.polytoria.com/v1/assets/serve-mesh/' + AssetID);
|
||||
MeshURL = await MeshURL.json();
|
||||
MeshURL = (await (await fetch('https://api.polytoria.com/v1/assets/serve-mesh/' + AssetID)).json());
|
||||
|
||||
if (MeshURL.success === true) {
|
||||
DownloadLink.href = MeshURL.url;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
chrome.storage.sync.get(['PolyPlus_Settings'], function (result) {
|
||||
Settings = result.PolyPlus_Settings || {
|
||||
ApplyMembershipTheme: {
|
||||
Enabled: false,
|
||||
Theme: 0
|
||||
},
|
||||
ApplyMembershipThemeOn: false,
|
||||
ApplyMembershipThemeTheme: 0
|
||||
};
|
||||
if (Settings.ApplyMembershipThemeOn !== true) {
|
||||
if (Settings.ApplyMembershipTheme.Enabled !== true) {
|
||||
return;
|
||||
}
|
||||
|
||||
MembershipTheme = Settings.ApplyMembershipThemeTheme === 0 ? 'plus' : 'plusdx';
|
||||
MembershipTheme = Settings.ApplyMembershipTheme.Theme === 0 ? 'plus' : 'plusdx';
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
if (document.getElementsByClassName('card-header')[0] && document.getElementsByClassName('card-header')[0].innerText === ' Page not found') {
|
||||
|
|
@ -24,25 +28,28 @@ chrome.storage.sync.get(['PolyPlus_Settings'], function (result) {
|
|||
Navbar.classList.add('navbar-' + MembershipTheme);
|
||||
Sidebar.classList.add('sidebar-' + MembershipTheme);
|
||||
|
||||
if (MembershipTheme === 'plusdx') {
|
||||
let SidebarLogo = document.querySelector('.nav-sidebar img');
|
||||
SidebarLogo.setAttribute('src', 'https://c0.ptacdn.com/static/images/branding/icon-plusdx.bd9daa92.svg');
|
||||
let SidebarLogoLabel = document.createElement('div');
|
||||
SidebarLogoLabel.classList = 'nplusdx-banner';
|
||||
SidebarLogoLabel.innerHTML = `
|
||||
<i class="pi pi-plusdx" style="margin-right:-0.4em"></i>
|
||||
`;
|
||||
SidebarLogo.parentElement.appendChild(SidebarLogoLabel);
|
||||
let SidebarLogo = Sidebar.getElementsByTagName('img')[0];
|
||||
if (MembershipTheme === 'plus') {
|
||||
SidebarLogo.src = 'https://c0.ptacdn.com/static/images/branding/icon-plus.8f6e41f1.svg'
|
||||
} else {
|
||||
SidebarLogo.src = 'https://c0.ptacdn.com/static/images/branding/icon-plusdx.bd9daa92.svg'
|
||||
}
|
||||
|
||||
if (window.location.pathname === '/home') {
|
||||
let HomeUsernameText = document.getElementsByClassName('home-title2')[0];
|
||||
HomeUsernameText.children[0].classList.add('text-plusdx');
|
||||
let Label = document.createElement('div');
|
||||
Label.classList = 'hplusdx-banner rounded-2';
|
||||
Label.setAttribute('style', 'margin-top: -8px; animation-delay: 0.09s;');
|
||||
Label.innerText = 'Deluxe';
|
||||
HomeUsernameText.appendChild(Label);
|
||||
}
|
||||
let SidebarLogoLabel = document.createElement('div');
|
||||
SidebarLogoLabel.classList = 'n' + MembershipTheme + '-banner';
|
||||
SidebarLogoLabel.innerHTML = `
|
||||
<i class="pi pi-${MembershipTheme}" style="margin-right:-0.4em"></i>
|
||||
`;
|
||||
SidebarLogo.parentElement.appendChild(SidebarLogoLabel);
|
||||
|
||||
if (MembershipTheme === 'plusdx' && window.location.pathname === '/home') {
|
||||
let HomeUsernameText = document.getElementsByClassName('home-title2')[0];
|
||||
HomeUsernameText.classList.add('text-plusdx');
|
||||
let Label = document.createElement('div');
|
||||
Label.classList = 'hplusdx-banner reqFadeAnim rounded-2';
|
||||
Label.setAttribute('style', 'margin-top:-8px');
|
||||
Label.innerText = 'Deluxe';
|
||||
HomeUsernameText.parentElement.appendChild(Label);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -95,13 +95,12 @@ function RequestGameProfile() {
|
|||
async function CopyOwnedPlace() {
|
||||
console.log('ran function');
|
||||
if (PlaceData === null) {
|
||||
PlaceData = await fetch('https://api.polytoria.com/v1/places/' + 2640);
|
||||
PlaceData = await fetch('https://api.polytoria.com/v1/places/' + PlaceID);
|
||||
PlaceData = await PlaceData.json();
|
||||
}
|
||||
|
||||
if (PlaceData.creator.id !== parseInt(JSON.parse(window.localStorage.getItem('p+account_info')).ID)) {
|
||||
console.log('returned');
|
||||
//return
|
||||
return
|
||||
}
|
||||
|
||||
const DIV = document.createElement('div');
|
||||
|
|
@ -123,9 +122,11 @@ async function CopyOwnedPlace() {
|
|||
|
||||
let CreatorToken = await fetch('https://polytoria.com/api/places/edit', {
|
||||
method: 'POST',
|
||||
/*
|
||||
headers: {
|
||||
'X-CSRF-Token': document.querySelector('input[name="_csrf"]').value
|
||||
},
|
||||
*/
|
||||
body: JSON.stringify({placeID: PlaceID})
|
||||
});
|
||||
CreatorToken = await CreatorToken.json();
|
||||
|
|
|
|||
|
|
@ -175,8 +175,6 @@ function TryOnItems() {
|
|||
const Avatar = {
|
||||
useCharacter: true,
|
||||
items: [],
|
||||
shirt: 'https://c0.ptacdn.com/assets/uWrrnFGwgNN5W171vqYTWY7E639rKiXK.png',
|
||||
pants: 'https://c0.ptacdn.com/assets/HD6TFdXD8CaflRNmd84VCNyNsmTB0SH3.png',
|
||||
headColor: '#e0e0e0',
|
||||
torsoColor: '#e0e0e0',
|
||||
leftArmColor: '#e0e0e0',
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
"manifest_version": 3,
|
||||
"author": "Index",
|
||||
"name": "Poly+",
|
||||
"version": "1.11",
|
||||
"version_name": "Pre-Release Build (v1.1.1)",
|
||||
"version": "1.21",
|
||||
"version_name": "Pre-Release Build (v1.2.1)",
|
||||
"description": "Power-up your Polytoria experience with Poly+! Created by Index.",
|
||||
"homepage_url": "https://polyplus.vercel.app/",
|
||||
"permissions": ["storage", "contextMenus", "scripting", "alarms", "notifications"],
|
||||
|
|
|
|||
|
|
@ -64,10 +64,20 @@
|
|||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr class="mt-2 mb-3">
|
||||
<select class="form-select mb-2" id="load-asset-type">
|
||||
<option value="hat" selected>Hat</option>
|
||||
<option value="face">Face</option>
|
||||
<option value="shirt">Shirt</option>
|
||||
<option value="pants">Pants</option>
|
||||
<hr>
|
||||
<option value="user">User Avatar</option>
|
||||
</select>
|
||||
<div class="input-group mb-3">
|
||||
<input type="text" class="form-control bg-dark" placeholder="Asset ID.." />
|
||||
<button class="btn btn-primary" id="load-asset">Load Asset</button>
|
||||
</div>
|
||||
<hr class="mt-2 mb-3">
|
||||
<div class="card mcard mb-3">
|
||||
<h6 class="card-header">
|
||||
<i class="fad fa-palette"></i>
|
||||
|
|
|
|||
|
|
@ -321,6 +321,63 @@
|
|||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
<dialog class="w-75" id="AutoAdBidding-Modal" data-setting="AutoAdBidding">
|
||||
<div class="modal-header">
|
||||
<p>Automatic Ad Bidding</p>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>description (max 10 ads)</p>
|
||||
<hr class="mt-2 mb-3" />
|
||||
<div class="input-group mb-2">
|
||||
<input type="text" class="form-control ignore" placeholder="Ad ID..">
|
||||
<button class="btn btn-primary" id="auto-ad-bidding-add">Add</button>
|
||||
</div>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">Ad Name</th>
|
||||
<th scope="col">Bid</th>
|
||||
<th scope="col">Automation</th>
|
||||
<th scope="col">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">1</th>
|
||||
<td><a href="https://polytoria.com/create/ad/632">"everdayi m shuffling"</a></td>
|
||||
<td class="text-success"><span class="pi">$</span> 150</td>
|
||||
<td>
|
||||
<select class="form-select ignore">
|
||||
<option value="daily" selected>Daily</option>
|
||||
<option value="weekly">Weekly</option>
|
||||
<option value="monthly">Monthly</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<div role="group" class="btn-group w-100">
|
||||
<button class="btn btn-success w-25">
|
||||
BID
|
||||
</button>
|
||||
<button class="btn btn-orange w-25">
|
||||
EDIT
|
||||
</button>
|
||||
<button class="btn btn-danger w-25">
|
||||
DELETE
|
||||
</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div role="group" class="btn-group w-100">
|
||||
<button class="btn btn-success w-25" data-setting="[save]">Save</button>
|
||||
<button class="btn btn-warning w-25" data-setting="[reset-default]">Reset to Defaults</button>
|
||||
<button class="btn btn-secondary w-25" data-setting="[cancel]">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
</dialog>
|
||||
<div id="page">
|
||||
<h1 class="text-center" style="text-shadow: 0px 0px 5px orange; padding-bottom: 5px; margin-bottom: 10px;">Poly+ Settings</h1>
|
||||
<p class="setting-container" id="pinned-games">
|
||||
|
|
@ -343,6 +400,7 @@
|
|||
<br />
|
||||
<span style="font-size: 0.8rem; color: orange;">* Forum Mentions do not notify the user or show up as a notification on their account.</span>
|
||||
</p>
|
||||
<!--
|
||||
<p class="setting-container" id="best-friends">
|
||||
<span class="indicator"> </span>
|
||||
<span class="title">
|
||||
|
|
@ -352,6 +410,7 @@
|
|||
<br />
|
||||
<span class="desc">Prioritize the bestest of friends on applicable friend lists! (limit: <span id="BestFriends-limit"></span> best friends)</span>
|
||||
</p>
|
||||
-->
|
||||
<p class="setting-container" id="improved-friend-lists">
|
||||
<span class="indicator"> </span>
|
||||
<span class="title">
|
||||
|
|
@ -607,6 +666,18 @@
|
|||
<label class="form-check-label" for="hide-user-ads-rectangle"> Hide Rectangle User Ads </label>
|
||||
</span>
|
||||
</p>
|
||||
<!---
|
||||
<p class="setting-container" id="auto-ad-bidding">
|
||||
<span class="indicator"> </span>
|
||||
<span class="title">
|
||||
Automatic Ad Bidding
|
||||
<button class="btn btn-sm toggle-btn" data-setting="AutoAdBiddingOn">Toggle</button>
|
||||
<button class="btn btn-primary btn-sm" data-modal="AutoAdBidding">Options</button>
|
||||
</span>
|
||||
<br />
|
||||
<span class="desc">description</span>
|
||||
</p>
|
||||
-->
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h3>EXPERIMENTAL SETTINGS</h3>
|
||||
|
|
|
|||
|
|
@ -194,10 +194,12 @@ function SetSetting(element, value, update, modalParent) {
|
|||
return "Are you sure you'd like to leave? Your Poly+ settings haven't been saved."
|
||||
};
|
||||
}
|
||||
/*
|
||||
if (AreIdentical(Settings, RecentSave) === true) {
|
||||
document.title = 'Poly+ Settings'
|
||||
SaveBtn.disabled = true
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
function GetSettingValue(element, modalParent) {
|
||||
|
|
|
|||
Reference in a new issue