CHANGELOG.md 39.5 KB
Newer Older
1
2
# Apex Sigma Changelog

Aleksa Radovic's avatar
Aleksa Radovic committed
3
4
5
6
7
8
## [WIP]

### Changed

- Change command list MD file location.
- Replace documentation files with new, reworked content.
Aleksa Radovic's avatar
Aleksa Radovic committed
9
- Buff raffle currency rewards and guarantee recipe items.
10
- Fixed rate limits causing `reddit` to break. 
Aleksa Radovic's avatar
Aleksa Radovic committed
11

Daniel Preston's avatar
Daniel Preston committed
12
13
14
15
16
17
18
## 4.91.1820 Fubuki

### Changed

- Added a character limit argument to `impersonate`.
- Added a beginning state argument to `impersonate`.
- Extended the results of `reddit` to posts made within the last week.
19
- Added a last-message-processed cache to `collector_clockwork` to avoid collecting duplicates.
Daniel Preston's avatar
Daniel Preston committed
20

Daniel Preston's avatar
Daniel Preston committed
21
22
23
24
25
26
## 4.90.1813 Fubuki

### Changed

- Moved the `lyrics` command to the `searches` category, since music is no longer active.

Daniel Preston's avatar
Daniel Preston committed
27
28
29
30
31
## 4.90.1805 Fubuki

### Changed

- Added an optional duplicates flag to `filtersell`.
Daniel Preston's avatar
Daniel Preston committed
32
- Corrected the usage example for `declinesuggestion`.
Daniel Preston's avatar
Daniel Preston committed
33

Aleksa Radovic's avatar
Aleksa Radovic committed
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
## 4.90.1804 Fubuki

### Added

- Raw edit and deletion event handling, and their payloads have been added.
- Deleting and editing uncached messages is now logged with whatever data we could pull.

### Changed

- Warframe fissures have been updated.
- Osu! got an option to display stats for different modes.
- Some Docker image fixes have been added due to Jessie missing repo keys.
- Discord object mentions have been fixed for `translate`.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
50
## 4.88.1779 Tsumiki
Aleksa Radovic's avatar
Aleksa Radovic committed
51

Aleksa Radovic's avatar
Aleksa Radovic committed
52
53
### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
54
- Re-enable `award` and `vault`, `gtv` will remain disabled.
55
- Disabled the `award`, `givetovault` and `vault` commands.
Aleksa Radovic's avatar
Aleksa Radovic committed
56
- Check the race existence before trying to add a participant.
Aleksa Radovic's avatar
Aleksa Radovic committed
57
58
59
60
- Auto-format chang-log.
- Minor f-string fixes, where they were used when no dynamic arguments were present.
- Chains are now stored in `./chains/<uid>.json.gz`.

61
## 4.88.1769 Tsumiki
Aleksa Radovic's avatar
Aleksa Radovic committed
62
63
64

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
65
- The `trade` command has been added, inspired by Warframe's trade mechanics.
Aleksa Radovic's avatar
Aleksa Radovic committed
66
- Market cleaning functions. Items expire after 7 days. Happens automatically every 60s or every `mlist` call.
Daniel Preston's avatar
Daniel Preston committed
67
- The `addemote` command allows you to easily add an emote to your server.
Aleksa Radovic's avatar
Aleksa Radovic committed
68
69
70

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
71
72
- The `giveitem` command has been disabled.
- The `givecurrency` command has been disabled.
Aleksa Radovic's avatar
Aleksa Radovic committed
73
74
75
76
77
- Minor formatting, cleaning and docstring fixes.
- Listing the market triggers the market cleaning function.
- Selling an item on the market will show the expiration time (in UTC).
- Selling something on the market now has a minimum listing price of 10 Currency.

Daniel Preston's avatar
Daniel Preston committed
78
79
80
81
82
83
## 4.86.1752 Tsumiki

### Added

- Created the `GenericResponse` class.

Daniel Preston's avatar
Daniel Preston committed
84
85
86
87
88
89
90
91
92
## 4.86.1740 Tsumiki

### Added

- The `mutedusers` command shows users who are text-muted and hard-muted.
- The `auto_punish` module will automatically apply a set punishment when a user reaches N warnings.
- Use `autopunish` to toggle the feature on and off.
- Use `autopunishlevels` to set the desired levels and punishments, or view the current ones.

Aleksa Radovic's avatar
Aleksa Radovic committed
93
## 4.86.1730 Tsumiki
Aleksa Radovic's avatar
Aleksa Radovic committed
94
95
96
97
98
99
100
101
102

### Added

- Created the `DialogueResponse` class.
- Created the `DialogueCore` class.
- Created the `Ongoing` class.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
103
104
105
- Fix the `marketlist` command in case of items that can't be found.
- Fix the `marketsell` command overflowing when given ludicrous numbers.
- Fix the `imdb` command erroring due to the encoding argument.
Aleksa Radovic's avatar
Aleksa Radovic committed
106
107
108
109
110
111
112
113
- All dialogues can now be cancelled.
- Dialogues now return `DialogueResponse` for easier marker reading and response generation.
- [Dockerfile](/Dockerfile) bumped to use Python 3.9.
- Replaced the `aiml` package with `python-aiml`, an updated fork.
- Recipes and items now use the database entries as a fallback if the manifest fails to load.
- Recipes and items now read the repository manifest instead of the database.
- Dialogue functions now use the dialogue core class.
- Ongoing functions now use the ongoing class.
Daniel Preston's avatar
Daniel Preston committed
114
- General code inspection formatting and cleaning.
Aleksa Radovic's avatar
Aleksa Radovic committed
115
116
117
118
119
120
121
- Replaced requests with aiohttp in metacritic.

### Removed

- The Pympler lib and `stats()` methods are no longer needed.
- The entire `family` module. It was unused and uninteresting without the broken family tree.

Daniel Preston's avatar
Daniel Preston committed
122
123
124
125
126
127
## 4.84.1700 Futaba

### Added

- The `blackjack` command has been added. It functions as you'd expect, but there is no multiplayer.

Aleksa Radovic's avatar
Aleksa Radovic committed
128
### Changed
Daniel Preston's avatar
Daniel Preston committed
129
130
131
132
133

- Fixed `destroyitem` command and added a safeguard for sharding.
- Tweaked dialogue controls to include an ongoing check.
- Updated `buyupgrade` to include a quantity parameter when quick-buying.

Daniel Preston's avatar
Daniel Preston committed
134
135
136
137
138
139
## 4.84.1690 Futaba

### Added

- Added the `mbti` command for viewing mbti types, functions, and compatibility between types.

140
141
142
143
### Changed

- Added an option to buy multiple levels of an upgrade at once for `buyupgrade`.

144
145
146
147
148
149
150
151
## 4.82.1669 Futaba

### Changed

