From 3ccab5f5344b86636944e55ba1f3d935c9ce2ead Mon Sep 17 00:00:00 2001 From: StevenLawson Date: Thu, 17 Jul 2014 17:28:32 -0400 Subject: [PATCH] Fixed exploit that allows command blocker to be bypassed. --- .../TotalFreedomMod/Commands/Command_cbtool.java | 6 ++++++ .../TotalFreedomMod/Commands/Command_nf.java | 8 ++++++++ .../TotalFreedomMod/Commands/Command_wildcard.java | 11 +++++++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java index 0d053f6a..16de2d4d 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_cbtool.java @@ -3,6 +3,7 @@ package me.StevenLawson.TotalFreedomMod.Commands; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker; import me.StevenLawson.TotalFreedomMod.TFM_Log; import net.minecraft.util.org.apache.commons.lang3.ArrayUtils; import net.minecraft.util.org.apache.commons.lang3.StringUtils; @@ -44,6 +45,11 @@ public class Command_cbtool extends TFM_Command } matcher.appendTail(generatedCommand); + if (TFM_CommandBlocker.isCommandBlocked(generatedCommand.toString(), sender, false)) + { + return true; + } + server.dispatchCommand(sender, generatedCommand.toString()); } catch (SubCommandFailureException ex) diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java index 04b4a04a..854128c2 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_nf.java @@ -5,6 +5,7 @@ import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker; import net.minecraft.util.org.apache.commons.lang3.StringUtils; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -68,6 +69,13 @@ public class Command_nf extends TFM_Command } String newCommand = StringUtils.join(outputCommand, " "); + + if (TFM_CommandBlocker.isCommandBlocked(newCommand, sender)) + { + // CommandBlocker handles messages and broadcasts + return true; + } + sender.sendMessage("Sending command: \"" + newCommand + "\"."); server.dispatchCommand(sender, newCommand); diff --git a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java index a3fb6f84..eea205ad 100644 --- a/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java +++ b/src/me/StevenLawson/TotalFreedomMod/Commands/Command_wildcard.java @@ -1,5 +1,6 @@ package me.StevenLawson.TotalFreedomMod.Commands; +import me.StevenLawson.TotalFreedomMod.TFM_CommandBlocker; import net.minecraft.util.org.apache.commons.lang3.StringUtils; import org.bukkit.ChatColor; import org.bukkit.command.Command; @@ -39,11 +40,17 @@ public class Command_wildcard extends TFM_Command return true; } - String base_command = StringUtils.join(args, " "); + String baseCommand = StringUtils.join(args, " "); + + if (TFM_CommandBlocker.isCommandBlocked(baseCommand, sender)) + { + // CommandBlocker handles messages and broadcasts + return true; + } for (Player player : server.getOnlinePlayers()) { - String out_command = base_command.replaceAll("\\x3f", player.getName()); + String out_command = baseCommand.replaceAll("\\x3f", player.getName()); playerMsg("Running Command: " + out_command); server.dispatchCommand(sender, out_command); }