diff --git a/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java b/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java index 265f09d..fdf34e0 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/DynmapCitizens.java @@ -19,6 +19,7 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.dynmap.DynmapAPI; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -112,7 +113,7 @@ public final class DynmapCitizens extends JavaPlugin { * * @return

The global settings for this plugin

*/ - public GlobalSettings getGlobalSettings() { + public @NotNull GlobalSettings getGlobalSettings() { return this.globalSettings; } @@ -121,7 +122,7 @@ public final class DynmapCitizens extends JavaPlugin { * * @return

The Vault handler

*/ - public VaultHandler getVaultHandler() { + public @NotNull VaultHandler getVaultHandler() { return this.vaultHandler; } @@ -130,7 +131,7 @@ public final class DynmapCitizens extends JavaPlugin { * * @return

A reference to the Dynmap API

*/ - public DynmapAPI getDynmapAPI() { + public @NotNull DynmapAPI getDynmapAPI() { return this.dynmapAPIInstance; } @@ -148,7 +149,7 @@ public final class DynmapCitizens extends JavaPlugin { * * @param configuration

The configuration to read settings from

*/ - private void initializeTraitHandlers(FileConfiguration configuration) { + private void initializeTraitHandlers(@NotNull FileConfiguration configuration) { //Register all trait handlers this.traitHandlers = new ArrayList<>(); this.traitHandlers.add(new BlacksmithHandler()); diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/VaultHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/VaultHandler.java index d082ba4..756ec9e 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/VaultHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/VaultHandler.java @@ -3,6 +3,7 @@ package net.knarcraft.dynmapcitizens.handler; import net.milkbowl.vault.economy.Economy; import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.ServicesManager; +import org.jetbrains.annotations.NotNull; /** * A class to keep track of everything Vault @@ -16,7 +17,7 @@ public class VaultHandler { * * @param servicesManager

The services manager to get the Vault service from

*/ - public VaultHandler(ServicesManager servicesManager) { + public VaultHandler(@NotNull ServicesManager servicesManager) { RegisteredServiceProvider economyProvider = servicesManager.getRegistration(Economy.class); if (economyProvider != null) { economy = economyProvider.getProvider(); @@ -37,7 +38,7 @@ public class VaultHandler { * * @return

The currency name

*/ - public String getCurrency(boolean plural) { + public @NotNull String getCurrency(boolean plural) { if (plural) { return economy.currencyNamePlural(); } else { diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/AbstractTraitHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/AbstractTraitHandler.java index c869b65..154634c 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/AbstractTraitHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/AbstractTraitHandler.java @@ -12,6 +12,7 @@ import org.dynmap.DynmapAPI; import org.dynmap.markers.Marker; import org.dynmap.markers.MarkerIcon; import org.dynmap.markers.MarkerSet; +import org.jetbrains.annotations.NotNull; import java.util.UUID; @@ -51,7 +52,8 @@ public abstract class AbstractTraitHandler implements CitizensTraitHandler { * @param icon

The icon used for the marker

* @param markerSet

The marker set to add the marker to

*/ - protected void addNPCMarker(UUID npcId, String markerName, String markerDescription, MarkerIcon icon, MarkerSet markerSet) { + protected void addNPCMarker(@NotNull UUID npcId, @NotNull String markerName, @NotNull String markerDescription, + @NotNull MarkerIcon icon, @NotNull MarkerSet markerSet) { NPC npc = CitizensAPI.getNPCRegistry().getByUniqueId(npcId); //If the NPC has been removed, abort if (npc == null) { @@ -89,7 +91,7 @@ public abstract class AbstractTraitHandler implements CitizensTraitHandler { * @param npc

The NPC to check

* @return

True if the NPC is currently moving about

*/ - protected boolean isMoving(NPC npc) { + protected boolean isMoving(@NotNull NPC npc) { return npc.getNavigator().getTargetAsLocation() != null; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/BlacksmithHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/BlacksmithHandler.java index 601d559..eb06ea9 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/BlacksmithHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/BlacksmithHandler.java @@ -13,6 +13,7 @@ import net.knarcraft.dynmapcitizens.settings.TraitSettings; import org.bukkit.Bukkit; import org.bukkit.Material; import org.dynmap.markers.GenericMarker; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -27,7 +28,8 @@ public class BlacksmithHandler extends AbstractTraitHandler { @Override public void initialize() { - BlacksmithPlugin blacksmithPlugin = (BlacksmithPlugin) Bukkit.getServer().getPluginManager().getPlugin("Blacksmith"); + BlacksmithPlugin blacksmithPlugin = (BlacksmithPlugin) Bukkit.getServer().getPluginManager().getPlugin( + "Blacksmith"); if (blacksmithPlugin != null) { super.initializeMarkerSet(); } else { @@ -36,7 +38,7 @@ public class BlacksmithHandler extends AbstractTraitHandler { } @Override - public TraitSettings getSettings() { + public @NotNull TraitSettings getSettings() { return this.settings; } @@ -49,7 +51,7 @@ public class BlacksmithHandler extends AbstractTraitHandler { for (NPC npc : CitizensAPI.getNPCRegistry()) { if (npc.hasTrait(blacksmithTrait)) { BlacksmithTrait trait = npc.getTraitNullable(BlacksmithTrait.class); - String description = null; + String description = ""; if (trait == null) { DynmapCitizens.getInstance().getLogger().log(Level.WARNING, "Unable to get blacksmith trait"); } else { @@ -69,7 +71,7 @@ public class BlacksmithHandler extends AbstractTraitHandler { * @param npcSettings

The settings to search for information

* @return

A string describing the blacksmith

*/ - private String getDetailedBlacksmithInfo(NPC npc, NPCSettings npcSettings) { + private @NotNull String getDetailedBlacksmithInfo(@NotNull NPC npc, @NotNull NPCSettings npcSettings) { String info = "

" + npc.getName() + " the " + npcSettings.getBlacksmithTitle() + "

"; if (settings.displayBlacksmithSettings()) { @@ -91,7 +93,7 @@ public class BlacksmithHandler extends AbstractTraitHandler { * @param materials

The materials specified as reforge-able items

* @return

The reforge-able items

*/ - private static String getReforgeAbleItemsString(List materials) { + private static @NotNull String getReforgeAbleItemsString(@NotNull List materials) { List materialNames = new ArrayList<>(); for (Material material : materials) { materialNames.add(material.name()); diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/CitizensTraitHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/CitizensTraitHandler.java index c740edf..1cc8a42 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/CitizensTraitHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/CitizensTraitHandler.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.handler.trait; import net.knarcraft.dynmapcitizens.settings.TraitSettings; +import org.jetbrains.annotations.NotNull; /** * A handler which takes care of everything for one citizen trait @@ -24,7 +25,7 @@ public interface CitizensTraitHandler { * * @return

The settings for this trait

*/ - TraitSettings getSettings(); + @NotNull TraitSettings getSettings(); /** * Updates all markers used for this handler diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/DTLTradersHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/DTLTradersHandler.java index 9657fda..635e114 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/DTLTradersHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/DTLTradersHandler.java @@ -8,6 +8,7 @@ import net.knarcraft.dynmapcitizens.property.Icon; import net.knarcraft.dynmapcitizens.settings.DTLTradersSettings; import net.knarcraft.dynmapcitizens.settings.TraitSettings; import org.dynmap.markers.GenericMarker; +import org.jetbrains.annotations.NotNull; /** * A handler class for the minstrel trait @@ -31,7 +32,7 @@ public class DTLTradersHandler extends AbstractTraitHandler { } @Override - public TraitSettings getSettings() { + public @NotNull TraitSettings getSettings() { return this.settings; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/MinstrelHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/MinstrelHandler.java index d4b8708..fb0b15b 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/MinstrelHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/MinstrelHandler.java @@ -12,6 +12,7 @@ import net.knarcraft.minstrel.music.Song; import net.knarcraft.minstrel.trait.MinstrelTrait; import org.bukkit.Bukkit; import org.dynmap.markers.GenericMarker; +import org.jetbrains.annotations.NotNull; import java.util.logging.Level; @@ -33,7 +34,7 @@ public class MinstrelHandler extends AbstractTraitHandler { } @Override - public TraitSettings getSettings() { + public @NotNull TraitSettings getSettings() { return this.settings; } @@ -46,7 +47,7 @@ public class MinstrelHandler extends AbstractTraitHandler { for (NPC npc : CitizensAPI.getNPCRegistry()) { if (npc.hasTrait(minstrelTrait)) { MinstrelTrait trait = npc.getTraitNullable(MinstrelTrait.class); - String description = null; + String description = ""; if (trait == null) { DynmapCitizens.getInstance().getLogger().log(Level.WARNING, "Unable to get minstrel trait"); } else { diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/SentinelHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/SentinelHandler.java index dc0938e..7b72946 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/SentinelHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/SentinelHandler.java @@ -9,6 +9,7 @@ import net.knarcraft.dynmapcitizens.settings.SentinelSettings; import net.knarcraft.dynmapcitizens.settings.TraitSettings; import org.bukkit.Bukkit; import org.dynmap.markers.GenericMarker; +import org.jetbrains.annotations.NotNull; import org.mcmonkey.sentinel.SentinelPlugin; import org.mcmonkey.sentinel.SentinelTrait; @@ -30,7 +31,7 @@ public class SentinelHandler extends AbstractTraitHandler { } @Override - public TraitSettings getSettings() { + public @NotNull TraitSettings getSettings() { return this.settings; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/NPCQuestInfo.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/NPCQuestInfo.java index 7082751..6802cd5 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/NPCQuestInfo.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/NPCQuestInfo.java @@ -2,6 +2,7 @@ package net.knarcraft.dynmapcitizens.handler.trait.quests; import me.blackvein.quests.quests.IQuest; import net.knarcraft.dynmapcitizens.property.Icon; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; @@ -21,7 +22,7 @@ public class NPCQuestInfo { * * @param quest

The quest to add

*/ - public void addQuestStart(IQuest quest) { + public void addQuestStart(@NotNull IQuest quest) { this.questStart.add(quest); } @@ -30,7 +31,7 @@ public class NPCQuestInfo { * * @param quest

The quest to add

*/ - public void addQuestKill(IQuest quest) { + public void addQuestKill(@NotNull IQuest quest) { this.questKill.add(quest); } @@ -39,7 +40,7 @@ public class NPCQuestInfo { * * @param quest

The quest to add

*/ - public void addQuestDeliver(IQuest quest) { + public void addQuestDeliver(@NotNull IQuest quest) { this.questDeliver.add(quest); } @@ -48,7 +49,7 @@ public class NPCQuestInfo { * * @param quest

The quest to add

*/ - public void addQuestInteract(IQuest quest) { + public void addQuestInteract(@NotNull IQuest quest) { this.questInteract.add(quest); } @@ -57,7 +58,7 @@ public class NPCQuestInfo { * * @return

All quests this NPC is used to start

*/ - public List getQuestStarts() { + public @NotNull List getQuestStarts() { return new ArrayList<>(this.questStart); } @@ -66,7 +67,7 @@ public class NPCQuestInfo { * * @return

All kill quests involving this NPC

*/ - public List getQuestKills() { + public @NotNull List getQuestKills() { return new ArrayList<>(this.questKill); } @@ -75,7 +76,7 @@ public class NPCQuestInfo { * * @return

All quests delivering to this NPC

*/ - public List getQuestDeliveries() { + public @NotNull List getQuestDeliveries() { return new ArrayList<>(this.questDeliver); } @@ -84,7 +85,7 @@ public class NPCQuestInfo { * * @return

All quests requiring interaction with this NPC

*/ - public List getQuestInteractions() { + public @NotNull List getQuestInteractions() { return new ArrayList<>(this.questInteract); } @@ -93,7 +94,7 @@ public class NPCQuestInfo { * * @return

The main type of the quest NPC

*/ - public QuestNPCType getQuestNPCType() { + public @NotNull QuestNPCType getQuestNPCType() { if (!questStart.isEmpty()) { return QuestNPCType.GIVER; } else if (!questKill.isEmpty() && questInteract.isEmpty() && questDeliver.isEmpty()) { @@ -112,7 +113,7 @@ public class NPCQuestInfo { * * @return

The icon used to mark this NPC

*/ - public Icon getNPCIcon() { + public @NotNull Icon getNPCIcon() { QuestNPCType type = getQuestNPCType(); return switch (type) { case KILL -> Icon.QUEST_KILL; diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestAreaHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestAreaHandler.java index adf80b8..8089b65 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestAreaHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestAreaHandler.java @@ -15,6 +15,7 @@ import org.bukkit.entity.EntityType; import org.dynmap.DynmapAPI; import org.dynmap.markers.GenericMarker; import org.dynmap.markers.MarkerSet; +import org.jetbrains.annotations.NotNull; import java.util.List; @@ -43,8 +44,8 @@ public class QuestAreaHandler { * @param settings

The quests settings to use

* @param unavailableQuests

The list of currently unavailable quests to possibly skip

*/ - public QuestAreaHandler(QuestsAPI questsAPI, DynmapAPI dynmapAPI, QuestsSettings settings, - List unavailableQuests) { + public QuestAreaHandler(@NotNull QuestsAPI questsAPI, @NotNull DynmapAPI dynmapAPI, @NotNull QuestsSettings settings, + @NotNull List unavailableQuests) { this.questsAPI = questsAPI; this.settings = settings; this.unavailableQuests = unavailableQuests; @@ -78,7 +79,7 @@ public class QuestAreaHandler { * @param quest

The quest the stage belongs to

* @param stage

The stage to search for reach locations

*/ - private void markReachLocations(IQuest quest, IStage stage) { + private void markReachLocations(@NotNull IQuest quest, @NotNull IStage stage) { if (settings.getReachAreaSettings().isDisabled()) { return; } @@ -106,7 +107,7 @@ public class QuestAreaHandler { * @param quest

The quest the stage belongs to

* @param stage

The stage to search for kill locations

*/ - private void markKillLocations(IQuest quest, IStage stage) { + private void markKillLocations(@NotNull IQuest quest, @NotNull IStage stage) { if (settings.getKillAreaSettings().isDisabled()) { return; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestNPCType.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestNPCType.java index ea90965..c7d1af4 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestNPCType.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestNPCType.java @@ -1,5 +1,7 @@ package net.knarcraft.dynmapcitizens.handler.trait.quests; +import org.jetbrains.annotations.NotNull; + /** * A specifier for a quest NPC's main type */ @@ -8,26 +10,47 @@ public enum QuestNPCType { /** * An NPC responsible for giving quests */ - GIVER, + GIVER("Quest Start NPC: "), /** * An NPC killed in a quest */ - KILL, + KILL("Quest Kill NPC: "), /** * An NPC set as the delivery target in a quest */ - DELIVER, + DELIVER("Quest Deliver NPC: "), /** * An NPC to be interacted with in a quest */ - INTERACT, + INTERACT("Quest Interact NPC: "), /** * An NPC which is not a quest giver, but has several tasks as part of other quests */ - CHAIN + CHAIN("Quest Chain NPC: "), + ; + + private final String markerTitle; + + /** + * Instantiates a new Quest NPC type + * + * @param markerTitle

The title of the marker for this type of quest NPC

+ */ + QuestNPCType(@NotNull String markerTitle) { + this.markerTitle = markerTitle; + } + + /** + * Gets the marker title for this Quest NPC type + * + * @return

The marker title

+ */ + public String getMarkerTitle() { + return this.markerTitle; + } } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestPlannerInfoGenerator.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestPlannerInfoGenerator.java index d3bce69..e266d68 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestPlannerInfoGenerator.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestPlannerInfoGenerator.java @@ -4,6 +4,7 @@ import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.quests.Planner; import net.knarcraft.dynmapcitizens.DynmapCitizens; import net.knarcraft.knarlib.formatting.TimeFormatter; +import org.jetbrains.annotations.NotNull; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -21,7 +22,7 @@ public class QuestPlannerInfoGenerator { * * @param quest

The quest to generate information about

*/ - public QuestPlannerInfoGenerator(IQuest quest) { + public QuestPlannerInfoGenerator(@NotNull IQuest quest) { this.quest = quest; } @@ -30,7 +31,7 @@ public class QuestPlannerInfoGenerator { * * @return

Information about when the quest is available

*/ - public String getQuestPlannerInfo() { + public @NotNull String getQuestPlannerInfo() { Planner planner = quest.getPlanner(); StringBuilder plannerInfo = new StringBuilder(); plannerInfo.append("Planner:
    "); @@ -74,7 +75,7 @@ public class QuestPlannerInfoGenerator { * @param timestamp

    A timestamp in milliseconds

    * @return

    A datetime string

    */ - private String formatTimestamp(long timestamp) { + private @NotNull String formatTimestamp(long timestamp) { DateFormat format = new SimpleDateFormat("dd MM yyyy HH:mm:ss"); Date date = new Date(timestamp); return format.format(date); diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java index 03f2dc0..c12472a 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRequirementsInfoGenerator.java @@ -9,6 +9,8 @@ import net.knarcraft.knarlib.formatting.StringFormatter; import net.knarcraft.knarlib.formatting.StringReplacer; import net.knarcraft.knarlib.formatting.TranslatableMessage; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -42,7 +44,7 @@ public class QuestRequirementsInfoGenerator { * @param questsAPI

    The API to use for getting quest information

    * @param quest

    The quest to generate information about

    */ - public QuestRequirementsInfoGenerator(QuestsAPI questsAPI, IQuest quest) { + public QuestRequirementsInfoGenerator(@NotNull QuestsAPI questsAPI, @NotNull IQuest quest) { this.questsAPI = questsAPI; this.quest = quest; formatter = DynmapCitizens.getFormatter(); @@ -53,7 +55,7 @@ public class QuestRequirementsInfoGenerator { * * @return

    Information about the quest's requirements

    */ - public String getQuestRequirementsInfo() { + public @NotNull String getQuestRequirementsInfo() { Requirements requirements = quest.getRequirements(); if (!requirements.hasRequirement()) { return ""; @@ -131,7 +133,7 @@ public class QuestRequirementsInfoGenerator { * @param items

    The items to get the names of

    * @return

    The names of the given items

    */ - private List getItemNames(List items) { + private @NotNull List getItemNames(@NotNull List items) { List itemNames = new ArrayList<>(); for (ItemStack itemStack : items) { itemNames.add(QuestsHelper.getUpperCasedItemStackString(itemStack)); @@ -145,7 +147,7 @@ public class QuestRequirementsInfoGenerator { * @param questIds

    The quests to get names for

    * @return

    A list of quest names

    */ - private List getQuestNames(List questIds) { + private @NotNull List getQuestNames(@NotNull List questIds) { List questNames = new ArrayList<>(questIds.size()); for (String questId : questIds) { IQuest quest = getQuest(questId); @@ -162,7 +164,7 @@ public class QuestRequirementsInfoGenerator { * @param questId

    The id of the quest to get

    * @return

    The quest, or null if not found

    */ - private IQuest getQuest(String questId) { + private @Nullable IQuest getQuest(@NotNull String questId) { for (IQuest quest : questsAPI.getLoadedQuests()) { if (quest.getId().equals(questId)) { return quest; @@ -181,8 +183,9 @@ public class QuestRequirementsInfoGenerator { * @param itemPlaceholder

    The placeholder to replace with each item in the list

    * @return

    The string corresponding to the given requirement list

    */ - private String getRequirementList(List itemList, TranslatableMessage formatMessage, String formatPlaceholder, - TranslatableMessage itemMessage, String itemPlaceholder) { + private @NotNull String getRequirementList(@NotNull List itemList, @NotNull TranslatableMessage formatMessage, + @NotNull String formatPlaceholder, @NotNull TranslatableMessage itemMessage, + @NotNull String itemPlaceholder) { StringBuilder blockedBuilder = new StringBuilder(); for (Object requirements : itemList) { blockedBuilder.append(formatter.replacePlaceholder(itemMessage, itemPlaceholder, diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRewardsInfoGenerator.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRewardsInfoGenerator.java index be055e7..0f2aa64 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRewardsInfoGenerator.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestRewardsInfoGenerator.java @@ -4,6 +4,7 @@ import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.quests.Rewards; import net.knarcraft.dynmapcitizens.util.QuestsHelper; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; /** * A class to generate a string containing all information about a quest's rewards @@ -17,7 +18,7 @@ public class QuestRewardsInfoGenerator { * * @param quest

    The quest to generate information about

    */ - public QuestRewardsInfoGenerator(IQuest quest) { + public QuestRewardsInfoGenerator(@NotNull IQuest quest) { this.quest = quest; } @@ -26,13 +27,14 @@ public class QuestRewardsInfoGenerator { * * @return

    Information about the quest's rewards

    */ - public String getQuestRewardsInfo() { + public @NotNull String getQuestRewardsInfo() { Rewards reward = quest.getRewards(); StringBuilder rewardInfo = new StringBuilder(); rewardInfo.append("Rewards:
      "); if (reward.getMoney() > 0) { - rewardInfo.append("
    • ").append(reward.getMoney()).append(" ").append(QuestsHelper.getCurrency(reward.getMoney())).append("
    • "); + rewardInfo.append("
    • ").append(reward.getMoney()).append(" ").append(QuestsHelper.getCurrency( + reward.getMoney())).append("
    • "); } if (reward.getExp() > 0) { diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestStagesInfoGenerator.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestStagesInfoGenerator.java index f91575d..bba3998 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestStagesInfoGenerator.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestStagesInfoGenerator.java @@ -8,6 +8,7 @@ import net.citizensnpcs.api.npc.NPCRegistry; import net.knarcraft.dynmapcitizens.util.QuestsHelper; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.UUID; @@ -24,7 +25,7 @@ public class QuestStagesInfoGenerator { * * @param quest

      The quest to generate information about

      */ - public QuestStagesInfoGenerator(IQuest quest) { + public QuestStagesInfoGenerator(@NotNull IQuest quest) { this.quest = quest; } @@ -33,7 +34,7 @@ public class QuestStagesInfoGenerator { * * @return

      A string with information about the quest's stages

      */ - public String getQuestStagesInfo() { + public @NotNull String getQuestStagesInfo() { StringBuilder questInfo = new StringBuilder(); NPCRegistry registry = CitizensAPI.getNPCRegistry(); int stageCounter = 1; @@ -64,7 +65,7 @@ public class QuestStagesInfoGenerator { * @param registry

      The registry to get NPC info from

      * @return

      Information about the stage's tasks

      */ - private String getStageInfo(IStage stage, NPCRegistry registry) { + private @NotNull String getStageInfo(@NotNull IStage stage, @NotNull NPCRegistry registry) { StringBuilder questInfo = new StringBuilder(); int mobTypes = stage.getMobsToKill().size(); for (int i = 0; i < mobTypes; i++) { @@ -134,7 +135,7 @@ public class QuestStagesInfoGenerator { * @param location

      The location to show

      * @return

      A human-friendly location string

      */ - private String getLocationString(Location location) { + private @NotNull String getLocationString(@NotNull Location location) { String locationString = location.getX() + "," + location.getY() + "," + location.getZ(); if (location.getWorld() != null) { locationString += " in world \"" + location.getWorld().getName() + "\""; @@ -149,7 +150,7 @@ public class QuestStagesInfoGenerator { * @param explanation

      The explanation of what the player needs to do with the items

      * @return

      A string describing the necessary tasks

      */ - private String getQuestItemsTaskString(List items, String explanation) { + private @NotNull String getQuestItemsTaskString(@NotNull List items, @NotNull String explanation) { StringBuilder questInfo = new StringBuilder(); for (ItemStack itemStack : items) { questInfo.append(explanation).append(QuestsHelper.getItemStackString(itemStack)); diff --git a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java index b68cf7c..58edd61 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/handler/trait/quests/QuestsHandler.java @@ -16,6 +16,7 @@ import org.dynmap.DynmapAPI; import org.dynmap.markers.GenericMarker; import org.dynmap.markers.Marker; import org.dynmap.markers.MarkerIcon; +import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.HashMap; @@ -52,7 +53,7 @@ public class QuestsHandler extends AbstractTraitHandler { } @Override - public TraitSettings getSettings() { + public @NotNull TraitSettings getSettings() { return this.settings; } @@ -140,7 +141,7 @@ public class QuestsHandler extends AbstractTraitHandler { existingMarker.setDescription(newDescription); } } else { - addNPCMarker(npcId, QuestsHelper.getMarkerTitle(info.getQuestNPCType()), newDescription, icon, super.markerSet); + addNPCMarker(npcId, info.getQuestNPCType().getMarkerTitle(), newDescription, icon, super.markerSet); } } } @@ -151,7 +152,7 @@ public class QuestsHandler extends AbstractTraitHandler { * @param stringBuilder

      The string builder to append to

      * @param offeredQuests

      The list of quests the NPC offers

      */ - private void appendOfferedQuestsInfo(StringBuilder stringBuilder, List offeredQuests) { + private void appendOfferedQuestsInfo(@NotNull StringBuilder stringBuilder, @NotNull List offeredQuests) { stringBuilder.append("

      Quests offered:

        "); for (IQuest quest : offeredQuests) { stringBuilder.append("
      • ").append(quest.getName()).append("

        - "); @@ -179,7 +180,7 @@ public class QuestsHandler extends AbstractTraitHandler { * @param info

        The NPC info to look through

        * @return

        Information about an NPC's involvement in different quests

        */ - private String getInvolvedInQuestsString(NPCQuestInfo info) { + private String getInvolvedInQuestsString(@NotNull NPCQuestInfo info) { List questKills = info.getQuestKills(); List questInteractions = info.getQuestInteractions(); List questDeliveries = info.getQuestDeliveries(); @@ -203,7 +204,8 @@ public class QuestsHandler extends AbstractTraitHandler { * @param quests

        The quests the NPC is involved in

        * @param builder

        The string builder to append to

        */ - private void addInvolvedInString(String prefix, List quests, StringBuilder builder) { + private void addInvolvedInString(@NotNull String prefix, @NotNull List quests, + @NotNull StringBuilder builder) { for (IQuest quest : new HashSet<>(quests)) { builder.append("
      • ").append(prefix).append(": ").append(quest.getName()).append("
      • "); } @@ -216,7 +218,7 @@ public class QuestsHandler extends AbstractTraitHandler { * @param npcId

        The id of the NPC to get information about

        * @return

        The NPC's info object

        */ - private NPCQuestInfo getInfo(UUID npcId) { + private @NotNull NPCQuestInfo getInfo(@NotNull UUID npcId) { if (questGiverInfo.get(npcId) == null) { questGiverInfo.put(npcId, new NPCQuestInfo()); } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/AbstractTraitSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/AbstractTraitSettings.java index e767e10..810d7e4 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/AbstractTraitSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/AbstractTraitSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * An abstract implementation of trait settings @@ -14,7 +15,7 @@ public abstract class AbstractTraitSettings implements TraitSettings { private String markerSetName; @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { this.isEnabled = configuration.getBoolean(getTraitConfigRoot() + ".enabled", false); this.markerSetId = configuration.getString(getTraitConfigRoot() + ".markerSetId", null); this.markerSetPriority = configuration.getInt(getTraitConfigRoot() + ".markerSetPriority", 1); @@ -28,12 +29,12 @@ public abstract class AbstractTraitSettings implements TraitSettings { } @Override - public String getMarkerSetId() { + public @NotNull String getMarkerSetId() { return markerSetId; } @Override - public String getMarkerSetName() { + public @NotNull String getMarkerSetName() { return markerSetName; } @@ -52,6 +53,6 @@ public abstract class AbstractTraitSettings implements TraitSettings { * * @return

        The root config node for this trait's settings

        */ - protected abstract String getTraitConfigRoot(); + protected abstract @NotNull String getTraitConfigRoot(); } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/AreaMarkerSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/AreaMarkerSettings.java index f581383..febb29d 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/AreaMarkerSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/AreaMarkerSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * Stores information about one kind of area marker @@ -24,7 +25,7 @@ public class AreaMarkerSettings { * @param fileConfiguration

        The file configuration to load settings from

        * @param configRoot

        The config root node containing all config values for one marker

        */ - public void load(FileConfiguration fileConfiguration, String configRoot) { + public void load(@NotNull FileConfiguration fileConfiguration, @NotNull String configRoot) { this.enabled = fileConfiguration.getBoolean(configRoot + ".enabled", false); this.markerSetPriority = fileConfiguration.getInt(configRoot + ".markerSetPriority", 1); this.markerSetId = fileConfiguration.getString(configRoot + ".markerSetId", null); @@ -60,7 +61,7 @@ public class AreaMarkerSettings { * * @return

        The dynmap id of this marker set

        */ - public String getMarkerSetId() { + public @NotNull String getMarkerSetId() { return this.markerSetId; } @@ -69,7 +70,7 @@ public class AreaMarkerSettings { * * @return

        The name of this marker set

        */ - public String getMarkerSetName() { + public @NotNull String getMarkerSetName() { return this.markerSetName; } @@ -87,7 +88,7 @@ public class AreaMarkerSettings { * * @return

        The marker fill color

        */ - public String getFillColor() { + public @NotNull String getFillColor() { return this.fillColor; } @@ -96,7 +97,7 @@ public class AreaMarkerSettings { * * @return

        The marker outline color

        */ - public String getLineColor() { + public @NotNull String getLineColor() { return this.lineColor; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/BlacksmithSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/BlacksmithSettings.java index 533c21d..e9de87f 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/BlacksmithSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/BlacksmithSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * All settings for the blacksmith trait @@ -10,13 +11,13 @@ public class BlacksmithSettings extends AbstractTraitSettings { private boolean displayBlacksmithSettings; @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { super.load(configuration); displayBlacksmithSettings = configuration.getBoolean(getTraitConfigRoot() + ".displayBlacksmithSettings", true); } @Override - protected String getTraitConfigRoot() { + protected @NotNull String getTraitConfigRoot() { return "traits.blacksmith"; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/DTLTradersSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/DTLTradersSettings.java index 80b3593..c107502 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/DTLTradersSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/DTLTradersSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * All settings for the minstrel trait @@ -8,12 +9,12 @@ import org.bukkit.configuration.file.FileConfiguration; public class DTLTradersSettings extends AbstractTraitSettings { @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { super.load(configuration); } @Override - protected String getTraitConfigRoot() { + protected @NotNull String getTraitConfigRoot() { return "traits.trader"; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/GlobalSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/GlobalSettings.java index 47f70bd..04f66a5 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/GlobalSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/GlobalSettings.java @@ -6,6 +6,7 @@ import org.bukkit.configuration.file.FileConfiguration; import org.dynmap.DynmapAPI; import org.dynmap.markers.MarkerAPI; import org.dynmap.markers.MarkerIcon; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; @@ -24,7 +25,7 @@ public class GlobalSettings { * * @param configuration

        The configuration to load from

        */ - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { DynmapAPI dynmapAPI = DynmapCitizens.getInstance().getDynmapAPI(); MarkerAPI markerAPI = dynmapAPI.getMarkerAPI(); @@ -43,7 +44,7 @@ public class GlobalSettings { * * @return

        The marker icons to use

        */ - public Map getMarkerIcons() { + public @NotNull Map getMarkerIcons() { return new HashMap<>(markerIcons); } @@ -71,7 +72,7 @@ public class GlobalSettings { * @param icon

        The icon identifier to get the icon for

        * @return

        The default icon name

        */ - private String getDefaultIconName(Icon icon) { + private @NotNull String getDefaultIconName(@NotNull Icon icon) { //The advantage of this switch over a map is that it will throw an error if a case is missing return switch (icon) { case QUEST_GIVER -> "exclamation"; diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/MinstrelSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/MinstrelSettings.java index bf63599..3ebc246 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/MinstrelSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/MinstrelSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * All settings for the minstrel trait @@ -10,13 +11,13 @@ public class MinstrelSettings extends AbstractTraitSettings { private boolean displayMinstrelSongs; @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { super.load(configuration); displayMinstrelSongs = configuration.getBoolean(getTraitConfigRoot() + ".displayMinstrelSongs", true); } @Override - protected String getTraitConfigRoot() { + protected @NotNull String getTraitConfigRoot() { return "traits.minstrel"; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/QuestsSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/QuestsSettings.java index 385c695..3d6abe4 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/QuestsSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/QuestsSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * All settings for the quests trait @@ -16,7 +17,7 @@ public class QuestsSettings extends AbstractTraitSettings { private final AreaMarkerSettings reachAreaSettings = new AreaMarkerSettings(); @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { super.load(configuration); this.displayRewardInfo = configuration.getBoolean(getTraitConfigRoot() + ".displayRewardInfo", true); this.displayPlannerInfo = configuration.getBoolean(getTraitConfigRoot() + ".displayPlannerInfo", true); @@ -28,7 +29,7 @@ public class QuestsSettings extends AbstractTraitSettings { } @Override - protected String getTraitConfigRoot() { + protected @NotNull String getTraitConfigRoot() { return "traits.quests"; } @@ -82,7 +83,7 @@ public class QuestsSettings extends AbstractTraitSettings { * * @return

        Settings for the kill area markers

        */ - public AreaMarkerSettings getKillAreaSettings() { + public @NotNull AreaMarkerSettings getKillAreaSettings() { return killAreaSettings; } @@ -91,7 +92,7 @@ public class QuestsSettings extends AbstractTraitSettings { * * @return

        Settings for the reach area markers

        */ - public AreaMarkerSettings getReachAreaSettings() { + public @NotNull AreaMarkerSettings getReachAreaSettings() { return reachAreaSettings; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/SentinelSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/SentinelSettings.java index 9b4c665..d63b77a 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/SentinelSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/SentinelSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * All settings for the sentinel trait @@ -10,13 +11,13 @@ public class SentinelSettings extends AbstractTraitSettings { private boolean displaySentinelStats; @Override - public void load(FileConfiguration configuration) { + public void load(@NotNull FileConfiguration configuration) { super.load(configuration); displaySentinelStats = configuration.getBoolean(getTraitConfigRoot() + ".displaySentinelStats", true); } @Override - protected String getTraitConfigRoot() { + protected @NotNull String getTraitConfigRoot() { return "traits.sentinel"; } diff --git a/src/main/java/net/knarcraft/dynmapcitizens/settings/TraitSettings.java b/src/main/java/net/knarcraft/dynmapcitizens/settings/TraitSettings.java index 58256a8..933839e 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/settings/TraitSettings.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/settings/TraitSettings.java @@ -1,6 +1,7 @@ package net.knarcraft.dynmapcitizens.settings; import org.bukkit.configuration.file.FileConfiguration; +import org.jetbrains.annotations.NotNull; /** * An interface describing a generic trait settings class @@ -12,7 +13,7 @@ public interface TraitSettings { * * @param configuration

        The configuration to load values from

        */ - void load(FileConfiguration configuration); + void load(@NotNull FileConfiguration configuration); /** * Gets whether this trait type is enabled in the config @@ -28,14 +29,14 @@ public interface TraitSettings { * * @return

        The id of the marker set

        */ - String getMarkerSetId(); + @NotNull String getMarkerSetId(); /** * Gets the name of this trait's marker set * * @return

        The name of the marker set

        */ - String getMarkerSetName(); + @NotNull String getMarkerSetName(); /** * Gets the priority of the trait's marker set diff --git a/src/main/java/net/knarcraft/dynmapcitizens/util/DynmapHelper.java b/src/main/java/net/knarcraft/dynmapcitizens/util/DynmapHelper.java index fbe9990..96e7696 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/util/DynmapHelper.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/util/DynmapHelper.java @@ -7,6 +7,8 @@ import org.bukkit.World; import org.dynmap.DynmapAPI; import org.dynmap.markers.CircleMarker; import org.dynmap.markers.MarkerSet; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.logging.Level; @@ -20,7 +22,8 @@ public class DynmapHelper { * @param label

        The label of the marker set if creation is necessary

        * @return

        The marker set, or null if something went wrong

        */ - public static MarkerSet getMarkerSet(DynmapAPI dynmapAPI, String setId, String label) { + public static @Nullable MarkerSet getMarkerSet(@NotNull DynmapAPI dynmapAPI, @NotNull String setId, + @NotNull String label) { MarkerSet markerSet = dynmapAPI.getMarkerAPI().getMarkerSet(setId); if (markerSet == null) { markerSet = dynmapAPI.getMarkerAPI().createMarkerSet(setId, label, null, false); @@ -41,7 +44,8 @@ public class DynmapHelper { * @param markerSettings

        The settings to use for initialization

        * @return

        The initialized marker

        */ - public static MarkerSet initializeMarkerSet(DynmapAPI dynmapAPI, AreaMarkerSettings markerSettings) { + public static @Nullable MarkerSet initializeMarkerSet(@NotNull DynmapAPI dynmapAPI, + @NotNull AreaMarkerSettings markerSettings) { MarkerSet markerSet = DynmapHelper.getMarkerSet(dynmapAPI, markerSettings.getMarkerSetId(), markerSettings.getMarkerSetName()); if (markerSet != null) { @@ -60,8 +64,9 @@ public class DynmapHelper { * @param markerSet

        The marker set to use when marking the location

        * @param markerSettings

        The settings to use for the marker

        */ - public static void markLocation(Location location, Integer radius, String description, MarkerSet markerSet, - AreaMarkerSettings markerSettings) { + public static void markLocation(@NotNull Location location, @NotNull Integer radius, + @NotNull String description, @NotNull MarkerSet markerSet, + @NotNull AreaMarkerSettings markerSettings) { //Skip if location is invalid World world = location.getWorld(); if (world == null) { @@ -86,7 +91,7 @@ public class DynmapHelper { * @param color

        A hexadecimal color

        * @return

        An integer representation of the color

        */ - private static int getColor(String color) { + private static int getColor(@NotNull String color) { try { return Integer.parseInt(color, 16); } catch (NumberFormatException exception) { diff --git a/src/main/java/net/knarcraft/dynmapcitizens/util/QuestsHelper.java b/src/main/java/net/knarcraft/dynmapcitizens/util/QuestsHelper.java index a29f5d8..0082720 100644 --- a/src/main/java/net/knarcraft/dynmapcitizens/util/QuestsHelper.java +++ b/src/main/java/net/knarcraft/dynmapcitizens/util/QuestsHelper.java @@ -4,8 +4,8 @@ import me.blackvein.quests.quests.IQuest; import me.blackvein.quests.quests.Planner; import net.knarcraft.dynmapcitizens.DynmapCitizens; import net.knarcraft.dynmapcitizens.handler.VaultHandler; -import net.knarcraft.dynmapcitizens.handler.trait.quests.QuestNPCType; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; /** * A helper class for various quests-related tasks @@ -18,7 +18,7 @@ public class QuestsHelper { * @param itemStack

        The item stack to get the string for

        * @return

        A string describing the item stack

        */ - public static String getUpperCasedItemStackString(ItemStack itemStack) { + public static @NotNull String getUpperCasedItemStackString(@NotNull ItemStack itemStack) { return uppercaseFirst(getItemStackString(itemStack)); } @@ -28,7 +28,7 @@ public class QuestsHelper { * @param itemStack

        The item stack to print

        * @return

        The string representation of the item stack

        */ - public static String getItemStackString(ItemStack itemStack) { + public static @NotNull String getItemStackString(@NotNull ItemStack itemStack) { return normalizeName(itemStack.getType().name()) + " x " + itemStack.getAmount(); } @@ -38,7 +38,7 @@ public class QuestsHelper { * @param string

        The string to run on

        * @return

        The same string, with the first character converted to uppercase

        */ - private static String uppercaseFirst(String string) { + private static @NotNull String uppercaseFirst(@NotNull String string) { return string.substring(0, 1).toUpperCase() + string.substring(1); } @@ -48,7 +48,7 @@ public class QuestsHelper { * @param name

        The name to normalize

        * @return

        The normalized name

        */ - public static String normalizeName(String name) { + public static @NotNull String normalizeName(@NotNull String name) { return name.toLowerCase().replace("_", " "); } @@ -58,7 +58,7 @@ public class QuestsHelper { * @param money

        The amount to pay/use

        * @return

        The currency name to use

        */ - public static String getCurrency(double money) { + public static @NotNull String getCurrency(double money) { VaultHandler vaultHandler = DynmapCitizens.getInstance().getVaultHandler(); if (vaultHandler.isEnabled()) { return vaultHandler.getCurrency(money != 1); @@ -67,29 +67,13 @@ public class QuestsHelper { } } - /** - * Gets the marker title to use for the given quest NPC type - * - * @param type

        The type of marker to get the title for

        - * @return

        The title to use for the marker

        - */ - public static String getMarkerTitle(QuestNPCType type) { - return switch (type) { - case GIVER -> "Quest Start NPC: "; - case INTERACT -> "Quest Interact NPC: "; - case DELIVER -> "Quest Deliver NPC: "; - case KILL -> "Quest Kill NPC: "; - case CHAIN -> "Quest Chain NPC: "; - }; - } - /** * Checks whether the given quest is unavailable, according to its planner information * * @param quest

        The quest to check for availability

        * @return

        True if the quest is unavailable

        */ - public static boolean isQuestUnavailable(IQuest quest) { + public static boolean isQuestUnavailable(@NotNull IQuest quest) { Planner planner = quest.getPlanner(); long currentTime = System.currentTimeMillis();