v4.0.0
v4.0.0リリース 🎉
ついに本日、長期にわたって開発を進めていたv4系の正式リリースを発表します!
@nh-chitose さん、 @eve0415 さんをはじめ、開発に協力してくださった方、翻訳に携わっていただいた方、数々の助言をしていただいた方、そしてボットを見つけてくれて使っていただいているすべての方々に、お礼申し上げます!
メインの変更
- メインライブラリを
eris
からoceanic.js
に変更。
特記事項
- v4系では、Node.js v16.16以上が必須となります。アップデート前にご留意ください。
- Dockerのイメージは、リリース後30~40分程度で公開されます。
機能追加
- 新しいキャッシュシステムを追加(#1166)
- 二つのキャッシュレベル
"memory"
と"persistent"
の二段階がconfig.json
で設定できます "memory"
を設定した場合、楽曲のデータをメモリにキャッシュし、次に同じ楽曲がリクエストされた際にそれを利用します。- ループ機能を使用した際などにも高速化が期待できます。
- 同じ曲を何曲も追加した際にメモリの増加が無くなり、メモリ使用の減少が見込めます。
- メモリキャッシュは一定期間で自動的に削除されます。
"persistent"
に設定した場合、上記のメモリキャッシュに加え、cache
フォルダに永続的なデータをキャッシュします。- ディスク容量に余裕がある場合、こちらを設定することをおすすめします。
- データには実際の音声データは含まれていません。
システム情報
コマンドにて、メモリキャッシュの数および永続キャッシュの合計容量を確認できます。invoke sp;purgememcache
にてメモリキャッシュを、invoke sp;purgediskcache
で永続キャッシュを削除できます(#1190)cache
フォルダに保存されるファイルは任意のタイミングで削除することができます。- 古いキャッシュは自動で削除されます(#1356)
- キャッシュの最大容量は
config.json
にて設定することができます。詳細はドキュメントをご確認ください。
- キャッシュの最大容量は
- 二つのキャッシュレベル
- テキストチャンネルおよびボイスチャンネル以外の、スレッドチャンネル、テキストボイスチャンネル、ステージチャンネルで利用可能になりました(#1168)
- データベースを使用した際に、再生の分析情報が保存されるようになりました(#1170)
- ビューワーなどの開発は未定です
- ボットのニックネームに:u7a7a:、:stop_button:が含まれていた場合、ボイスチャンネルに参加した際にそれぞれ:u6e80:、:arrow_forward:に自動的に変更することで、ボイスチャンネルに参加しているかがわかりやすくなる機能の追加(#1177, #1178)
- 退出すると元の絵文字に戻ります
- 詳細はドキュメントをご確認ください。
- 日本語以外の言語に対応しました(#1173)
- 翻訳に協力していただける方々を募集中です
- Crowdinのプロジェクトページでよろしくお願いします。
- サーバーに最適なロケールを自動で取得しようとします(#1263)
- 翻訳に協力していただける方々を募集中です
- スラッシュコマンドの
再生
コマンドで、添付ファイルからの再生に対応しました(#1191) - メッセージを右クリック/ホールドして実行できるコマンドが追加されました(#1203)
キューに追加されました
の埋め込みなどのメッセージに対して再生
コマンドを実行することでキューに追加/再生できます。エクスポート
コマンドにより出力されたメッセージの上で右クリックしてインポート
を実行することでインポートできます。
- Replit Databaseがバックアップ用のサーバーとして利用可能になりました(#1251)
- サーバーからキックされた/サーバーが削除された際にデータベースのデータを可能な場合削除する(#1266)
- 古いログファイルを削除(#1357)
- ログを保持する個数を
config.json
にて設定することができます。詳細はドキュメントをご確認ください。
- ログを保持する個数を
- レートリミットに関するバグが発生した際に、
リセット
コマンドで回避できるようになりました(#1359) リセット
コマンドで、キューを保持したままリセットの操作を行うことが可能になりました(#1359)- ボイスチャンネルからメンバーがいなくなった際に一時停止する機能で、最後に退出したメンバーが再参加した場合に自動的に再生を再開する(#1354)
機能修正/変更
debug
がtrue
の際にも、config.json
にerrorChannel
が設定されていれば、チャンネルにログを送信する(#1131)config.json
で、多くのキーが必須になりました(#1142)- ドキュメントをご覧の上アップデートしてください。
システム情報
コマンドで表示される内容の修正(#1147)- カスタムロガーを廃止し、ライブラリを使用するようになりました(#1150)
- パフォーマンスの向上が期待できます。
- 新しいログレベルとして
TRACE
が追加されました。
- 一部のスラッシュコマンドが変更となりました(#1155)
- 一部のコマンドが変更となりました(#1155)
ヘルプ
コマンドのエイリアスにsupport
が追加されましたアップタイム
コマンドのピング
確認機能が、ピング
コマンドに分割されました。均等再生
コマンドのエイリアスにequal
が追加されました(#1427)
- 環境変数
GAS_URL
およびGAS_TOKEN
がそれぞれDB_URL
およびDB_TOKEN
に変更されました(#1170) インポート
コマンドでキューの埋め込みからインポートすることはできなくなりました(#1203)ピング
コマンドでUDP接続のpingをWebSocket接続のpingに変更(#1376)- フォールバック時の音質をより高音質なものに修正(#1380)
- より安定な再生ができるよう、第一段階のフォールバックをサポート対象にしました(#1400, #1402)
- ボイスチャンネルにボットのみが参加している状態の時に、
切断
コマンドおよびすべて削除
コマンドが使用できるようになりました(#1412)
バグ修正
- スキップの投票が機能しない問題を修正(#1163)
- v3で #1162 で修正された問題のv4側の修正です
- データベースなどの準備が正しく終了するまでボットがコマンドを受け入れないようになりました(#1170)
- コストのデータを正しくリセットする(#1210)
- v3で #1209 で修正された問題のv4側の修正です
キュー内を検索
コマンドが失敗する場合がある問題を修正(#1248)システム情報
コマンドでサーバーアイコンに関するバグを修正(#1253)- 一部の音楽の再生が途中で終了する・エラーで止まる問題を修正(#1280)
- 予期せず必要以上にバイナリの更新確認を行う問題を修正(#1284)
- フォールバックした際の再生の問題を修正(#1355)
ニュース
コマンドで、過去に送信された検索パネルを破棄するボタンを表示するよう修正(#1398)
ドキュメント
- ドキュメントおよびREADMEの継続的な変更(#1114, #1165, #1169, #1249, #1265, #1273, #1283, #1348, #1352, #1360, #1368, #1373, #1377, #1379, #1423)
依存関係のアップデート・変更
- 依存関係の更新は、対応Node.jsのバージョンの変更やメインライブラリの変更などを通して追加/変更/削除が多いため、変更ログをご参照ください。
その他の変更
bot.ts
の分割(#1124)- コードの改善(#1132, #1171)
- コアのライブラリを
eris
からoceanic.js
に変更(#1126) - スラッシュコマンドの同期機能が改善されました(#1159, #1160)
- インタラクションの処理を改善しました(#1161)
- 継続的な翻訳(#1207, #1225, #1228, #1254, #1256, #1257, #1262, #1264, #1269, #1277, #1288, #1290, #1299, #1300, #1301, #1302, #1306, #1311, #1317, #1318, #1324, #1327, #1330, #1342, #1346, #1347, #1349, #1358, #1361, #1370, #1375, #1384, #1390, #1406, #1411, #1425, #1432, #1436)
- @nh-chitose さんをはじめ、Crowdinで翻訳に携わっていただいる(いただいた)すべての方々にこの場を借りてお礼させていただきます。ありがとうございます。
- Docker-Composeで利用できるようサンプルファイルを追加(#1275, #1338, #1339)
- Dockerイメージに一部のオプションの依存関係が欠落していた問題を修正(#1276)
- VSCode用のタブサイズの設定を追加(#1418)
- コマンド解決のパフォーマンスを向上しました(#1429)
- DockerのベースイメージのOSを更新しました(#1433)
その他の特記事項(再掲)
- v4系では、Node.js v16.16以上が必須となります。
- Dockerのイメージは、リリース後30~40分程度で公開されます。
What's Changed
- Docs: update support status of versions by @mtripg6666tdr in #1114
- Chore(dependabot.yml): re-targeting to v3 branch by @mtripg6666tdr in #1115
- Chore(action): update targeting branch by @mtripg6666tdr in #1116
- Docs: notice of developing branch by @mtripg6666tdr in #1117
- Chore: setup trap when debug mode is disabled by @mtripg6666tdr in #1118
- Chore(eslint): change eslint config by @mtripg6666tdr in #1120
- Improve: split bot.ts by @mtripg6666tdr in #1124
- Change: migrate the main lib from eris to oceanic by @mtripg6666tdr in #1126
- Fix: volume not working by @mtripg6666tdr in #1128
- Fix: failing to reply to message components by @mtripg6666tdr in #1129
- Docs: update support table by @mtripg6666tdr in #1130
- Fix: send error log even if debug is on by @mtripg6666tdr in #1131
- Improve: refactor overall code by @mtripg6666tdr in #1132
- Chore: update package configuration by @mtripg6666tdr in #1133
- Improve: refactor stream transformer by @mtripg6666tdr in #1136
- Remove: custom timer by @mtripg6666tdr in #1138
- Update: pako from 1.0.11 to 2.1.0 by @mtripg6666tdr in #1139
- Fix: temporary fix for pako by @mtripg6666tdr in #1140
- Change: update config.json by @mtripg6666tdr in #1142
- Feat: SearchPanelManager by @mtripg6666tdr in #1143
- Fix: broken version detection by @mtripg6666tdr in #1144
- Fix: systeminfo modules by @mtripg6666tdr in #1147
- Fix: broken message-based-command by @mtripg6666tdr in #1148
- Fix: playing music by @mtripg6666tdr in #1149
- Change: use log4js instead of custom logger and utility refactoring by @mtripg6666tdr in #1150
- Change(commands): overall improvement by @mtripg6666tdr in #1155
- Update: bump oceanic.js from 1.5.0 to 1.5.1 by @mtripg6666tdr in #1157
- Feat: partial dsl by @mtripg6666tdr in #1158
- Change: prepare for command groups by @mtripg6666tdr in #1159
- Improve: command comparing method by @mtripg6666tdr in #1160
- Feat:
InteractionCollector
by @mtripg6666tdr in #1161 - Fix: bugs by @mtripg6666tdr in #1163
- Change: change some logs to trace level by @mtripg6666tdr in #1164
- Docs: update documentation by @mtripg6666tdr in #1165
- Feat: source caching by @mtripg6666tdr in #1166
- Feat: use various text channel in server by @mtripg6666tdr in #1168
- Docs: update configuration docs by @mtripg6666tdr in #1169
- Improve: refactor by @mtripg6666tdr in #1171
- Feat: caching behavior by @mtripg6666tdr in #1172
- Feat: collect analytics by @mtripg6666tdr in #1170
- Improve: Change botself nickname by @nh-chitose in #1177
- Fix: changing nickname somewhat broken in partial condition by @mtripg6666tdr in #1178
- Feat: i18n by @mtripg6666tdr in #1173
- Fix: store cache also on fetch by @mtripg6666tdr in #1179
- Chore(Docker): fix building by @mtripg6666tdr in #1180
- Chore(crowdin.yml): update configuration by @mtripg6666tdr in #1182
- Chore(crowdin.yml): fix locales structure by @mtripg6666tdr in #1183
- Chore(crowdin.yml): update configuration by @mtripg6666tdr in #1184
- Chore(crowdin.yml): no ci skip by @mtripg6666tdr in #1185
- Chore(crowdin.yml): add file type by @mtripg6666tdr in #1187
- Fix: typo by @mtripg6666tdr in #1188
- Change: support plurals by @mtripg6666tdr in #1189
- Feat: manage cache from command by @mtripg6666tdr in #1190
- Feat: play attachment via slash commands by @mtripg6666tdr in #1191
- Docs(README.md): add localization note by @mtripg6666tdr in #1192
- Feat: bgmbd by @mtripg6666tdr in #1193
- Change: update translations in English by @mtripg6666tdr in #1181
- Fix: wrong label in PlayManager by @mtripg6666tdr in #1199
- Update: deps by @mtripg6666tdr in #1200
- Docs: politer by @mtripg6666tdr in #1201
- Fix: add a missing text by @mtripg6666tdr in #1202
- Feat: message commands by @mtripg6666tdr in #1203
- Change: update translations by @mtripg6666tdr in #1194
- Fix: stream stops unexpectedly by @mtripg6666tdr in #1205
- Chore(crowdin.yml): change pr title by @mtripg6666tdr in #1208
- Fix: reset cost on manually stop by @mtripg6666tdr in #1210
- Fix: handle stream timeout by @mtripg6666tdr in #1211
- Chore(crowdin.yml): missing double quote by @mtripg6666tdr in #1212
- Fix: translate text correctly by @mtripg6666tdr in #1214
- Chore(dependabot.yml): fix invalid config by @mtripg6666tdr in #1215
- Update: bump webpack from 5.74.0 to 5.76.1 in /docs (#1206) (cherry-picked) by @mtripg6666tdr in #1216
- Fix: player bugs by @mtripg6666tdr in #1218
- Bump: package version to v4.0.0-beta.0 by @mtripg6666tdr in #1217
- Chore(actions): fix for pre-release by @mtripg6666tdr in #1219
- Chore(Dockerfile): fix docker image by @mtripg6666tdr in #1220
- Bump: package version to v4.0.0-beta.1 by @mtripg6666tdr in #1221
- Change: update translations by @mtripg6666tdr in #1207
- Update: deps by @mtripg6666tdr in #1224
- Change: update translations by @mtripg6666tdr in #1225
- Fix: update bound channel by @mtripg6666tdr in #1226
- Feat: log elapsed time by @mtripg6666tdr in #1227
- Update: deps by @mtripg6666tdr in #1234
- Update(action): bump actions/deploy-pages from 1 to 2 (#1229) (cherry-picked) by @mtripg6666tdr in #1236
- Update(docs): bump @tsconfig/docusaurus from 1.0.6 to 1.0.7 in /docs (#1175) (cherry-picked) by @mtripg6666tdr in #1243
- Update(docs): bump @docusaurus/core from 2.3.1 to 2.4.0 in /docs (#1240) (cherry-picked) by @mtripg6666tdr in #1244
- Update(docs): bump @docusaurus/module-type-aliases from 2.3.1 to 2.4.0 in /docs (#1241) (cherry-picked) by @mtripg6666tdr in #1245
- Update(docs): bump @docusaurus/preset-classic from 2.3.1 to 2.4.0 in /docs (#1242) (cherry-picked) by @mtripg6666tdr in #1246
- Fix(commands/searchqueue): fail to search items in queue by @mtripg6666tdr in #1248
- Docs: configurable port for logger by @mtripg6666tdr in #1249
- Feat: replit database adapter by @mtripg6666tdr in #1251
- Feat: restore legacy db feature by @mtripg6666tdr in #1252
- Fix(commands/log): broken icon by @mtripg6666tdr in #1253
- Docs: fix wrong indent and add notice by @mtripg6666tdr in #1254
- Change: update translations by @mtripg6666tdr in #1228
- Fix: old message by @mtripg6666tdr in #1255
- Change: update translations by @mtripg6666tdr in #1256
- Change: update translations by @mtripg6666tdr in #1257
- Update: deps by @mtripg6666tdr in #1261
- Bump: package version to v4.0.0-beta.2 by @mtripg6666tdr in #1258
- Feat: infer guild locale by @mtripg6666tdr in #1263
- Change: update translations by @mtripg6666tdr in #1262
- Feat: delete guild data on guild deletion by @mtripg6666tdr in #1266
- Change: update translations by @mtripg6666tdr in #1264
- Docs: update documentation by @mtripg6666tdr in #1265
- Fix: permission description by @mtripg6666tdr in #1267
- Bump: package version to v4.0.0-beta.3 by @mtripg6666tdr in #1268
- Change: update translations by @mtripg6666tdr in #1269
- Docs: buildtools by @mtripg6666tdr in #1273
- Update: deps by @mtripg6666tdr in #1274
- Feat: docker-compose by @mtripg6666tdr in #1275
- Chore(Docker): fix deps by @mtripg6666tdr in #1276
- Change: update translations by @mtripg6666tdr in #1277
- Fix(fallback): unexpected stream interruption by @mtripg6666tdr in #1280
- Fix:
all
player events not working by @mtripg6666tdr in #1282 - Docs: update documentation about language detection by @mtripg6666tdr in #1283
- Fix: update last check datetime on downloading a binary by @mtripg6666tdr in #1284
- Change: fallback notice by @mtripg6666tdr in #1285
- Docs: fix unclear expression by @mtripg6666tdr in #1287
- Change: update translations by @mtripg6666tdr in #1288
- Fix(commands/commands): invalid example by @mtripg6666tdr in #1289
- Change: update translations by @mtripg6666tdr in #1290
- Bump: package version to v4.0.0-beta.4 by @mtripg6666tdr in #1292
- Update: deps by @mtripg6666tdr in #1296
- Fix: cannot read channelID of undefined by @mtripg6666tdr in #1297
- Fix(commands/movelastsongtofirst): fix message by @mtripg6666tdr in #1298
- Change: update translations by @mtripg6666tdr in #1299
- Change: update original and translations by @mtripg6666tdr in #1300
- Change: translatable by @mtripg6666tdr in #1301
- Change: update translations by @mtripg6666tdr in #1302
- Fix(commands/search): wrong message by @mtripg6666tdr in #1303
- Fix(commands/nowplaying): invalid argument by @mtripg6666tdr in #1304
- Update: deps by @mtripg6666tdr in #1305
- Change: update translations by @mtripg6666tdr in #1306
- Bump: package version to v4.0.0-beta.5 by @mtripg6666tdr in #1308
- Fix: show messages in correct language by @mtripg6666tdr in #1309
- Fix: show messages in correct language by @mtripg6666tdr in #1310
- Change: update translations by @mtripg6666tdr in #1311
- Fix: emoji in help by @nh-chitose in #1315
- Update: deps by @mtripg6666tdr in #1316
- Change: update translations by @mtripg6666tdr in #1317
- Change: update translations by @mtripg6666tdr in #1318
- Update: deps by @mtripg6666tdr in #1322
- Fix: get localized description correctly by @mtripg6666tdr in #1323
- Change: update translations by @mtripg6666tdr in #1324
- Bump: package version to v4.0.0-beta.6 by @mtripg6666tdr in #1325
- Fix: localize button labels on control panel by @mtripg6666tdr in #1326
- Change: update translations by @mtripg6666tdr in #1327
- Fix: missing translation by @mtripg6666tdr in #1328
- Chore: fix lint errors automatically by @mtripg6666tdr in #1332
- Change: update translations by @mtripg6666tdr in #1330
- Fix: cost calculation by @mtripg6666tdr in #1333
- Bump: package version to v4.0.0-beta.7 by @mtripg6666tdr in #1329
- Fix: volume not working by @mtripg6666tdr in #1334
- Fix: use dependent label in message commands by @mtripg6666tdr in #1335
- Change: update translations by @mtripg6666tdr in #1336
- Bump: package version to v4.0.0-beta.8 by @mtripg6666tdr in #1337
- Fix(compose): typo by @mtripg6666tdr in #1338
- Fix(compose): hostname of db by @mtripg6666tdr in #1339
- Fix: wrong playlist processing message by @mtripg6666tdr in #1340
- Translate: log->basic into Japanese by @nh-chitose in #1341
- Chore(crowdin.yml): fix readme mapping by @mtripg6666tdr in #1343
- Change(commands/loopqueue): prefer
loopqueue
toqueueloop
by @mtripg6666tdr in #1344 - Change: update translations by @mtripg6666tdr in #1342
- Fix(commands/commands): remove duped command names by @mtripg6666tdr in #1345
- Change: update translations by @mtripg6666tdr in #1346
- Change: update translations by @mtripg6666tdr in #1347
- Docs: add i18n readme links by @mtripg6666tdr in #1348
- Docs: update tutorial by @mtripg6666tdr in #1352
- Update: deps by @mtripg6666tdr in #1353
- Change: update translations by @mtripg6666tdr in #1349
- Feat: auto-resume on voice-channel join by @mtripg6666tdr in #1354
- Fix: fallbacking stream interruption by @mtripg6666tdr in #1355
- Feat: delete old log files by @nh-chitose in #1357
- Change: update translations by @mtripg6666tdr in #1358
- Feat: purge stale caches automatically by @mtripg6666tdr in #1356
- Fix: rate-limitting bucket bug (workaround) by @mtripg6666tdr in #1359
- Docs: add new configurations by @mtripg6666tdr in #1360
- Change: update translations by @mtripg6666tdr in #1361
- Change: cacheLimit is now optional configuration by @mtripg6666tdr in #1362
- Update: deps by @mtripg6666tdr in #1365
- Update(action): bump peter-evans/create-pull-request from 4 to 5 (#1364) (cherry-picked) by @mtripg6666tdr in #1366
- Docs: use consistent branch name in dependency badge by @mtripg6666tdr in #1368
- Bump: package version to v4.0.0-beta.9 by @mtripg6666tdr in #1369
- Change: update translations by @mtripg6666tdr in #1370
- Chore(eslint): enable
no-floating-promises
by @mtripg6666tdr in #1372 - Docs: add a link to README in french by @mtripg6666tdr in #1373
- Change: replace udp ping with ws ping by @mtripg6666tdr in #1376
- Change: update translations by @mtripg6666tdr in #1375
- Docs: add french by @mtripg6666tdr in #1377
- Fix: handle error while canceling removing last added song by @mtripg6666tdr in #1378
- Docs: default prefix is no longer present by @mtripg6666tdr in #1379
- Fix: play higher quality audio by @mtripg6666tdr in #1380
- Fix: inaccurate command comparison by @mtripg6666tdr in #1381
- Update: deps by @mtripg6666tdr in #1382
- Bump: package version to v4.0.0-beta.10 by @mtripg6666tdr in #1383
- Change: update translations by @mtripg6666tdr in #1384
- Fix: Crowdin commit message by @nh-chitose in #1389
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1390
- Feat: news localization by @nh-chitose in #1391
- Update(docs): bump typescript from 4.9.5 to 5.0.4 in /docs (#1223, #1321, #1388) (cherry-picked) by @mtripg6666tdr in #1396
- Update: deps by @mtripg6666tdr in #1397
- Fix(commands/news): button to cancel previous search by @mtripg6666tdr in #1398
- Change(commands/log): make header bold by @mtripg6666tdr in #1399
- Change: 2nd strategy is now normal support by @mtripg6666tdr in #1400
- Fix: slice command-description in default language by @mtripg6666tdr in #1401
- Feat: support miscellaneous features in play-dl environment by @mtripg6666tdr in #1402
- Fix: skip upcoming songs by @mtripg6666tdr in #1403
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1406
- Docs: add feature showing status by nickname by @mtripg6666tdr in #1407
- Bump: package version to v4.0.0-beta.11 by @mtripg6666tdr in #1408
- Feat: make some commands usable when only bot in vc by @mtripg6666tdr in #1412
- Docs: add en-GB link by @mtripg6666tdr in #1413
- Fix: fallback notice after cache restoration by @mtripg6666tdr in #1414
- Revert "Docs: add en-GB link" by @mtripg6666tdr in #1415
- Chore(crowdin.yml): change mapping of localized README files by @mtripg6666tdr in #1416
- Revert "Chore(crowdin.yml): change mapping of localized README files" by @mtripg6666tdr in #1419
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1411
- Fix: gracefully stop streams by @mtripg6666tdr in #1417
- Chore: VSCode default tabsize fixed by @nh-chitose in #1418
- Feat: skip syncing commands by @mtripg6666tdr in #1420
- Fix: not accessing db collection when db is not ready by @mtripg6666tdr in #1421
- Bump: package version to v4.0.0-beta.12 by @mtripg6666tdr in #1422
- Change: some command names by @mtripg6666tdr in #1424
- Docs: update documentation by @mtripg6666tdr in #1423
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1425
- Add: new alias
equal
toequalplayback
by @mtripg6666tdr in #1427 - Feat(commands/command): autocomplete command option by @mtripg6666tdr in #1428
- Perf: improve resolving command by @mtripg6666tdr in #1429
- Fix(commands/command): omit duplicated alias by @mtripg6666tdr in #1430
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1432
- Bump: package version to v4.0.0-beta.13 by @mtripg6666tdr in #1431
- Chore(Docker): update base os version by @mtripg6666tdr in #1433
- Fix: exceeding maximum count of autocomplete options by @mtripg6666tdr in #1434
- Change(i18n): sync translations from Crowdin by @mtripg6666tdr in #1436
- Update: deps by @mtripg6666tdr in #1438
- Fix(commands/command): autocomplete dupes by @mtripg6666tdr in #1439
- Fix(commands/command): no alias by @mtripg6666tdr in #1440
- Bump: package version to v4.0.0-beta.14 by @mtripg6666tdr in #1441
- Fix(commands/command): unintended none label by @mtripg6666tdr in #1442
- Bump: package version to v4.0.0 by @mtripg6666tdr in #1435
New Contributors
- @nh-chitose made their first contribution in #1177
Full Changelog: v3.11.0...v4.0.0