- Added `safebooru` to the `GalleryClient` handler and removed its discrete handler.
- Changed `kitsunemimi`, `nekomimi`, and `usagimimi` to utilize the new handler.
- Refactored the gallery commands to be more uniform.
- Added an image size (resolution) filter to the `GalleryClient`.
152
- Added a progress bar to the `forcedataupdate` command embed.
153

Daniel Preston's avatar
Daniel Preston committed
154
155
156
157
158
159
160
## 4.82.1654 Futaba

### Changed

- Added more exception catches. Never too many...
- Fixed the `youtube` command when parsing an empty playlist.
- Switched the `crypocurrency` command to the new API.
Daniel Preston's avatar
Daniel Preston committed
161
162
163
164
- Removed `__slots__` from some reddit related classes, because it broke them.
- Removed an unnecessary use of `str.join`. Not everything needs to be joined!
- Added an additional error catch to the `translation` command.
- Added an exception catch to `antispam_watcher` and `anticaps_watcher`.
Daniel Preston's avatar
Daniel Preston committed
165
- Fix `visualnovelquote` html parsing.
166
- Merged `inspect` and `viewrecipe` commands.
Daniel Preston's avatar
Daniel Preston committed
167
- Added `KeyboardInterupt` catch to `run.py` for development purposes.
168
- Reimport `ApexSigma` in `run.py` after installing requirements if the original import fails.
169
170
171
172

### Removed

- Removed the `viewrecipe` command.
Daniel Preston's avatar
Daniel Preston committed
173

Daniel Preston's avatar
Daniel Preston committed
174
175
176
177
178
179
180
181
182
183
184
185
186
## 4.82.1651 Futaba

### Changed

- Fixed argument parsing for `inrole`.
- Added a user agent to `mapsearch` so it actually works.
- Added a universal user agent for requests.
- Filled in docstrings for metacritic files.

### Removed

- Removed the `busplus` command.

187
188
189
190
191
## 4.82.1644 Futaba

### Added

- The `bazaar` command; a daily shop for rare items.
Aleksa Radovic's avatar
Aleksa Radovic committed
192
- The `bazaarstats` command; shows item and currency statistics for bazaar usage.
193
194
195
196
197
198
199
200
201

### Changed

- Added a streak counter to the footer of relevant quiz commands.

### Removed

- ChatterBot has been temporarily disabled to monitor memory usage without it active.

Daniel Preston's avatar
Daniel Preston committed
202
203
204
205
206
207
## 4.81.1627 Kazuki

### Added

- `metacritic` command to view scores for games, movies, tv shows, and music albums.

208
209
210
211
212
213
214
## 4.79.1595 Kazuki

### Changed

- Tweaked `urbandictionary` to display the top rated definition.
- Added a `--random` option to `urbandictionary` to display a random definition instead.
- Refactored `connectfour` to use the `raw_reaction_add` event to avoid an internal cache expiring.
Daniel Preston's avatar
Daniel Preston committed
215
216
- Fixed `anmechargame` and `mangachargame`... Hopefully.
- Fixed web scraping in the `osu` command.
Daniel Preston's avatar
Daniel Preston committed
217
218
219
220
- Fixed `vnchargame` command.
- Added tip text to the embed footer for `inspect`.
- Removed a redundant function and filled in a few docstrings.
- Fixed `inventory` argument parsing and updated description.
Daniel Preston's avatar
Daniel Preston committed
221
- Fixed `finalfantasyxivtimers`.
222
- Replaced all instances of `arrow.Arrow.timestamp` with `arrow.Arrow.int_timestamp`.
223
224
- Added safeguards to `anmechargame` `mangachargame` and `vnchargame`.
- Fixed argument parsing in `translation`.
225

Daniel Preston's avatar
Daniel Preston committed
226
227
## 4.78.1577 Kazuki

228
### Added
229
230
231

- Added `gc` as an alias for `givecookie`.

232
### Changed
Daniel Preston's avatar
Daniel Preston committed
233

Daniel Preston's avatar
Daniel Preston committed
234
- Removed hyphenated words as a possibility for `hangman`.
Daniel Preston's avatar
Daniel Preston committed
235
- Added the number of winners to raffle embeds when there is more than one winner.
236
- Fixed `kanji` parsing of parts and variants
Daniel Preston's avatar
Daniel Preston committed
237
- Refactored `whoplays`.
Daniel Preston's avatar
Daniel Preston committed
238

Daniel Preston's avatar
Daniel Preston committed
239
240
241
242
243
244
## 4.78.1569 Kazuki

### Added

- Added alias for `inspect`

Daniel Preston's avatar
Daniel Preston committed
245
246
## 4.77.1559 Suzune

247
248
249
250
### Added

- Added alias for `removeinteraction`

Daniel Preston's avatar
Daniel Preston committed
251
252
253
### Changed

- Tweaked `givecookie` to show the authors display name if `delete_commands` is enabled.
254
- Added a 'no issue' mode for `approvesuggestion` to approve suggestions without creating an issue on GitLab.
Daniel Preston's avatar
Daniel Preston committed
255

256
257
258
259
260
261
262
## 4.77.1558 Suzune

### Changed

- Switched back to the old bash.org URL for the `bash` command.
- Tweaked the `combine_names` function and fixed its references.

Daniel Preston's avatar
Daniel Preston committed
263
264
265
266
267
268
269
## 4.77.1555 Suzune

### Changed

- Tweaked the module loader to ignore unnecessary modules if `text_only` or `music_only` are enabled.
- Tweaked the module loader to load the `help` module if `music_only` is enabled.

270
271
## 4.73.1465 Suzune

Daniel Preston's avatar
Daniel Preston committed
272
### Changed
273
274
275
276

- Added a global user-agent header to the NSFW core.
- Tweaked the NSFW core and e621 command to support the new endpoint.

277
278
279
280
281
282
283
284
## 4.72.1457 Suzune

### Added

- The `danbooru` command has been added. Never enough porn.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
285
- Replaced favicon urls in the nsfw core with imgur pngs because Discord doesn't support ico files.
286

Daniel Preston's avatar
Daniel Preston committed
287
288
289
290
291
292
293
## 4.72.1455 Suzune

### Removed

- Disabled the `foodrecipe` command because the API has been shutdown. Possible future rework.

## 4.71.1428 Suzune
Aleksa Radovic's avatar
Aleksa Radovic committed
294
295
296

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
297
298
- You can now specify an index for the Redis database in the `cache.yml` config file with a value under a `db` key. When
  missing, the default is **3** (cause the number looks like Sigma).
Aleksa Radovic's avatar
Aleksa Radovic committed
299

300
301
302
303
304
305
306
307
308
309
310
## 4.71.1427 Suzune

### Added

