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 org.bukkit.block.Block;
|
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
|
|
|
}
|
|
|
|
|
|
2022-05-21 00:38:34 +00:00
|
|
|
public void mine(Block block) {
|
|
|
|
|
if (!isDone && !block.getType().equals(mineQuestObject.getMaterial()))
|
|
|
|
|
return;
|
|
|
|
|
mined += 1;
|
|
|
|
|
if (mined == mineQuestObject.getAmount())
|
|
|
|
|
isDone = true;
|
2022-05-01 19:48:52 +00:00
|
|
|
}
|
|
|
|
|
}
|