下面列出了org.bukkit.event.entity.EntityTameEvent#getOwner ( ) 实例代码,或者点击链接到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(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);
}
}
}