From 2d463dc118b0d73605906ae0c2e4419bf39e8571 Mon Sep 17 00:00:00 2001 From: Soopyboo32 <49228220+Soopyboo32@users.noreply.github.com> Date: Tue, 4 Oct 2022 21:23:48 +0800 Subject: + fix game freeze on first dungeon of the day + (potential) fix memory leak when doing lots of /ct reload + add seperate setting for powder info on hud to rest of powder features --- src/featureClass/class.js | 5 +++++ src/featureClass/featureManager.js | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'src/featureClass') diff --git a/src/featureClass/class.js b/src/featureClass/class.js index 987b460..fc4f7ff 100644 --- a/src/featureClass/class.js +++ b/src/featureClass/class.js @@ -176,6 +176,8 @@ class Event { this.registerArgs = registerArgs this.parent = parent + this.data.eventT = this + this.enabled = true this.when = undefined @@ -280,14 +282,17 @@ class ForgeEvent extends Event { } class CustomEvent extends Event { + //theEvent, theEvent.trigger, [isFps, interval, func], this constructor(...args) { super(...args) } actuallyRegister() { + if (this.data.type === "step") return this.trigger.register() } actuallyUnregister() { + if (this.data.type === "step") return this.trigger.unregister() } } diff --git a/src/featureClass/featureManager.js b/src/featureClass/featureManager.js index 6974f46..eb2f0f9 100644 --- a/src/featureClass/featureManager.js +++ b/src/featureClass/featureManager.js @@ -19,7 +19,7 @@ let CTRequire = new JSLoader.CTRequire(StrongCachingModuleScriptProvider) const System = Java.type("java.lang.System") let loadedModules = new Set() -let shouldRequireForceNoCache = true +let shouldRequireForceNoCache = false function RequireNoCache(place) { if (!shouldRequireForceNoCache) { @@ -566,10 +566,12 @@ class FeatureManager { if (!func) throw new Error("Function must not be null") this.customEvents[id] = { - func: func, - context: context, + func, + context, trigger: register(type, (...args) => { try { + if (this.customEvents[id]?.eventT && !this.customEvents[id].eventT.enabled) return + if (context.enabled) { if (this.recordingPerformanceUsage) this.startRecordingPerformance(context.getId(), type) let start = Date.now() @@ -587,7 +589,8 @@ class FeatureManager { soopyV2Server.reportError(e, "Error in " + type + " event.") } }), - id: id + id, + type, } return this.customEvents[id] -- cgit