Repository navigation
[JP] API Tutorial
チュパカブラ edited this page Jan 7, 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.5</version>
</dependency> allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.yuttyann:ScriptBlockPlus:v2.0.5'
}クラスの詳細 <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:
Optional<TriggerEvent> triggerEvent = trigger.getTriggerEvent();
// 処理
break;
case READ:
Optional<ObjectMap> tempMap = trigger.getTempMap();
// 処理
break;
}
return super.handle(trigger); // デフォルトの"Result.SUCCESS"を返す
}
}