- The `raffle` command now accepts a `winners:n` argument where `n` is the number of winners.
- The `hide` interaction command has been added. That makes... 30? FUCKING 30?!

### Changed

- Refined the `raffle` command description to be less wordy.

311
## 4.71.1424 Suzune
Aleksa Radovic's avatar
Aleksa Radovic committed
312
313
314
315
316

### Changed

- The shop now has emote reaction controls instead of text input.

317
318
319
320
321
322
323
324
325
326
327
## 4.71.1421 Yuria

### Added

- Added the `gamblingstats` command to show currency gains, losses, and net changes for gambling minigames.

### Changed

- Refactored the `bash` command to make more sense.
- Switched an embed response in the `weather` command to use a generic response embed.

328
329
330
331
332
333
334
335
## 4.68.1395 Yuria

### Changed

- Added safe guard against muting Sigma with `textmute` which caused an error.
- Added an try clause in `massmove` for users no longer in a voice channel.
- Added a missing requirement to `connectfour`'s module.yml file.
- Fixed errors in `cryptocurrency` and rounded long floats.
336
337
- Added guard clauses to certain events to prevent an `AttributeError`.
- Added a user agent to the `weather` command in compliance with Nominatim's ToS.
338

Daniel Preston's avatar
Daniel Preston committed
339
340
341
342
343
344
## 4.68.1394 Yuria

### Changed

- Adapted the `connectfour` command to use emote controls rather than message controls.

Daniel Preston's avatar
Daniel Preston committed
345
346
347
348
349
350
351
352
353
354
## 4.68.1392 Yuria

### Added

- Flag emote auto translating. If enabled, reacting to a message with two flags will translate it.

### Changed

- Added a query limit safeguard to the `translation` command.

Daniel Preston's avatar
Daniel Preston committed
355
356
357
358
359
360
361
## 4.68.1383 Yuria

### Changed

- Added an `--ids` argument to the `spouses` command.
- Removed old proposal lines from the `divorce` command.

Daniel Preston's avatar
Daniel Preston committed
362
363
364
365
366
367
368
369
370
371
## 4.68.1382 Yuria

### Added

- The `slotstats` command shows payout rates for the slot machine with the given bet amount.

### Changed

- Tweaked string stripping in the `addreactor` command.

372
## 4.68.1378 Yuria
Daniel Preston's avatar
Daniel Preston committed
373

374
375
376
### Changed

- Added a missing channel permission in the `temproom` command.
Aleksa Radovic's avatar
Aleksa Radovic committed
377
- Channel permissions in the `temproom` command are now a set of kwargs.
378
379
380
381
- The description of the `purge` command is now more concise and up to date.
- The description of the `filteroverrides` command no longer includes `asciinames`.

## 4.67.1348 Yuria
Daniel Preston's avatar
Daniel Preston committed
382
383
384
385
386
387
388
389

### Added

- The `editline` command has been added for editing existing lines in custom lists.

### Changed

- Enabled the use of `removeline` for anyone on public lists.
Aleksa Radovic's avatar
Aleksa Radovic committed
390
391
- Minor refactors for various custom list commands.
- Added more creator permissions for temporary voice channels.
Daniel Preston's avatar
Daniel Preston committed
392

393
## 4.67.1344 Yuria
Daniel Preston's avatar
Daniel Preston committed
394

Aleksa Radovic's avatar
Aleksa Radovic committed
395
### Added
Daniel Preston's avatar
Daniel Preston committed
396
397
398
399
400

- The `tempcategory` command has been added. This sets the category used for temporary channels.

### Changed

401
402
- Vigor command display icons and more data, such as enchantments.
- Enchantment enchanter counting fixes.
Daniel Preston's avatar
Daniel Preston committed
403
404
- Fixed typos.

Aleksa Radovic's avatar
Aleksa Radovic committed
405
## 4.66.1323 Yuria
Aleksa Radovic's avatar
Aleksa Radovic committed
406

Daniel Preston's avatar
Daniel Preston committed
407
408
409
410
411
412
### Changed

- Fixed a `RuntimeError` in `enchantment.py`.

## 4.66.1323 Yuria

Aleksa Radovic's avatar
Aleksa Radovic committed
413
414
### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
415
416
- The `heal` command has been added for the event. You can heal all your missing vigor, or a specified amount. You can
  also heal others.
417
- Event leaderboard commands, which are `>>topsweets` and `>>toppumpkin` have been added.
Aleksa Radovic's avatar
Aleksa Radovic committed
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
- The `grow` command was added that lets you grow your pumpkin. The more sweets you spend at once, the more it grows.
  The formula determining the gained weight is a positive exponential curve.
- Added the `steal` command that has consequences if you fail. It's used for stealing sweets. Failure means getting
  cursed, losing lots of vigor, and losing some Kud.
- A passive sweets adding mechanism has been added to messages. If the message and the guild meet criteria, a piece of
  candy will be given to the user. There's also a low chance for 6 to be added instead.
- The `enchant` command has been added with the ability to enchant a user. Enchanted users get higher amounts of candy
  during the event. Up to two users can enchant a user at a time and enchantments last for **2 hours**. Getting cursed
  wipes any active enchantments, so be careful.
- The curse mechanic was added. Atempting to do something bad during the event, such as stealing sweets, has a chance to
  get you cursed which has various negative effects such as reducing Vigor, which in turn has it's own negative effects.
- The `pumpkin` command and Weight resource for the spooktober event. The resource is in milligrams, the displayed value
  is in kilograms. This one also has fancy visuals!
- Added the FetchHelper class. It has it's own memory cacher to not spam the REST endpoint. Adds the ability to safely
  retrieve data about objects that are not in the general cache or obtainable from `get_<object>()` functions.
- Added detailed command statistics tracking for use in the upcoming profile rework. Such as your most used commands,
  arguments, most active guilds and channels, etc.
Aleksa Radovic's avatar
Aleksa Radovic committed
435
436
- The `trickortreat` command that gives you sweets if successfull. Includes chances for bonus candy.
- The `sweets` command and Sweets resource for the spooktober event (with fancy image generating!).
437
- The `vigor` command and Vigor resource for the spooktober event. Vigor affects your event cooldowns and chances.
Aleksa Radovic's avatar
Aleksa Radovic committed
438
439
440

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
441
- The `daily` command now gives **+1 {Currency}** for each consecutive day.
Aleksa Radovic's avatar
Aleksa Radovic committed
442
443
- Replaced the `.replace()` directives in FFXIV Timers with `.shift()` due to deprecation of the former method causing
  errors.
Daniel Preston's avatar
Daniel Preston committed
444
- Overridden getter functions will use the FetchHelper to try to get invisible data.
Aleksa Radovic's avatar
Aleksa Radovic committed
445
446
447
448
- Added a catch-all exception for the dominant color processing handler.
- Fixed the interaction origin showing "Unknown User/Server" even when there is data where the interaction came from.
- Finding items of a **Spectral** or **Ethereal** rarity awards you sweets.

