AltitudeQuests/src/main/java/com/alttd/altitudequests/objects/quests/MineQuest.java

50 lines
1.5 KiB
Java
Raw Normal View History

2022-05-01 19:48:52 +00:00
package com.alttd.altitudequests.objects.quests;
2022-05-21 00:38:34 +00:00
import com.alttd.altitudequests.config.QuestsConfig;
import com.alttd.altitudequests.objects.MineQuestObject;
2022-05-01 19:48:52 +00:00
import com.alttd.altitudequests.objects.Quest;
import com.alttd.altitudequests.objects.QuestCompleteEvent;
2022-05-01 19:48:52 +00:00
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
2022-05-21 00:38:34 +00:00
import java.util.Optional;
2022-05-01 19:48:52 +00:00
public class MineQuest extends Quest {
2022-05-21 00:38:34 +00:00
int mined;
int turnedIn;
MineQuestObject mineQuestObject;
boolean isDone = false;
public MineQuest(MineQuestObject mineQuestObject) {
mined = 0;
turnedIn = 0;
this.mineQuestObject = mineQuestObject;
2022-05-01 19:48:52 +00:00
}
2022-05-21 00:38:34 +00:00
public MineQuest(int mined, int turnedIn, String internalName) {
this.mined = mined;
this.turnedIn = turnedIn;
Optional<MineQuestObject> any = QuestsConfig.MINE_QUESTS.stream().filter(object -> internalName.equals(object.getInternalName())).findAny();
if (any.isEmpty())
return; //TODO error
this.mineQuestObject = any.get();
2022-05-01 19:48:52 +00:00
}
@Override
2022-05-21 00:38:34 +00:00
public boolean isDone() {
return isDone;
2022-05-01 19:48:52 +00:00
}
public void mine(Block block, Player player) {
2022-05-21 00:38:34 +00:00
if (!isDone && !block.getType().equals(mineQuestObject.getMaterial()))
return;
mined += 1;
if (mined == mineQuestObject.getAmount()) {
2022-05-21 00:38:34 +00:00
isDone = true;
QuestCompleteEvent event = new QuestCompleteEvent(player, this, true);
event.callEvent();
}
2022-05-01 19:48:52 +00:00
}
}