見出し画像

Sasa 更新ログ

2022/9/7から稼働しているSasaにどういう変更が加わっているか、一目で確認できるページです。ここではなるべく「何ができるようになった」に重点を置き、開発目線のことは書かないようにします。


2022/9/8(開発サイト移動)

いきなり開発目線の話になりますがbotのコードを書くサイトを変更しました。この理由としてはもともと使う予定だったReplitというサイトではbotがたびたびオフラインになり30分間ほど使用不能になる事態が起きたからです。これの原因はサイトとDiscordの相性が悪すぎる、としか言えず、よくわからないままです。移動先のサイトでは全く同じコードで問題なく動いているのでコードも原因じゃないんだよなぁ。Replitサヨナラ。

2022/9/10(足し算機能)

Sasaリリース後初めての機能追加です。CoCの戦闘の時にdbとかでよく出てくる「1d3+1d4」みたいなダイスの目の足し算処理ができるようになりました。これでCoCに欲しい機能はほぼ出尽くしたんじゃないかな?ってレベルです。シノビガミのダイス機能も早いうちに追加したいなぁ。

ここからちょっと駄弁ります。現状シノビガミ向け機能のうちプロットの処理だけは多分難しいんですよね。プロットを各個人に訊いて、それを覚えておいてオープンの合図で公開する……botの仕様上サーバーごとに何かを記憶することができない(っぽい)ので……解決案が見つかれば実装できるかもですが。とりあえずは2d6での成功/失敗判定とシノビガミ用クイックダイスになると思います。ビガミは成功失敗がCoCと反対だからそれ用にコマンド作る。ココフォリアでシノビガミの2d6振る時のコマンド調べよっと。

2022/9/12(シノビガミ対応)

ようやく充実した、という感じです。機能としては単純で、2d6を成功値付きで振るとシノビガミの判定になるよ〜、というもの。結局シノビガミ専用のチャパレよくわからなかった。成功/失敗判定はCoCの逆の判定(成功値以下で成功扱い)になります。逆凪の時ちょっとややこしいから注意だね。シノビガミ用のクイックダイスも作ってあげます。PC向けにはシノビガミの頭文字から「ss」、スマホ向けには打ちやすい「なな」(七夕の意味も込めて)にしました。使いにくかったらいじるのでビガミよくやる方からのご意見お待ちしてます。

ひとまず実装したい機能は一通り入れられたかな……という感じなので一旦開発は休憩です。ここからは実際に使ってみて出てくるであろう問題に逐一対応する方針で行きたいので質問箱とかに気楽にポイッとご意見くださいな。なかなか自卓内だけじゃ見つからないポイントもあるので。

2022/9/19(シャッフル・チョイス機能)

初めていただいた実装希望の機能です。実は身内卓のbotにはshuffleはもう実装してあったんですが、HO割り振りに迷った時くらいしか使わなかったのでSasaでは需要ないかな〜と勝手に思ってたんですよね。まさかココフォリア(の根幹のシステム)にもあったとは。shuffleができればchoiceはほんの2、3文字足せば出来上がるくらいにシステム似てるんで技術的にはとても楽に実装できました。いいこと。
shuffle/choiceの要素に「パンダ」が入ってるとbotが仕事そっちのけでリアクションつけて満足する不具合(?)があったのですぐ直しました。

2022/9/20(bothelp表示改善)

前々からbotの機能が増えてきてbothelpを送った時の返事が長いな〜と思っていたので行った改修です。コマンド送信後にまずヘルプの1ページ目が出てきて、botが付けてくれるリアクションからページ番号を押せばそのページに変化する…というDiscordのbotにはよくある機能。これ実はめちゃくちゃ苦労しました。でも格段に見やすさが向上したから達成感もひとしおです。

2022/10/30(バージョンアップとか)

いつのまにか300サーバーも突破してました、感謝です!
多忙で日記つけるのが遅くなりました。10/24に起きた大きめの不具合についてです。この日(とてもありがたいことに)Sasaの告知ツイートが突然伸び始めまして、導入サーバー数がこの日だけで100増えました。そしてそれに伴ってbotが一回動かなくなりました……メンテして掴めた原因が本当にアホでした。実はこのbot、開発言語がめちゃくちゃ古いバージョンのものを使っているんですがそれがダメだったらしいです。サーバー数が多くなると古いバージョンだと対応できなくなるとかかな?と思っています。試しにバージョンを11から12に上げたら上手く動いたので今はそのままバージョン12で動いてます。ちなみに現行最新バージョンは14です(おい)。アプデするたびに一部のコマンドが書き方変わって使えなくなるせいで手間が多くてなかなか手が出しにくいんですよね………いつかバージョン14にします。いつか。

2022/11/1(バージョンアップとボタン)

おそらくバージョン12だったのが原因で導入サーバー数増加による不具合が出てきたので再度アプデ、バージョン13になりました。そしてこれに伴ってリアクションを使ったbothelpのページ切り替え機能がなぜか完全にダメになったのでいろいろ試行錯誤した結果こうなりました。

良くない????
バージョン13から使えるようになってたボタン機能です。他botでも使ってるものが多くてどうやるのか気になってたのでとても良い。このボタンだと30秒の制限もないのでいつでもページ切り替えてもらえます。ただボタンがずっと残るのが気になるかなって感じはします。そのうち一定時間で消える仕様に変えるかも。
(2022/11/5追記)30秒でボタンが消えるようにしました。過去に出したボタンももう一度押せば30秒で消えるようになってます。

2022/11/4(不具合修正)

アプデを重ねて見えてきた小さめの不具合の修正をしました。具体的には①DMにコマンドを送っても反応できない不具合、②d66が振れない不具合(質問箱でのご指摘ありがとうございます)の2点です。①はアプデに伴う仕様変更について調べてたら見つかったんですけど②は完全に盲点でしたね……なんで不具合吐いたのかは分からないんですけど直し方は知ってるパターンのやつでした。
質問箱のご指摘、ご要望本当に助かるので忌憚のないご意見を今後ともよろしくお願いします〜!

2022/11/27(反転機能、細かい調整)

こちらも質問箱でいただいた要望から。ダイス判定が2d6以外は全て成功値以下で成功になる仕様はCoCとビガミ以外のシステムでは欠点になるかなぁ…と薄々は思っていたのでスバっと解決しました。反転をどう実装するか結構悩んだんですが、「できるだけ普通の成功判定と打ちやすさが変わらない」「成功値側の数字を少し変えるだけでいい」の2点からこの仕様にしました。数字とdしか使わない点が普通のダイスと同じだからたぶんベスト…
それからコードを見返してて気づいたことなんですが、「d100 50」みたいにダイスの数が1個の時の1を省略する書き方で成功判定させても判定返さなかったんですね。これはよくないので直しました。ついでに結構コードが整理できて、20行ぐらいは短くなりました。プログラムは短いほどいいですからね。ちなみにSasaのコードはわかりやすいように入れてある改行を含めて700行ぐらいです。
そして早いもので導入数が650サーバーを突破しました。本当にありがとうございます。自分のbotのオタクなので毎日サーバー数チェックしてこんなグラフまで作ってます。ぐんぐん増えてる。

それから最後にもう一つ嬉しかった出来事を書いておきます。

なんと!こちらの記事でSasaが紹介されていました!!!🎉🎉🎉
ひそかに「まとめサイトで扱われるようなbotにする」って目標を持ってたので本当に……本当に嬉しいです!次の目標は1000サーバーとかかな……
お祝い企画とかできたらいいんですけどただのダイスだから特にできることないんですよね。RTキャンペーンみたいなのも配るものが無いし。クリチケ配る?
まあこれからも無料で全機能提供していきますからそこはご安心を〜

2023/2/24(Shardingとバラバラダイス)

Shardingに関しては思いっきり開発の話なので詳細は省きますが導入数が2/9に2500サーバーを越えたときに起きた問題の関係でした。試験勉強してる時に起きたんでめちゃ大変でした…
本題はバラバラダイスです。足し算しない以外はほとんどdのダイスと同じだったので技術的にはそんなに難しくなくて助かりました。
ところで遅すぎるんですが気づいたら年明けて2ヶ月経ってます。今年もSasaをよろしくお願いします。

2023/4/10(レンタルサーバー移行、支援サイト開設)

導入数が増えてきた影響で今まで使っていたサーバーが過負荷状態になって動作が不安定になってました。そこでレンタルサーバー(ふつうは個人サイトを作るのに使うそうです)を借りてそこでSasaを動かすことにしました。これで動作が安定して一安心かな〜。さらっと書いてますが知らないことだらけでめちゃくちゃ苦労しました。支援サイト開設したけど果たして維持費分集められるか……余裕のある範囲でご支援お願いします〜🙇

2023/5/8(メルセンヌツイスター)

Sasaの根幹のダイスの乱数生成に関わる部分の調整になります。今までは開発環境側が用意していた乱数に基づいてダイス結果を出していましたが、調べてみるとどうも出目が偏りやすいそうです。そこで「メルセンヌツイスター」というもっとずっとランダム性が高い仕組みを利用することにしました。これでめっちゃクリティカルとファンブルが続くみたいなことが減る、かもしれないです。保証はないですけど。

2023/5/17(ニックネーム対応)

小さな変更点ですがダイスを振った時の名前の表示にサーバー上でのニックネームが反映されるようになりました。シナリオ用にニックネームをPC名にしている人には嬉しいと思います。

ぼくのアカウント名はHikoですがきちんとニックネームの「ひこ」で表示されています

2023/6/2(エラー対応・並び替え機能・ヘルプまわりとfanboxのこと)

今回の更新は主に3種です。
①500d100みたいにめちゃくちゃ多くダイスを振ると環境依存のエラーが起きてSasaが落ちてしまう問題をなんとかしました。解決しました、ではない理由は500d100は相変わらず振れないからです。振ろうとするとSasaができないよ〜とだけ言ってくれます。落ちません。
②並び替え機能の実装。詳細はbot紹介の方に書いてあるので省きますが、○dd△の形はそこそこ打ちやすくていいのでは?と思っています。デフォルトで並び替えるR○llemさんとある他ダイスがあるのはもちろん知っていたのですが、出目の順番が大事なことも時々あるので(複数のNPCとの戦闘とか)どうしてもオプション機能での実装にしたかったです。
③ヘルプ関係をちょっと調整しました。量が増えたので3ページになったことと、「全文表示」のボタンをつけることにしました。「bothelp all」いらんやんって思ったので……。allのほうもちゃんと使えますけどね。

ここから少しfanboxのお話。ご支援少しずつですがいただけておりなんとか運営費を賄うことができそうです。ただ現状なんの投稿もしていないのでメリットが0なのもわかっているので、時間を縫いながらbotの作り方についての有料記事を書くつもりです。内容としては「Sasa同様の動作をするダイスbot」「サーバーでyoutubeの音楽を流すことができるbot」の2つの作り方は技術的に提供できる状態なので、これらのbotが自鯖に欲しいな、という方はぜひ。
もちろんbotを作るのは工程数がだいぶ多くて大変なので、記事見てもわからない時にはDMとかで対応したいとも考えています。ご安心を〜

2023/6/27(重複ありchoice・小さな修正)

重複を許す「choicexX」「ccxX」コマンドを追加しました。
それから、「にゃ〜ん」が後ろに文字が続かず、それ単体でないと反応しないように変更しました
あと「ワン」「ワンワン」に反応するようになりました。ダイスbotとは。

2023/8/7(シークレットダイス)

有名な機能、シークレットダイスの実装をしました。クイックダイスももちろん対応したんですが、シノビガミのクイックダイスを振る時に「sss」って打つことになってちょっと面白くなっちゃいました。

2024/1/19(CoC7版対応)

半年くらい空いて年も明けました…ようやく対応です。7版。ボーナスダイスとか、イクストリーム成功とか、6版にない機能が多くて面白いですね。たいして考えてなかったので「choice」のccと被るのをどうしようか悩みました。うまく両立できました🙌
今年もSasaをよろしくお願いします。

2024/4/11(招待リンク変更)

以前からちょくちょく止まりがちだったのは気づいていたんですが、ログの確認とかが億劫で先のばしにしていました。ログファイルの場所、意外とわかりやすかった…
ということでなぜ止まるのかを見てみると権限が足りていないことがわかったので改めて必要な権限を設定し直して招待リンクを更新しました。なぜ今まで権限が足りないのに動いていたかというと、ぼくのテスト環境の@everyoneに埋め込みリンクとかの必要な権限が含まれていたからです。botが実際に持つ権限=導入されたサーバーの@everyoneの権限+botの権限 なので、そのサーバーの@everyoneの権限によって動く動かないが違っていた、ということです。
そして結構恐ろしいんですがこの権限不足、ぼくが想定していなかったのでエラーが起きるたびに再起動がかかって1分ぐらい完全に動けなくなるんですよね。詳細は省きますが正月とかにリミットかかって止まっていたのもおそらくこれのせいなので、実質2つの問題が解決したと言っていいでしょう。

この記事が気に入ったらサポートをしてみませんか?