Adds icons for trader NPCs
All checks were successful
KnarCraft/DynmapCitizens/pipeline/head This commit looks good

This commit is contained in:
2023-08-21 22:38:07 +02:00
parent 9312e2156b
commit 88bf1b28c2
9 changed files with 106 additions and 5 deletions

View File

@ -0,0 +1,53 @@
package net.knarcraft.dynmapcitizens.handler.trait;
import net.citizensnpcs.api.CitizensAPI;
import net.citizensnpcs.api.npc.NPC;
import net.citizensnpcs.api.trait.Trait;
import net.knarcraft.dynmapcitizens.DynmapCitizens;
import net.knarcraft.dynmapcitizens.property.Icon;
import net.knarcraft.dynmapcitizens.settings.DTLTradersSettings;
import net.knarcraft.dynmapcitizens.settings.TraitSettings;
import org.dynmap.markers.GenericMarker;
/**
* A handler class for the minstrel trait
*/
public class DTLTradersHandler extends AbstractTraitHandler {
private final DTLTradersSettings settings = new DTLTradersSettings();
@Override
public void initialize() {
super.isEnabled = false;
CitizensAPI.getTraitFactory().getRegisteredTraits().forEach(traitInfo -> {
if (traitInfo.getTraitName().equals("trader")) {
super.isEnabled = true;
}
});
if (this.isEnabled) {
super.initializeMarkerSet();
}
}
@Override
public TraitSettings getSettings() {
return this.settings;
}
@Override
public void updateMarkers() {
//Remove existing markers
super.markerSet.getMarkers().forEach(GenericMarker::deleteMarker);
Class<? extends Trait> traderTrait = CitizensAPI.getTraitFactory().getTraitClass("trader");
for (NPC npc : CitizensAPI.getNPCRegistry()) {
if (npc.hasTrait(traderTrait)) {
String description = "<h2>" + npc.getName() + "</h2>";
addNPCMarker(npc.getUniqueId(), "Trader NPC: ", description,
DynmapCitizens.getInstance().getGlobalSettings().getMarkerIcons().get(Icon.TRADER), super.markerSet);
}
}
}
}

View File

@ -93,7 +93,7 @@ public class QuestAreaHandler {
} else {
formattedAreaName = "";
}
String description = formatter.replacePlaceholders(QUESTS_REACH_AREA_DESCRIPTION_FORMAT,
new String[]{"{areaName}", "{questName}"}, new String[]{formattedAreaName, quest.getName()});
DynmapHelper.markLocation(location, radius, description, reachAreaMarkerSet, settings.getReachAreaSettings());