Repository navigation
[JP] API Tutorial
チュパカブラ edited this page Jan 29, 2021
·
67 revisions
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.yuttyann</groupId>
<artifactId>ScriptBlockPlus</artifactId>
<version>v2.0.7</version>
</dependency> allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.yuttyann:ScriptBlockPlus:v2.0.7'
}クラスの詳細 <ScriptBlockAPI.java>
ScriptBlockAPI sbapi = ScriptBlock.getInstance().getAPI();スクリプトが存在するかチェックする。
【SBEdit】
SBEdit se = sbapi.getSBEdit(ScriptKey scriptKey);
boolean has = se.has();
【SBFile】
SBFile sf = sbapi.getSBFile(Location location, ScriptKey scriptKey);
boolean has = sf.has();スクリプトを実行する。
sbapi.scriptRead(Player player, Location location, ScriptKey scriptKey, int index);スクリプトの作者を取得する。
SBFile sf = sbapi.getSBFile(Location location, ScriptKey scriptKey);
List<UUID> author = sf.getAuthor();スクリプトを作成、追加する。
SBEdit se = sbapi.getSBEdit(ScriptKey scriptKey);
se.create(Player player, Location location, String script);
SBEdit se = sbapi.getSBEdit(ScriptKey scriptKey);
se.add(Player player, Location location, String script);スクリプトを削除する。
【SBEdit】
SBEdit se = sbapi.getSBEdit(ScriptKey scriptKey);
se.remove(Player player, Location location);
【SBFile】
SBFile sf = sbapi.getSBFile(Location location, ScriptKey scriptKey);
sf.remove();変更を保存する。
【SBEdit】
SBEdit se = sbapi.getSBEdit(ScriptKey scriptKey);
se.save();
【SBFile】
SBFile sf = sbapi.getSBFile(Location location, ScriptKey scriptKey);
sf.save();トリガーを追加する
トリガーの詳細 <TriggerListener.java>
トリガーの実装例 <listener/trigger/****Trigger.java>
// 追加
TriggerListener.register(new HogeTrigger(plugin));
// 実装
public class HogeTrigger extends TriggerListener<HogeBlockEvent> {
// スクリプトキーを生成
public static final ScriptKey HOGE = new ScriptKey("hoge");
public HogeTrigger(@NotNull Plugin plugin) {
// スクリプトキーとイベントの優先度を指定
super(plugin, HOGE, EventPriority.NORMAL);
}
@Override
@Nullable
protected Trigger create(@NotNull HogeBlockEvent event) {
// トリガーを生成 プレイヤーとブロックとイベントを渡す
return new Trigger(event.getPlayer(), event.getBlock(), event);
}
// 特定のタイミングで呼ばれるメソッド(継承は任意)
@Override
@NotNull
protected Result handle(@NotNull Trigger trigger) {
// パーミッション判定、イベント生成、スクリプト実行のタイミングで呼ばれます。
switch (trigger.getProgress()) { // プロセスの進行度を取得
case PERM: // パーミッション判定
break;
case EVENT: // TriggerEvent の生成
Optional<TriggerEvent> triggerEvent = trigger.getTriggerEvent(); // イベントの取得
// 処理
break;
case READ: // スクリプトの実行
Optional<ObjectMap> tempMap = trigger.getTempMap(); // 実行クラスの取得
// 処理
break;
}
// Result.FAILURE を返すとプロセスが中断されます。
return super.handle(trigger); // デフォルトの戻り値の"Result.SUCCESS"を返す
}
}