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.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.rules.MemoryAPI;
009import com.fs.starfarer.api.util.Misc.Token;
010
011public class DismissDialog extends BaseCommandPlugin {
012
013        public static final String DISMISS_PARAM = "$core_dismissParam";
014
015        /**
016         * Unsets it as well - subsequent call will return null.
017         * @return
018         */
019        public static String getDismissParam() {
020                String result = Global.getSector().getMemoryWithoutUpdate().getString(DISMISS_PARAM);
021                Global.getSector().getMemoryWithoutUpdate().unset(DISMISS_PARAM);
022                return result;
023        }
024        
025        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
026                if (dialog != null) {
027                        
028                        if (params != null && params.size() > 0) {
029                                String str = params.get(0).getString(memoryMap);
030                                Global.getSector().getMemoryWithoutUpdate().set(DISMISS_PARAM, str);
031                        }
032                        
033                        dialog.dismiss();
034                        return true;
035                }
036                return false;
037        }
038
039}