1 | import { partial } from '../util'
|
2 | import { unescape } from 'plug-message-split'
|
3 | import makeProto from '../wrap'
|
4 |
|
5 | export default function wrapUser (mp, user) {
|
6 | user.username = user.guest ? null : unescape(user.username || '')
|
7 |
|
8 |
|
9 | const mention = `@${user.username}`
|
10 |
|
11 | return makeProto(user, {
|
12 | hasPermission: (role) =>
|
13 | (user.role >= role || user.gRole >= role),
|
14 | hasGlobalPermission: (role) =>
|
15 | user.gRole >= role,
|
16 |
|
17 | chat: partial(mp.chat, mention),
|
18 | emote: partial(mp.chat, `/me ${mention}`),
|
19 |
|
20 | add: partial(mp.addDJ, user.id),
|
21 | move: partial(mp.moveDJ, user.id),
|
22 | remove: partial(mp.removeDJ, user.id),
|
23 | skip: partial(mp.skipDJ, user.id),
|
24 |
|
25 | befriend: partial(mp.befriend, user.id),
|
26 | rejectRequest: partial(mp.rejectFriendRequest, user.id),
|
27 |
|
28 | ignore: partial(mp.ignore, user.id),
|
29 | unignore: partial(mp.unignore, user.id),
|
30 |
|
31 | mute: partial(mp.mute, user.id),
|
32 | unmute: partial(mp.unmute, user.id),
|
33 |
|
34 | ban: partial(mp.ban, user.id),
|
35 | unban: partial(mp.unban, user.id),
|
36 |
|
37 | waitlistBan: partial(mp.waitlistBan, user.id),
|
38 | waitlistUnban: partial(mp.waitlistUnban, user.id),
|
39 |
|
40 | getHistory: partial(mp.getUserHistory, user.id),
|
41 |
|
42 | mention: () => mention,
|
43 |
|
44 | toString: () => mention
|
45 | })
|
46 | }
|