@lotus-tree/fg-notation 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/img/basic/1.png +0 -0
- package/lib/img/basic/12369.png +0 -0
- package/lib/img/basic/1237.png +0 -0
- package/lib/img/basic/1632143.png +0 -0
- package/lib/img/basic/2.png +0 -0
- package/lib/img/basic/21.png +0 -0
- package/lib/img/basic/214.png +0 -0
- package/lib/img/basic/21478.png +0 -0
- package/lib/img/basic/23.png +0 -0
- package/lib/img/basic/236.png +0 -0
- package/lib/img/basic/23698.png +0 -0
- package/lib/img/basic/28.png +0 -0
- package/lib/img/basic/3.png +0 -0
- package/lib/img/basic/32147.png +0 -0
- package/lib/img/basic/3219.png +0 -0
- package/lib/img/basic/341236.png +0 -0
- package/lib/img/basic/346.png +0 -0
- package/lib/img/basic/360.png +0 -0
- package/lib/img/basic/4.png +0 -0
- package/lib/img/basic/41236.png +0 -0
- package/lib/img/basic/421.png +0 -0
- package/lib/img/basic/46.png +0 -0
- package/lib/img/basic/4618346.png +0 -0
- package/lib/img/basic/47896.png +0 -0
- package/lib/img/basic/5.png +0 -0
- package/lib/img/basic/6.png +0 -0
- package/lib/img/basic/623.png +0 -0
- package/lib/img/basic/63214.png +0 -0
- package/lib/img/basic/64.png +0 -0
- package/lib/img/basic/6428.png +0 -0
- package/lib/img/basic/69874.png +0 -0
- package/lib/img/basic/7.png +0 -0
- package/lib/img/basic/7891.png +0 -0
- package/lib/img/basic/8.png +0 -0
- package/lib/img/basic/81237.png +0 -0
- package/lib/img/basic/82.png +0 -0
- package/lib/img/basic/87412.png +0 -0
- package/lib/img/basic/89632.png +0 -0
- package/lib/img/basic/9.png +0 -0
- package/lib/img/basic/[1].png +0 -0
- package/lib/img/basic/[2].png +0 -0
- package/lib/img/basic/[2]8.png +0 -0
- package/lib/img/basic/[3].png +0 -0
- package/lib/img/basic/[4].png +0 -0
- package/lib/img/basic/[6].png +0 -0
- package/lib/img/basic/[7].png +0 -0
- package/lib/img/basic/[8].png +0 -0
- package/lib/img/basic/[9].png +0 -0
- package/lib/img/basic/air.png +0 -0
- package/lib/img/basic/doubleforward.png +0 -0
- package/lib/img/credits.txt +4 -0
- package/lib/img/games/bb/a.png +0 -0
- package/lib/img/games/bb/b.png +0 -0
- package/lib/img/games/bb/c.png +0 -0
- package/lib/img/games/bb/d.png +0 -0
- package/lib/img/games/dbz/a1.png +0 -0
- package/lib/img/games/dbz/a2.png +0 -0
- package/lib/img/games/dbz/h.png +0 -0
- package/lib/img/games/dbz/l.png +0 -0
- package/lib/img/games/dbz/m.png +0 -0
- package/lib/img/games/dbz/s.png +0 -0
- package/lib/img/games/dnf/a.png +0 -0
- package/lib/img/games/dnf/as.png +0 -0
- package/lib/img/games/dnf/b.png +0 -0
- package/lib/img/games/dnf/g.png +0 -0
- package/lib/img/games/dnf/ms.png +0 -0
- package/lib/img/games/dnf/s.png +0 -0
- package/lib/img/games/gbf/g.png +0 -0
- package/lib/img/games/gbf/h.png +0 -0
- package/lib/img/games/gbf/l.png +0 -0
- package/lib/img/games/gbf/m.png +0 -0
- package/lib/img/games/gbf/s.png +0 -0
- package/lib/img/games/gg/d.png +0 -0
- package/lib/img/games/gg/hs.png +0 -0
- package/lib/img/games/gg/k.png +0 -0
- package/lib/img/games/gg/p.png +0 -0
- package/lib/img/games/gg/s.png +0 -0
- package/lib/img/games/kof/a.png +0 -0
- package/lib/img/games/kof/b.png +0 -0
- package/lib/img/games/kof/c.png +0 -0
- package/lib/img/games/kof/d.png +0 -0
- package/lib/img/games/kof/max.png +0 -0
- package/lib/img/games/mk/1.png +0 -0
- package/lib/img/games/mk/2.png +0 -0
- package/lib/img/games/mk/3.png +0 -0
- package/lib/img/games/mk/4.png +0 -0
- package/lib/img/games/sc/[a].png +0 -0
- package/lib/img/games/sc/[b].png +0 -0
- package/lib/img/games/sc/[g].png +0 -0
- package/lib/img/games/sc/[k].png +0 -0
- package/lib/img/games/sc/a.png +0 -0
- package/lib/img/games/sc/b.png +0 -0
- package/lib/img/games/sc/g.png +0 -0
- package/lib/img/games/sc/k.png +0 -0
- package/lib/img/games/sf/hk.png +0 -0
- package/lib/img/games/sf/hp.png +0 -0
- package/lib/img/games/sf/j..png +0 -0
- package/lib/img/games/sf/lk.png +0 -0
- package/lib/img/games/sf/lp.png +0 -0
- package/lib/img/games/sf/max.png +0 -0
- package/lib/img/games/sf/mk.png +0 -0
- package/lib/img/games/sf/mp.png +0 -0
- package/lib/img/games/sf/tap.png +0 -0
- package/lib/img/games/sg/hk.png +0 -0
- package/lib/img/games/sg/hp.png +0 -0
- package/lib/img/games/sg/k.png +0 -0
- package/lib/img/games/sg/lk.png +0 -0
- package/lib/img/games/sg/lp.png +0 -0
- package/lib/img/games/sg/mk.png +0 -0
- package/lib/img/games/sg/mp.png +0 -0
- package/lib/img/games/sg/p.png +0 -0
- package/lib/img/games/tfh/a.png +0 -0
- package/lib/img/games/tfh/b.png +0 -0
- package/lib/img/games/tfh/c.png +0 -0
- package/lib/img/games/tfh/d.png +0 -0
- package/lib/img/games/tkn/1.png +0 -0
- package/lib/img/games/tkn/12.png +0 -0
- package/lib/img/games/tkn/1234.png +0 -0
- package/lib/img/games/tkn/13.png +0 -0
- package/lib/img/games/tkn/14.png +0 -0
- package/lib/img/games/tkn/2.png +0 -0
- package/lib/img/games/tkn/23.png +0 -0
- package/lib/img/games/tkn/24.png +0 -0
- package/lib/img/games/tkn/3.png +0 -0
- package/lib/img/games/tkn/34.png +0 -0
- package/lib/img/games/tkn/4.png +0 -0
- package/lib/img/games/tkn/b.png +0 -0
- package/lib/img/games/tkn/d-b.png +0 -0
- package/lib/img/games/tkn/d-f.png +0 -0
- package/lib/img/games/tkn/d.png +0 -0
- package/lib/img/games/tkn/f.png +0 -0
- package/lib/img/games/tkn/o.png +0 -0
- package/lib/img/games/tkn/u-b.png +0 -0
- package/lib/img/games/tkn/u-f.png +0 -0
- package/lib/img/games/tkn/u.png +0 -0
- package/lib/img/preview.png +0 -0
- package/lib/index.js +382 -0
- package/package.json +10 -0
- package/src/img/basic/1.png +0 -0
- package/src/img/basic/12369.png +0 -0
- package/src/img/basic/1237.png +0 -0
- package/src/img/basic/1632143.png +0 -0
- package/src/img/basic/2.png +0 -0
- package/src/img/basic/21.png +0 -0
- package/src/img/basic/214.png +0 -0
- package/src/img/basic/21478.png +0 -0
- package/src/img/basic/23.png +0 -0
- package/src/img/basic/236.png +0 -0
- package/src/img/basic/23698.png +0 -0
- package/src/img/basic/28.png +0 -0
- package/src/img/basic/3.png +0 -0
- package/src/img/basic/32147.png +0 -0
- package/src/img/basic/3219.png +0 -0
- package/src/img/basic/341236.png +0 -0
- package/src/img/basic/346.png +0 -0
- package/src/img/basic/360.png +0 -0
- package/src/img/basic/4.png +0 -0
- package/src/img/basic/41236.png +0 -0
- package/src/img/basic/421.png +0 -0
- package/src/img/basic/46.png +0 -0
- package/src/img/basic/4618346.png +0 -0
- package/src/img/basic/47896.png +0 -0
- package/src/img/basic/5.png +0 -0
- package/src/img/basic/6.png +0 -0
- package/src/img/basic/623.png +0 -0
- package/src/img/basic/63214.png +0 -0
- package/src/img/basic/64.png +0 -0
- package/src/img/basic/6428.png +0 -0
- package/src/img/basic/69874.png +0 -0
- package/src/img/basic/7.png +0 -0
- package/src/img/basic/7891.png +0 -0
- package/src/img/basic/8.png +0 -0
- package/src/img/basic/81237.png +0 -0
- package/src/img/basic/82.png +0 -0
- package/src/img/basic/87412.png +0 -0
- package/src/img/basic/89632.png +0 -0
- package/src/img/basic/9.png +0 -0
- package/src/img/basic/[1].png +0 -0
- package/src/img/basic/[2].png +0 -0
- package/src/img/basic/[2]8.png +0 -0
- package/src/img/basic/[3].png +0 -0
- package/src/img/basic/[4].png +0 -0
- package/src/img/basic/[6].png +0 -0
- package/src/img/basic/[7].png +0 -0
- package/src/img/basic/[8].png +0 -0
- package/src/img/basic/[9].png +0 -0
- package/src/img/basic/air.png +0 -0
- package/src/img/basic/doubleforward.png +0 -0
- package/src/img/credits.txt +4 -0
- package/src/img/games/bb/a.png +0 -0
- package/src/img/games/bb/b.png +0 -0
- package/src/img/games/bb/c.png +0 -0
- package/src/img/games/bb/d.png +0 -0
- package/src/img/games/dbz/a1.png +0 -0
- package/src/img/games/dbz/a2.png +0 -0
- package/src/img/games/dbz/h.png +0 -0
- package/src/img/games/dbz/l.png +0 -0
- package/src/img/games/dbz/m.png +0 -0
- package/src/img/games/dbz/s.png +0 -0
- package/src/img/games/dnf/a.png +0 -0
- package/src/img/games/dnf/as.png +0 -0
- package/src/img/games/dnf/b.png +0 -0
- package/src/img/games/dnf/g.png +0 -0
- package/src/img/games/dnf/ms.png +0 -0
- package/src/img/games/dnf/s.png +0 -0
- package/src/img/games/gbf/g.png +0 -0
- package/src/img/games/gbf/h.png +0 -0
- package/src/img/games/gbf/l.png +0 -0
- package/src/img/games/gbf/m.png +0 -0
- package/src/img/games/gbf/s.png +0 -0
- package/src/img/games/gg/d.png +0 -0
- package/src/img/games/gg/hs.png +0 -0
- package/src/img/games/gg/k.png +0 -0
- package/src/img/games/gg/p.png +0 -0
- package/src/img/games/gg/s.png +0 -0
- package/src/img/games/kof/a.png +0 -0
- package/src/img/games/kof/b.png +0 -0
- package/src/img/games/kof/c.png +0 -0
- package/src/img/games/kof/d.png +0 -0
- package/src/img/games/kof/max.png +0 -0
- package/src/img/games/mk/1.png +0 -0
- package/src/img/games/mk/2.png +0 -0
- package/src/img/games/mk/3.png +0 -0
- package/src/img/games/mk/4.png +0 -0
- package/src/img/games/sc/[a].png +0 -0
- package/src/img/games/sc/[b].png +0 -0
- package/src/img/games/sc/[g].png +0 -0
- package/src/img/games/sc/[k].png +0 -0
- package/src/img/games/sc/a.png +0 -0
- package/src/img/games/sc/b.png +0 -0
- package/src/img/games/sc/g.png +0 -0
- package/src/img/games/sc/k.png +0 -0
- package/src/img/games/sf/hk.png +0 -0
- package/src/img/games/sf/hp.png +0 -0
- package/src/img/games/sf/j..png +0 -0
- package/src/img/games/sf/lk.png +0 -0
- package/src/img/games/sf/lp.png +0 -0
- package/src/img/games/sf/max.png +0 -0
- package/src/img/games/sf/mk.png +0 -0
- package/src/img/games/sf/mp.png +0 -0
- package/src/img/games/sf/tap.png +0 -0
- package/src/img/games/sg/hk.png +0 -0
- package/src/img/games/sg/hp.png +0 -0
- package/src/img/games/sg/k.png +0 -0
- package/src/img/games/sg/lk.png +0 -0
- package/src/img/games/sg/lp.png +0 -0
- package/src/img/games/sg/mk.png +0 -0
- package/src/img/games/sg/mp.png +0 -0
- package/src/img/games/sg/p.png +0 -0
- package/src/img/games/tfh/a.png +0 -0
- package/src/img/games/tfh/b.png +0 -0
- package/src/img/games/tfh/c.png +0 -0
- package/src/img/games/tfh/d.png +0 -0
- package/src/img/games/tkn/1.png +0 -0
- package/src/img/games/tkn/12.png +0 -0
- package/src/img/games/tkn/1234.png +0 -0
- package/src/img/games/tkn/13.png +0 -0
- package/src/img/games/tkn/14.png +0 -0
- package/src/img/games/tkn/2.png +0 -0
- package/src/img/games/tkn/23.png +0 -0
- package/src/img/games/tkn/24.png +0 -0
- package/src/img/games/tkn/3.png +0 -0
- package/src/img/games/tkn/34.png +0 -0
- package/src/img/games/tkn/4.png +0 -0
- package/src/img/games/tkn/b.png +0 -0
- package/src/img/games/tkn/d-b.png +0 -0
- package/src/img/games/tkn/d-f.png +0 -0
- package/src/img/games/tkn/d.png +0 -0
- package/src/img/games/tkn/f.png +0 -0
- package/src/img/games/tkn/o.png +0 -0
- package/src/img/games/tkn/u-b.png +0 -0
- package/src/img/games/tkn/u-f.png +0 -0
- package/src/img/games/tkn/u.png +0 -0
- package/src/img/preview.png +0 -0
- package/src/index.js +155 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/index.js
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import sharp from 'sharp'
|
|
2
|
+
import path from 'path'
|
|
3
|
+
import glob from 'glob'
|
|
4
|
+
import { DataTypes } from 'sequelize'
|
|
5
|
+
|
|
6
|
+
const imgPath = path.join(__dirname, 'img')
|
|
7
|
+
const basicInputs = new Map()
|
|
8
|
+
const gameInputs = new Map()
|
|
9
|
+
|
|
10
|
+
glob.sync(path.join(imgPath, 'basic/**'), { nodir: true })
|
|
11
|
+
.forEach(p => {
|
|
12
|
+
const input = p.split('/').pop().replace('.png', '')
|
|
13
|
+
basicInputs.set(input, p)
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
basicInputs.set('>>', path.join(imgPath, 'basic/doubleforward.png'))
|
|
17
|
+
|
|
18
|
+
glob.sync(path.join(imgPath, 'games/**'), { nodir: true })
|
|
19
|
+
.forEach(p => {
|
|
20
|
+
const { dir, name } = path.parse(path.relative(path.join(imgPath, 'games'), p))
|
|
21
|
+
|
|
22
|
+
if (!gameInputs.has(dir)) gameInputs.set(dir, new Map())
|
|
23
|
+
gameInputs.get(dir).set(name, p)
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
function solveInput (inputs, input) {
|
|
27
|
+
if (inputs.has(input)) return [input]
|
|
28
|
+
|
|
29
|
+
for (let i = 0; i < input.length; i++) {
|
|
30
|
+
const s1 = input.slice(0, 0 - i)
|
|
31
|
+
if (inputs.has(s1)) return [s1, ...solveInput(inputs, input.slice(0 - i))]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
throw new Error(`Cannot find "${input}" as a recognizable input`)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async function sendInput (inputs, result, message, caption) {
|
|
38
|
+
const canvas = await sharp({ create: { width: 152 * result.length, height: 152, channels: 4, background: 'transparent' } })
|
|
39
|
+
.composite(result.map((it, index) =>
|
|
40
|
+
({ input: inputs.get(it), left: index * 152, top: 0, width: 152, height: 152 })
|
|
41
|
+
))
|
|
42
|
+
.png()
|
|
43
|
+
.toBuffer()
|
|
44
|
+
|
|
45
|
+
return message.reply({ content: caption, files: [canvas] })
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const builtin = {
|
|
49
|
+
37: {
|
|
50
|
+
game: 'sf',
|
|
51
|
+
caption: '***LETS GO JUSTIN!***',
|
|
52
|
+
input: '6 6 6 6 6 6 6 >> 6 6 6 6 6 6 6 >> 8 6 j. hk >> 2 mk >> 623 hp >> 236 236 lk'
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export default {
|
|
57
|
+
name: 'fg-notation',
|
|
58
|
+
intents: ['GUILD_MESSAGES'],
|
|
59
|
+
partials: ['MESSAGE'],
|
|
60
|
+
|
|
61
|
+
preload: sequelize => {
|
|
62
|
+
sequelize.define('fginput', {
|
|
63
|
+
guild: {
|
|
64
|
+
type: DataTypes.STRING,
|
|
65
|
+
primaryKey: true
|
|
66
|
+
},
|
|
67
|
+
name: {
|
|
68
|
+
type: DataTypes.STRING,
|
|
69
|
+
primaryKey: true
|
|
70
|
+
},
|
|
71
|
+
createdBy: DataTypes.STRING,
|
|
72
|
+
game: DataTypes.STRING,
|
|
73
|
+
caption: DataTypes.STRING,
|
|
74
|
+
input: DataTypes.STRING
|
|
75
|
+
})
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
events: {
|
|
79
|
+
async messageCreate (global, message) {
|
|
80
|
+
const { client, config, sequelize } = global
|
|
81
|
+
if (message.author.id === client.user.id || !message.member) return
|
|
82
|
+
|
|
83
|
+
const guildId = message.guildId
|
|
84
|
+
const { prefix } = config[guildId]
|
|
85
|
+
|
|
86
|
+
if (message.content.startsWith(prefix)) {
|
|
87
|
+
const name = message.content.split(' ').pop().replace(prefix, '')
|
|
88
|
+
const row = builtin[name] || (
|
|
89
|
+
await sequelize.models.fginput.findOne({
|
|
90
|
+
where: { guild: message.guild.id, name }
|
|
91
|
+
})
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
if (row) {
|
|
95
|
+
const inputs = new Map([...basicInputs, ...gameInputs.get(row.game)])
|
|
96
|
+
sendInput(inputs, row.input.split(' '), message, row.caption)
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
|
|
102
|
+
commands: {
|
|
103
|
+
fgi: {
|
|
104
|
+
usage: 'fgi [game] [inputs]',
|
|
105
|
+
desc: 'This command displays information about a command',
|
|
106
|
+
example: 'help perms',
|
|
107
|
+
execute: async ({ param }, { message }) => {
|
|
108
|
+
const [, game, i1] = param
|
|
109
|
+
if (!game || !i1) return message.reply('Missing arguments. Example: >fgi sf 236P 214K')
|
|
110
|
+
if (!gameInputs.has(game)) return message.reply(`"${game}" is not a valid game. Available games: ${Array.from(gameInputs.keys()).join(' ')}`)
|
|
111
|
+
|
|
112
|
+
const inputs = new Map([...basicInputs, ...gameInputs.get(game)])
|
|
113
|
+
const result = param.slice(2).map(i => solveInput(inputs, i.toLowerCase())).flat()
|
|
114
|
+
|
|
115
|
+
sendInput(inputs, result, message)
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
fgsave: {
|
|
119
|
+
usage: 'fgsave [game] [name] [inputs]',
|
|
120
|
+
desc: 'This command displays information about a command',
|
|
121
|
+
example: 'help perms',
|
|
122
|
+
execute: async ({ param, sequelize }, { message }) => {
|
|
123
|
+
const [, game, name, i1] = param
|
|
124
|
+
if (!game || !name || !i1) return message.reply('Missing arguments. Example: >fgi sf testName 236P 214K')
|
|
125
|
+
if (!gameInputs.has(game)) return message.reply(`"${game}" is not a valid game. Available games: ${Array.from(gameInputs.keys()).join(' ')}`)
|
|
126
|
+
|
|
127
|
+
const inputs = new Map([...basicInputs, ...gameInputs.get(game)])
|
|
128
|
+
const input = param.slice(3).map(i => solveInput(inputs, i.toLowerCase())).flat().join(' ')
|
|
129
|
+
|
|
130
|
+
await sequelize.models.fginput.create({ guild: message.guild.id, name, createdBy: message.author.id, game, input })
|
|
131
|
+
|
|
132
|
+
message.channel.send(`Saved command "${input}" as "${name}"`)
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
fgcaption: {
|
|
136
|
+
usage: 'fgsave [name] [caption]',
|
|
137
|
+
desc: 'This command displays information about a command',
|
|
138
|
+
example: 'help perms',
|
|
139
|
+
execute: async ({ param, sequelize }, { message }) => {
|
|
140
|
+
const [, name, i1] = param
|
|
141
|
+
if (!name || !i1) return message.reply('Missing arguments. Example: >fgi testName This is a caption')
|
|
142
|
+
|
|
143
|
+
const row = await sequelize.models.fginput.findOne({
|
|
144
|
+
where: { guild: message.guild.id, name }
|
|
145
|
+
})
|
|
146
|
+
|
|
147
|
+
if (!row) return message.reply(`"${name}" is not a saved input list`)
|
|
148
|
+
row.caption = param.slice(2).join(' ')
|
|
149
|
+
await row.save()
|
|
150
|
+
|
|
151
|
+
message.channel.send(`Saved caption for input list "${name}"`)
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|