Updates quest classes to 5.0.0
This commit is contained in:
parent
0249e013e3
commit
efb7ed2d58
8
pom.xml
8
pom.xml
@ -71,15 +71,15 @@
|
|||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.pikamug.quests</groupId>
|
||||||
<artifactId>quests-api</artifactId>
|
<artifactId>quests-api</artifactId>
|
||||||
<version>4.8.1</version>
|
<version>5.0.0-rc.3</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>me.blackvein.quests</groupId>
|
<groupId>me.pikamug.quests</groupId>
|
||||||
<artifactId>quests-core</artifactId>
|
<artifactId>quests-core</artifactId>
|
||||||
<version>4.8.1</version>
|
<version>5.0.0-rc.3</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package net.knarcraft.questmobspawns;
|
package net.knarcraft.questmobspawns;
|
||||||
|
|
||||||
import me.blackvein.quests.QuestsAPI;
|
import me.pikamug.quests.Quests;
|
||||||
import me.blackvein.quests.player.IQuester;
|
import me.pikamug.quests.player.Quester;
|
||||||
import me.blackvein.quests.quests.IQuest;
|
import me.pikamug.quests.quests.Quest;
|
||||||
import me.blackvein.quests.quests.IStage;
|
import me.pikamug.quests.quests.components.Stage;
|
||||||
import net.knarcraft.questmobspawns.listener.MobBlockDamageListener;
|
import net.knarcraft.questmobspawns.listener.MobBlockDamageListener;
|
||||||
import net.knarcraft.questmobspawns.listener.MobDeathListener;
|
import net.knarcraft.questmobspawns.listener.MobDeathListener;
|
||||||
import net.knarcraft.questmobspawns.util.QuestMobHelper;
|
import net.knarcraft.questmobspawns.util.QuestMobHelper;
|
||||||
@ -36,7 +36,7 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
|
|
||||||
private final Random random = new Random();
|
private final Random random = new Random();
|
||||||
private static QuestMobSpawns plugin;
|
private static QuestMobSpawns plugin;
|
||||||
private QuestsAPI questsAPI;
|
private Quests questsAPI;
|
||||||
|
|
||||||
public static QuestMobSpawns getPlugin() {
|
public static QuestMobSpawns getPlugin() {
|
||||||
return plugin;
|
return plugin;
|
||||||
@ -46,7 +46,7 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
plugin = this;
|
plugin = this;
|
||||||
// Set up the quests API
|
// Set up the quests API
|
||||||
questsAPI = (QuestsAPI) Bukkit.getServer().getPluginManager().getPlugin("Quests");
|
questsAPI = (Quests) Bukkit.getServer().getPluginManager().getPlugin("Quests");
|
||||||
if (questsAPI == null) {
|
if (questsAPI == null) {
|
||||||
this.setEnabled(false);
|
this.setEnabled(false);
|
||||||
return;
|
return;
|
||||||
@ -64,22 +64,22 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
*/
|
*/
|
||||||
private void spawnMobs() {
|
private void spawnMobs() {
|
||||||
// Find the players taking each quest
|
// Find the players taking each quest
|
||||||
Set<IQuest> questsWithPlayers = new HashSet<>();
|
Set<Quest> questsWithPlayers = new HashSet<>();
|
||||||
Map<IStage, Set<IQuester>> stagePlayerMap = new HashMap<>();
|
Map<Stage, Set<Quester>> stagePlayerMap = new HashMap<>();
|
||||||
Collection<IQuester> onlineQuestTakers = questsAPI.getOnlineQuesters();
|
Collection<Quester> onlineQuestTakers = questsAPI.getOnlineQuesters();
|
||||||
|
|
||||||
// If no quest takers are online, abort
|
// If no quest takers are online, abort
|
||||||
if (onlineQuestTakers == null || onlineQuestTakers.isEmpty()) {
|
if (onlineQuestTakers == null || onlineQuestTakers.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IQuester questPlayer : onlineQuestTakers) {
|
for (Quester questPlayer : onlineQuestTakers) {
|
||||||
for (IQuest quest : questPlayer.getQuestData().keySet()) {
|
for (Quest quest : questPlayer.getCurrentQuests().keySet()) {
|
||||||
questsWithPlayers.add(quest);
|
questsWithPlayers.add(quest);
|
||||||
IStage playerStage = questPlayer.getCurrentStage(quest);
|
Stage playerStage = questPlayer.getCurrentStage(quest);
|
||||||
for (int i = 0; i < playerStage.getMobsToKill().size(); i++) {
|
for (int i = 0; i < playerStage.getMobsToKill().size(); i++) {
|
||||||
// If the player has not killed enough mobs, spawn the mobs
|
// If the player has not killed enough mobs, spawn the mobs
|
||||||
if (questPlayer.getQuestData(quest).getMobNumKilled().get(i) >= playerStage.getMobNumToKill().get(i)) {
|
if (questPlayer.getQuestDataOrDefault(quest).getMobNumKilled().get(i) >= playerStage.getMobNumToKill().get(i)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,13 +97,13 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IQuest quest : questsAPI.getLoadedQuests()) {
|
for (Quest quest : questsAPI.getLoadedQuests()) {
|
||||||
// Ignore quests with no players
|
// Ignore quests with no players
|
||||||
if (!questsWithPlayers.contains(quest)) {
|
if (!questsWithPlayers.contains(quest)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IStage stage : quest.getStages()) {
|
for (Stage stage : quest.getStages()) {
|
||||||
for (int i = 0; i < stage.getLocationsToKillWithin().size(); i++) {
|
for (int i = 0; i < stage.getLocationsToKillWithin().size(); i++) {
|
||||||
spawnMobsForStage(stagePlayerMap, quest, stage, i);
|
spawnMobsForStage(stagePlayerMap, quest, stage, i);
|
||||||
}
|
}
|
||||||
@ -119,9 +119,9 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
* @param stage <p>The stage to spawn mobs for</p>
|
* @param stage <p>The stage to spawn mobs for</p>
|
||||||
* @param index <p>The index of the kill location to spawn mobs for</p>
|
* @param index <p>The index of the kill location to spawn mobs for</p>
|
||||||
*/
|
*/
|
||||||
private void spawnMobsForStage(@NotNull Map<IStage, @NotNull Set<IQuester>> questPlayerMap, @NotNull IQuest quest,
|
private void spawnMobsForStage(@NotNull Map<Stage, @NotNull Set<Quester>> questPlayerMap, @NotNull Quest quest,
|
||||||
@NotNull IStage stage, int index) {
|
@NotNull Stage stage, int index) {
|
||||||
Location killLocation = stage.getLocationsToKillWithin().get(index).clone();
|
Location killLocation = ((Location) stage.getLocationsToKillWithin().get(index)).clone();
|
||||||
int radius = stage.getRadiiToKillWithin().get(index);
|
int radius = stage.getRadiiToKillWithin().get(index);
|
||||||
|
|
||||||
// TODO: De-spawn custom mobs if players are no longer in the area (should probably save the state)
|
// TODO: De-spawn custom mobs if players are no longer in the area (should probably save the state)
|
||||||
@ -139,7 +139,7 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If there are a bunch of mobs in the area, don't spawn more
|
// If there are a bunch of mobs in the area, don't spawn more
|
||||||
EntityType entityType = stage.getMobsToKill().get(index);
|
EntityType entityType = (EntityType) stage.getMobsToKill().get(index);
|
||||||
int nearby = entitiesInKillZone(killLocation, radius, entityType);
|
int nearby = entitiesInKillZone(killLocation, radius, entityType);
|
||||||
if (nearby >= maxMobs) {
|
if (nearby >= maxMobs) {
|
||||||
return;
|
return;
|
||||||
@ -206,14 +206,14 @@ public final class QuestMobSpawns extends JavaPlugin {
|
|||||||
* @param maxMobs <p>The maximum amount of mobs allowed in the kill zone</p>
|
* @param maxMobs <p>The maximum amount of mobs allowed in the kill zone</p>
|
||||||
* @return <p>The number of mobs to spawn</p>
|
* @return <p>The number of mobs to spawn</p>
|
||||||
*/
|
*/
|
||||||
private int calculateMobNumber(@NotNull Map<IStage, @NotNull Set<IQuester>> questPlayerMap, @NotNull IQuest quest,
|
private int calculateMobNumber(@NotNull Map<Stage, @NotNull Set<Quester>> questPlayerMap, @NotNull Quest quest,
|
||||||
@NotNull IStage stage, int index, @NotNull Location killLocation, int radius,
|
@NotNull Stage stage, int index, @NotNull Location killLocation, int radius,
|
||||||
int maxMobs) {
|
int maxMobs) {
|
||||||
int mobsToSpawn = 0;
|
int mobsToSpawn = 0;
|
||||||
for (IQuester player : questPlayerMap.get(stage)) {
|
for (Quester player : questPlayerMap.get(stage)) {
|
||||||
Location playerLocation = player.getPlayer().getLocation().clone();
|
Location playerLocation = player.getPlayer().getLocation().clone();
|
||||||
playerLocation.setY(0);
|
playerLocation.setY(0);
|
||||||
if (player.getQuestData(quest).getMobNumKilled().get(index) < stage.getMobNumToKill().get(index) &&
|
if (player.getQuestDataOrDefault(quest).getMobNumKilled().get(index) < stage.getMobNumToKill().get(index) &&
|
||||||
QuestMobHelper.get2dDistance(killLocation, playerLocation) < radius) {
|
QuestMobHelper.get2dDistance(killLocation, playerLocation) < radius) {
|
||||||
mobsToSpawn++;
|
mobsToSpawn++;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
package net.knarcraft.questmobspawns.listener;
|
package net.knarcraft.questmobspawns.listener;
|
||||||
|
|
||||||
import me.blackvein.quests.QuestsAPI;
|
import me.pikamug.quests.Quests;
|
||||||
import me.blackvein.quests.player.IQuester;
|
import me.pikamug.quests.player.Quester;
|
||||||
import me.blackvein.quests.quests.IQuest;
|
import me.pikamug.quests.quests.Quest;
|
||||||
import me.blackvein.quests.quests.IStage;
|
import me.pikamug.quests.quests.components.Stage;
|
||||||
import net.knarcraft.questmobspawns.util.QuestMobHelper;
|
import net.knarcraft.questmobspawns.util.QuestMobHelper;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -26,9 +26,9 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
*/
|
*/
|
||||||
public class MobBlockDamageListener implements Listener {
|
public class MobBlockDamageListener implements Listener {
|
||||||
|
|
||||||
private final QuestsAPI questsAPI;
|
private final Quests questsAPI;
|
||||||
|
|
||||||
public MobBlockDamageListener(@NotNull QuestsAPI questsAPI) {
|
public MobBlockDamageListener(@NotNull Quests questsAPI) {
|
||||||
this.questsAPI = questsAPI;
|
this.questsAPI = questsAPI;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,12 +95,12 @@ public class MobBlockDamageListener implements Listener {
|
|||||||
* @return <p>True if the player has the quest stored in the entity</p>
|
* @return <p>True if the player has the quest stored in the entity</p>
|
||||||
*/
|
*/
|
||||||
private Boolean hasQuest(@NotNull Entity entity, @NotNull Player player) {
|
private Boolean hasQuest(@NotNull Entity entity, @NotNull Player player) {
|
||||||
IQuester questPlayer = questsAPI.getQuester(player.getUniqueId());
|
Quester questPlayer = questsAPI.getQuester(player.getUniqueId());
|
||||||
String questId = QuestMobHelper.getQuestId(entity);
|
String questId = QuestMobHelper.getQuestId(entity);
|
||||||
if (questId == null) {
|
if (questId == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
IQuest quest = getQuest(questId);
|
Quest quest = getQuest(questId);
|
||||||
if (quest == null) {
|
if (quest == null) {
|
||||||
// Remove the entity if the quest it belongs to no longer exists
|
// Remove the entity if the quest it belongs to no longer exists
|
||||||
entity.remove();
|
entity.remove();
|
||||||
@ -110,13 +110,13 @@ public class MobBlockDamageListener implements Listener {
|
|||||||
if (stageId == null) {
|
if (stageId == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
IStage stage = quest.getStage(stageId);
|
Stage stage = quest.getStage(stageId);
|
||||||
Integer index = QuestMobHelper.getIndex(entity);
|
Integer index = QuestMobHelper.getIndex(entity);
|
||||||
if (index == null) {
|
if (index == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return questPlayer.getQuestData().containsKey(quest) && questPlayer.getCurrentStage(quest) == stage &&
|
return questPlayer.getCurrentQuests().containsKey(quest) && questPlayer.getCurrentStage(quest) == stage &&
|
||||||
questPlayer.getQuestData(quest).getMobNumKilled().get(index) < stage.getMobNumToKill().get(index);
|
questPlayer.getQuestDataOrDefault(quest).getMobNumKilled().get(index) < stage.getMobNumToKill().get(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -125,8 +125,8 @@ public class MobBlockDamageListener implements Listener {
|
|||||||
* @param questId <p>The id of the quest to get</p>
|
* @param questId <p>The id of the quest to get</p>
|
||||||
* @return <p>The quest, or null if no such quest exists</p>
|
* @return <p>The quest, or null if no such quest exists</p>
|
||||||
*/
|
*/
|
||||||
private @Nullable IQuest getQuest(@NotNull String questId) {
|
private @Nullable Quest getQuest(@NotNull String questId) {
|
||||||
for (IQuest quest : questsAPI.getLoadedQuests()) {
|
for (Quest quest : questsAPI.getLoadedQuests()) {
|
||||||
if (quest.getId().equalsIgnoreCase(questId)) {
|
if (quest.getId().equalsIgnoreCase(questId)) {
|
||||||
return quest;
|
return quest;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user