「使用中プラグインの競合調査資料としてレポート出力する」プラグインです。
簡単な説明
- プラグインを有効化し、テストプレイを起動します。
- データが出力されたダイアログが出ます。ここで、テストプレイを閉じます。
- プロジェクトのdataフォルダ内に 03_method_summary.csv というファイルが作られています。
ここにプラグインで使用されているメソッド(関数?)の数がカウント集計された表を確認できます。
(他のCSVは参考データです。必要なくなったら削除しましょう。) - 2以上のカウントがあるメソッドの右に複数のプラグイン名が書かれています。
このプラグインが競合している可能性が比較的高いです。 - 可能性が高そうなプラグインのコードを読んでフック処理がされているか?
コードが分からなければ、怪しいプラグインだけを新規プロジェクトに入れて、テストしてみることを推奨します。 - プラグインのON/OFFだけでなく、並び順を変えると動作するケースもあります。
これはプラグインの作り方をある程度理解できていると、簡単に理解できるレベルのものもあります。
フック処理についての記事を読んでみると、手がかりになるかも知れません。
プラグインの作り方入門その3以降
どなたかのお役に立てば幸いです。
/*:
@target MZ
@plugindesc 使用中プラグインの競合調査資料としてレポート出力します。
@author munokura
@url https://raw.githubusercontent.com/munokura/MNKR-MZ-plugins/master/MNKR_PluginConflictDetectorMZ.js
@command executeDetection
@text レポート出力実行
@desc プラグイン競合検出レポートを手動で出力します。
@param outputEnabled
@text 出力を有効化
@desc レポート出力機能を有効にします
@type boolean
@default true
@param outputPath
@text 出力先フォルダ
@desc CSVファイルの出力先フォルダ(末尾にスラッシュ必須)
@type string
@default data/
@param outputTiming
@text 出力タイミング
@desc レポートを出力するタイミング
@type select
@option 起動時
@value start
@option F8キー
@value f8
@option プラグインコマンド
@value pluginCommand
@default start
@param showCompletionDialog
@text 完了ダイアログを表示
@desc レポート出力完了時にダイアログを表示します
@type boolean
@default true
@param excludePlugins
@text 除外するプラグイン
@desc 検出から除外するプラグイン名(カンマ区切り)
@type string
@default
@param pluginSeparator
@text プラグイン名区切り文字
@desc 複数プラグインを区切る記号(デフォルト: |)
@type string
@default |
@param enableDebugLog
@text デバッグログを表示
@desc コンソールに詳細なデバッグログを表示します
@type boolean
@default false
@param Header_01_List
@text [01] リストCSV ヘッダー
@desc 01_plugin_list.csvのヘッダーをカンマ区切りで指定
@default ロード順序,ファイル名
@param Header_02_Details
@text [02] 詳細CSV ヘッダー
@desc 02_method_details.csvのヘッダーをカンマ区切りで指定
@default 対象メソッド,操作プラグインファイル名
@param Header_03_Summary
@text [03] 集計CSV ヘッダー
@desc 03_method_summary.csvのヘッダーをカンマ区切りで指定
@default 対象メソッド,定義プラグイン数,対象プラグインファイル名リスト
@help
# このプラグインについて
このプラグインは、他のプラグインを自動検出し、CSVレポートとして出力します。
競合調査時のみにプラグインをONにしてください。
それ以外の場面ではOFFにすることを推奨します。
## プラグイン管理画面の配置
このプラグインは、プラグイン管理画面の最下部に配置してください。
上部に配置すると、それより下のプラグインを検出できません。
# 主な機能
1. プラグインファイル内のコアメソッド上書き箇所をテキストで直接検出
2. ES6 class構文で書かれたメソッドの検出
3. MixIn関数内のメソッド検出
4. 検出された全オーバーライドの記録
5. CSV形式でのレポート出力
# 出力ファイル
- 01_plugin_list.csv: プラグインのロード順序リスト
- 02_method_details.csv: 詳細なメソッドのリスト
- 03_method_summary.csv: メソッドの集計とプラグインリスト
# CSVの見方と競合調査手順
## 検出されるメソッドについて
このプラグインは以下のメソッドを検出します:
- コアスクリプトのメソッドの上書き・エイリアス
- プラグインが独自に定義した新規メソッド
## 競合リスクの判断基準
03_method_summary.csvの「定義プラグイン数」列を確認:
- 2以上: 複数のプラグインが同じメソッドを定義 → 競合リスク高
- 1: 単一のプラグインのみが定義 → 通常は問題なし
## 調査手順
1. 03_method_summary.csvを開く
2. 「定義プラグイン数」列で2以上の行を探す
3. 該当メソッドを02_method_details.csvで詳細確認
4. 01_plugin_list.csvでプラグインのロード順序を確認
5. 必要に応じてプラグインの順序を変更、または併用を避ける
## 注意事項
- 「定義プラグイン数」が1のメソッドは、通常競合しません。
- ただし、コアスクリプトの重要なメソッドを上書きしている場合、
他のプラグインとの相性に注意が必要です。
- PCバージョン(Node.js環境)でのみCSVファイルが出力されます。
- 難読化されたプラグインは正確に検出できない場合があります。
# プラグインコマンド
レポート出力実行
# 利用規約
MITライセンスです。
http://opensource.org/licenses/mit-license.php
作者に無断で改変、再配布が可能で、
利用形態(商用、18禁利用等)についても制限はありません。
*/