449
## 4.60.1201 Maka
450
451
452

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
453
454
455
456
457
458
459
460
461
- You can now set a custom raffle icon with `>>raffleicon`. This needs to be an emote from the server you're starting
  the raffle from.
- Mentioning a channel in a `raffle` command will now start the raffle in that channel instead of the one where the
  command is executed in. Sigma will check if the user starting the raffle has the permission to Send Messages in that
  channel before starting said raffle.
- Fix global emote caching issues when using a redis or mixed cache. The cache will now be MemoryCached, forcibly, for
  this.
- The `spouses` command now sorts the users properly. This was only an issue when someone with database access started
  fucking with the data (me).
462
- The `spouses` command now displays a more accurate time since you got married to a user.
Aleksa Radovic's avatar
Aleksa Radovic committed
463
464
465
466
467
- The `divorce` command got a facelift. You are now presented with a dialogue and options on how to proceed with the
  divorce. You can ask for a mutual one which will have no cost or force the divorce costing you based on the time you
  spent married (and display the value). The final option is withdrawing the divorce proposal. Using the divorce command
  with an ID instead of a mention will not give you an option for a mutual divorce but will still display the dialogue
  and the cost of forcing the divorce.
468
469
470
- Slap now has a `smack` alias.
- Punch now has a `hit` alias.

471
472
473
474
475
476
## 4.57.1146 Taiga

### Added

- The `>>tackle` interaction is now a thing. Holding a dev hostage to make it is not ok...

477
### Changed
478
479
480
481

- Sleep now has a `nap` alias.
- Drink now has a `cheers` alias.

482
483
484
485
## 4.57.1145 Taiga

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
486
487
488
489
- The formula used for scaling quiz-type minigames has been altered. Because I got asked this earlier, taking trivia for
  reference, there is no maximum amount of Kud you can get from the minigame. However, there is an effective one due to
  the nature of a reverse exponential formula. The effective limits for trivia's **Easy/Medium/Hard/Average** would
  be **760/1520/3795/2025 Kud**, in that order.
490

491
## 4.57.1144 Taiga
Daniel Preston's avatar
Daniel Preston committed
492
493
494

### Changed

495
- Added a small `>>dictionary` safeguard for GRAMB type attribute errors.
Aleksa Radovic's avatar
Aleksa Radovic committed
496
- Added a small `>>jisho` safeguard for the field title value.
Aleksa Radovic's avatar
Aleksa Radovic committed
497
498
- The `concurrent.futures._base.CancelledError` exception will now be ignored since it happens when Sigma's forcefully
  stopped and has no valuable information.
Aleksa Radovic's avatar
Aleksa Radovic committed
499
- Fixed the `--global` argument for the `>>randomemote` command.
Daniel Preston's avatar
Daniel Preston committed
500
501
502
503
- Paginated the `>>queue` command. View past the first page with `>>queue <page>`.
- Simplified some functions in the `>>play` command file.
- Changed the audio codec in `music.py` to opus instead of mp3.
- Fixed a hardcoded word in the `>>dictionary` command.
Daniel Preston's avatar
Daniel Preston committed
504
505
- The chatter core responder has been given a hard capped response time of two minutes.
- The chatter core responder also got its message content cleaner fixed.
Daniel Preston's avatar
Daniel Preston committed
506
- Fixed an invalid keyword argument in `chatter_core_init.py`. See the arrow changelog.
Daniel Preston's avatar
Daniel Preston committed
507
- Added proper spacing between copyright text and imports that have also been formatted.
Daniel Preston's avatar
Daniel Preston committed
508
- Changed a few copyrights from being commented to multi line strings.
Daniel Preston's avatar
Daniel Preston committed
509

Aleksa Radovic's avatar
Aleksa Radovic committed
510
511
512
513
### Removed

- Not really removed... The Girls Frontline module has been disabled for now while a rework is pending.

Aleksa Radovic's avatar
Aleksa Radovic committed
514
515
516
517
518
## 4.56.1134 Taiga

### Changed

- The `>>dictionary` command has been repaired and reworked.
Daniel Preston's avatar
Daniel Preston committed
519
- The chatter core responder has been given a hard capped response time of two minutes.
Aleksa Radovic's avatar
Aleksa Radovic committed
520
- The chatter core responder also got its message content cleaner fixed.
Aleksa Radovic's avatar
Aleksa Radovic committed
521
522

## 4.55.1112 Taiga
Aleksa Radovic's avatar
Aleksa Radovic committed
523
524
525
526

### Added

- The `>>givevirginity` command was added... I have no excuse other than "I was really bored".
Daniel Preston's avatar
Daniel Preston committed
527
528
529

### Changed

Daniel Preston's avatar
Daniel Preston committed
530
- Fixed `user_avatar` checking `user.avatar_url` instead of `user.avatar`.
Aleksa Radovic's avatar
Aleksa Radovic committed
531
- Swapped delimiter in `>>ratelimit` from `/` to `:` to match the description.
Daniel Preston's avatar
Daniel Preston committed
532
533
534
535
536

## 4.55.1110 Taiga

### Changed

Daniel Preston's avatar
Daniel Preston committed
537
- Fixed some command description typos.
Daniel Preston's avatar
Daniel Preston committed
538
539
540
- Fixed an unawaited coroutine in `>>randomemote`.
- Fixed a caching issue in `>>emote`.
- Refactored a check in `>>emote` and `>>randomemote`.
Aleksa Radovic's avatar
Aleksa Radovic committed
541
- Int'd a potential float in `>>wfpricecheck`.
Daniel Preston's avatar
Daniel Preston committed
542
543
544
- Added a message content check to `>>whisper` for use in DMs.
- Fixed command descriptions in the Whisper Settings module.

Aleksa Radovic's avatar
Aleksa Radovic committed
545
## 4.55.1104 Taiga
Daniel Preston's avatar
Daniel Preston committed
546

547
548
### Added

Daniel Preston's avatar
Daniel Preston committed
549
550
551
- The `>>hangman` command. It's hangman.
- The `>>whisper` command for sending anonymous messages to a dedicated server channel.
- The `>>whisperchannel` command for setting the aforementioned channel.
Aleksa Radovic's avatar
Aleksa Radovic committed
552
553
- Made the `get_broad_target(pld: CommandPayload)` function to get a target from a payload in a hierarchy order
  of `mention > id > name or nick`.
554

Daniel Preston's avatar
Daniel Preston committed
555
556
### Changed

557
- Disable pre-caching when using a redis-centric cache system.
Aleksa Radovic's avatar
Aleksa Radovic committed
558
559
- Recipe values are now calculated based on the items they're made from and a bit of math. If you need to know, the
  formula is
560
561
562
563
  ```py
  int(sum(ingredient_values) * (3 * (0.075 * sum(ingredient_rarities))) / 100) * 100
  ```
- Items now have hardcoded values per rarity (this was always the case, but they were in the item YAMLs).
Daniel Preston's avatar
Daniel Preston committed
564
- Tweaked some comments in `>>purge` to be more accurate.
Aleksa Radovic's avatar
Aleksa Radovic committed
565
- Cleaned up the changelog a bit. Slightly less spelling and grammatical mistakes.
Daniel Preston's avatar
Daniel Preston committed
566
567
- Changed the trigger checker function for auto reactors/responders to remove punctuation.
- Added a unique user safeguard to prevent one user from spamming the reaction.
Aleksa Radovic's avatar
Aleksa Radovic committed
568
569
- Added broad targeting to `ban`, `hardmute`, `hardunmute`, `kick`, `softban`, `voicekick` and `issuewarning`. Be
  careful with broad targeting when using names.
Daniel Preston's avatar
Daniel Preston committed
570
571
572
- Changed `>>starboardlimit` to show the current limit if one isn't specified.
- Changed `>>starboardchannel` to use the current channel if one isn't mentioned.
- Fixed an error in `starboard_watcher` resulting in disabling the starboard having no effect.
Aleksa Radovic's avatar
Aleksa Radovic committed
573
574
- Updated `>>randomcomicgenerator` to accommodate joining the three images returned by the web page.
- Changed `>>wfnightwave` to not have hardcoded XP amounts, which caused errors.
Daniel Preston's avatar
Daniel Preston committed
575

Daniel Preston's avatar
Daniel Preston committed
576
577
## Removed

Daniel Preston's avatar
Daniel Preston committed
578
- Removed unnecessary `usage` and `dmable`, fields in various `module.yml` files.
Daniel Preston's avatar
Daniel Preston committed
579
580
- Removed a duplicate of `clean_word`.

Daniel Preston's avatar
Daniel Preston committed
581
582
583
584
## 4.54.1095 Chito

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
585
586
- The new `>>resetongoing` command will reset any "ongoing" locks that are placed on longer minigames to prevent
  duplicates. If a minigame gets stuck in an "ongoing" state you can clear it with this.
587
- All ongoing lists have been reworked to be resettable.
Daniel Preston's avatar
Daniel Preston committed
588
589
- Added a parameter to `>>commandstatistics` for viewing a specific command's use count.

590
## 4.54.1093 Chito
591

592
593
594
595
### Added

- An automatic leaderboard resetting clockwork has been added. It resets the leaderboards at midnight UTC.

596
597
### Changed

598
- Change `>>servericon` fallback type on no icon URL.
Aleksa Radovic's avatar
Aleksa Radovic committed
599
- Fix `>>serverinfo` to handle unrecognized/unenumerated regions.
Aleksa Radovic's avatar
Aleksa Radovic committed
600
- Added a safeguard for `>>queue` when editing lookup status messages.
Aleksa Radovic's avatar
Aleksa Radovic committed
601
- Added a safeguard for `>>bash` for the event where its cache depletes and it's not possible to refill it.
Aleksa Radovic's avatar
Aleksa Radovic committed
602
603
- The Reminder clock no longer uses a DM as a fallback but instead lets another shard take over the task for that
  reminder.
604
- Fix missing player creation voice client existence check.
605
606
607
608
- Add a JSON parsing safeguard for `>>ud` results.
- Fix deck generation for the `>>newdeck` command.
- Minor changelog heading fixes from the previous version.

Aleksa Radovic's avatar
Aleksa Radovic committed
609
610
## 4.54.1088 Chito

611
### Added
Aleksa Radovic's avatar
Aleksa Radovic committed
612

Aleksa Radovic's avatar
Aleksa Radovic committed
613
- Add a `>>finalffantasyxivtimers` command that shows Final Fantasy XIV timers cause Heide is a little bitch.
Aleksa Radovic's avatar
Aleksa Radovic committed
614
615
- Add `>>alacquisition` command that shows how you can get an Azur Lane ship.

616
### Changed
Aleksa Radovic's avatar
Aleksa Radovic committed
617
618
619

- Jisho URL format safeguard and a safeguard for the reading key for when it doesn't exist.
- Wolfram result display type check fixes and safeguards.
Aleksa Radovic's avatar
Aleksa Radovic committed
620
- The `>>lyrics` command got a fallback splitter in case the chunks are too big when split by newline.
Aleksa Radovic's avatar
Aleksa Radovic committed
621
622
- The YouTube command's like/dislike count has default values of 0 now to avoid a NoneType incompatibility.
- Added safeguards to profession commands and their dialogue generators.
Aleksa Radovic's avatar
Aleksa Radovic committed
623
624
- The music playing functions got a safeguard for voice client connections during playback and connection timeout
  safeguard when joining a channel.
Aleksa Radovic's avatar
Aleksa Radovic committed
625
- The donation link is now hardcoded to Patreon.
Aleksa Radovic's avatar
Aleksa Radovic committed
626
- Add Azur Lane stats processing safeguards for type mismatches and content checks.
Aleksa Radovic's avatar
Aleksa Radovic committed
627
628
- Add Azur Lane ship color safeguards and safeguards in case of Repair ships.

629
### Removed
Aleksa Radovic's avatar
Aleksa Radovic committed
630

Aleksa Radovic's avatar
Aleksa Radovic committed
631
632
- Remove checking the main License file's integrity to preserve docker container sanity and cross-platform byte reading
  compatibility. Holy fucking shit, fuck Windows.
Aleksa Radovic's avatar
Aleksa Radovic committed
633

Daniel Preston's avatar
Daniel Preston committed
634
635
636
637
638
## 4.52.1052: Chito

- Fixed some docstrings in the NSFW Core file.
- Refactored `>>wolframalpha` to use a more direct CSS query.

Daniel Preston's avatar
Daniel Preston committed
639
640
641
642
## 4.52.1050: Chito

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
643
644
- Added a core GalleryClient class for some of the NSFW module. This acts as a universal handler for API calls to reduce
  redundant local functions.
Daniel Preston's avatar
Daniel Preston committed
645

Daniel Preston's avatar
Tweaks    
Daniel Preston committed
646
647
648
649
650
651
652
653
## 4.52.1049: Chito

### Changed

- Fixed a possible encoding error in `integrity_check`.
- Fixed typos and inconsistent punctuation in `integrity_check`.
- Refactored the `>>convertcurrency` command to have match Sigma's command structure.

Aleksa Radovic's avatar
Aleksa Radovic committed
654
## 4.52.1048: Chito
655
656
657

### Added

