From d21b5da50cf24de64581cfc78ce46533faad0e86 Mon Sep 17 00:00:00 2001 From: RblSb Date: Mon, 30 Aug 2021 05:27:22 +0300 Subject: /kick feature --- src/client/Main.hx | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/client') diff --git a/src/client/Main.hx b/src/client/Main.hx index bfbe97e..eae0fc8 100644 --- a/src/client/Main.hx +++ b/src/client/Main.hx @@ -40,6 +40,7 @@ class Main { final filters:Array<{regex:EReg, replace:String}> = []; var personal = new Client("Unknown", 0); var isConnected = false; + var disabledReconnection = false; var ws:WebSocket; final player:Player; var onTimeGet:Timer; @@ -127,6 +128,7 @@ class Main { if (isConnected) serverMessage(2); isConnected = false; player.pause(); + if (disabledReconnection) return; Timer.delay(openWebSocket, 2000); } } @@ -412,6 +414,9 @@ class Main { if (personal.group.toInt() != oldGroup) onUserGroupChanged(); case BanClient: // server-only + case KickClient: + disabledReconnection = true; + ws.close(); case Message: addMessage(data.message.clientName, data.message.text); @@ -835,6 +840,7 @@ class Main { switch (command) { case "ban": + mergeRedundantArgs(args, 0, 2); final name = args[0]; final time = parseSimpleDate(args[1]); if (time < 0) return true; @@ -847,6 +853,7 @@ class Main { }); return true; case "unban", "removeBan": + mergeRedundantArgs(args, 0, 1); final name = args[0]; send({ type: BanClient, @@ -856,6 +863,16 @@ class Main { } }); return true; + case "kick": + mergeRedundantArgs(args, 0, 1); + final name = args[0]; + send({ + type: KickClient, + kickClient: { + name: name + } + }); + return true; case "clear": send({type: ClearChat}); return true; @@ -906,6 +923,12 @@ class Main { return Std.parseInt(block); } + function mergeRedundantArgs(args:Array, pos:Int, newLength:Int):Void { + final count = args.length - (newLength - 1); + if (count < 2) return; + args.insert(pos, args.splice(pos, count).join(" ")); + } + public function blinkTabWithTitle(title:String):Void { if (!document.hidden) return; if (onBlinkTab != null) onBlinkTab.stop(); -- cgit v1.2.3