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}