OEのプラグイン開発したいぜ!!
って人のために、ちゃんとDLL用のインターフェースを作りました。
これで、だれでもプラグインが作れるはずです。
(もちろん、C#の知識は必至ですが)
とりあえず、以下がインターフェースです。
これを利用してDLLが読み込まれます。
また、デフォルトでMMORPG用のプラグインを制作しているので、できれば別方面でお願いします。
プラグイン開発者は、メールにて話をいただければ中身の処理に関して、答えます。
こんなのもあったほうがいいのでは?とか致命的なミスがあった場合は、コメントで指摘してくださると非常に助かります。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace OE.src
{
/// <summary>
/// プラグインが実装しなければならないインターフェイス
/// </summary>
interface PluginDLLInterface
{
/// <summary>
/// プラグインの固有の名前です
/// </summary>
String PluginName { get; }
/// <summary>
/// プラグインのインストールされたローカルの場所を絶対パスで示します。
/// 改行文字(\n)はサポートしません。
/// </summary>
String PluginLocalAddress { get; }
/// <summary>
/// プラグインの簡易説明です。プラグインを選ぶ画面で使用されます。
/// 改行文字(\n)をサポートします。
/// </summary>
String PluginShortDescription { get; }
/// <summary>
/// プラグインのバージョンです。プラグインを選ぶ画面で表示されますが、
/// これで自動更新されたりはしません。自動更新させたい場合、プラグインの中に
/// 機能を埋め込む必要性があります。
/// 改行文字(\n)をサポートしません。
/// </summary>
String PluginVersion { get; }
/// <summary>
/// プラグインのコピーライトです。プラグインのライセンス画面で表示されます。
/// 著作権に関する情報もこのプロパティに記してください。
/// 改行文字(\n)をサポートします。
/// </summary>
String PluginCopyLight { get; }
/// <summary>
/// プラグインの作者名です。
/// チーム名を書くのも、開発者チーム全員の名前を書くのも自由です。
/// </summary>
String PluginFrom { get; }
/// <summary>
/// プラグインが読み込まれたときに実行されます。
/// プラグインホスト(エディター側)のインターフェースの参照を送ります。
/// *注意!!
/// --プラグインが選ばれたときに実行されるわけではありません。
/// --DLLが読み込まれた後に実行されます。
/// --したがって、プラグインのメインの処理をここに書かないでください。
/// </summary>
/// <param name="Host">エディタ側のインターフェースの参照を返します。</param>
void Initlize(PluginDLLHostInterface Host);
/// <summary>
/// プラグインをユーザーが選択したときに実行される
/// プラグインのメインメソッドです。
/// ここが押されたときに、プラグインは、メインの処理を実行します。
/// </summary>
void Init_Main();
/// <summary>
/// プラグインをユーザーが閉じたときに呼び出されます。
/// 保存などの処理を行い、プラグイン側が、自らフォームをフォームのアイテムをすべて
/// 不可視の状態にすべきです。
/// </summary>
void Close();
/// <summary>
/// プラグインがアンロードされた際に呼び出されます。
/// 基本的には、エディタ自体が閉じられる際に呼び出されます。
/// </summary>
void UnLoad();
}
/// <summary>
/// プラグインホストが実装するインターフェース
/// </summary>
interface PluginDLLHostInterface
{
/// <summary>
/// エディター自体のバージョンを返します。
/// 必要とされたバージョンを見込めない場合、プラグインは、その他の処理をせず
/// メッセージを表示し、ユーザーに警告を出すべきです。
/// </summary>
String EditerVersion { get; }
/// <summary>
/// このインターフェース自体のバージョンを返します。
/// インターフェースのバージョンが古いと、エラーが起きる確率が非常に高いです。
/// プラグインはこのバージョンをチェックし、ダメならば、警告を即刻出して、
/// プラグインはそれ以上の処理を実行することを避けるべきです。
/// *このインターフェースのバージョン(0.80)
/// </summary>
double InterfaceVersion { get; }
/// <summary>
/// OEサーバーへ完成したファイルをアップロードします。
/// ただしこの処理は、失敗した場合、falseを返し、メッセージボックスでエラーの原因を
/// 出力します。
/// </summary>
/// <param name="url">OEサーバーにアップロードするフォルダのリストです。</param>
/// <param name="num">フォルダの数です。</param>
/// <returns>失敗時にはfalseを返します。成功時にはtrueを返します。</returns>
bool UploadOEfile(String[] url,int num);
/// <summary>
/// エディターのエディションを返します。
/// Basic,Standardなどの文字列が入っています。
/// </summary>
String EditerEdition { get; }
}
}
[0回]
PR