記事一覧

プラグインがインストール済みかどうか調べる

名前とIDどちらでも検索可能な関数を里々、YAYA、華和梨で書いてみます。
(YAYAはそういった関数がテンプレートに用意されています)
戻り値はBOOL値です。

里々

# [b1]プラグイン名(1)[b1]プラグインID(1)[b1]プラグイン名(2)[b1]...[b1]プラグインID(n)[b1]というリストができます。
@installedplugin
(set,プラグインリスト,)(loop,プラグインリスト作成,0,(Rの数))
@プラグインリスト作成
(set,プラグインリスト,(call,プラグインリスト)(バイト値,1)(R(プラグインリスト作成カウンタ)))
@IsPluginExist
(count,(call,プラグインリスト),(バイト値,1)(A0)(バイト値,1))

#--■使い方■--#
*ラベル
(call,IsPluginExist,PlaylistMaker)#=> 0 or 1

YAYA

// 「はろーYAYAわーるど」yaya_tmpl_util.txtに記述済み
On_installedplugin : void
{
  _n = ARRAYSIZE(reference)
  AYATEMPLATE.installedplugin_name = IARRAY
  AYATEMPLATE.installedplugin_id = IARRAY

  for _i = 0 ; _i < _n ; _i++ {
    _a = RE_SPLIT(reference[_i],'[,\x1]')

    AYATEMPLATE.installedplugin_name ,= _a[0]
    AYATEMPLATE.installedplugin_id ,= _a[1]
  }
}

AYATEMPLATE.IsPluginExist
{
  if _argc == 0 {
    0
    return
  }

  if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_id) >= 0 {
    1
    return
  }
  if ASEARCH(_argv[0],AYATEMPLATE.installedplugin_name) >= 0 {
    1
    return
  }
  0
}

//--■使い方■--//
foo
{
  AYATEMPLATE.IsPluginExist('PlaylistMaker')// => 0 or 1
}

華和梨

# ミドルウェアによって接頭辞の書き方などは異なる
resource.installedplugin : $(
  clear System.InstalledPlugin.Name;
  clear System.InstalledPlugin.ID;
  setstr @i 0;
  while $[ ${System.Request.Reference${@i}} != $(NULL) ] $(
    clear @a;
    split @a ${System.Request.Reference${@i}} $(chr 1);
    adddictstr System.InstalledPlugin.Name $@a[0];
    adddictstr System.InstalledPlugin.ID $@a[1];
    inc @i;
  );
)

=kis
function IsPluginExist $(
  if $[$[$(find System.InstalledPlugin.Name $@arg[1]) >= 0] || $[$(find System.InstalledPlugin.ID $@arg[1]) >= 0]] $(
    return 1;
  ) else $(
    return 0;
  );
);
=end

#--■使い方■--#
エントリ : $(IsPluginExist PlaylistMaker)#=> 0 or 1