forked from 27hrs/dsh-long-skin
fix: reset Liang appearance on activation
This commit is contained in:
@@ -52,7 +52,7 @@
|
|||||||
- `滑动变祖`:显示滑块并启用人物、背景和自适应配色。
|
- `滑动变祖`:显示滑块并启用人物、背景和自适应配色。
|
||||||
- `原生`:移除背景层、皮肤变量和滑块,恢复 Harness 原生界面。
|
- `原生`:移除背景层、皮肤变量和滑块,恢复 Harness 原生界面。
|
||||||
|
|
||||||
选择保存在当前浏览器本地,不会改动模型配置。
|
“原生”只对当前 Liang client 激活周期生效;从皮肤市场切换到其他皮肤后再切回,梁祖皮肤会重新显示。该选择不会改动模型配置。
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
|
|||||||
@@ -798,7 +798,6 @@ var PACKAGE_ID = "dsh-client-liang-intensity-skin";
|
|||||||
var LOCALE_NAMESPACE = "liang.skin";
|
var LOCALE_NAMESPACE = "liang.skin";
|
||||||
var ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
var ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
||||||
var VIDEO_DURATION = 8.033;
|
var VIDEO_DURATION = 8.033;
|
||||||
var PREFERENCE_KEY = "dsh-liang-intensity-skin.enabled";
|
|
||||||
var BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
var BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
||||||
var PORTRAIT_ANCHORS = [
|
var PORTRAIT_ANCHORS = [
|
||||||
{ level: 0, file: "stage-00.png" },
|
{ level: 0, file: "stage-00.png" },
|
||||||
@@ -1295,16 +1294,20 @@ var inject = [
|
|||||||
"theme"
|
"theme"
|
||||||
];
|
];
|
||||||
function createPreferenceStore() {
|
function createPreferenceStore() {
|
||||||
|
try {
|
||||||
|
localStorage.removeItem("dsh-liang-intensity-skin.enabled");
|
||||||
|
} catch {
|
||||||
|
}
|
||||||
let snapshot = {
|
let snapshot = {
|
||||||
enabled: localStorage.getItem(PREFERENCE_KEY) !== "0",
|
enabled: true,
|
||||||
bindEffort: localStorage.getItem(BIND_EFFORT_KEY) !== "0"
|
bindEffort: localStorage.getItem(BIND_EFFORT_KEY) !== "0"
|
||||||
};
|
};
|
||||||
const listeners = /* @__PURE__ */ new Set();
|
const listeners = /* @__PURE__ */ new Set();
|
||||||
const onStorage = (event) => {
|
const onStorage = (event) => {
|
||||||
if (event.key !== PREFERENCE_KEY && event.key !== BIND_EFFORT_KEY) return;
|
if (event.key !== BIND_EFFORT_KEY) return;
|
||||||
const next = {
|
const next = {
|
||||||
enabled: event.key === PREFERENCE_KEY ? event.newValue !== "0" : snapshot.enabled,
|
enabled: snapshot.enabled,
|
||||||
bindEffort: event.key === BIND_EFFORT_KEY ? event.newValue !== "0" : snapshot.bindEffort
|
bindEffort: event.newValue !== "0"
|
||||||
};
|
};
|
||||||
if (next.enabled === snapshot.enabled && next.bindEffort === snapshot.bindEffort) return;
|
if (next.enabled === snapshot.enabled && next.bindEffort === snapshot.bindEffort) return;
|
||||||
snapshot = next;
|
snapshot = next;
|
||||||
@@ -1319,7 +1322,6 @@ function createPreferenceStore() {
|
|||||||
},
|
},
|
||||||
async set(enabled) {
|
async set(enabled) {
|
||||||
if (enabled === snapshot.enabled) return;
|
if (enabled === snapshot.enabled) return;
|
||||||
localStorage.setItem(PREFERENCE_KEY, enabled ? "1" : "0");
|
|
||||||
snapshot = { ...snapshot, enabled };
|
snapshot = { ...snapshot, enabled };
|
||||||
for (const listener of listeners) listener();
|
for (const listener of listeners) listener();
|
||||||
},
|
},
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -25,7 +25,6 @@ const PACKAGE_ID = "dsh-client-liang-intensity-skin";
|
|||||||
const LOCALE_NAMESPACE = "liang.skin";
|
const LOCALE_NAMESPACE = "liang.skin";
|
||||||
const ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
const ASSET_PREFIX = `/plugins/${PACKAGE_ID}/assets`;
|
||||||
const VIDEO_DURATION = 8.033;
|
const VIDEO_DURATION = 8.033;
|
||||||
const PREFERENCE_KEY = "dsh-liang-intensity-skin.enabled";
|
|
||||||
const BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
const BIND_EFFORT_KEY = "dsh-liang-intensity-skin.bind-effort";
|
||||||
|
|
||||||
const PORTRAIT_ANCHORS = [
|
const PORTRAIT_ANCHORS = [
|
||||||
@@ -750,16 +749,24 @@ export const inject = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
function createPreferenceStore(): PreferenceStore {
|
function createPreferenceStore(): PreferenceStore {
|
||||||
|
// The market's active skin is the source of truth for whether this client
|
||||||
|
// should be visible. The appearance switch is therefore scoped to this
|
||||||
|
// client activation and must not survive switching away and back.
|
||||||
|
try {
|
||||||
|
localStorage.removeItem("dsh-liang-intensity-skin.enabled");
|
||||||
|
} catch {
|
||||||
|
// Storage may be unavailable; the in-memory default still enables Liang.
|
||||||
|
}
|
||||||
let snapshot: SkinSettings = {
|
let snapshot: SkinSettings = {
|
||||||
enabled: localStorage.getItem(PREFERENCE_KEY) !== "0",
|
enabled: true,
|
||||||
bindEffort: localStorage.getItem(BIND_EFFORT_KEY) !== "0",
|
bindEffort: localStorage.getItem(BIND_EFFORT_KEY) !== "0",
|
||||||
};
|
};
|
||||||
const listeners = new Set<() => void>();
|
const listeners = new Set<() => void>();
|
||||||
const onStorage = (event: StorageEvent) => {
|
const onStorage = (event: StorageEvent) => {
|
||||||
if (event.key !== PREFERENCE_KEY && event.key !== BIND_EFFORT_KEY) return;
|
if (event.key !== BIND_EFFORT_KEY) return;
|
||||||
const next = {
|
const next = {
|
||||||
enabled: event.key === PREFERENCE_KEY ? event.newValue !== "0" : snapshot.enabled,
|
enabled: snapshot.enabled,
|
||||||
bindEffort: event.key === BIND_EFFORT_KEY ? event.newValue !== "0" : snapshot.bindEffort,
|
bindEffort: event.newValue !== "0",
|
||||||
};
|
};
|
||||||
if (next.enabled === snapshot.enabled && next.bindEffort === snapshot.bindEffort) return;
|
if (next.enabled === snapshot.enabled && next.bindEffort === snapshot.bindEffort) return;
|
||||||
snapshot = next;
|
snapshot = next;
|
||||||
@@ -774,7 +781,6 @@ function createPreferenceStore(): PreferenceStore {
|
|||||||
},
|
},
|
||||||
async set(enabled) {
|
async set(enabled) {
|
||||||
if (enabled === snapshot.enabled) return;
|
if (enabled === snapshot.enabled) return;
|
||||||
localStorage.setItem(PREFERENCE_KEY, enabled ? "1" : "0");
|
|
||||||
snapshot = { ...snapshot, enabled };
|
snapshot = { ...snapshot, enabled };
|
||||||
for (const listener of listeners) listener();
|
for (const listener of listeners) listener();
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user