001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.ArrayList;
004import java.util.List;
005import java.util.Map;
006
007import com.fs.starfarer.api.campaign.InteractionDialogAPI;
008import com.fs.starfarer.api.campaign.rules.MemKeys;
009import com.fs.starfarer.api.campaign.rules.MemoryAPI;
010import com.fs.starfarer.api.util.Misc.Token;
011
012public class unsetAll extends BaseCommandPlugin {
013
014        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
015
016                String string = params.get(0).string;
017                int index = string.indexOf(".");
018                String memoryKey;
019                String varPrefix;
020                if (index > 0) {
021                        memoryKey = string.substring(1, index);
022                        varPrefix = "$" + string.substring(index + 1);
023                } else {
024                        memoryKey = MemKeys.LOCAL;
025                        varPrefix = string;
026                }
027                
028                MemoryAPI memory = memoryMap.get(memoryKey);
029                List<String> unset = new ArrayList<String>();
030                for (String key : memory.getKeys()) {
031                        if (key.startsWith(varPrefix)) {
032                                unset.add(key);
033                        }
034                }
035                for (String key : unset) {
036                        memory.unset(key);
037                }
038
039                
040                return true;
041        }
042
043}