From a5ca3e1c1217c0c8bc749c406f09ed0c58ac84f8 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 18 Feb 2011 16:25:56 +0000 Subject: [PATCH] Don't kick players if a command failed from an exception --- .../net/minecraft/server/NetServerHandler.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index c73e75a28e..bca70f50e9 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -3,12 +3,15 @@ package net.minecraft.server; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import java.util.logging.Level; import java.util.logging.Logger; // CraftBukkit start +import org.bukkit.ChatColor; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockDamageLevel; import org.bukkit.Location; +import org.bukkit.command.CommandException; import org.bukkit.craftbukkit.block.CraftBlock; import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.craftbukkit.entity.CraftPlayer; @@ -624,8 +627,17 @@ public class NetServerHandler extends NetHandler implements ICommandListener { if (event.isCancelled()) { return; } - - boolean targetPluginFound = server.dispatchCommand(player, s.substring(1)); + + boolean targetPluginFound = false; + + try { + targetPluginFound = server.dispatchCommand(player, s.substring(1)); + } catch (CommandException ex) { + player.sendMessage(ChatColor.RED + "An internal error occured while attempting to perform this command"); + Logger.getLogger(NetServerHandler.class.getName()).log(Level.SEVERE, null, ex); + return; + } + if (targetPluginFound) { return; }