Skip to content

Harden periodic FP billing loop against task-killing runtime errors#8

Draft
Copilot wants to merge 2 commits intomasterfrom
copilot/investigate-fp-withdrawal-issue
Draft

Harden periodic FP billing loop against task-killing runtime errors#8
Copilot wants to merge 2 commits intomasterfrom
copilot/investigate-fp-withdrawal-issue

Conversation

Copy link

Copilot AI commented Mar 5, 2026

本番環境で「定期的なFP引き落とし」が継続しない事象に対し、コードベース上でタスク停止要因になり得る例外経路を最小変更で封じました。特に playerdata 走査時の不正データと、オフライン課金処理の null 経路で定期処理が落ちるリスクを解消しています。

  • 定期課金タスクの耐障害性強化 (bukkitRunnable/Runnable.java)

    • playerdata 内の不正ファイル名を安全にスキップ
    • UUID 変換失敗時に IllegalArgumentException を捕捉し、タスク継続
    • 拡張子なし/不正形式ファイルでループ全体が停止しないように調整
  • オフライン課金処理の null 安全化 (economy/Economy.java)

    • paymoney(OfflinePlayer) に早期 return ガードを追加:
      • p == null
      • Foofledrive.econ == null
      • Filerelation.readFile(p) == null
    • プレイヤーデータ読込失敗時の NPE でスケジューラ処理が止まる経路を除去
public static void paymoney(OfflinePlayer p) {
    if (p == null || Foofledrive.econ == null) {
        return;
    }
    Playerdata pd = Filerelation.readFile(p);
    if (pd == null) {
        return;
    }
    // 既存の課金ロジックを継続
}

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • jitpack.io
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.12/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.12 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.12/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/foofledrive/foofledrive org.codehaus.plexus.classworlds.launcher.Launcher -q test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.12/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.12 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.12/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/foofledrive/foofledrive org.codehaus.plexus.classworlds.launcher.Launcher -f pom.xml -B -V -e -Dfindbugs.skip -Dcheckstyle.skip -Dpmd.skip=true -Dspotbugs.skip -Denforcer.skip -Dmaven.javadoc.skip (dns block)
  • papermc.io
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.12/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.12 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.12/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/foofledrive/foofledrive org.codehaus.plexus.classworlds.launcher.Launcher -q test (dns block)
    • Triggering command: /usr/lib/jvm/temurin-17-jdk-amd64/bin/java /usr/lib/jvm/temurin-17-jdk-amd64/bin/java --enable-native-access=ALL-UNNAMED -classpath /usr/share/apache-maven-3.9.12/boot/plexus-classworlds-2.9.0.jar -Dclassworlds.conf=/usr/share/apache-maven-3.9.12/bin/m2.conf -Dmaven.home=/usr/share/apache-maven-3.9.12 -Dlibrary.jansi.path=/usr/share/apache-maven-3.9.12/lib/jansi-native -Dmaven.multiModuleProjectDirectory=/home/REDACTED/work/foofledrive/foofledrive org.codehaus.plexus.classworlds.launcher.Launcher -f pom.xml -B -V -e -Dfindbugs.skip -Dcheckstyle.skip -Dpmd.skip=true -Dspotbugs.skip -Denforcer.skip -Dmaven.javadoc.skip (dns block)

If you need me to access, download, or install something from one of these locations, you can either:


🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

Co-authored-by: Alpha9n <42644369+Alpha9n@users.noreply.github.com>
Copilot AI changed the title [WIP] Investigate FP withdrawal processing in Spigot Plugin Harden periodic FP billing loop against task-killing runtime errors Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants