@lotus-tree/fg-notation 1.2.0 → 1.3.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.
Files changed (162) hide show
  1. package/README.md +80 -68
  2. package/babel.config.js +6 -6
  3. package/lib/img/credits.txt +3 -3
  4. package/lib/img/grabs/omegarugal.json +5 -0
  5. package/lib/img/grabs/omegarugal.png +0 -0
  6. package/lib/img/grabs/ralph.json +5 -0
  7. package/lib/img/grabs/ralph.png +0 -0
  8. package/lib/index.js +202 -19
  9. package/lib/info.json +32 -32
  10. package/package.json +28 -27
  11. package/src/img/credits.txt +3 -3
  12. package/src/img/grabs/omegarugal.json +5 -0
  13. package/src/img/grabs/omegarugal.png +0 -0
  14. package/src/img/grabs/ralph.json +5 -0
  15. package/src/img/grabs/ralph.png +0 -0
  16. package/src/index.js +302 -249
  17. package/src/info.json +32 -32
  18. package/dev/img/basic/+.png +0 -0
  19. package/dev/img/basic/1.png +0 -0
  20. package/dev/img/basic/12369.png +0 -0
  21. package/dev/img/basic/1237.png +0 -0
  22. package/dev/img/basic/1632143.png +0 -0
  23. package/dev/img/basic/2.png +0 -0
  24. package/dev/img/basic/21.png +0 -0
  25. package/dev/img/basic/214.png +0 -0
  26. package/dev/img/basic/21478.png +0 -0
  27. package/dev/img/basic/23.png +0 -0
  28. package/dev/img/basic/236.png +0 -0
  29. package/dev/img/basic/23698.png +0 -0
  30. package/dev/img/basic/28.png +0 -0
  31. package/dev/img/basic/3.png +0 -0
  32. package/dev/img/basic/32147.png +0 -0
  33. package/dev/img/basic/3219.png +0 -0
  34. package/dev/img/basic/341236.png +0 -0
  35. package/dev/img/basic/346.png +0 -0
  36. package/dev/img/basic/360.png +0 -0
  37. package/dev/img/basic/4.png +0 -0
  38. package/dev/img/basic/41236.png +0 -0
  39. package/dev/img/basic/421.png +0 -0
  40. package/dev/img/basic/46.png +0 -0
  41. package/dev/img/basic/4618346.png +0 -0
  42. package/dev/img/basic/47896.png +0 -0
  43. package/dev/img/basic/5.png +0 -0
  44. package/dev/img/basic/6.png +0 -0
  45. package/dev/img/basic/623.png +0 -0
  46. package/dev/img/basic/63214.png +0 -0
  47. package/dev/img/basic/64.png +0 -0
  48. package/dev/img/basic/6428.png +0 -0
  49. package/dev/img/basic/69874.png +0 -0
  50. package/dev/img/basic/7.png +0 -0
  51. package/dev/img/basic/7891.png +0 -0
  52. package/dev/img/basic/8.png +0 -0
  53. package/dev/img/basic/81237.png +0 -0
  54. package/dev/img/basic/82.png +0 -0
  55. package/dev/img/basic/87412.png +0 -0
  56. package/dev/img/basic/89632.png +0 -0
  57. package/dev/img/basic/9.png +0 -0
  58. package/dev/img/basic/[1].png +0 -0
  59. package/dev/img/basic/[2].png +0 -0
  60. package/dev/img/basic/[2]8.png +0 -0
  61. package/dev/img/basic/[3].png +0 -0
  62. package/dev/img/basic/[4].png +0 -0
  63. package/dev/img/basic/[6].png +0 -0
  64. package/dev/img/basic/[7].png +0 -0
  65. package/dev/img/basic/[8].png +0 -0
  66. package/dev/img/basic/[9].png +0 -0
  67. package/dev/img/basic/air.png +0 -0
  68. package/dev/img/basic/doubleforward.png +0 -0
  69. package/dev/img/credits.txt +0 -4
  70. package/dev/img/games/bb/a.png +0 -0
  71. package/dev/img/games/bb/b.png +0 -0
  72. package/dev/img/games/bb/c.png +0 -0
  73. package/dev/img/games/bb/d.png +0 -0
  74. package/dev/img/games/bbtag/a.png +0 -0
  75. package/dev/img/games/bbtag/b.png +0 -0
  76. package/dev/img/games/bbtag/c.png +0 -0
  77. package/dev/img/games/bbtag/d.png +0 -0
  78. package/dev/img/games/bbtag/p.png +0 -0
  79. package/dev/img/games/dbz/a1.png +0 -0
  80. package/dev/img/games/dbz/a2.png +0 -0
  81. package/dev/img/games/dbz/h.png +0 -0
  82. package/dev/img/games/dbz/l.png +0 -0
  83. package/dev/img/games/dbz/m.png +0 -0
  84. package/dev/img/games/dbz/s.png +0 -0
  85. package/dev/img/games/dnf/a.png +0 -0
  86. package/dev/img/games/dnf/as.png +0 -0
  87. package/dev/img/games/dnf/b.png +0 -0
  88. package/dev/img/games/dnf/g.png +0 -0
  89. package/dev/img/games/dnf/ms.png +0 -0
  90. package/dev/img/games/dnf/s.png +0 -0
  91. package/dev/img/games/gbf/g.png +0 -0
  92. package/dev/img/games/gbf/h.png +0 -0
  93. package/dev/img/games/gbf/l.png +0 -0
  94. package/dev/img/games/gbf/m.png +0 -0
  95. package/dev/img/games/gbf/s.png +0 -0
  96. package/dev/img/games/gg/d.png +0 -0
  97. package/dev/img/games/gg/hs.png +0 -0
  98. package/dev/img/games/gg/k.png +0 -0
  99. package/dev/img/games/gg/p.png +0 -0
  100. package/dev/img/games/gg/rc.png +0 -0
  101. package/dev/img/games/gg/s.png +0 -0
  102. package/dev/img/games/kof/a.png +0 -0
  103. package/dev/img/games/kof/b.png +0 -0
  104. package/dev/img/games/kof/c.png +0 -0
  105. package/dev/img/games/kof/d.png +0 -0
  106. package/dev/img/games/kof/max.png +0 -0
  107. package/dev/img/games/mk/1.png +0 -0
  108. package/dev/img/games/mk/2.png +0 -0
  109. package/dev/img/games/mk/3.png +0 -0
  110. package/dev/img/games/mk/4.png +0 -0
  111. package/dev/img/games/sc/[a].png +0 -0
  112. package/dev/img/games/sc/[b].png +0 -0
  113. package/dev/img/games/sc/[g].png +0 -0
  114. package/dev/img/games/sc/[k].png +0 -0
  115. package/dev/img/games/sc/a.png +0 -0
  116. package/dev/img/games/sc/b.png +0 -0
  117. package/dev/img/games/sc/g.png +0 -0
  118. package/dev/img/games/sc/k.png +0 -0
  119. package/dev/img/games/sf/hk.png +0 -0
  120. package/dev/img/games/sf/hp.png +0 -0
  121. package/dev/img/games/sf/j..png +0 -0
  122. package/dev/img/games/sf/lk.png +0 -0
  123. package/dev/img/games/sf/lp.png +0 -0
  124. package/dev/img/games/sf/max.png +0 -0
  125. package/dev/img/games/sf/mk.png +0 -0
  126. package/dev/img/games/sf/mp.png +0 -0
  127. package/dev/img/games/sf/tap.png +0 -0
  128. package/dev/img/games/sg/hk.png +0 -0
  129. package/dev/img/games/sg/hp.png +0 -0
  130. package/dev/img/games/sg/k.png +0 -0
  131. package/dev/img/games/sg/lk.png +0 -0
  132. package/dev/img/games/sg/lp.png +0 -0
  133. package/dev/img/games/sg/mk.png +0 -0
  134. package/dev/img/games/sg/mp.png +0 -0
  135. package/dev/img/games/sg/p.png +0 -0
  136. package/dev/img/games/tfh/a.png +0 -0
  137. package/dev/img/games/tfh/b.png +0 -0
  138. package/dev/img/games/tfh/c.png +0 -0
  139. package/dev/img/games/tfh/d.png +0 -0
  140. package/dev/img/games/tkn/1.png +0 -0
  141. package/dev/img/games/tkn/12.png +0 -0
  142. package/dev/img/games/tkn/1234.png +0 -0
  143. package/dev/img/games/tkn/13.png +0 -0
  144. package/dev/img/games/tkn/14.png +0 -0
  145. package/dev/img/games/tkn/2.png +0 -0
  146. package/dev/img/games/tkn/23.png +0 -0
  147. package/dev/img/games/tkn/24.png +0 -0
  148. package/dev/img/games/tkn/3.png +0 -0
  149. package/dev/img/games/tkn/34.png +0 -0
  150. package/dev/img/games/tkn/4.png +0 -0
  151. package/dev/img/games/tkn/b.png +0 -0
  152. package/dev/img/games/tkn/d-b.png +0 -0
  153. package/dev/img/games/tkn/d-f.png +0 -0
  154. package/dev/img/games/tkn/d.png +0 -0
  155. package/dev/img/games/tkn/f.png +0 -0
  156. package/dev/img/games/tkn/o.png +0 -0
  157. package/dev/img/games/tkn/u-b.png +0 -0
  158. package/dev/img/games/tkn/u-f.png +0 -0
  159. package/dev/img/games/tkn/u.png +0 -0
  160. package/dev/img/preview.png +0 -0
  161. package/dev/index.js +0 -563
  162. 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.1.1
