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 011/** 012 * SetCodexEntryId <entry id> 013 * Sets the id of the entry to show when the Codex is opened, with an expiration of 0. 014 * If no entry id is specified, it is unset instead. 015 */ 016public class SetCodexEntryId extends BaseCommandPlugin { 017 018 public static String GLOBAL_CODEX_ENTRY_TO_OPEN = "$codexEntryId"; 019 020 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 021 if (dialog == null) return false; 022 023 if (params.size() <= 0) { 024 Global.getSector().getMemoryWithoutUpdate().unset(GLOBAL_CODEX_ENTRY_TO_OPEN); 025 } else { 026 Global.getSector().getMemoryWithoutUpdate().set( 027 GLOBAL_CODEX_ENTRY_TO_OPEN, params.get(0).getString(memoryMap), 0f); 028 } 029 030 031 return true; 032 } 033 034}