@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.
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