(コンテンツ準備中)
このプラグインをダウンロードする場合は、以下のリンクを右クリックして「名前を付けて保存」で保存してください。
Sample_Stack02_PassingObjects_Read.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | // ファイル形式はUTF-8で保存すること
// Please file format to UTF-8.
importPackage(com.tojc.minecraft.mod.ChatLoggerPlusPlugin.v1);
var name = "Passing Objects(read)";
var version = "1.0.0";
var description = "sample plugin";
var auther = "Jaken";
var plugin = new PluginInterface()
{
onInitialize: function(settings)
{
// Stack Passing への読み込み権限登録
settings.registerPermissionReadStack("Passing");
},
onChatMessage: function(env, chat)
{
// Stack Passing から結果を読み込み(PassingItemオブジェクト)
var value = chat.readStack("Passing");
if(value != null)
{
// デバッグに値を表示して確認する。
debug.log(name, "PassingItem: " + value.toString());
debug.log(name, "PassingItem.name: " + value.name);
debug.log(name, "PassingItem.length: " + value.length);
// 出力例
// [ SCRIPT ]: {Passing Objects(read)}: PassingItem: Name: Player977, Length: 9
// [ SCRIPT ]: {Passing Objects(read)}: PassingItem.name: Player977
// [ SCRIPT ]: {Passing Objects(read)}: PassingItem.length: 9
// ここでの注目ポイントは、このスクリプト内には定義していないPassingItemオブジェクトの
// ・メンバー変数のnameやlengthにアクセス出来ている事(1つのスタックで複数の値を渡すことが出来る)
// ・toStringメソッドにアクセス出来ている事(処理をWrite側で定義できる)
// です。これを活用すれば、プラグイン間でのAPI提供も可能です。
}
},
onFinalize: function()
{
},
};
|
Sample_Stack02_PassingObjects_Write.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | // ファイル形式はUTF-8で保存すること
// Please file format to UTF-8.
importPackage(com.tojc.minecraft.mod.ChatLoggerPlusPlugin.v1);
var name = "Passing Objects(write)";
var version = "1.0.0";
var description = "sample plugin";
var auther = "Jaken";
// 受け渡すPassingItemオブジェクトを定義する。
function PassingItem(name)
{
this.name = name;
this.length = name.length;
}
// プロトタイプでtoStringメソッドを定義する。
PassingItem.prototype.toString = function()
{
return "Name: " + this.name + ", Length: " + this.length;
};
var plugin = new PluginInterface()
{
onInitialize: function(settings)
{
// Stack Passing への書き込み権限登録
settings.registerPermissionWriteStack("Passing");
},
onChatMessage: function(env, chat)
{
// ユーザー名の取得(発言者)
var username = chat.getUserName();
// デバッグに値を表示して確認する。
debug.log(name, "username: " + username);
var value = null;
// ユーザー名がnullの場合は、ユーザーの発言ではないので無視する。
if(username != null)
{
// JavaのStringからJavaScriptのStringに型変換
username = String(username);
// 受け渡すPassingItemオブジェクトを生成する。
value = new PassingItem(username);
// デバッグに値を表示して確認する。
debug.log(name, "PassingItem: " + value.toString());
}
// Stack Passing へ書き込む。
chat.writeStack("Passing", value);
},
onFinalize: function()
{
},
};
|