Skip to content

Commit

Permalink
Fix addon configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
keianhzo committed Jun 13, 2024
1 parent bccf94d commit 064441a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 22 deletions.
25 changes: 15 additions & 10 deletions src/addons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ export function getAddonsPreferencesCategories(app: App): PreferencePrefsScreenC
if (!xFormedScreenPreferencesCategories) {
xFormedScreenPreferencesCategories = new Map<string, PreferencePrefsScreenItemT[]>();
screenPreferencesCategories.forEach((categories, addonId) => {
if (isAddonEnabled(app, addonId)) {
if (isAddonActive(app, addonId)) {
const config = addons.get(addonId);
xFormedScreenPreferencesCategories.set(config?.name || addonId, categories);
}
Expand Down Expand Up @@ -290,19 +290,24 @@ export function getAddonConfig(id: string): AdminAddonConfig {

export function isAddonEnabled(app: App, id: string): boolean {
let enabled = false;
if (shouldUseNewLoader()) {
if (app.hub?.user_data && "addons" in app.hub?.user_data && id in app.hub.user_data["addons"]) {
enabled = app.hub.user_data.addons[id];
} else {
const adminAddonsConfig = getAddonConfig(id);
if (adminAddonsConfig) {
enabled = adminAddonsConfig.enabled;
}
if (app.hub?.user_data && "addons" in app.hub?.user_data && id in app.hub.user_data["addons"]) {
enabled = app.hub.user_data.addons[id];
} else {
const adminAddonsConfig = getAddonConfig(id);
if (adminAddonsConfig) {
enabled = adminAddonsConfig.enabled;
}
}
return enabled;
}

function isAddonActive(app: App, id: string): boolean {
if (shouldUseNewLoader()) {
return isAddonEnabled(app, id);
}
return false;
}

export function onAddonsInit(app: App) {
app.scene?.addEventListener("hub_updated", () => {
for (const [id, addon] of pendingAddons) {
Expand All @@ -312,7 +317,7 @@ export function onAddonsInit(app: App) {
addons.set(id, addon);
}

if (!isAddonEnabled(app, id)) {
if (!isAddonActive(app, id)) {
continue;
}

Expand Down
5 changes: 0 additions & 5 deletions src/react-components/room/RoomSettingsSidebar.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,6 @@ export function RoomSettingsSidebar({
evt => {
setValue("user_data.hubs_use_bitecs_based_client", evt.target.checked);
setBitECSLoaderEnabled(evt.target.checked);
if (!evt.target.checked) {
[...addons.entries()].map(([id, _]) => {
setValue(`user_data.addons.${id}`, evt.target.checked);
});
}
},
[setValue, setBitECSLoaderEnabled]
);
Expand Down
15 changes: 8 additions & 7 deletions src/utils/bit-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,13 @@ export function findChildrenWithComponent(world: HubsWorld, component: Component

const forceNewLoader = qsTruthy("newLoader");
export function shouldUseNewLoader() {
let shouldUseNewLoader = forceNewLoader;
if (configs.feature("bitecs_loader") !== undefined) {
shouldUseNewLoader ||= configs.feature("bitecs_loader");
if (forceNewLoader === true) {
return true;
} else if (APP.hub?.user_data?.hubs_use_bitecs_based_client !== undefined) {
return APP.hub?.user_data?.hubs_use_bitecs_based_client;
} else if (configs.feature("bitecs_loader") !== undefined) {
return configs.feature("bitecs_loader");
} else {
return false;
}
if (APP.hub?.user_data?.hubs_use_bitecs_based_client !== undefined) {
shouldUseNewLoader &&= APP.hub?.user_data?.hubs_use_bitecs_based_client;
}
return shouldUseNewLoader;
}

0 comments on commit 064441a

Please sign in to comment.