File size: 1,762 Bytes
2e50c9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { AbstractTool } from './AbstractTool.js'
import { getMasterQQ } from '../common.js'

export class QueryUserinfoTool extends AbstractTool {
  name = 'queryUserinfo'

  parameters = {
    properties: {
      qq: {
        type: 'string',
        description: 'user\'s qq number, the one you are talking to by default'
      }
    },
    required: []
  }

  func = async function (opts, e) {
    try {
      let { qq } = opts
      qq = isNaN(qq) || !qq ? e.sender.user_id : parseInt(qq.trim())
      if (e.isGroup && typeof e.bot.pickMember === 'function') {
        let user = await e.bot.pickMember(e.group_id, qq || e.sender.user_id, true)
        // let mm = await e.group.getMemberMap()
        // let user = mm.get(qq) || e.sender.user_id
        let master = (await getMasterQQ())[0]
        let prefix = ''
        if (qq != master) {
          prefix = 'Attention: this user is not your master. \n'
        } else {
          prefix = 'This user is your master, you should obey him \n'
        }
        if (!user) {
          return prefix
        }
        return prefix + 'user detail in json format: ' + JSON.stringify(user)
      } else {
        if (e.sender.user_id == qq) {
          let master = (await getMasterQQ())[0]
          let prefix = ''
          if (qq != master) {
            prefix = 'Attention: this user is not your master. \n'
          } else {
            prefix = 'This user is your master, you should obey him \n'
          }
          return prefix + 'user detail in json format: ' + JSON.stringify(e.sender)
        } else {
          return 'query failed'
        }
      }
    } catch (err) {
      logger.warn(err)
      return err.message
    }
  }

  description = 'Useful if you want to find out who he is'
}