Skip to content

Commit 397fb65

Browse files
committed
fix: add appendCard() event for plugin support
1 parent a321e5b commit 397fb65

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

changelog.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# UnderScript Changelog
22

3+
## Version 0.51.1 (2022-10-30)
4+
1. Fix issue where PrettyCards would break descriptions
5+
36
## Version 0.51.0 (2022-10-29)
47
### New Features
58
1. Added events for ALL `appendCard` functions

src/base/vanilla/card.append.js

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,34 @@
1+
import getExtras from '../../utils/appendCardExtras';
12
import each from '../../utils/each';
23
import eventEmitter from '../../utils/eventEmitter';
34
import eventManager from '../../utils/eventManager';
45
import { globalSet } from '../../utils/global';
6+
import VarStore from '../../utils/VarStore';
57

68
const PREFIX = 'appendCard';
79
const internal = eventEmitter();
810
let event = PREFIX;
911
let data;
12+
const extras = VarStore();
1013

1114
internal.on('set', (e = PREFIX) => {
1215
event = e;
1316
}).on('pre', (...args) => {
1417
eventManager.emit(`pre:func:${event}`, ...args);
1518
}).on('post', (...args) => {
16-
if (event === PREFIX || data && !args.length) {
17-
eventManager.emit(`func:${event}`, ...(data || args));
19+
if (event === PREFIX || !args.length) {
20+
const eventData = data || args;
21+
if (eventData.length) eventManager.emit(`func:${event}`, ...eventData);
1822
data = null;
1923
event = PREFIX; // Reset
2024
} else {
2125
data = args;
26+
if (extras.isSet()) data.push(...extras.value);
27+
eventManager.emit(`${PREFIX}()`, { // Support old events
28+
card: args[0],
29+
element: args[1],
30+
});
31+
eventManager.emit(`func:${PREFIX}`, ...data); // Should always call `appendCard`?
2232
}
2333
});
2434

@@ -35,15 +45,18 @@ eventManager.on(':loaded', () => {
3545

3646
function override(key) {
3747
globalSet(key, function func(...args) {
48+
extras.value = getExtras(key, args);
3849
internal.emit('set', key);
3950
const ret = this.super(...args);
4051
internal.emit('post');
4152
return ret;
4253
});
4354
}
4455

56+
const otherKeys = ['showCardHover'];
4557
each(window, (_, key = '') => {
46-
if (key !== PREFIX && key.startsWith(PREFIX) ||
47-
key === 'showCardHover') override(key);
58+
if (key !== PREFIX && key.startsWith(PREFIX) || otherKeys.includes(key)) {
59+
override(key);
60+
}
4861
});
4962
});

src/utils/VarStore.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,5 @@ export default function VarStore(def) {
2828
set,
2929
});
3030

31-
return ret;
31+
return Object.freeze(ret);
3232
}

src/utils/appendCardExtras.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const argExtractor = {
2+
appendCardCardSkinShop: (...args) => args,
3+
appendCardFriendship: (_, ...args) => args,
4+
showCardHover: (...args) => args,
5+
};
6+
7+
export default function getExtras(key, args = []) {
8+
const extractor = argExtractor[key];
9+
if (!extractor) return null;
10+
return extractor(...args);
11+
}

0 commit comments

Comments
 (0)