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 { * * @returnThe Vault handler
*/ - public VaultHandler getVaultHandler() { + public @NotNull VaultHandler getVaultHandler() { return this.vaultHandler; } @@ -130,7 +131,7 @@ public final class DynmapCitizens extends JavaPlugin { * * @returnA 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 configurationThe 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 servicesManagerThe services manager to get the Vault service from
*/ - public VaultHandler(ServicesManager servicesManager) { + public VaultHandler(@NotNull ServicesManager servicesManager) { RegisteredServiceProviderThe 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 iconThe icon used for the marker
* @param markerSetThe 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 npcThe NPC to check
* @returnTrue 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 npcSettingsThe settings to search for information
* @returnA string describing the blacksmith
*/ - private String getDetailedBlacksmithInfo(NPC npc, NPCSettings npcSettings) { + private @NotNull String getDetailedBlacksmithInfo(@NotNull NPC npc, @NotNull NPCSettings npcSettings) { String info = "The materials specified as reforge-able items
* @returnThe reforge-able items
*/ - private static String getReforgeAbleItemsString(ListThe 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 questThe 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 questThe 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 questThe 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 questThe 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 { * * @returnAll quests this NPC is used to start
*/ - public ListAll kill quests involving this NPC
*/ - public ListAll quests delivering to this NPC
*/ - public ListAll quests requiring interaction with this NPC
*/ - public ListThe 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 { * * @returnThe 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 settingsThe quests settings to use
* @param unavailableQuestsThe list of currently unavailable quests to possibly skip
*/ - public QuestAreaHandler(QuestsAPI questsAPI, DynmapAPI dynmapAPI, QuestsSettings settings, - ListThe quest the stage belongs to
* @param stageThe 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 questThe quest the stage belongs to
* @param stageThe 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 markerTitleThe 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 + * + * @returnThe 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 questThe quest to generate information about
*/ - public QuestPlannerInfoGenerator(IQuest quest) { + public QuestPlannerInfoGenerator(@NotNull IQuest quest) { this.quest = quest; } @@ -30,7 +31,7 @@ public class QuestPlannerInfoGenerator { * * @returnInformation about when the quest is available
*/ - public String getQuestPlannerInfo() { + public @NotNull String getQuestPlannerInfo() { Planner planner = quest.getPlanner(); StringBuilder plannerInfo = new StringBuilder(); plannerInfo.append("Planner:A timestamp in milliseconds
* @returnA 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 questsAPIThe API to use for getting quest information
* @param questThe 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 { * * @returnInformation 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 itemsThe items to get the names of
* @returnThe names of the given items
*/ - private ListThe quests to get names for
* @returnA list of quest names
*/ - private ListThe id of the quest to get
* @returnThe 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 itemPlaceholderThe placeholder to replace with each item in the list
* @returnThe string corresponding to the given requirement list
*/ - private String getRequirementList(ListThe quest to generate information about
*/ - public QuestRewardsInfoGenerator(IQuest quest) { + public QuestRewardsInfoGenerator(@NotNull IQuest quest) { this.quest = quest; } @@ -26,13 +27,14 @@ public class QuestRewardsInfoGenerator { * * @returnInformation about the quest's rewards
*/ - public String getQuestRewardsInfo() { + public @NotNull String getQuestRewardsInfo() { Rewards reward = quest.getRewards(); StringBuilder rewardInfo = new StringBuilder(); rewardInfo.append("Rewards: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 { * * @returnA 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 registryThe registry to get NPC info from
* @returnInformation 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 locationThe location to show
* @returnA 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 explanationThe explanation of what the player needs to do with the items
* @returnA string describing the necessary tasks
*/ - private String getQuestItemsTaskString(ListThe string builder to append to
* @param offeredQuestsThe list of quests the NPC offers
*/ - private void appendOfferedQuestsInfo(StringBuilder stringBuilder, ListThe NPC info to look through
* @returnInformation about an NPC's involvement in different quests
*/ - private String getInvolvedInQuestsString(NPCQuestInfo info) { + private String getInvolvedInQuestsString(@NotNull NPCQuestInfo info) { ListThe quests the NPC is involved in
* @param builderThe string builder to append to
*/ - private void addInvolvedInString(String prefix, ListThe id of the NPC to get information about
* @returnThe 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 { * * @returnThe 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 fileConfigurationThe file configuration to load settings from
* @param configRootThe 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 { * * @returnThe dynmap id of this marker set
*/ - public String getMarkerSetId() { + public @NotNull String getMarkerSetId() { return this.markerSetId; } @@ -69,7 +70,7 @@ public class AreaMarkerSettings { * * @returnThe name of this marker set
*/ - public String getMarkerSetName() { + public @NotNull String getMarkerSetName() { return this.markerSetName; } @@ -87,7 +88,7 @@ public class AreaMarkerSettings { * * @returnThe marker fill color
*/ - public String getFillColor() { + public @NotNull String getFillColor() { return this.fillColor; } @@ -96,7 +97,7 @@ public class AreaMarkerSettings { * * @returnThe 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 configurationThe 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 { * * @returnThe marker icons to use
*/ - public MapThe icon identifier to get the icon for
* @returnThe 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 { * * @returnSettings for the kill area markers
*/ - public AreaMarkerSettings getKillAreaSettings() { + public @NotNull AreaMarkerSettings getKillAreaSettings() { return killAreaSettings; } @@ -91,7 +92,7 @@ public class QuestsSettings extends AbstractTraitSettings { * * @returnSettings 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 configurationThe 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 { * * @returnThe id of the marker set
*/ - String getMarkerSetId(); + @NotNull String getMarkerSetId(); /** * Gets the name of this trait's marker set * * @returnThe 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 labelThe label of the marker set if creation is necessary
* @returnThe 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 markerSettingsThe settings to use for initialization
* @returnThe 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 markerSetThe marker set to use when marking the location
* @param markerSettingsThe 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 colorA hexadecimal color
* @returnAn 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 itemStackThe item stack to get the string for
* @returnA 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 itemStackThe item stack to print
* @returnThe 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 stringThe string to run on
* @returnThe 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 nameThe name to normalize
* @returnThe 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 moneyThe amount to pay/use
* @returnThe 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 typeThe type of marker to get the title for
- * @returnThe 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 questThe quest to check for availability
* @returnTrue 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();