59
-
60
- - Added "rc" as a valid input for Guilty Gear
61
- - More descriptive message when "fgglossary" finds multiple matching terms
62
- - Being a dark sea
63
-
64
- ### 1.1.0
65
-
66
- - Added fgglossary command
67
- - Fixed wrong default command
68
- - Drifted tonight carried by the waves
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
+ }
@@ -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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "resize":{"width":213, "height": 213},
3
+ "rotate": -33,
4
+ "composite": { "top": 50, "left": 35 }
5
+ }
Binary file
@@ -0,0 +1,5 @@
1
+ {
2
+ "resize":{"width":282, "height": 195},
3
+ "rotate": -90,
4
+ "composite": { "top": 600, "left": 270 }
5
+ }
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 _callee6() {
63
+ _getGlossary = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
47
64
  var result, tempG, tempT;
48
- return _regenerator["default"].wrap(function _callee6$(_context6) {
65
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
49
66
  while (1) {
50
- switch (_context6.prev = _context6.next) {
67
+ switch (_context7.prev = _context7.next) {
51
68
  case 0:
52
- _context6.next = 2;
69
+ _context7.next = 2;
53
70
  return getJSON('https://glossary.infil.net/json/glossary.json');
54
71
 
55
72
  case 2:
56
- result = _context6.sent;
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 _context6.stop();
86
+ return _context7.stop();
70
87
  }
71
88
  }
72
- }, _callee6);
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 _callee7(inputs, result, message, caption) {
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 _callee7$(_context7) {
160
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
144
161
  while (1) {
145
- switch (_context7.prev = _context7.next) {
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
- _context7.next = 7;
188
+ _context8.next = 7;
172
189
  return canvas.toBuffer();
173
190
 
174
191
  case 7:
175
- canvas = _context7.sent;
192
+ canvas = _context8.sent;
176
193
 
177
194
  if (!(result.length < 12)) {
178
- _context7.next = 12;
195
+ _context8.next = 12;
179
196
  break;
180
197
  }
181
198
 
182
- _context7.next = 11;
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 = _context7.sent;
205
+ canvas = _context8.sent;
189
206
 
190
207
  case 12:
191
- return _context7.abrupt("return", message.reply({
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 _context7.stop();
215
+ return _context8.stop();
199
216
  }
200
217
  }
201
- }, _callee7);
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.2.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
- "bent": "^7.3.12",
14
- "glob": "^7.2.0",
15
- "sharp": "^0.29.3"
16
- },
17
- "peerDependencies": {
18
- "@lotus-tree/command-handler": "^2.1.0"
19
- },
20
- "devDependencies": {
21
- "@babel/cli": "^7.16.7",
22
- "@babel/core": "^7.16.7",
23
- "@babel/node": "^7.16.7",
24
- "@babel/plugin-transform-runtime": "^7.16.7",
25
- "@babel/preset-env": "^7.16.7"
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
+ }
@@ -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.
@@ -0,0 +1,5 @@
1
+ {
2
+ "resize":{"width":213, "height": 213},
3
+ "rotate": -33,
4
+ "composite": { "top": 50, "left": 35 }
5
+ }
Binary file
@@ -0,0 +1,5 @@
1
+ {
2
+ "resize":{"width":282, "height": 195},
3
+ "rotate": -90,
4
+ "composite": { "top": 600, "left": 270 }
5
+ }
Binary file