Is there a way to stop a faction from issuing procurement/survey missions? (I suspect there isn't, but want to be sure)
(in this case making all the markets hidden isn't an option)
Doesn't look like it, no.
... well, there's the nuclear option -
Using GenericMissionManager.getInstance().getCreators() to clear out the default mission creators, and then adding your own which would market.setHidden(true) any markets to exclude before calling the AnalyzeEntityMissionIntel etc constructors, then setting them back to not hidden again. But, yeah, that's a fair bit of work.
The default creators are added in CoreLifecyclePluginImpl, like so:
GenericMissionManager manager = GenericMissionManager.getInstance();
if (!manager.hasMissionCreator(ProcurementMissionCreator.class)) {
manager.addMissionCreator(new ProcurementMissionCreator());
}
if (!manager.hasMissionCreator(AnalyzeEntityIntelCreator.class)) {
manager.addMissionCreator(new AnalyzeEntityIntelCreator());
}
if (!manager.hasMissionCreator(SurveyPlanetIntelCreator.class)) {
manager.addMissionCreator(new SurveyPlanetIntelCreator());
}
Is there currently any instance where FactionAPI.getDisplayName() and getDisplayNameWithArticleWithoutArticle() return different things?
Pirates and independents:
"displayName":"pirates",
"displayNameWithArticle":"the pirates",
"displayName":"independent",
"displayNameWithArticle":"the independents",
That method is basically just there to only highlight the "independents" part (without the "the") of stuff like "a fleet sent by the independents" etc.