658
- The `>>azurlaneskills` command shows the skill information of the given ship.
659
660
- The `>>showlicense` command shows the software's license information.
- The `>>repository` command shows the project's repository URL.
Aleksa Radovic's avatar
Aleksa Radovic committed
661
662
- An integrity check event has been added that checks the integrity of all license comments. Any missmatching of the
  license text is a violation of the GPLv3 that the project is distributed with and will shut down the software.
663
664
665

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
666
- Altered command execution to handle ClientOSError instances.
667
668
- The redis cacher will now flush all data on boot.

Aleksa Radovic's avatar
Aleksa Radovic committed
669
## 4.50.1007: Chito
Daniel Preston's avatar
Daniel Preston committed
670

671
672
### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
673
- Added the ability to specify the max number of cached messages in the main client. No less than 100 can be stored.
674
675
676
677
678
- The `>>azurlaneskins` has been added to list all the skins a ship has.
- The `>>azurlaneskin` has been added to show the given skin.

### Change

Aleksa Radovic's avatar
Aleksa Radovic committed
679
680
681
682
- Fix the `>>sniff` command saying "dances" instead of "sniffs".
- Fixed the `>>drawcard` command.
- Fixed `>>convertcurrency` by adapting it to v7 of the API.
- More role binding cache fixes.
683
684
685
686
- Made the `>>unscramblegame` command use the core cacher.
- Made the antispam checker event use the core cacher.
- Made the role binding mechanics use the core cacher.
- Made the `>>drawcard` command use the core cacher.
Aleksa Radovic's avatar
Aleksa Radovic committed
687
- Fix the collector clockwork breaking due to an invalid icon attribute parent.
688
689
690
691
692
693
- Add more detailed logging to most of the dbinit and boot events since they're a part of startup now.
- Changed the way startup events are started, they are now executed before the gateway connection starts.
- Bumped the Python version of the base image to 3.7 from 3.6, that's overdue.
- Moved static detail dicts to the core AzurLaneShip model and add a no-mobile cookie for their wiki.

### Removed
Daniel Preston's avatar
Daniel Preston committed
694

695
- Removed an unused cache dict from the `>>osu` command.
Aleksa Radovic's avatar
Aleksa Radovic committed
696
697
- The **Path of Exile** module has been completely **removed**. Nobody uses it, don't know why I thought anybody
  would...
Daniel Preston's avatar
Daniel Preston committed
698

699
## 4.48.966: Sakurako
700
701
702

### Changed

703
704
705
- Added the `colourme` alias to the `>>colorme` command.
- The `>>colorme` command now takes "surprised" as an argument that will give you a random color.
- Fixed the `>>shootfoot` command breaking due to an invalid dict default setting.
706
707
- Change the osu! command's caching.
- Change the Emote command's emote caching.
Daniel Preston's avatar
Daniel Preston committed
708
- The Unscramble Game no longer caches words, instead just runs a quick check of their validity.
709
- Yande.re command key getting refactor.
Daniel Preston's avatar
Daniel Preston committed
710
- Interaction core fixed for clients that don't use a cacher.
711
712
713
714
- Changed the XBooru cache to use the core cacher.
- Changed the PoE Passive Skill Gem command to use the core cacher.
- Changed the Rule34 cache to use the core cacher.
- NSFW caches made non-depletable.
Daniel Preston's avatar
Daniel Preston committed
715
- Various typo fixes.
716
717
718

### Removed

Aleksa Radovic's avatar
Aleksa Radovic committed
719
720
- Got rid of the "Development" section from the README. It used to have project badges in it, but since GL has a
  specific section and function for those this section is pointless.
721

722
723
724
725
## 4.48.960: Sakurako

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
726
727
- The `>>alship` command now accepts `--retrofit` to show the ship's retrofit stats and also shows an average value of
  the ship's stats. You can also add `--awaken` to see the Lv. 120 stas instead of the base stats.
728
729
730
- A few fixes for Azur Lane statistics processing and wiki scraping.
- Gelbooru hopefully fixed, shit's weird...

Aleksa Radovic's avatar
Aleksa Radovic committed
731
732
733
734
735
## 4.47.943: Sakurako

### Added

- The **Azur Lane** module is born!
Aleksa Radovic's avatar
Aleksa Radovic committed
736
737
738
739
- The `>>almimic` command will generate a random markov chain impersonation using all Azur Lane quotes. Or a single
  ship, though due to being a tiny amount of data, they can be very repetitive.
- The `>>alship` command shows basic Azur Lane ship information and stats. More commands coming soon as I've made a
  complete scraper for the AL wiki within Sigma.
Aleksa Radovic's avatar
Aleksa Radovic committed
740
741
742
743
744
745
746
747

### Changed

- The `>>stats` command now shows for which shard it is showing stats.
- Error reporter tweaks and safeguards.
- Change all calls of the `discord.Guild.icon_url` to be compatible with the new `discord.Asset` class.
- Tweaked a few `discord.User.avatar_url` calls to make sure assets don't break those.
- The `dbinit` event will now start only on **Shard #0** if the client is sharded.
Aleksa Radovic's avatar
Aleksa Radovic committed
748
749
- Replaced the `discord.py` requirement from a hard repository URL to just the pypi name since rewrite is now the master
  branch and the repo branch is archived and broken.
Aleksa Radovic's avatar
Aleksa Radovic committed
750
751
752
753
754
755
- When booting the client will set a booting status message and clear it when it's done.
- Gelbooru uses the core cacher instead of a local dict variable.
- Interactions now use the core cacher instead of a local dict variable.
- Path of Exile Active Skill Gems now use the core cacher... you get the premise, more of these will come soon.
- Made the `get_channel()` and `get_user()` not try to cache their results if the caching method is `redis` or `mixed`.

756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
## 4.45.902: Sakurako

### Added

- Docstrings, docstrings **EVERYWHERE**! Every single docstringable thing has been given a docstring.
- Common mostly static classes have been given `__slots__` attributes by *Valeth*.
- The permission logging lines now have a command blacklisting marker separate from the module one.

### Removed

- Removed parameter type hints.

### Changed

- The `>>konachan` command excepts a JSON parsing error now due to the CloudFlare issue.
- Docker build image fixes by *Valeth*.

Daniel Preston's avatar
Daniel Preston committed
773
774
775
776
777
778
## 4.41.827: Mirakurun

### Changed

- Renamed `get_` Discord HTTP functions to `fetch_` to coincide with a recent library update.

Daniel Preston's avatar
Daniel Preston committed
779
780
781
782
783
784
785
786
787
## 4.41.824: Mirakurun

### Changed

- `>>marry` now use a bool dialogue rather than a permanent proposal. You're either married or you're not.
- `>>divorce` and `>>spouses` have been refactored to reflect the marriage change.
- `bool_dialogue` now returns a `timeout` bool that says whether the dialogue was declined or timed out.
- `>>filtersell`, `>>sell` and `>>adopt` have been changed to use the previously mentioned `timeout` value.

