use of com.magmaguy.elitemobs.quests.Quest in project EliteMobs by MagmaGuy.
the class PlayerData method readExistingData.
private void readExistingData(Statement statement, UUID uuid, ResultSet resultSet) throws Exception {
playerDataHashMap.put(uuid, this);
currency = resultSet.getDouble("Currency");
guildPrestigeLevel = resultSet.getInt("GuildPrestigeLevel");
maxGuildLevel = resultSet.getInt("GuildMaxLevel");
activeGuildLevel = resultSet.getInt("GuildActiveLevel");
score = resultSet.getInt("Score");
kills = resultSet.getInt("Kills");
highestLevelKilled = resultSet.getInt("HighestLevelKilled");
deaths = resultSet.getInt("Deaths");
questsCompleted = resultSet.getInt("QuestsCompleted");
backTeleportLocation = ConfigurationLocation.serialize(resultSet.getString("BackTeleportLocation"));
if (resultSet.getBytes("QuestStatus") != null) {
try {
quests = (List<Quest>) ObjectSerializer.fromString(new String(resultSet.getBytes("QuestStatus"), "UTF-8"));
// Serializes ItemStack which require specific handling, necessary recovering the rewards
for (Quest quest : quests) if (quest instanceof CustomQuest)
((CustomQuest) quest).applyTemporaryPermissions(Bukkit.getPlayer(uuid));
} catch (Exception ex) {
new WarningMessage("Failed to serialize quest data for player " + Bukkit.getPlayer(uuid) + " ! This player's quest data will be wiped to prevent future errors.");
try {
resetQuests(uuid);
} catch (Exception ex2) {
new WarningMessage("Failed to reset quest data! Ironic.");
ex2.printStackTrace();
}
}
}
if (resultSet.getBytes("PlayerQuestCooldowns") != null) {
try {
playerQuestCooldowns = (PlayerQuestCooldowns) ObjectSerializer.fromString(new String(resultSet.getBytes("PlayerQuestCooldowns"), "UTF-8"));
playerQuestCooldowns.startCooldowns(uuid);
} catch (Exception exception) {
new WarningMessage("Failed to get player quest cooldowns! ! This player's quest cooldowns will be wiped to prevent future errors.");
try {
resetPlayerQuestCooldowns(uuid);
} catch (Exception ex2) {
new WarningMessage("Failed to reset quest cooldowns! Ironic.");
ex2.printStackTrace();
}
}
}
new InfoMessage("User " + uuid + " data successfully read!");
}
use of com.magmaguy.elitemobs.quests.Quest in project EliteMobs by MagmaGuy.
the class QuestInventoryMenu method generateInventoryQuestDirectory.
public static void generateInventoryQuestDirectory(List<? extends Quest> quests, Player player, NPCEntity npcEntity) {
String menuTitle = "Quests";
Inventory questInventory = Bukkit.createInventory(player, 27, menuTitle);
List<Integer> questSlots = new ArrayList<>(Arrays.asList(13, 11, 15, 9, 17, 10, 16, 12, 14));
Material acceptMaterial = Material.GREEN_STAINED_GLASS_PANE;
Material inProgressMaterial = Material.RED_STAINED_GLASS_PANE;
Material completeMaterial = Material.ORANGE_STAINED_GLASS_PANE;
HashMap<Integer, Quest> questMap = new HashMap<>();
for (int i = 0; i < quests.size(); i++) {
questMap.put(questSlots.get(i), quests.get(i));
QuestMenu.QuestText questText = new QuestMenu.QuestText(quests.get(i), npcEntity, player);
if (!quests.get(i).isAccepted())
questInventory.setItem(questSlots.get(i), ItemStackGenerator.generateItemStack(acceptMaterial, questText.getHeader().getText()));
else if (!quests.get(i).getQuestObjectives().isOver())
questInventory.setItem(questSlots.get(i), ItemStackGenerator.generateItemStack(inProgressMaterial, questText.getHeader().getText()));
else
questInventory.setItem(questSlots.get(i), ItemStackGenerator.generateItemStack(completeMaterial, questText.getHeader().getText()));
}
new QuestDirectory(player, questMap, questInventory, npcEntity);
player.openInventory(questInventory);
}
use of com.magmaguy.elitemobs.quests.Quest in project EliteMobs by MagmaGuy.
the class QuestMenu method generateBookQuestEntries.
public static void generateBookQuestEntries(List<? extends Quest> quests, Player player, NPCEntity npcEntity) {
List<TextComponent[]> textComponents = new ArrayList<>();
int counter = 0;
for (Quest quest : quests) {
TextComponent[] iteratedTextComponent = QuestBookMenu.generateQuestEntry(quest, player, npcEntity);
counter += iteratedTextComponent.length;
textComponents.add(iteratedTextComponent);
}
TextComponent[] allQuests = new TextComponent[counter];
int counter2 = 0;
for (TextComponent[] textComponentsArray : textComponents) for (TextComponent textComponent : textComponentsArray) {
allQuests[counter2] = textComponent;
counter2++;
}
BookMaker.generateBook(player, allQuests);
}
Aggregations