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}