下面列出了怎么用org.bukkit.event.entity.EntityTameEvent的API类实例代码及写法,或者点击链接到github查看源代码。
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onTame(EntityTameEvent event) {
if (!(event.getOwner() instanceof Player)) {
return;
}
Player player = (Player) event.getOwner();
QPlayer qPlayer = QuestsAPI.getPlayerManager().getPlayer(player.getUniqueId(), true);
QuestProgressFile questProgressFile = qPlayer.getQuestProgressFile();
for (Quest quest : super.getRegisteredQuests()) {
if (questProgressFile.hasStartedQuest(quest)) {
QuestProgress questProgress = questProgressFile.getQuestProgress(quest);
for (Task task : quest.getTasksOfType(super.getType())) {
TaskProgress taskProgress = questProgress.getTaskProgress(task.getId());
if (taskProgress.isCompleted()) {
continue;
}
int tamesNeeded = (int) task.getConfigValue("amount");
int progressTamed;
if (taskProgress.getProgress() == null) {
progressTamed = 0;
} else {
progressTamed = (int) taskProgress.getProgress();
}
taskProgress.setProgress(progressTamed + 1);
if (((int) taskProgress.getProgress()) >= tamesNeeded) {
taskProgress.setCompleted(true);
}
}
}
}
}
@EventHandler
public void onTame(EntityTameEvent event) {
Entity entity = event.getEntity();
if(StackTools.hasValidStackData(entity)){
int stackSize = StackTools.getSize(entity);
if(stackSize > 1){
Entity dupe = sm.getTools().duplicate(entity);
StackTools.setSize(dupe, stackSize - 1);
}
StackTools.removeSize(entity);
}
}
@Override
public boolean init(final Expression<?>[] exprs, final int matchedPattern, final Kleenean isDelayed, final ParseResult parser) {
if (!ScriptLoader.isCurrentEvent(EntityTameEvent.class)) {
Skript.error("the expression 'tamer' may only be used in the entity tame event.");
return false;
}
return true;
}
@EventHandler(ignoreCancelled = true)
public void onTaming(EntityTameEvent event) {
if (event.getOwner() instanceof Player) {
String playerID = PlayerConverter.getID((Player) event.getOwner());
if (!dataMap.containsKey(playerID)) {
return;
}
LivingEntity entity = event.getEntity();
TameData playerData = (TameData) dataMap.get(playerID);
switch (type) {
case WOLF:
if (entity.getType().equals(EntityType.WOLF) && checkConditions(playerID)) {
playerData.subtract();
}
break;
case OCELOT:
if (entity.getType().equals(EntityType.OCELOT) && checkConditions(playerID)) {
playerData.subtract();
}
break;
case HORSE:
if (entity.getType().equals(EntityType.HORSE) && checkConditions(playerID)) {
playerData.subtract();
}
break;
default:
break;
}
if (playerData.isZero()) {
completeObjective(playerID);
}
}
}
@Override
protected Player[] get(final Event e) {
return new Player[] {((EntityTameEvent) e).getOwner() instanceof Player ? (Player) ((EntityTameEvent) e).getOwner() : null};
}