コンテンツにスキップ

Development PCCPluginLink

PCCPlugin-v3は、簡単に作れることに重点を置いています。

構造Link

「plugin.xmlを含むフォルダ」をプラグインと呼んでいます。
プラグインを置く場所(内部リポジトリ)はいくつかあり、設定変更も可能です。(通常は不要なので方法は言及しません。)
初期設定では、

  • personal: A:\PCCPlugin\repo\
  • official: B:\PCCPlugin\official\
  • unofficial: B:\PCCPlugin\unofficial\

の3つが存在します。

プラグインを作る場合、まずpersonalで作って動作を確認したらunofficialにコピーします。
officialは部活として公式に認められた、多くのプラグインが依存していたり人気が高いものが入れられます。

プラグインが使用するフォルダLink

プラグイン内で扱うフォルダは3種類あります。

  • repodir: 前述の「plugin.xmlを含むフォルダ」です。
  • datadir: pcc_homes_v3内(デフォルトはA:\PCCPlugin\data\内)にプラグインごとに作成されるフォルダで、プラグインがユーザーごとに違うデータ(設定など)を保存するのに使います。
  • tempdir: 動作しているPCのローカル(デフォルトはC:\Users\user\Downloads\PCCPlugin)にプラグインごとに作成されるフォルダで、一時的に使うデータを保存します。
    PCCPluginSysがログファイルを生成したり、一度ローカルに保存しなければならないもの(管理者権限で使用されるファイル)をコピーしたりもします。

プラグインの作り方Link

  1. A:\PCCPlugin\repo\内にプラグイン名と同じ名前のディレクトリを作成します。
  2. その中にplugin.xmlという名前のファイルを作成し、以下のサンプルを貼り付けます。
  3. 各項目を書き換えます。
  4. 動作確認をします。
  5. (任意) unofficialにコピーします。

plugin.xmlの詳細については別ページを確認してください。

plugin.xmlのサンプルLink

<?xml version="1.0" encoding="UTF-8"?>
<!-- このように囲まれた部分はコメントといって、プログラムに無視されます。
複数行にも対応しています。
後の自分や後代のメンテナーに説明を残しましょう。-->
<plugin>
    <plugin_xml_version>2</plugin_xml_version>
    <general>
        <!--
            プラグイン名です。必ずフォルダ名と同じにしてください。
            英大文字、英小文字、数字のみを使うことを推奨します。
            スラッシュ(/)とコロン(:)は禁止文字です。
            禁止文字以外は使っても動くと思いますがおすすめしません。
        -->
        <name>ExamplePlugin116</name>
        <!-- プラグインのバージョンです。整数値で指定してください。-->
        <version>1</version>
        <!--説明です。この内容はPCCPluginに表示されますので、使い方などを書くといいでしょう。-->
        <description>
            プラグインのサンプルです。
        </description>
        <!--プラグイン作成者を書きます。任意の文字が使用可能です。pc番号を含めて下さい。-->
        <plugin_author>pc21509 ozraru</plugin_author>
        <!--プラグインのライセンスを書きます。特に希望がなければPD(パブリックドメイン)にするといいでしょう。-->
        <plugin_licence>PD</plugin_licence>
    </general>
    <buttons> <!-- ユーザーがプラグインメニューから実行できるアクションを指定します。actionsの同名の処理が実行されます。-->
        <button>
            <name>再起動</name>
            <action>restore</action>
        </button>
    </buttons>
    <dependency>
        <!--
            依存関係
        -->
        <dependent before="true">Chocolatey:python</dependent>
        <dependent before="false">ExamplePlugin1160000</dependent>
        <dependent>official:SuperSoftware</dependent>
    </dependency>
    <actions>
        <!-- actionについての詳細は別ページを確認してください。-->
        <install> <!-- 初めてインストールしたとき(データディレクトリがない状態でインストールしようとしたとき)-->
            EXEC echo Hello, world! > ${plugin_tempdir}
            CALL restore
        </install>
        <restore> <!-- リストア時(データディレクトリがある状態でインストールしようとしたとき)-->
            EXEC python ${plugin_repodir}\restore.py
        </restore>
        <external> <!-- 外部パッケージプロバイダ用(任意)-->
            EXEC yay -Syu ${args}
        </external>
    </actions>

    <config> <!-- PCCClientの設定メニューに表示する内容を指定します。-->
        <field type="file" file_picker="single_file">
            <id>wallpaper</id>
            <title>壁紙ファイル</title>
            <description>設定する壁紙を指定します。</description>
        </field>
        <field type="string">
            <id>username</id>
            <title>tsアカウント名</title>
            <description></description>
            <hint>tsXXXXX</hint>
        </field>
    </config>
</plugin>

```