aboutsummaryrefslogtreecommitdiffstats
path: root/src/client
diff options
context:
space:
mode:
authorRblSb <msrblsb@gmail.com>2021-08-30 05:27:22 +0300
committerRblSb <msrblsb@gmail.com>2021-08-30 05:27:22 +0300
commitd21b5da50cf24de64581cfc78ce46533faad0e86 (patch)
tree870a883c1012deb88a7b3af0bae5b797060035a3 /src/client
parent6cb22fb04d83e0bc1046dd980736d97768928725 (diff)
/kick feature
Diffstat (limited to 'src/client')
-rw-r--r--src/client/Main.hx23
1 files changed, 23 insertions, 0 deletions
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<String>, 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();
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage