Coder Social home page Coder Social logo

shioribotdotnet's People

Contributors

ca45382 avatar cllightz avatar hitsub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

shioribotdotnet's Issues

冗長なRegex呼び出しの高速化

\d の部分と \D{1,3} の部分を再度取り直す処理がもったいないので、最初に Regex.Match(m_commandEventArgs.Name, @"(\d)(\D{1,3})") を呼んで、その返り値のMatchのGroupsを活用しましょう

Originally posted by @cllightz in #125 (comment)

凸宣言と凸報告の連動案

1ニャル等の詳細を書く都合上、難しいかもしれませんが一応提案。
凸宣言部屋で✅や🏁を押した際に、凸報告でも
✅なら1凸消化済、
🏁なら0.5凸消化済、
というふうに連動させられると凸報告忘れがなくなって便利かもしれない。

iPhoneで予約一覧が見切れてつらい

PC

iPhone 8

現状のフォーマット

14周目, 2ボス以降の予約一覧です. 
 1. 14周目 3ボス へごちんはっしー 持ち越しで殴ります
 2. 14周目 4ボス ローデン 持ち越し約20秒
 3. 14周目 5ボス ユウ 
 4. 15周目 1ボス ふっきー 持越討伐
 5. 15周目 3ボス ふっきー 
 6. 15周目 3ボス ほげ 
 7. 15周目 3ボス ふが 
以上の7件です
  • 横幅が長すぎてiPhoneで見切れる
  • どのボスが空いてるのかパット見で分からない

改善案

14-2以降の予約一覧です
14-3 へごちんはっしー 持ち越しで殴ります
14-4 ローデン 持ち越し約20秒
14-5 ユウ 
15-1 ふっきー 持越討伐
15-2
15-3 ふっきー 
     ほげ
     ふが 
以上の7件です

mySQLConnector.Database.BeginTransaction() も using できるかもしれない

mySQLConnector.Database.BeginTransaction() が返す IDbContextTransactionIDisposable なので、トランザクション処理の末尾で明示的に Commit() せずとも、using文による自動的な Dispose() によって Commit() してくれるかもしれない?

その場合、書き方がスッキリする箇所が多そう。

要検証。

!todayが反応しない問題

linux上でBrotliの解凍ができない問題があった。

Brotli.netがバグを発生させていることがわかったのでSystem.IO.Compressionで対応する。

進行機能での持ち越し登録の方法を考える

進行で、finした場合に持ち越し登録されるが、秒数が+20秒される仕様になっている。

しかし、本戦が終了した際に秒数を打ち込むのでいちいち-20秒しなければならないのが面倒という意見が出たので、+20秒する仕様をなくすか考える

  • 20秒プラスする仕様を継続する
  • 20秒を消す仕様に移行する

の2つで投票を行う予定

持ち越し登録機能の作成

Python版シオリbotで作成していた持ち越し登録機能を作成

以下の機能を追加する

  • 複数の持ち越しを所持できる。
  • 進行チャンネルから持ち越しを登録できる。
  • 凸宣言チャンネルからの登録はボタンにして検討中。

以下の機能を削除する

  • 凸報告時に持ち越しを消化する機能を削除。

TLの時間修正機能実装

TLの秒数を短くした場合の時間に修正する

例 :

クリスのUB最初2回はオート、その後はクリス全部連打
1:08 ラビ連打
0:24 ラビ連打
0:05 クリス連打

これを 「!tl [URL] 56」というコマンドを打つと

クリスのUB最初2回はオート、その後はクリス全部連打
0:34 ラビ連打
0:00 ラビ連打
0:00 クリス連打

に変換される

Botの初期化をちゃんとする

Botの初期化をちゃんとしてBotのインフラを整える

課題一覧

フォルダおよびBotConfig

  • ./data/フォルダの存在をチェックしてない場合は生成する。
  • ./data/BotConfig.json の存在をチェックしてない場合はアプリを終了する。

redive_jpについて

  • ./data/redive_jp.dbが存在しない場合 https://redive.estertion.win/api.htm ここからデータを持ってきて解凍する
  • brファイルはBrotli.NETを使って解凍する。
  • 更新するかどうかは/last_version_jp.json を比較して判断する。

その他考え

  • redive_jp.dbは定期的に更新する機構が必要
  • jsonファイルはおおよそ92Bの通信量
  • 1日に1回更新してもいいんじゃない?
  • 手動で更新する機能があればいい

凸報告機能の作成

Python版シオリbotの機能の凸報告機能を作成

追加する機能

  • 進行チャンネルと連動して凸報告を完了させる

以下予定機能

* (ボス番号)(物 / 魔 / b / m)
    ボス凸履歴を登録
    例:1物 3b 5m

* (ボス番号)(物 / 魔 / b / m)(万ダメージ)
    ボス凸履歴を登録すると同時に、ボスに出したダメージを登録
    例:1物135 1m135(1ボスに135万ダメージ)

* (ボス番号)(物 / 魔 / b / m)(〆 / -)
    ボス撃破履歴を登録
    例:3魔〆 5m-

* (ボス番号)(物 or 魔 or b or m)(〆 or -)(秒数)
    ボス撃破履歴を登録すると同時に、残り秒数を登録
    例:1物〆90 1m-90(1ボス撃破、90秒持越)

* rt(持越時間) / rolled(持越時間) / 持越(持越時間)
    持越時間の事後登録、もしくは変更
    例:rolled 90 で90秒の持越時間を登録
    rolled (指定なし)で現在登録している持越時間を削除

* rv / revert / 元に戻す 
    凸リストをひとつ前の状態に戻す

* man
    チュートリアルを表示

検討中の機能
または別途作成予定

* nt(ボス番号) / notice(ボス番号) / ボス通知(ボス番号)
    そのボスの番が来たら通知(持越希望先もこのコマンドで変更可)
    例:notice 135 で1 3 5ボス到達で通知
    notice (指定なし)で現在設定している通知設定を解除
    
* 持越呼出 
    持越中の人全員にメンションを送る

* 未消化呼出 
    未消化の人全員にメンションを送る

進行チャンネルのテキスト生成のところを改善

ここを修正してほしい。

var stringBuilder = new StringBuilder();
stringBuilder.Append(new Emoji(EnumMapper.I.GetString((ProgressStatus)ProgressData.Status)).Name + " ");
stringBuilder.Append((ProgressData.CarryOverFlag ? "" : " ") + " ");
stringBuilder.Append(ProgressData.Damage.ToString().PadLeft(6, ' ') + "@");
stringBuilder.Append(ProgressData.RemainTime.ToString().PadLeft(2, '0') + " ");
stringBuilder.Append(ConversionAttackNumber.AttackNumberToShortString(ProgressData.AttackType) + " ");
stringBuilder.Append(DatabaseReportDataController.GetReportCount(PlayerData).ToString() + " ");
stringBuilder.Append(PlayerData.GuildUserName + " ");

オーバーキルした際のHP計算機能を追加する

以前使っていたように 「!time 残HP 与えたダメージ」で計算できるツールを作成する。

発展版として進行Chで今の残りダメージに対するオーバーキルダメージによる計算も実装したい

!now機能の実装

春雨(元・ぐろりあすの人) のために周回数・ボスの位置を知る機能を作る。

ただし、来月からは全ボスクラバトになるのでこの機能はいらなくなるので作るか不明

予約コメントに長文を投げるとBOTが反応しない

再現

  1. 予約に以下を投げる
予約 10 1 てすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすとてすと

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.