From 0e1c4ccd6d3e89fc4e09e72fb2dcc0faeb722496 Mon Sep 17 00:00:00 2001 From: Skat <55407440+skykatik@users.noreply.github.com> Date: Thu, 29 Apr 2021 21:11:51 +0400 Subject: [PATCH] Suggestions for unknown command response (#5165) --- core/src/mindustry/core/NetClient.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index fbc3ba9ee8..be8fb108a0 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -236,7 +236,22 @@ public class NetClient implements ApplicationListener{ }else if(response.type == ResponseType.fewArguments){ text = "[scarlet]Too few arguments. Usage:[lightgray] " + response.command.text + "[gray] " + response.command.paramText; }else{ //unknown command - text = "[scarlet]Unknown command. Check [lightgray]/help[scarlet]."; + int minDst = 0; + Command closest = null; + + for(Command command : netServer.clientCommands.getCommandList()){ + int dst = Strings.levenshtein(command.text, response.runCommand); + if(dst < 3 && (closest == null || dst < minDst)){ + minDst = dst; + closest = command; + } + } + + if(closest != null){ + text = "[scarlet]Unknown command. Did you mean \"[lightgray]" + closest.text + "[]\"?"; + }else{ + text = "[scarlet]Unknown command. Check [lightgray]/help[scarlet]."; + } } player.sendMessage(text); @@ -279,7 +294,7 @@ public class NetClient implements ApplicationListener{ public static void kick(KickReason reason){ netClient.disconnectQuietly(); logic.reset(); - + if(reason == KickReason.serverRestarting){ ui.join.reconnect(); return;