Daniel Preston's avatar
Daniel Preston committed
788
789
790
791
792
793
## 4.41.821: Mirakurun

### Changed

- Switched which API for `>>wfnightwave` back due to the current one having placeholder descriptions.

Aleksa Radovic's avatar
Aleksa Radovic committed
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
## 4.41.820: Mirakurun

### Changed

- Fixed `KeyError` exceptions in `invasion_parser.py`.
- Switched which API `wfnews.py` and `news_parser.py` use to one that provides images.

## 4.40.818: Mirakurun

### Added

- Suppressions for "Exception too broad" warnings.
- The `WorldState` class was added for handling Waframe API calls.
- The `wforbvallis` command for checking the temperature on Orb Vallis in Warframe.
- The `wfdroptables` command which provides a link to Warframe's official drop tables.
- The `wfdailydeal` command for checking the current Daily Deal in Warframe.
- The `wffactionprogress` command for viewing faction progress for Invasions in Warframe.
- Appended the completion percentage to Waframe Invasions in `wfinvasions`.

### Changed

- All Warframe API calls have been changed to use the new `WorldState` class.
- Simplified the `remove_revision` function in `image_parser.py`.
- `version_check.py` now uses `yaml.safe_load` instead of the depreciated `yaml.load`.
- Fixed an incorrectly passed parameter in `generic.py`.
- The `wfsortie.py` file was renamed to `wfsorties.py`, along with its associated command.
- Fixed a `KeyError` exception in `wfvoidtrader`.
- Miscellanious refactors in most Warframe commands.

### Removed

- Warframe Alert commands and events.

## 4.40.810: Mirakurun

### Added

- More AIML properties for the Chatterbot.
- The `>>wfnightwave` command was added. Shows the current Nightwave challenges in Warframe.

### Removed

- The `wfsyndicates` command. API shutdown by host.

Aleksa Radovic's avatar
Aleksa Radovic committed
838
## 4.40.809: Mirakurun
Aleksa Radovic's avatar
Aleksa Radovic committed
839
840
841

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
842
- Interactions will not try to fill missing user and guild data for usage in the footer text.
Aleksa Radovic's avatar
Aleksa Radovic committed
843
844
845
846
847
- The order of the `get_scaled()` arguments has been changed for more logic, it also takes the maximum multiplier cap as
  an argument.
- The profession emote reactions are back. Here's what happened with this. People were pissed about it being made, and
  when we reverted it, more people were pissed about it being gone. So "fuck you" to the little bitches that can't click
  an icon.
848
- Fix markov chain commands sometimes failing due to upstream `KeyError` instances that make no goddamn sense.
Aleksa Radovic's avatar
Aleksa Radovic committed
849
850
- Fix the `>>listinactivewarnings` command not working. Was using a non-existent method.

Aleksa Radovic's avatar
Aleksa Radovic committed
851
852
853
854
855
856
857
858
## 4.37.759: Ange

### Changed

- Chatterbot has been improved with better details, and missing details filled.
- Fixed reporter inconsistencies and errors.
- Sigma can now be told to interact with a user like `>>lick @Sigma @NotALoli`.

Aleksa Radovic's avatar
Aleksa Radovic committed
859
## 4.37.744: Ange
860
861
862

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
863
864
- The `get_scaled()` method was added to the Cooldown Controller to get a scaled up cooldown from a base value. The
  scaled time is slightly randomized and exponential with a passive cleaning method and cap.
865
866
867
868
869
870
- The `>>massban` command was added by *Shifty*. Bans all mentioned users.
- The `>>masskick` command was added by *Shifty*. Kicks all mentioned users.
- The `>>choosemany` command was added by *Shifty*. Chooses `n` items from a given, semicolon-separated, list.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
871
- Commands' antispam cooldown now uses the the scaling cooldown to additionally prevent abuse.
872
- Professions now have special, partially randomized, scaling cooldowns.
873
874
875
- Misc and Utility modules have been moved and re-organized by *Shifty*.
- Profession rarity check exceptions have been replaced with proper ones by *Shifty*.
- Import lines cleaned and re-ordered by *Shifty*.
Aleksa Radovic's avatar
Aleksa Radovic committed
876
877
878
879
- The `>>disown` command's response when trying to disown someone who's not in your immediate family has been changed
  by *Shifty* to be clearer that you can only disown immediate family members.
- The `errors.py` core file was renamed to `error.py` by *Shifty*. Reason being that the file name should be
  consistently singular.
880

881
882
883
884
### Removed

- Profession emote interaction validation.

885
886
887
888
## 4.35.730: Ange

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
889
890
891
- The `>>roleswithpermission` (the `>>rlwperm` for short) command has been made. It lists all roles that have a given
  permission or list of permissions separated by a `; ` (semicolon). You can reverse the search so it shows that don't
  have the permission by adding `--negative` to the end of the command.
892

Aleksa Radovic's avatar
Aleksa Radovic committed
893
894
895
896
## 4.35.726: Ange

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
897
898
899
900
- Created the `CacherConfiguration` class that handles all `Cacher` classes. This adds a new core config file
  at `config/core/cache.yml` that should contain the cacher parameters. Those are: `type` for the type of `Cacher` to
  use, `size` for the max number of items in LRU and TTL caches, `time` for the time-to-live time limit in the TTL
  cache, and `host` and `port` for the Redis and Mixed cachers.
Aleksa Radovic's avatar
Aleksa Radovic committed
901
902
903
904

### Changed

- The `>>adopt` command now requires emote reaction confirmation that they agree to being adopted.
Aleksa Radovic's avatar
Aleksa Radovic committed
905
906
- The `>>familytree` command now uploads a yaml file instead of posting the contents to hastebin due to hastebin's low
  storage allowance.
Aleksa Radovic's avatar
Aleksa Radovic committed
907
- `Cacher` classes now take a `CacheConfiguration` value, instead of specific required values.
Aleksa Radovic's avatar
Aleksa Radovic committed
908
909
- The default value for the bot token has been removed and replaced with a safeguard check. Sigma now terminates without
  trying to contact discord if the token is `None`.
Aleksa Radovic's avatar
Aleksa Radovic committed
910

Aleksa Radovic's avatar
Aleksa Radovic committed
911
912
913
914
915
916
917
918
919
920
921
922
923
## 4.35.712: Ange

### Added

- Created the `ModuleConfig` class that wraps command config data for future configuration expansions.
- The initial `run.py` file now checks for any import errors. If detected, it'll try to install the requirements file.
- The ChatterBot Core returns! Brought back AI without ChatterBot, now with AIML... it's good enough.

### Changed

