Helper method for replaceToken, deals with the filter tokens e.g. %DOMAIN, basically returns 0 if we should not be writing something out, e.g. It's filtered out @param aString @param aPC @return 0 If we should not be writing something out
(String aString, PlayerCharacter aPC)
| 1811 | * @return 0 If we should not be writing something out |
| 1812 | */ |
| 1813 | private int dealWithFilteredTokens(String aString, PlayerCharacter aPC) |
| 1814 | { |
| 1815 | // Start by stating that we are allowed to write |
| 1816 | canWrite = true; |
| 1817 | |
| 1818 | // Get the merge strategy for equipment for later use |
| 1819 | int merge = getEquipmentMergingStrategy(aString); |
| 1820 | |
| 1821 | // Filter out on GAMEMODE |
| 1822 | if (aString.substring(1).startsWith("GAMEMODE:")) |
| 1823 | { |
| 1824 | if (aString.substring(10).endsWith(GameModeToken.getGameModeToken())) |
| 1825 | { |
| 1826 | canWrite = false; |
| 1827 | } |
| 1828 | return 0; |
| 1829 | } |
| 1830 | |
| 1831 | // Filter out REGION |
| 1832 | CharacterDisplay display = aPC.getDisplay(); |
| 1833 | if ("REGION".equals(aString.substring(1))) |
| 1834 | { |
| 1835 | if (display.getRegion().isPresent() |
| 1836 | && display.getRegion().get().equals(Region.NONE)) |
| 1837 | { |
| 1838 | canWrite = false; |
| 1839 | } |
| 1840 | return 0; |
| 1841 | } |
| 1842 | |
| 1843 | // Filter out NOTES |
| 1844 | if ("NOTES".equals(aString.substring(1))) |
| 1845 | { |
| 1846 | if (aPC.getDisplay().getNotesCount() <= 0) |
| 1847 | { |
| 1848 | canWrite = false; |
| 1849 | } |
| 1850 | return 0; |
| 1851 | } |
| 1852 | |
| 1853 | // Filter out SKILLPOINTS |
| 1854 | if ("SKILLPOINTS".equals(aString.substring(1))) |
| 1855 | { |
| 1856 | if (SkillpointsToken.getUnusedSkillPoints(aPC) == 0) |
| 1857 | { |
| 1858 | canWrite = false; |
| 1859 | } |
| 1860 | return 0; |
| 1861 | } |
| 1862 | |
| 1863 | // Filter out TEMPLATE |
| 1864 | if (aString.substring(1).startsWith("TEMPLATE")) |
| 1865 | { |
| 1866 | // New token syntax |%TEMPLATE.x| instead of |%TEMPLATEx| |
| 1867 | final StringTokenizer aTok = new StringTokenizer(aString.substring(1), "."); |
| 1868 | final List<PCTemplate> tList = new ArrayList<>(aPC.getTemplateSet()); |
| 1869 | String fString = aTok.nextToken(); |
| 1870 | final int index; |
no test coverage detected