diff options
Diffstat (limited to 'features')
-rw-r--r-- | features/cosmetics/cosmetic.js | 1 | ||||
-rw-r--r-- | features/cosmetics/cosmetic/dragon/dragonWings.js | 3 | ||||
-rw-r--r-- | features/cosmetics/index.js | 64 | ||||
-rw-r--r-- | features/lockedFeatures/index.js | 26 | ||||
-rw-r--r-- | features/settings/settingThings/FakeRequireToggle.js | 27 | ||||
-rw-r--r-- | features/settings/settingThings/settingBase.js | 12 |
6 files changed, 93 insertions, 40 deletions
diff --git a/features/cosmetics/cosmetic.js b/features/cosmetics/cosmetic.js index 997b219..878e425 100644 --- a/features/cosmetics/cosmetic.js +++ b/features/cosmetics/cosmetic.js @@ -1,3 +1,4 @@ + class Cosmetic{ constructor(player, parent, id){ diff --git a/features/cosmetics/cosmetic/dragon/dragonWings.js b/features/cosmetics/cosmetic/dragon/dragonWings.js index 08a45cc..ee6b055 100644 --- a/features/cosmetics/cosmetic/dragon/dragonWings.js +++ b/features/cosmetics/cosmetic/dragon/dragonWings.js @@ -1,10 +1,11 @@ import { f, m, m } from "../../../../../mappings/mappings.js"; +import ToggleSetting from "../../../settings/settingThings/toggle.js"; import Cosmetic from "../../cosmetic.js"; const ModelDragon = Java.type("net.minecraft.client.model.ModelDragon") if(!GlStateManager){ - var GL11 = Java.type("org.lwjgl.opengl.GL11"); //using var so it goes to global scope + // var GL11 = Java.type("org.lwjgl.opengl.GL11"); //using var so it goes to global scope var GlStateManager = Java.type("net.minecraft.client.renderer.GlStateManager"); } const Essential = Java.type("gg.essential.Essential") diff --git a/features/cosmetics/index.js b/features/cosmetics/index.js index 1eb73d7..f442c45 100644 --- a/features/cosmetics/index.js +++ b/features/cosmetics/index.js @@ -4,6 +4,7 @@ import Feature from "../../featureClass/class"; import DragonWings from "./cosmetic/dragon/dragonWings" import Toggle from "../settings/settingThings/toggle" import { f } from "../../../mappings/mappings"; +import FakeRequireToggle from "../settings/settingThings/FakeRequireToggle"; class Cosmetics extends Feature { constructor() { @@ -29,6 +30,13 @@ class Cosmetics extends Feature { this.firstPersonVisable = new Toggle("Cosmetics visable in first person", "", false, "cosmetics_first_person_visable", this) this.lessFirstPersonVisable = new Toggle("Make cosmetics less visable in first person mode", "", true, "cosmetics_first_person_less_visable", this).requires(this.firstPersonVisable) + this.dragon_wings_enabled = new Toggle("Dragon Wings Toggle", "", true, "cosmetic_dragon_wings_toggle", this).requires(new FakeRequireToggle(false)).onchange(this, ()=>{ + global.soopyV2Server.updateCosmeticsData({ + cosmetic: "dragon_wings", + type: this.dragon_wings_enabled.getValue() ? "enable" : "disable" + }) + }) + this.loadCosmeticsData() this.worldLoad() @@ -44,6 +52,20 @@ class Cosmetics extends Feature { }) this.registerEvent("renderEntity", this.renderEntity) this.loadedRenderEntity = false + + if(global.soopyV2Server.userCosmeticPermissions){ + this.updateUserCosmeticPermissionSettings() + } + } + + updateUserCosmeticPermissionSettings(){ + if(!this.enabled) return + + if(global.soopyV2Server.userCosmeticPermissions === "*" || global.soopyV2Server.userCosmeticPermissions.dragon_wings){ + this.dragon_wings_enabled.requiresO.set(true) + }else{ + this.dragon_wings_enabled.requiresO.set(false) + } } renderWorld(ticks){ @@ -54,8 +76,8 @@ class Cosmetics extends Feature { renderEntity(entity, pos, ticks, event){ if(ticks !== 1) return - if(this.uuidToCosmeticDirect[entity.getUUID().toString()]){ - Object.values(this.uuidToCosmeticDirect[entity.getUUID().toString()]).forEach(cosmetic => { + if(this.uuidToCosmeticDirect[entity.getUUID().toString().replace(/-/g,"")]){ + Object.values(this.uuidToCosmeticDirect[entity.getUUID().toString().replace(/-/g,"")]).forEach(cosmetic => { cosmetic.onRenderEntity(ticks, true) }) } @@ -76,14 +98,26 @@ class Cosmetics extends Feature { setUserCosmeticsInformation(uuid, cosmetics){ if(!this.enabled) return - - this.filterUnloadedCosmetics() + uuid = uuid.replace(/-/g,"") if(!cosmetics){ delete this.cosmeticsData[uuid] return } this.cosmeticsData[uuid] = cosmetics + + this.loadedCosmetics = this.loadedCosmetics.filter(cosmetic=>{ + if(cosmetic.player.getUUID().toString().replace(/-/g,"") === uuid){ + return false + } + return true + }) + Object.keys(this.uuidToCosmetic).forEach(cosmeticName=>{ + delete this.uuidToCosmetic[cosmeticName][uuid] + }) + + delete this.uuidToCosmeticDirect[uuid] + this.scanForNewCosmetics() } @@ -93,7 +127,7 @@ class Cosmetics extends Feature { scanForNewCosmetics(){ this.loadCosmeticsForPlayer(Player) World.getAllPlayers().forEach(p=>{ - if(p.getUUID().toString() === Player.getUUID().toString()) return + if(p.getUUID().toString().replace(/-/g,"") === Player.getUUID().toString().replace(/-/g,"")) return this.loadCosmeticsForPlayer(p) }) } @@ -109,8 +143,8 @@ class Cosmetics extends Feature { this.loadedCosmetics.push(cosmetic) this.uuidToCosmetic[cosmeticName][player.getUUID().toString().replace(/-/g,"")] = cosmetic - if(!this.uuidToCosmeticDirect[player.getUUID.toString()]) this.uuidToCosmeticDirect[player.getUUID().toString()] = {} - this.uuidToCosmeticDirect[player.getUUID().toString()][cosmeticName] = cosmetic + if(!this.uuidToCosmeticDirect[player.getUUID.toString()]) this.uuidToCosmeticDirect[player.getUUID().toString().replace(/-/g,"")] = {} + this.uuidToCosmeticDirect[player.getUUID().toString().replace(/-/g,"")][cosmeticName] = cosmetic } }) } @@ -125,18 +159,18 @@ class Cosmetics extends Feature { } playerJoined(player){ - if(player.getUUID().toString() === Player.getUUID().toString()) return + if(player.getUUID().toString().replace(/-/g,"") === Player.getUUID().toString().replace(/-/g,"")) return this.loadCosmeticsForPlayer(player) } playerLeft(playerName){ - this.loadedCosmetics.filter(cosmetic=>{ - if(cosmetic.player.getUUID().toString() === Player.getUUID().toString()) return true + this.loadedCosmetics= this.loadedCosmetics.filter(cosmetic=>{ + if(cosmetic.player.getUUID().toString().replace(/-/g,"") === Player.getUUID().toString().replace(/-/g,"")) return true if(cosmetic.player.getName() === playerName){ this.uuidToCosmetic[cosmetic.id][cosmetic.player.getUUID().toString().replace(/-/g,"")] = undefined - this.uuidToCosmeticDirect[cosmetic.player.getUUID().toString()] = undefined + this.uuidToCosmeticDirect[cosmetic.player.getUUID().toString().replace(/-/g,"")] = undefined return false } return true @@ -157,11 +191,11 @@ class Cosmetics extends Feature { filterUnloadedCosmetics(tick=false){ this.loadedCosmetics = this.loadedCosmetics.filter(cosmetic => { if(tick) cosmetic.onTick() - if(cosmetic.player.getUUID().toString() === Player.getUUID().toString()) return true + if(cosmetic.player.getUUID().toString().replace(/-/g,"") === Player.getUUID().toString().replace(/-/g,"")) return true if(cosmetic.player.getPlayer()[f.isDead]){ //filter out players that are no longer loaded this.uuidToCosmetic[cosmetic.id][cosmetic.player.getUUID().toString().replace(/-/g,"")] = undefined - this.uuidToCosmeticDirect[cosmetic.player.getUUID().toString()] = undefined + this.uuidToCosmeticDirect[cosmetic.player.getUUID().toString().replace(/-/g,"")] = undefined return false } return true @@ -199,6 +233,8 @@ class Cosmetics extends Feature { } } +let instance = new Cosmetics() + module.exports = { - class: new Cosmetics() + class: instance }
\ No newline at end of file diff --git a/features/lockedFeatures/index.js b/features/lockedFeatures/index.js index 04ac729..0226859 100644 --- a/features/lockedFeatures/index.js +++ b/features/lockedFeatures/index.js @@ -6,6 +6,7 @@ import SoopyV2Server from "../../socketConnection" import HudTextElement from "../hud/HudTextElement"; import LocationSetting from "../settings/settingThings/location"; import { numberWithCommas, timeNumber2, timeSince } from "../../utils/numberUtils"; +import FakeRequireToggle from "../settings/settingThings/FakeRequireToggle"; class LockedFeatures extends Feature { constructor() { @@ -102,28 +103,3 @@ class LockedFeatures extends Feature { module.exports = { class: new LockedFeatures() } - -class FakeRequireToggle{ - constructor(val){ - this.val = val - - this.thisToggleEvents = [] - - this.toggleObject = { - addEvent: (event)=>{ - this.thisToggleEvents.push(event) - } - } - } - - set(newVal){ - if(this.val === newVal) return - this.val = newVal - - this.thisToggleEvents.forEach(e=>e._trigger(this, [this.val])) - } - - getValue(){ - return this.val - } -}
\ No newline at end of file diff --git a/features/settings/settingThings/FakeRequireToggle.js b/features/settings/settingThings/FakeRequireToggle.js new file mode 100644 index 0000000..41932f3 --- /dev/null +++ b/features/settings/settingThings/FakeRequireToggle.js @@ -0,0 +1,27 @@ + +class FakeRequireToggle{ + constructor(val){ + this.val = val + + this.thisToggleEvents = [] + + this.toggleObject = { + addEvent: (event)=>{ + this.thisToggleEvents.push(event) + } + } + } + + set(newVal){ + if(this.val === newVal) return + this.val = newVal + + this.thisToggleEvents.forEach(e=>e._trigger(this, [this.val])) + } + + getValue(){ + return this.val + } +} + +export default FakeRequireToggle
\ No newline at end of file diff --git a/features/settings/settingThings/settingBase.js b/features/settings/settingThings/settingBase.js index a0d3bc7..02cfd9f 100644 --- a/features/settings/settingThings/settingBase.js +++ b/features/settings/settingThings/settingBase.js @@ -40,6 +40,10 @@ class SettingBase { this.temp_val = temp_val_temp this.requiresO = undefined + + this.onchangethings = [] + + this.initTime = Date.now() } getValue(){ @@ -47,6 +51,7 @@ class SettingBase { } setValue(val){ + if(this.val === val) return this.val = val; if(!this.requiresO || this.requiresO.getValue()){ @@ -63,6 +68,8 @@ class SettingBase { this.module.FeatureManager.featureSettingsDataLastUpdated = true } + + if(this.onchangethings && Date.now()-this.initTime > 1000) this.onchangethings.forEach(([fun, context])=>{fun.call(context)}) } getName(){ @@ -102,6 +109,11 @@ class SettingBase { delete(){ settingsCommunicator.removeSetting(this.module, this.settingId) } + + onchange(context, fun){ + this.onchangethings.push([fun, context]) + return this + } } export default SettingBase
\ No newline at end of file |