From 468232cabc5b29b8f770f79432f96cd331f754a5 Mon Sep 17 00:00:00 2001 From: BONNe Date: Mon, 30 Jan 2023 23:54:29 +0200 Subject: [PATCH] Fixes a regex bug that replaced every [player] char instead of whole word. --- .../bentobox/challenges/tasks/TryToComplete.java | 12 ++++++------ .../world/bentobox/challenges/utils/Constants.java | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java index 169af48..5ac1e5e 100644 --- a/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java +++ b/src/main/java/world/bentobox/challenges/tasks/TryToComplete.java @@ -806,9 +806,9 @@ public class TryToComplete String alert = "Running command '" + cmd + "' as " + this.user.getName(); this.addon.getLogger().info(alert); cmd = cmd.substring(6). - replaceAll(Constants.PARAMETER_PLAYER, this.user.getName()). - replaceAll(Constants.PARAMETER_OWNER, owner). - replaceAll(Constants.PARAMETER_NAME, island == null || island.getName() == null ? "" : island.getName()). + replaceAll(Constants.ESC + Constants.PARAMETER_PLAYER, this.user.getName()). + replaceAll(Constants.ESC + Constants.PARAMETER_OWNER, owner). + replaceAll(Constants.ESC + Constants.PARAMETER_NAME, island == null || island.getName() == null ? "" : island.getName()). trim(); try { @@ -829,9 +829,9 @@ public class TryToComplete try { - cmd = cmd.replaceAll(Constants.PARAMETER_PLAYER, this.user.getName()). - replaceAll(Constants.PARAMETER_OWNER, owner). - replaceAll(Constants.PARAMETER_NAME, island == null || island.getName() == null ? "" : island.getName()). + cmd = cmd.replaceAll(Constants.ESC + Constants.PARAMETER_PLAYER, this.user.getName()). + replaceAll(Constants.ESC + Constants.PARAMETER_OWNER, owner). + replaceAll(Constants.ESC + Constants.PARAMETER_NAME, island == null || island.getName() == null ? "" : island.getName()). trim(); if (!this.addon.getServer().dispatchCommand(this.addon.getServer().getConsoleSender(), cmd)) diff --git a/src/main/java/world/bentobox/challenges/utils/Constants.java b/src/main/java/world/bentobox/challenges/utils/Constants.java index bfe490a..3d8f28c 100644 --- a/src/main/java/world/bentobox/challenges/utils/Constants.java +++ b/src/main/java/world/bentobox/challenges/utils/Constants.java @@ -223,4 +223,9 @@ public class Constants * Reference string to challenge parameter in translations. */ public static final String PARAMETER_CHALLENGE = "[challenge]"; + + /** + * Regex escape chars. + */ + public static final String ESC = "\\"; }