From bde00f08b92d6a9e91e56460b04f2e2238ae6b47 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Thu, 7 Sep 2017 13:26:04 +0000 Subject: [PATCH] Community board buff skill id protection. --- .../dist/game/config/Custom/CommunityBoard.ini | 4 ++++ .../data/scripts/handlers/communityboard/HomeBoard.java | 9 ++++++--- L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java | 7 +++++++ .../dist/game/config/Custom/CommunityBoard.ini | 4 ++++ .../data/scripts/handlers/communityboard/HomeBoard.java | 9 ++++++--- .../java/com/l2jmobius/Config.java | 7 +++++++ .../dist/game/config/Custom/CommunityBoard.ini | 4 ++++ .../data/scripts/handlers/communityboard/HomeBoard.java | 9 ++++++--- L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java | 7 +++++++ L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom.ini | 4 ++++ .../data/scripts/handlers/communityboard/HomeBoard.java | 5 ++++- .../java/com/l2jmobius/Config.java | 7 +++++++ .../dist/game/config/Custom/CommunityBoard.ini | 4 ++++ .../data/scripts/handlers/communityboard/HomeBoard.java | 9 ++++++--- .../java/com/l2jmobius/Config.java | 7 +++++++ 15 files changed, 83 insertions(+), 13 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/CommunityBoard.ini index 886d803454..2bd51969bd 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/CommunityBoard.ini +++ b/L2J_Mobius_1.0_Ertheia/dist/game/config/Custom/CommunityBoard.ini @@ -61,3 +61,7 @@ CommunityPremiumBuyCoinId = 57 # Amount of coins needed for each premium day bought. CommunityPremiumPricePerDay = 1000000 + +# List of available buffs to avoid exploits. +# Usage: SkillId1,SkillId2... +CommunityAvailableBuffs = 11517,11522,11519,11520,11521,11518,11565,11824,11567,11615,11616,11529,11530,11532,11523,11524,11525,1259,982,5987,5988,1323 diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 55ffa4c05a..e5ce598883 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -90,7 +90,7 @@ public final class HomeBoard implements IParseBoardHandler return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; - public static final Predicate KARMAR_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); + public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @Override public String[] getCommunityBoardCommands() @@ -111,7 +111,7 @@ public final class HomeBoard implements IParseBoardHandler return false; } - if (KARMAR_CHECK.test(activeChar)) + if (KARMA_CHECK.test(activeChar)) { activeChar.sendMessage("Players with Karma cannot use the Community Board."); return false; @@ -201,7 +201,10 @@ public final class HomeBoard implements IParseBoardHandler for (int i = 0; i < buffCount; i++) { final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1])); - + if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId())) + { + continue; + } targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> { skill.applyEffects(activeChar, target); diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java index 9bd9bc76de..e9c1baee63 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/Config.java @@ -1056,6 +1056,7 @@ public final class Config public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED; public static int COMMUNITY_PREMIUM_COIN_ID; public static int COMMUNITY_PREMIUM_PRICE_PER_DAY; + public static List COMMUNITY_AVAILABLE_BUFFS; public static boolean FACTION_SYSTEM_ENABLED; public static Location FACTION_STARTING_LOCATION; public static int FACTION_MANAGER_NPCID; @@ -2333,6 +2334,12 @@ public final class Config COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false); COMMUNITY_PREMIUM_COIN_ID = CommunityBoard.getInt("CommunityPremiumBuyCoinId", 57); COMMUNITY_PREMIUM_PRICE_PER_DAY = CommunityBoard.getInt("CommunityPremiumPricePerDay", 1000000); + final String[] allowedBuffs = CommunityBoard.getString("CommunityAvailableBuffs", "").split(","); + COMMUNITY_AVAILABLE_BUFFS = new ArrayList<>(allowedBuffs.length); + for (String s : allowedBuffs) + { + COMMUNITY_AVAILABLE_BUFFS.add(Integer.parseInt(s)); + } // Load DebugVoiceCommand config file (if exists) final PropertiesParser DebugVoiceCommand = new PropertiesParser(CUSTOM_DEBUG_VOICE_COMMAND_CONFIG_FILE); diff --git a/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini index 886d803454..2bd51969bd 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini +++ b/L2J_Mobius_2.5_Underground/dist/game/config/Custom/CommunityBoard.ini @@ -61,3 +61,7 @@ CommunityPremiumBuyCoinId = 57 # Amount of coins needed for each premium day bought. CommunityPremiumPricePerDay = 1000000 + +# List of available buffs to avoid exploits. +# Usage: SkillId1,SkillId2... +CommunityAvailableBuffs = 11517,11522,11519,11520,11521,11518,11565,11824,11567,11615,11616,11529,11530,11532,11523,11524,11525,1259,982,5987,5988,1323 diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 55ffa4c05a..e5ce598883 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -90,7 +90,7 @@ public final class HomeBoard implements IParseBoardHandler return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; - public static final Predicate KARMAR_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); + public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @Override public String[] getCommunityBoardCommands() @@ -111,7 +111,7 @@ public final class HomeBoard implements IParseBoardHandler return false; } - if (KARMAR_CHECK.test(activeChar)) + if (KARMA_CHECK.test(activeChar)) { activeChar.sendMessage("Players with Karma cannot use the Community Board."); return false; @@ -201,7 +201,10 @@ public final class HomeBoard implements IParseBoardHandler for (int i = 0; i < buffCount; i++) { final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1])); - + if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId())) + { + continue; + } targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> { skill.applyEffects(activeChar, target); diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java index 9562c01760..b10eda502a 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/Config.java @@ -1058,6 +1058,7 @@ public final class Config public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED; public static int COMMUNITY_PREMIUM_COIN_ID; public static int COMMUNITY_PREMIUM_PRICE_PER_DAY; + public static List COMMUNITY_AVAILABLE_BUFFS; public static boolean FACTION_SYSTEM_ENABLED; public static Location FACTION_STARTING_LOCATION; public static int FACTION_MANAGER_NPCID; @@ -2337,6 +2338,12 @@ public final class Config COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false); COMMUNITY_PREMIUM_COIN_ID = CommunityBoard.getInt("CommunityPremiumBuyCoinId", 57); COMMUNITY_PREMIUM_PRICE_PER_DAY = CommunityBoard.getInt("CommunityPremiumPricePerDay", 1000000); + final String[] allowedBuffs = CommunityBoard.getString("CommunityAvailableBuffs", "").split(","); + COMMUNITY_AVAILABLE_BUFFS = new ArrayList<>(allowedBuffs.length); + for (String s : allowedBuffs) + { + COMMUNITY_AVAILABLE_BUFFS.add(Integer.parseInt(s)); + } // Load DebugVoiceCommand config file (if exists) final PropertiesParser DebugVoiceCommand = new PropertiesParser(CUSTOM_DEBUG_VOICE_COMMAND_CONFIG_FILE); diff --git a/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini index 886d803454..2bd51969bd 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini +++ b/L2J_Mobius_3.0_Helios/dist/game/config/Custom/CommunityBoard.ini @@ -61,3 +61,7 @@ CommunityPremiumBuyCoinId = 57 # Amount of coins needed for each premium day bought. CommunityPremiumPricePerDay = 1000000 + +# List of available buffs to avoid exploits. +# Usage: SkillId1,SkillId2... +CommunityAvailableBuffs = 11517,11522,11519,11520,11521,11518,11565,11824,11567,11615,11616,11529,11530,11532,11523,11524,11525,1259,982,5987,5988,1323 diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 55ffa4c05a..e5ce598883 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -90,7 +90,7 @@ public final class HomeBoard implements IParseBoardHandler return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; - public static final Predicate KARMAR_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); + public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @Override public String[] getCommunityBoardCommands() @@ -111,7 +111,7 @@ public final class HomeBoard implements IParseBoardHandler return false; } - if (KARMAR_CHECK.test(activeChar)) + if (KARMA_CHECK.test(activeChar)) { activeChar.sendMessage("Players with Karma cannot use the Community Board."); return false; @@ -201,7 +201,10 @@ public final class HomeBoard implements IParseBoardHandler for (int i = 0; i < buffCount; i++) { final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1])); - + if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId())) + { + continue; + } targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> { skill.applyEffects(activeChar, target); diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java index 9562c01760..b10eda502a 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/Config.java @@ -1058,6 +1058,7 @@ public final class Config public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED; public static int COMMUNITY_PREMIUM_COIN_ID; public static int COMMUNITY_PREMIUM_PRICE_PER_DAY; + public static List COMMUNITY_AVAILABLE_BUFFS; public static boolean FACTION_SYSTEM_ENABLED; public static Location FACTION_STARTING_LOCATION; public static int FACTION_MANAGER_NPCID; @@ -2337,6 +2338,12 @@ public final class Config COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false); COMMUNITY_PREMIUM_COIN_ID = CommunityBoard.getInt("CommunityPremiumBuyCoinId", 57); COMMUNITY_PREMIUM_PRICE_PER_DAY = CommunityBoard.getInt("CommunityPremiumPricePerDay", 1000000); + final String[] allowedBuffs = CommunityBoard.getString("CommunityAvailableBuffs", "").split(","); + COMMUNITY_AVAILABLE_BUFFS = new ArrayList<>(allowedBuffs.length); + for (String s : allowedBuffs) + { + COMMUNITY_AVAILABLE_BUFFS.add(Integer.parseInt(s)); + } // Load DebugVoiceCommand config file (if exists) final PropertiesParser DebugVoiceCommand = new PropertiesParser(CUSTOM_DEBUG_VOICE_COMMAND_CONFIG_FILE); diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom.ini b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom.ini index 0cc038943e..f88a878f72 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom.ini +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/config/Custom.ini @@ -633,6 +633,10 @@ CommunityPremiumBuyCoinId = 57 # Amount of coins needed for each premium day bought. CommunityPremiumPricePerDay = 1000000 +# List of available buffs to avoid exploits. +# Usage: SkillId1,SkillId2... +CommunityAvailableBuffs = 1077,1240,1086,1032,1073,1036,1035,1068,1040,1044,1182,1191,1033,1189,1392,1393,1303,1059,1242,1268 + # --------------------------------------------------------------------------- # Premium System (VIP) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 6f31e218ab..bc0d4dbc77 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -198,7 +198,10 @@ public final class HomeBoard implements IParseBoardHandler for (int i = 0; i < buffCount; i++) { final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1])); - + if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId())) + { + continue; + } targets.stream().filter(target -> !target.isSummon()).forEach(target -> { skill.applyEffects(activeChar, target); diff --git a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java index 668eb33e2a..cc44c83046 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/com/l2jmobius/Config.java @@ -806,6 +806,7 @@ public final class Config public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED; public static int COMMUNITY_PREMIUM_COIN_ID; public static int COMMUNITY_PREMIUM_PRICE_PER_DAY; + public static List COMMUNITY_AVAILABLE_BUFFS; public static boolean PREMIUM_SYSTEM_ENABLED; public static float PREMIUM_RATE_XP; public static float PREMIUM_RATE_SP; @@ -2606,6 +2607,12 @@ public final class Config COMMUNITY_PREMIUM_SYSTEM_ENABLED = CustomSettings.getBoolean("CommunityPremiumSystem", false); COMMUNITY_PREMIUM_COIN_ID = CustomSettings.getInt("CommunityPremiumBuyCoinId", 57); COMMUNITY_PREMIUM_PRICE_PER_DAY = CustomSettings.getInt("CommunityPremiumPricePerDay", 1000000); + final String[] allowedBuffs = CustomSettings.getString("CommunityAvailableBuffs", "").split(","); + COMMUNITY_AVAILABLE_BUFFS = new ArrayList<>(allowedBuffs.length); + for (String s : allowedBuffs) + { + COMMUNITY_AVAILABLE_BUFFS.add(Integer.parseInt(s)); + } PREMIUM_SYSTEM_ENABLED = CustomSettings.getBoolean("EnablePremiumSystem", false); PREMIUM_RATE_XP = CustomSettings.getFloat("PremiumRateXp", 2); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini index b05a88fa3f..6e97ebae13 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/config/Custom/CommunityBoard.ini @@ -61,3 +61,7 @@ CommunityPremiumBuyCoinId = 57 # Amount of coins needed for each premium day bought. CommunityPremiumPricePerDay = 1000000 + +# List of available buffs to avoid exploits. +# Usage: SkillId1,SkillId2... +CommunityAvailableBuffs = 1077,1240,1086,1032,1073,1036,1035,1068,1040,1044,1182,1191,1033,1189,1392,1393,1303,1059,1242,1268 diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index 55ffa4c05a..e5ce598883 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -90,7 +90,7 @@ public final class HomeBoard implements IParseBoardHandler return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; - public static final Predicate KARMAR_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); + public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @Override public String[] getCommunityBoardCommands() @@ -111,7 +111,7 @@ public final class HomeBoard implements IParseBoardHandler return false; } - if (KARMAR_CHECK.test(activeChar)) + if (KARMA_CHECK.test(activeChar)) { activeChar.sendMessage("Players with Karma cannot use the Community Board."); return false; @@ -201,7 +201,10 @@ public final class HomeBoard implements IParseBoardHandler for (int i = 0; i < buffCount; i++) { final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1])); - + if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId())) + { + continue; + } targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target -> { skill.applyEffects(activeChar, target); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java index 74ecd74f2d..7a1670f6e3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/Config.java @@ -1059,6 +1059,7 @@ public final class Config public static boolean COMMUNITY_PREMIUM_SYSTEM_ENABLED; public static int COMMUNITY_PREMIUM_COIN_ID; public static int COMMUNITY_PREMIUM_PRICE_PER_DAY; + public static List COMMUNITY_AVAILABLE_BUFFS; public static boolean FACTION_SYSTEM_ENABLED; public static Location FACTION_STARTING_LOCATION; public static int FACTION_MANAGER_NPCID; @@ -2339,6 +2340,12 @@ public final class Config COMMUNITY_PREMIUM_SYSTEM_ENABLED = CommunityBoard.getBoolean("CommunityPremiumSystem", false); COMMUNITY_PREMIUM_COIN_ID = CommunityBoard.getInt("CommunityPremiumBuyCoinId", 57); COMMUNITY_PREMIUM_PRICE_PER_DAY = CommunityBoard.getInt("CommunityPremiumPricePerDay", 1000000); + final String[] allowedBuffs = CommunityBoard.getString("CommunityAvailableBuffs", "").split(","); + COMMUNITY_AVAILABLE_BUFFS = new ArrayList<>(allowedBuffs.length); + for (String s : allowedBuffs) + { + COMMUNITY_AVAILABLE_BUFFS.add(Integer.parseInt(s)); + } // Load DebugVoiceCommand config file (if exists) final PropertiesParser DebugVoiceCommand = new PropertiesParser(CUSTOM_DEBUG_VOICE_COMMAND_CONFIG_FILE);