@lotus-tree/fg-notation 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +80 -68
- package/babel.config.js +6 -6
- package/lib/img/credits.txt +3 -3
- package/lib/img/grabs/omegarugal.json +5 -0
- package/lib/img/grabs/omegarugal.png +0 -0
- package/lib/img/grabs/ralph.json +5 -0
- package/lib/img/grabs/ralph.png +0 -0
- package/lib/index.js +202 -19
- package/lib/info.json +32 -32
- package/package.json +28 -27
- package/src/img/credits.txt +3 -3
- package/src/img/grabs/omegarugal.json +5 -0
- package/src/img/grabs/omegarugal.png +0 -0
- package/src/img/grabs/ralph.json +5 -0
- package/src/img/grabs/ralph.png +0 -0
- package/src/index.js +302 -249
- package/src/info.json +32 -32
- package/dev/img/basic/+.png +0 -0
- package/dev/img/basic/1.png +0 -0
- package/dev/img/basic/12369.png +0 -0
- package/dev/img/basic/1237.png +0 -0
- package/dev/img/basic/1632143.png +0 -0
- package/dev/img/basic/2.png +0 -0
- package/dev/img/basic/21.png +0 -0
- package/dev/img/basic/214.png +0 -0
- package/dev/img/basic/21478.png +0 -0
- package/dev/img/basic/23.png +0 -0
- package/dev/img/basic/236.png +0 -0
- package/dev/img/basic/23698.png +0 -0
- package/dev/img/basic/28.png +0 -0
- package/dev/img/basic/3.png +0 -0
- package/dev/img/basic/32147.png +0 -0
- package/dev/img/basic/3219.png +0 -0
- package/dev/img/basic/341236.png +0 -0
- package/dev/img/basic/346.png +0 -0
- package/dev/img/basic/360.png +0 -0
- package/dev/img/basic/4.png +0 -0
- package/dev/img/basic/41236.png +0 -0
- package/dev/img/basic/421.png +0 -0
- package/dev/img/basic/46.png +0 -0
- package/dev/img/basic/4618346.png +0 -0
- package/dev/img/basic/47896.png +0 -0
- package/dev/img/basic/5.png +0 -0
- package/dev/img/basic/6.png +0 -0
- package/dev/img/basic/623.png +0 -0
- package/dev/img/basic/63214.png +0 -0
- package/dev/img/basic/64.png +0 -0
- package/dev/img/basic/6428.png +0 -0
- package/dev/img/basic/69874.png +0 -0
- package/dev/img/basic/7.png +0 -0
- package/dev/img/basic/7891.png +0 -0
- package/dev/img/basic/8.png +0 -0
- package/dev/img/basic/81237.png +0 -0
- package/dev/img/basic/82.png +0 -0
- package/dev/img/basic/87412.png +0 -0
- package/dev/img/basic/89632.png +0 -0
- package/dev/img/basic/9.png +0 -0
- package/dev/img/basic/[1].png +0 -0
- package/dev/img/basic/[2].png +0 -0
- package/dev/img/basic/[2]8.png +0 -0
- package/dev/img/basic/[3].png +0 -0
- package/dev/img/basic/[4].png +0 -0
- package/dev/img/basic/[6].png +0 -0
- package/dev/img/basic/[7].png +0 -0
- package/dev/img/basic/[8].png +0 -0
- package/dev/img/basic/[9].png +0 -0
- package/dev/img/basic/air.png +0 -0
- package/dev/img/basic/doubleforward.png +0 -0
- package/dev/img/credits.txt +0 -4
- package/dev/img/games/bb/a.png +0 -0
- package/dev/img/games/bb/b.png +0 -0
- package/dev/img/games/bb/c.png +0 -0
- package/dev/img/games/bb/d.png +0 -0
- package/dev/img/games/bbtag/a.png +0 -0
- package/dev/img/games/bbtag/b.png +0 -0
- package/dev/img/games/bbtag/c.png +0 -0
- package/dev/img/games/bbtag/d.png +0 -0
- package/dev/img/games/bbtag/p.png +0 -0
- package/dev/img/games/dbz/a1.png +0 -0
- package/dev/img/games/dbz/a2.png +0 -0
- package/dev/img/games/dbz/h.png +0 -0
- package/dev/img/games/dbz/l.png +0 -0
- package/dev/img/games/dbz/m.png +0 -0
- package/dev/img/games/dbz/s.png +0 -0
- package/dev/img/games/dnf/a.png +0 -0
- package/dev/img/games/dnf/as.png +0 -0
- package/dev/img/games/dnf/b.png +0 -0
- package/dev/img/games/dnf/g.png +0 -0
- package/dev/img/games/dnf/ms.png +0 -0
- package/dev/img/games/dnf/s.png +0 -0
- package/dev/img/games/gbf/g.png +0 -0
- package/dev/img/games/gbf/h.png +0 -0
- package/dev/img/games/gbf/l.png +0 -0
- package/dev/img/games/gbf/m.png +0 -0
- package/dev/img/games/gbf/s.png +0 -0
- package/dev/img/games/gg/d.png +0 -0
- package/dev/img/games/gg/hs.png +0 -0
- package/dev/img/games/gg/k.png +0 -0
- package/dev/img/games/gg/p.png +0 -0
- package/dev/img/games/gg/rc.png +0 -0
- package/dev/img/games/gg/s.png +0 -0
- package/dev/img/games/kof/a.png +0 -0
- package/dev/img/games/kof/b.png +0 -0
- package/dev/img/games/kof/c.png +0 -0
- package/dev/img/games/kof/d.png +0 -0
- package/dev/img/games/kof/max.png +0 -0
- package/dev/img/games/mk/1.png +0 -0
- package/dev/img/games/mk/2.png +0 -0
- package/dev/img/games/mk/3.png +0 -0
- package/dev/img/games/mk/4.png +0 -0
- package/dev/img/games/sc/[a].png +0 -0
- package/dev/img/games/sc/[b].png +0 -0
- package/dev/img/games/sc/[g].png +0 -0
- package/dev/img/games/sc/[k].png +0 -0
- package/dev/img/games/sc/a.png +0 -0
- package/dev/img/games/sc/b.png +0 -0
- package/dev/img/games/sc/g.png +0 -0
- package/dev/img/games/sc/k.png +0 -0
- package/dev/img/games/sf/hk.png +0 -0
- package/dev/img/games/sf/hp.png +0 -0
- package/dev/img/games/sf/j..png +0 -0
- package/dev/img/games/sf/lk.png +0 -0
- package/dev/img/games/sf/lp.png +0 -0
- package/dev/img/games/sf/max.png +0 -0
- package/dev/img/games/sf/mk.png +0 -0
- package/dev/img/games/sf/mp.png +0 -0
- package/dev/img/games/sf/tap.png +0 -0
- package/dev/img/games/sg/hk.png +0 -0
- package/dev/img/games/sg/hp.png +0 -0
- package/dev/img/games/sg/k.png +0 -0
- package/dev/img/games/sg/lk.png +0 -0
- package/dev/img/games/sg/lp.png +0 -0
- package/dev/img/games/sg/mk.png +0 -0
- package/dev/img/games/sg/mp.png +0 -0
- package/dev/img/games/sg/p.png +0 -0
- package/dev/img/games/tfh/a.png +0 -0
- package/dev/img/games/tfh/b.png +0 -0
- package/dev/img/games/tfh/c.png +0 -0
- package/dev/img/games/tfh/d.png +0 -0
- package/dev/img/games/tkn/1.png +0 -0
- package/dev/img/games/tkn/12.png +0 -0
- package/dev/img/games/tkn/1234.png +0 -0
- package/dev/img/games/tkn/13.png +0 -0
- package/dev/img/games/tkn/14.png +0 -0
- package/dev/img/games/tkn/2.png +0 -0
- package/dev/img/games/tkn/23.png +0 -0
- package/dev/img/games/tkn/24.png +0 -0
- package/dev/img/games/tkn/3.png +0 -0
- package/dev/img/games/tkn/34.png +0 -0
- package/dev/img/games/tkn/4.png +0 -0
- package/dev/img/games/tkn/b.png +0 -0
- package/dev/img/games/tkn/d-b.png +0 -0
- package/dev/img/games/tkn/d-f.png +0 -0
- package/dev/img/games/tkn/d.png +0 -0
- package/dev/img/games/tkn/f.png +0 -0
- package/dev/img/games/tkn/o.png +0 -0
- package/dev/img/games/tkn/u-b.png +0 -0
- package/dev/img/games/tkn/u-f.png +0 -0
- package/dev/img/games/tkn/u.png +0 -0
- package/dev/img/preview.png +0 -0
- package/dev/index.js +0 -563
- package/dev/info.json +0 -33
package/README.md
CHANGED
@@ -1,68 +1,80 @@
|
|
1
|
-
# Lotus Tree - FG Notation
|
2
|
-
|
3
|
-
Discord bot that converts fighting game inputs into easy to read images.
|
4
|
-
|
5
|
-
## Commands
|
6
|
-
\>help: Lists all available commands
|
7
|
-
|
8
|
-
\>help command: Shows description and usage of an specific command
|
9
|
-
|
10
|
-
\>fgi: Converts fighting game inputs into an image
|
11
|
-
|
12
|
-
\>fgsave: Saves a series inputs as a reusable command
|
13
|
-
|
14
|
-
\>fgcaption: Saves a series inputs as a reusable command
|
15
|
-
|
16
|
-
\>fgglossary: Searches for a term on [Infil's Fighting Game Glossary](https://glossary.infil.net)
|
17
|
-
|
18
|
-
## Examples
|
19
|
-
https://user-images.githubusercontent.com/19596334/149458438-775d2da6-0573-46f3-b7dd-0030adaad124.mp4
|
20
|
-
|
21
|
-
https://user-images.githubusercontent.com/19596334/149458504-baf906a3-87da-4d92-9b56-e0de5fd858c1.mp4
|
22
|
-
|
23
|
-
https://user-images.githubusercontent.com/19596334/149458508-1dcf89fb-a83e-44bb-a6a0-9549771c6082.mp4
|
24
|
-
|
25
|
-
## Available games
|
26
|
-
| Game | Name |
|
27
|
-
|----------------------------|-------|
|
28
|
-
| Blazblue | bb |
|
29
|
-
| Blazblue: Cross Tag Battle | bbtag |
|
30
|
-
| Dragonball Fighterz | dbz |
|
31
|
-
| DNF Duel | dnf |
|
32
|
-
| Granblue Versus | gbf |
|
33
|
-
| Guilty Gear | gg |
|
34
|
-
| King of Fighters | kof |
|
35
|
-
| Mortal Kombat | mk |
|
36
|
-
| Soul Calibur | sc |
|
37
|
-
| Street Fighter | sf |
|
38
|
-
| Skullgirlz | sg |
|
39
|
-
| Them Fighting Herds | tfh |
|
40
|
-
| Tekken | tkn |
|
41
|
-
|
42
|
-
## Add to your server
|
43
|
-
Use [this link](https://discord.com/oauth2/authorize?client_id=928539052834177024&scope=bot&permissions=34816) to add this bot to your Discord server
|
44
|
-
|
45
|
-
## Self-host (with Lotus-Tree)
|
46
|
-
Follow instructions on how to add to a Louts-Tree bot on [this link](https://github.com/jorgev259/Lotus-Tree)
|
47
|
-
|
48
|
-
## Credits
|
49
|
-
|
50
|
-
[Infil's Fighting Game Glossary](https://glossary.infil.net)
|
51
|
-
|
52
|
-
[MagicianStuff's Fighthing Game notations emotes](https://twitter.com/MagicianStuff/status/1477931054484893697)
|
53
|
-
|
54
|
-
[Bot profile picture](https://www.youtube.com/watch?v=8TdNX75oiRk)
|
55
|
-
|
56
|
-
## Changelog
|
57
|
-
|
58
|
-
### 1.
|
59
|
-
|
60
|
-
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
-
|
67
|
-
-
|
68
|
-
- Drifted tonight
|
1
|
+
# Lotus Tree - FG Notation
|
2
|
+
|
3
|
+
Discord bot that converts fighting game inputs into easy to read images.
|
4
|
+
|
5
|
+
## Commands
|
6
|
+
\>help: Lists all available commands
|
7
|
+
|
8
|
+
\>help command: Shows description and usage of an specific command
|
9
|
+
|
10
|
+
\>fgi: Converts fighting game inputs into an image
|
11
|
+
|
12
|
+
\>fgsave: Saves a series inputs as a reusable command
|
13
|
+
|
14
|
+
\>fgcaption: Saves a series inputs as a reusable command
|
15
|
+
|
16
|
+
\>fgglossary: Searches for a term on [Infil's Fighting Game Glossary](https://glossary.infil.net)
|
17
|
+
|
18
|
+
## Examples
|
19
|
+
https://user-images.githubusercontent.com/19596334/149458438-775d2da6-0573-46f3-b7dd-0030adaad124.mp4
|
20
|
+
|
21
|
+
https://user-images.githubusercontent.com/19596334/149458504-baf906a3-87da-4d92-9b56-e0de5fd858c1.mp4
|
22
|
+
|
23
|
+
https://user-images.githubusercontent.com/19596334/149458508-1dcf89fb-a83e-44bb-a6a0-9549771c6082.mp4
|
24
|
+
|
25
|
+
## Available games
|
26
|
+
| Game | Name |
|
27
|
+
|----------------------------|-------|
|
28
|
+
| Blazblue | bb |
|
29
|
+
| Blazblue: Cross Tag Battle | bbtag |
|
30
|
+
| Dragonball Fighterz | dbz |
|
31
|
+
| DNF Duel | dnf |
|
32
|
+
| Granblue Versus | gbf |
|
33
|
+
| Guilty Gear | gg |
|
34
|
+
| King of Fighters | kof |
|
35
|
+
| Mortal Kombat | mk |
|
36
|
+
| Soul Calibur | sc |
|
37
|
+
| Street Fighter | sf |
|
38
|
+
| Skullgirlz | sg |
|
39
|
+
| Them Fighting Herds | tfh |
|
40
|
+
| Tekken | tkn |
|
41
|
+
|
42
|
+
## Add to your server
|
43
|
+
Use [this link](https://discord.com/oauth2/authorize?client_id=928539052834177024&scope=bot&permissions=34816) to add this bot to your Discord server
|
44
|
+
|
45
|
+
## Self-host (with Lotus-Tree)
|
46
|
+
Follow instructions on how to add to a Louts-Tree bot on [this link](https://github.com/jorgev259/Lotus-Tree)
|
47
|
+
|
48
|
+
## Credits
|
49
|
+
|
50
|
+
[Infil's Fighting Game Glossary](https://glossary.infil.net)
|
51
|
+
|
52
|
+
[MagicianStuff's Fighthing Game notations emotes](https://twitter.com/MagicianStuff/status/1477931054484893697)
|
53
|
+
|
54
|
+
[Bot profile picture](https://www.youtube.com/watch?v=8TdNX75oiRk)
|
55
|
+
|
56
|
+
## Changelog
|
57
|
+
|
58
|
+
### 1.3.0
|
59
|
+
- Implemented "grab" command
|
60
|
+
- And the infinite one
|
61
|
+
|
62
|
+
### 1.2.0
|
63
|
+
|
64
|
+
- Limit image height
|
65
|
+
- Implement aliases
|
66
|
+
- Add "bbtag" game
|
67
|
+
- Add "+" as a basic input for all games
|
68
|
+
- Drifted tonight to a finite one
|
69
|
+
|
70
|
+
### 1.1.1
|
71
|
+
|
72
|
+
- Added "rc" as a valid input for Guilty Gear
|
73
|
+
- More descriptive message when "fgglossary" finds multiple matching terms
|
74
|
+
- Being a dark sea
|
75
|
+
|
76
|
+
### 1.1.0
|
77
|
+
|
78
|
+
- Added fgglossary command
|
79
|
+
- Fixed wrong default command
|
80
|
+
- Drifted tonight carried by the waves
|
package/babel.config.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
module.exports = {
|
2
|
-
presets: ['@babel/preset-env'],
|
3
|
-
plugins: [
|
4
|
-
['@babel/plugin-transform-runtime', { regenerator: true }]
|
5
|
-
]
|
6
|
-
}
|
1
|
+
module.exports = {
|
2
|
+
presets: ['@babel/preset-env'],
|
3
|
+
plugins: [
|
4
|
+
['@babel/plugin-transform-runtime', { regenerator: true }]
|
5
|
+
]
|
6
|
+
}
|
package/lib/img/credits.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
These emojis were made by Magic (@MagicianStuff / @MagicianSketch).
|
2
|
-
Using the Twemoji 13.1 open source emoji set.
|
3
|
-
|
1
|
+
These emojis were made by Magic (@MagicianStuff / @MagicianSketch).
|
2
|
+
Using the Twemoji 13.1 open source emoji set.
|
3
|
+
|
4
4
|
These are public domain and can be used without credit.
|
Binary file
|
Binary file
|
package/lib/index.js
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
4
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
6
|
+
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
6
8
|
value: true
|
7
9
|
});
|
@@ -9,6 +11,8 @@ exports["default"] = void 0;
|
|
9
11
|
|
10
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11
13
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15
|
+
|
12
16
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
13
17
|
|
14
18
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
@@ -25,8 +29,18 @@ var _sequelize = require("sequelize");
|
|
25
29
|
|
26
30
|
var _bent = _interopRequireDefault(require("bent"));
|
27
31
|
|
32
|
+
var _axios = _interopRequireDefault(require("axios"));
|
33
|
+
|
28
34
|
var _info = require("./info.json");
|
29
35
|
|
36
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
37
|
+
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
39
|
+
|
40
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
41
|
+
|
42
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
43
|
+
|
30
44
|
var getJSON = (0, _bent["default"])('json');
|
31
45
|
|
32
46
|
var imgPath = _path["default"].join(__dirname, 'img');
|
@@ -35,6 +49,9 @@ var basicInputs = new Map();
|
|
35
49
|
var gameInputs = new Map();
|
36
50
|
var glossary = {};
|
37
51
|
var terms = [];
|
52
|
+
|
53
|
+
var grabs = _glob["default"].sync(_path["default"].join(imgPath, 'grabs/**.png'));
|
54
|
+
|
38
55
|
getGlossary();
|
39
56
|
setInterval(getGlossary, 5 * 60 * 1000);
|
40
57
|
|
@@ -43,17 +60,17 @@ function getGlossary() {
|
|
43
60
|
}
|
44
61
|
|
45
62
|
function _getGlossary() {
|
46
|
-
_getGlossary = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
63
|
+
_getGlossary = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
47
64
|
var result, tempG, tempT;
|
48
|
-
return _regenerator["default"].wrap(function
|
65
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
49
66
|
while (1) {
|
50
|
-
switch (
|
67
|
+
switch (_context7.prev = _context7.next) {
|
51
68
|
case 0:
|
52
|
-
|
69
|
+
_context7.next = 2;
|
53
70
|
return getJSON('https://glossary.infil.net/json/glossary.json');
|
54
71
|
|
55
72
|
case 2:
|
56
|
-
result =
|
73
|
+
result = _context7.sent;
|
57
74
|
tempG = {};
|
58
75
|
tempT = [];
|
59
76
|
result.forEach(function (i) {
|
@@ -66,10 +83,10 @@ function _getGlossary() {
|
|
66
83
|
|
67
84
|
case 8:
|
68
85
|
case "end":
|
69
|
-
return
|
86
|
+
return _context7.stop();
|
70
87
|
}
|
71
88
|
}
|
72
|
-
},
|
89
|
+
}, _callee7);
|
73
90
|
}));
|
74
91
|
return _getGlossary.apply(this, arguments);
|
75
92
|
}
|
@@ -138,11 +155,11 @@ function sendInput(_x, _x2, _x3, _x4) {
|
|
138
155
|
}
|
139
156
|
|
140
157
|
function _sendInput() {
|
141
|
-
_sendInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
158
|
+
_sendInput = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee8(inputs, result, message, caption) {
|
142
159
|
var width, images, left, canvas;
|
143
|
-
return _regenerator["default"].wrap(function
|
160
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
144
161
|
while (1) {
|
145
|
-
switch (
|
162
|
+
switch (_context8.prev = _context8.next) {
|
146
163
|
case 0:
|
147
164
|
width = result.map(function (it) {
|
148
165
|
return _info.sizes[it] || 152;
|
@@ -168,37 +185,37 @@ function _sendInput() {
|
|
168
185
|
background: 'transparent'
|
169
186
|
}
|
170
187
|
}).png().composite(images);
|
171
|
-
|
188
|
+
_context8.next = 7;
|
172
189
|
return canvas.toBuffer();
|
173
190
|
|
174
191
|
case 7:
|
175
|
-
canvas =
|
192
|
+
canvas = _context8.sent;
|
176
193
|
|
177
194
|
if (!(result.length < 12)) {
|
178
|
-
|
195
|
+
_context8.next = 12;
|
179
196
|
break;
|
180
197
|
}
|
181
198
|
|
182
|
-
|
199
|
+
_context8.next = 11;
|
183
200
|
return (0, _sharp["default"])(canvas).resize({
|
184
201
|
height: 55
|
185
202
|
}).png().toBuffer();
|
186
203
|
|
187
204
|
case 11:
|
188
|
-
canvas =
|
205
|
+
canvas = _context8.sent;
|
189
206
|
|
190
207
|
case 12:
|
191
|
-
return
|
208
|
+
return _context8.abrupt("return", message.reply({
|
192
209
|
content: caption,
|
193
210
|
files: [canvas]
|
194
211
|
}));
|
195
212
|
|
196
213
|
case 13:
|
197
214
|
case "end":
|
198
|
-
return
|
215
|
+
return _context8.stop();
|
199
216
|
}
|
200
217
|
}
|
201
|
-
},
|
218
|
+
}, _callee8);
|
202
219
|
}));
|
203
220
|
return _sendInput.apply(this, arguments);
|
204
221
|
}
|
@@ -554,9 +571,175 @@ var _default = {
|
|
554
571
|
return _execute4.apply(this, arguments);
|
555
572
|
}
|
556
573
|
|
574
|
+
return execute;
|
575
|
+
}()
|
576
|
+
},
|
577
|
+
grab: {
|
578
|
+
usage: 'grab @user',
|
579
|
+
desc: 'Command grab someone',
|
580
|
+
example: 'grab @ChitoWarlock',
|
581
|
+
execute: function () {
|
582
|
+
var _execute5 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(_ref9, _ref10) {
|
583
|
+
var param, sequelize, message, mentions, user, mainPath, mainImage, options, avatarImage, mainMetadata, width, height, canvas;
|
584
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
585
|
+
while (1) {
|
586
|
+
switch (_context6.prev = _context6.next) {
|
587
|
+
case 0:
|
588
|
+
param = _ref9.param, sequelize = _ref9.sequelize;
|
589
|
+
message = _ref10.message;
|
590
|
+
mentions = message.mentions.users;
|
591
|
+
|
592
|
+
if (!(mentions.size === 0)) {
|
593
|
+
_context6.next = 5;
|
594
|
+
break;
|
595
|
+
}
|
596
|
+
|
597
|
+
return _context6.abrupt("return", message.reply('You forgot to mention who to grab'));
|
598
|
+
|
599
|
+
case 5:
|
600
|
+
if (!(mentions.size > 1)) {
|
601
|
+
_context6.next = 7;
|
602
|
+
break;
|
603
|
+
}
|
604
|
+
|
605
|
+
return _context6.abrupt("return", message.reply('Cannot grab multiple enemies!'));
|
606
|
+
|
607
|
+
case 7:
|
608
|
+
user = mentions.first();
|
609
|
+
mainPath = grabs[getRandomInt(0, grabs.length - 1)];
|
610
|
+
_context6.next = 11;
|
611
|
+
return (0, _sharp["default"])(mainPath);
|
612
|
+
|
613
|
+
case 11:
|
614
|
+
mainImage = _context6.sent;
|
615
|
+
_context6.next = 14;
|
616
|
+
return Promise.resolve("".concat(mainPath.replace('.png', '.json'))).then(function (s) {
|
617
|
+
return _interopRequireWildcard(require(s));
|
618
|
+
});
|
619
|
+
|
620
|
+
case 14:
|
621
|
+
options = _context6.sent;
|
622
|
+
_context6.t0 = _sharp["default"];
|
623
|
+
_context6.next = 18;
|
624
|
+
return getBuffer(user.displayAvatarURL({
|
625
|
+
format: 'png'
|
626
|
+
}));
|
627
|
+
|
628
|
+
case 18:
|
629
|
+
_context6.t1 = _context6.sent;
|
630
|
+
_context6.next = 21;
|
631
|
+
return (0, _context6.t0)(_context6.t1).resize(options.resize).rotate(options.rotate, {
|
632
|
+
background: {
|
633
|
+
r: 0,
|
634
|
+
g: 0,
|
635
|
+
b: 0,
|
636
|
+
alpha: 0
|
637
|
+
}
|
638
|
+
});
|
639
|
+
|
640
|
+
case 21:
|
641
|
+
avatarImage = _context6.sent;
|
642
|
+
_context6.next = 24;
|
643
|
+
return mainImage.metadata();
|
644
|
+
|
645
|
+
case 24:
|
646
|
+
mainMetadata = _context6.sent;
|
647
|
+
width = mainMetadata.width, height = mainMetadata.height;
|
648
|
+
_context6.t2 = newCanvas(width, height);
|
649
|
+
_context6.t3 = _objectSpread;
|
650
|
+
_context6.next = 30;
|
651
|
+
return avatarImage.toBuffer();
|
652
|
+
|
653
|
+
case 30:
|
654
|
+
_context6.t4 = _context6.sent;
|
655
|
+
_context6.t5 = {
|
656
|
+
input: _context6.t4
|
657
|
+
};
|
658
|
+
_context6.t6 = options.composite;
|
659
|
+
_context6.t7 = (0, _context6.t3)(_context6.t5, _context6.t6);
|
660
|
+
_context6.next = 36;
|
661
|
+
return mainImage.toBuffer();
|
662
|
+
|
663
|
+
case 36:
|
664
|
+
_context6.t8 = _context6.sent;
|
665
|
+
_context6.t9 = {
|
666
|
+
input: _context6.t8
|
667
|
+
};
|
668
|
+
_context6.t10 = [_context6.t7, _context6.t9];
|
669
|
+
_context6.next = 41;
|
670
|
+
return _context6.t2.composite.call(_context6.t2, _context6.t10).png().toBuffer();
|
671
|
+
|
672
|
+
case 41:
|
673
|
+
canvas = _context6.sent;
|
674
|
+
message.reply({
|
675
|
+
files: [canvas]
|
676
|
+
});
|
677
|
+
|
678
|
+
case 43:
|
679
|
+
case "end":
|
680
|
+
return _context6.stop();
|
681
|
+
}
|
682
|
+
}
|
683
|
+
}, _callee6);
|
684
|
+
}));
|
685
|
+
|
686
|
+
function execute(_x13, _x14) {
|
687
|
+
return _execute5.apply(this, arguments);
|
688
|
+
}
|
689
|
+
|
557
690
|
return execute;
|
558
691
|
}()
|
559
692
|
}
|
560
693
|
}
|
561
694
|
};
|
562
|
-
exports["default"] = _default;
|
695
|
+
exports["default"] = _default;
|
696
|
+
|
697
|
+
function getBuffer(_x15) {
|
698
|
+
return _getBuffer.apply(this, arguments);
|
699
|
+
}
|
700
|
+
|
701
|
+
function _getBuffer() {
|
702
|
+
_getBuffer = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(url) {
|
703
|
+
var input;
|
704
|
+
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
705
|
+
while (1) {
|
706
|
+
switch (_context9.prev = _context9.next) {
|
707
|
+
case 0:
|
708
|
+
_context9.next = 2;
|
709
|
+
return (0, _axios["default"])({
|
710
|
+
url: url,
|
711
|
+
responseType: 'arraybuffer'
|
712
|
+
});
|
713
|
+
|
714
|
+
case 2:
|
715
|
+
input = _context9.sent.data;
|
716
|
+
return _context9.abrupt("return", input);
|
717
|
+
|
718
|
+
case 4:
|
719
|
+
case "end":
|
720
|
+
return _context9.stop();
|
721
|
+
}
|
722
|
+
}
|
723
|
+
}, _callee9);
|
724
|
+
}));
|
725
|
+
return _getBuffer.apply(this, arguments);
|
726
|
+
}
|
727
|
+
|
728
|
+
function newCanvas(width, height) {
|
729
|
+
var channels = 4;
|
730
|
+
var rgbaPixel = 0x00000000;
|
731
|
+
var canvas = Buffer.alloc(width * height * channels, rgbaPixel);
|
732
|
+
return (0, _sharp["default"])(canvas, {
|
733
|
+
raw: {
|
734
|
+
width: width,
|
735
|
+
height: height,
|
736
|
+
channels: channels
|
737
|
+
}
|
738
|
+
});
|
739
|
+
}
|
740
|
+
|
741
|
+
function getRandomInt(min, max) {
|
742
|
+
min = Math.ceil(min);
|
743
|
+
max = Math.floor(max);
|
744
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
745
|
+
}
|
package/lib/info.json
CHANGED
@@ -1,33 +1,33 @@
|
|
1
|
-
{
|
2
|
-
"sizes": { "+": 55 },
|
3
|
-
|
4
|
-
"builtin": {
|
5
|
-
"37": {
|
6
|
-
"game": "sf",
|
7
|
-
"caption": "***LETS GO JUSTIN!***",
|
8
|
-
"input": "6 6 6 6 6 6 6 >> 6 6 6 6 6 6 6 >> 8 6 j. hk >> 2 mk >> 623 mp >> 236 236 lk"
|
9
|
-
}
|
10
|
-
},
|
11
|
-
|
12
|
-
"aliases": {
|
13
|
-
"games": {
|
14
|
-
"bbt": "bbtag",
|
15
|
-
"db": "dbz"
|
16
|
-
},
|
17
|
-
|
18
|
-
"inputs": {
|
19
|
-
"basic": {
|
20
|
-
"doubleforward": [">>"]
|
21
|
-
},
|
22
|
-
|
23
|
-
"games": {
|
24
|
-
"bbtag": {
|
25
|
-
"throw": ["b","+","c"],
|
26
|
-
"crb": ["d","+","p"],
|
27
|
-
"airdash": ["a","+","b"],
|
28
|
-
"reversal": ["a","+","d"]
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}
|
32
|
-
}
|
1
|
+
{
|
2
|
+
"sizes": { "+": 55 },
|
3
|
+
|
4
|
+
"builtin": {
|
5
|
+
"37": {
|
6
|
+
"game": "sf",
|
7
|
+
"caption": "***LETS GO JUSTIN!***",
|
8
|
+
"input": "6 6 6 6 6 6 6 >> 6 6 6 6 6 6 6 >> 8 6 j. hk >> 2 mk >> 623 mp >> 236 236 lk"
|
9
|
+
}
|
10
|
+
},
|
11
|
+
|
12
|
+
"aliases": {
|
13
|
+
"games": {
|
14
|
+
"bbt": "bbtag",
|
15
|
+
"db": "dbz"
|
16
|
+
},
|
17
|
+
|
18
|
+
"inputs": {
|
19
|
+
"basic": {
|
20
|
+
"doubleforward": [">>"]
|
21
|
+
},
|
22
|
+
|
23
|
+
"games": {
|
24
|
+
"bbtag": {
|
25
|
+
"throw": ["b","+","c"],
|
26
|
+
"crb": ["d","+","p"],
|
27
|
+
"airdash": ["a","+","b"],
|
28
|
+
"reversal": ["a","+","d"]
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
33
|
}
|
package/package.json
CHANGED
@@ -1,27 +1,28 @@
|
|
1
|
-
{
|
2
|
-
"name": "@lotus-tree/fg-notation",
|
3
|
-
"version": "1.
|
4
|
-
"main": "lib/index.js",
|
5
|
-
"module": "src/index.js",
|
6
|
-
"scripts": {
|
7
|
-
"run-babel": "babel --delete-dir-on-start --copy-files src",
|
8
|
-
"build": "yarn run run-babel --out-dir lib",
|
9
|
-
"dev": "yarn run run-babel --watch --source-maps inline --out-dir dev",
|
10
|
-
"prepublishOnly": "yarn build"
|
11
|
-
},
|
12
|
-
"dependencies": {
|
13
|
-
"
|
14
|
-
"
|
15
|
-
"
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
"@babel/
|
23
|
-
"@babel/
|
24
|
-
"@babel/
|
25
|
-
"@babel/
|
26
|
-
|
27
|
-
}
|
1
|
+
{
|
2
|
+
"name": "@lotus-tree/fg-notation",
|
3
|
+
"version": "1.3.0",
|
4
|
+
"main": "lib/index.js",
|
5
|
+
"module": "src/index.js",
|
6
|
+
"scripts": {
|
7
|
+
"run-babel": "babel --delete-dir-on-start --copy-files src",
|
8
|
+
"build": "yarn run run-babel --out-dir lib",
|
9
|
+
"dev": "yarn run run-babel --watch --source-maps inline --out-dir dev",
|
10
|
+
"prepublishOnly": "yarn build"
|
11
|
+
},
|
12
|
+
"dependencies": {
|
13
|
+
"axios": "^0.27.2",
|
14
|
+
"bent": "^7.3.12",
|
15
|
+
"glob": "^7.2.0",
|
16
|
+
"sharp": "^0.29.3"
|
17
|
+
},
|
18
|
+
"peerDependencies": {
|
19
|
+
"@lotus-tree/command-handler": "^2.1.0"
|
20
|
+
},
|
21
|
+
"devDependencies": {
|
22
|
+
"@babel/cli": "^7.16.7",
|
23
|
+
"@babel/core": "^7.16.7",
|
24
|
+
"@babel/node": "^7.16.7",
|
25
|
+
"@babel/plugin-transform-runtime": "^7.16.7",
|
26
|
+
"@babel/preset-env": "^7.16.7"
|
27
|
+
}
|
28
|
+
}
|
package/src/img/credits.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
These emojis were made by Magic (@MagicianStuff / @MagicianSketch).
|
2
|
-
Using the Twemoji 13.1 open source emoji set.
|
3
|
-
|
1
|
+
These emojis were made by Magic (@MagicianStuff / @MagicianSketch).
|
2
|
+
Using the Twemoji 13.1 open source emoji set.
|
3
|
+
|
4
4
|
These are public domain and can be used without credit.
|
Binary file
|
Binary file
|