- Codename changed to **Ange** for **4.35**.
- The `SigmaEvent` class now has a `path` attribute and `resource()` method like the one for commands.
- Updated all copyright comments from 2018 to 2019.
Aleksa Radovic's avatar
Aleksa Radovic committed
924
925
- All instances of `plugin` have been renamed to `module`. Meaning that you need to rename `config/plugins`
  to `config/modules`.
Aleksa Radovic's avatar
Aleksa Radovic committed
926
927
- Family tree consistency fixes by *Shifty*.

Aleksa Radovic's avatar
Aleksa Radovic committed
928
929
930
931
## 2019-02-12

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
932
- Major family module fixes. Added sibling checks and make recursion issues less likely.
933
934
- Fixed the `>>colorme` hex color safeguard check.
- Fixed the `>>adopt` response not being assigned to the response variable when targeting bots.
Aleksa Radovic's avatar
Aleksa Radovic committed
935

936
937
938
939
## 2019-02-10

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
940
- Renamed `>>packages` to `>>pythonpackage`, packages is too broad and has no correlation with what the command does.
941

Aleksa Radovic's avatar
Aleksa Radovic committed
942
943
944
945
946
947
948
949
## 2019-02-09

### Changed

- No longer able to `>>adopt` bots.
- Clean the `.name` attribute of `AdoptableHuman` because fuck special characters.
- Have the `.name` attribute of `AdoptableHuman` update when they're interacted with.

Aleksa Radovic's avatar
Aleksa Radovic committed
950
951
952
953
## 2019-02-08

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
954
955
956
957
- The family tree functions have been added. You can `>>adopt` people, if you don't like them you can `>>disown` them.
  If you want to see your entire family tree from start to end use `>>familytree` and it will generate a nice little
  link with your entire tree in it. A thing to note that is that this mimics an actual biological family tree, meaning
  that you can't have more than 2 parents, cause biology.
Aleksa Radovic's avatar
Aleksa Radovic committed
958
959
960
961
962

### Changed

- Renamed all instances of the method `dictify()` to `to_dict()`. It's more uniform and logical.

963
964
965
966
## 2019-02-07

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
967
968
- The `>>sniff` interaction has been added. I have no official reason behind this besides liking the idea of lewd
  sniffs. Just being honest...
969

Aleksa Radovic's avatar
Aleksa Radovic committed
970
971
972
973
## 2019-02-05

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
974
975
- The `>>visualnoveldatabase` (I know it's long, use `>>vndb` or `>>vn` instead) command was revived. Now with 100% less
  locks and 100% more async. It looks up visual novels, obviously.
Aleksa Radovic's avatar
Aleksa Radovic committed
976

977
978
979
980
## 2019-02-04

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
981
- Fixed the `>>spelledlike` command. That issue was there for a long time but nobody really uses this command...
982
983
- The `>>shadowpollvote` command will now try to delete the vote command message.

984
985
986
987
## 2019-02-02

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
988
- Hard mute ongoing message deletion safeguard. By *Shifty*.
989
990
991
992
993
994
995
- Music playing notification edit safeguard. By *Shifty*.
- Replace aiohttp exceptions to reduce imports. By *Shifty*.

### Removed

- Disabled `>>yomomma` while a replacement endpoint is found. By *Shifty*.

Aleksa Radovic's avatar
Aleksa Radovic committed
996
997
## 2019-01-25

998
999
1000
1001
## 2019-01-24

### Added

Aleksa Radovic's avatar
Aleksa Radovic committed
1002
1003
- Selling your entire inventory or selling items with a filter will trigger a confirmation dialogue for the user to
  confirm their sale.
1004
1005
1006
1007
- The bool dialogue generator now takes a `tracked: bool` argument that records how long the user took to respond.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
1008
1009
1010
- The interaction addition is now a whitelist mechanic. Instead of being able to remove submitted interactions with
  an `❌` emote reaction to the log message, you now approve it instead with a `✅`. Unless approved, the interaction will
  not be used. Sigma will then add a `🆗` reaction of her own if successfully approved.
1011
1012
1013
1014
1015
1016
1017

## 2019-01-22

### Changed

- Server renamed to Support in the `>>help` command and make the command link lead to the website once again.
- Fix the invite URL in the `CONTRIBUTING.md` document and remove the nonexistent setup link.
Aleksa Radovic's avatar
Aleksa Radovic committed
1018
1019
- Suggestion approval and declining commands return an `ok` response if the user was not found or if the notification
  was undelivered, specifying the lookup or delivery failure.
1020
1021
1022
1023
1024
- Shortened the `status_clockwork(ev: SigmaEvent)` lines for caching the status files.
- Placed `.get()` methods in `afk_mention_check.py` to combat possible (but unlikely) `KeyError` instances.
- Refactored `module.yml` files automatically for visual alignment and clarity.
- The `>>youtube` command was repaired by *Shifty*.

Aleksa Radovic's avatar
Aleksa Radovic committed
1025
1026
1027
1028
1029
1030
## 2019-01-19

### Changed

- Remove logger creation from the `ExecutionClockwork` class as it was unused.
- The logger files contain shard numbers in them in the format of `sigma.{shard}.{date}.log`.
Aleksa Radovic's avatar
Aleksa Radovic committed
1031
1032
- The way the `>>play` command executes the `>>summon`, `>>queue` and `>>donate` commands are executed now use their raw
  methods instead of the `.execute(pld: CommandPayload)` method of the `SigmaCommand` class.
Aleksa Radovic's avatar
Aleksa Radovic committed
1033
1034
1035
1036
1037
1038
1039
- Generic responses implementation by *Shifty*, second pass.

## 2019-01-18

### Changed

- Generic responses implementation by *Shifty*, first pass.
Aleksa Radovic's avatar
Aleksa Radovic committed
1040
- Fixed extension blocked incompatibility with the Payload system by *Shifty*.
Aleksa Radovic's avatar
Aleksa Radovic committed
1041

1042
## 2019-01-10
1043

1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
### Added

- The `>>crates` command for searching crates.io Cargo/Rust packages.

### Changed

- Fix CHANGELOG.md dates and alter styling. Poor me was still stuck in 2018.

## 2019-01-09

### Added

- Generic core utility for making async HTTP requests created with the `aioget(url: str, as_json: bool)` coroutine.
- Add the `error(content: str)` generic response method.

### Changed

Aleksa Radovic's avatar
Aleksa Radovic committed
1061
1062
- Blockers/filters now check for the `administrator` permission in `guild_permissions` instead
  of `permissions_in(channel)`.
1063
1064
1065
1066
1067
1068
1069
1070
1071
- Change invite blocking functions default value for the `invite_found` variable from a `bool` to a `None`.
- Remove the `>>prefix` command minimum length limit of 2 characters.
- Fix the `>>donate` command's missing (incorrect) argument.

## 2019-01-08

### Changed

- Disable caching of blacklist items. Those are user, server, module and command blacklist entries.