001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.CommDirectoryEntryAPI; 008import com.fs.starfarer.api.campaign.InteractionDialogAPI; 009import com.fs.starfarer.api.campaign.rules.MemoryAPI; 010import com.fs.starfarer.api.characters.PersonAPI; 011import com.fs.starfarer.api.util.Misc.Token; 012import com.fs.starfarer.api.util.Misc.VarAndMemory; 013 014/** 015 * SetPersonHidden set person hidden boolean by character id 016 */ 017public class SetPersonHidden extends BaseCommandPlugin { 018 019 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 020 021 // if you wanted to just pass in the person ID. The person has to have been 022 // added to ImportantPeople at some point (as the people defined in People are) 023 String id = params.get(0).getString(memoryMap); 024 PersonAPI person = Global.getSector().getImportantPeople().getPerson(id); 025 026 //VarAndMemory var = params.get(0).getVarNameAndMemory(memoryMap); 027 //PersonAPI person = (PersonAPI) var.memory.get(var.name); 028 029 boolean hidden = params.get(1).getBoolean(memoryMap); 030 031 if (person.getMarket() == null) return false; 032 if (person.getMarket().getCommDirectory() == null) return false; 033 if (person.getMarket().getCommDirectory().getEntryForPerson(person.getId()) == null) return false; 034 035 person.getMarket().getCommDirectory().getEntryForPerson(person.getId()).setHidden(hidden); 036 return true; 037 038 } 039}