aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/server.js31
-rw-r--r--res/client.js2
-rw-r--r--src/client/Main.hx2
-rw-r--r--src/server/Main.hx11
4 files changed, 29 insertions, 17 deletions
diff --git a/build/server.js b/build/server.js
index 70054d6..8504332 100644
--- a/build/server.js
+++ b/build/server.js
@@ -3739,7 +3739,6 @@ var server_Main = function() {
continue;
}
client.ws.terminate();
- _gthis.onMessage(client,{ type : "Disconnected"},true);
}
};
};
@@ -3799,7 +3798,7 @@ server_Main.prototype = {
var field = _g1[_g];
++_g;
if(Reflect.field(config,field) == null) {
- haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 156, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: config field \"" + field + "\" is unknown",{ fileName : "src/server/Main.hx", lineNumber : 153, className : "server.Main", methodName : "getUserConfig"});
}
config[field] = Reflect.field(customConfig,field);
}
@@ -3810,14 +3809,14 @@ server_Main.prototype = {
var emote = _g1[_g];
++_g;
if(emoteCopies_h[emote.name]) {
- haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 161, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: emote name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 158, className : "server.Main", methodName : "getUserConfig"});
}
emoteCopies_h[emote.name] = true;
if(!this.verbose) {
continue;
}
if(emoteCopies_h[emote.image]) {
- haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 164, className : "server.Main", methodName : "getUserConfig"});
+ haxe_Log.trace("Warning: emote url of name \"" + emote.name + "\" has copy",{ fileName : "src/server/Main.hx", lineNumber : 161, className : "server.Main", methodName : "getUserConfig"});
}
emoteCopies_h[emote.image] = true;
}
@@ -3836,7 +3835,7 @@ server_Main.prototype = {
js_node_Fs.writeFileSync("" + folder + "/users.json",JSON.stringify(users,null,"\t"));
}
,saveState: function() {
- haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 186, className : "server.Main", methodName : "saveState"});
+ haxe_Log.trace("Saving state...",{ fileName : "src/server/Main.hx", lineNumber : 183, className : "server.Main", methodName : "saveState"});
var json = JSON.stringify({ videoList : this.videoList, isPlaylistOpen : this.isPlaylistOpen, itemPos : this.itemPos, messages : this.messages, timer : { time : this.videoTimer.getTime(), paused : this.videoTimer.isPaused()}},null,"\t");
js_node_Fs.writeFileSync(this.statePath,json);
}
@@ -3844,7 +3843,7 @@ server_Main.prototype = {
if(!sys_FileSystem.exists(this.statePath)) {
return;
}
- haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 203, className : "server.Main", methodName : "loadState"});
+ haxe_Log.trace("Loading state...",{ fileName : "src/server/Main.hx", lineNumber : 200, className : "server.Main", methodName : "loadState"});
var data = JSON.parse(js_node_Fs.readFileSync(this.statePath,{ encoding : "utf8"}));
this.videoList.length = 0;
this.messages.length = 0;
@@ -3861,7 +3860,7 @@ server_Main.prototype = {
this.videoTimer.pause();
}
,logError: function(type,data) {
- haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 217, className : "server.Main", methodName : "logError", customParams : [data]});
+ haxe_Log.trace(type,{ fileName : "src/server/Main.hx", lineNumber : 214, className : "server.Main", methodName : "logError", customParams : [data]});
var crashesFolder = "" + this.rootDir + "/user/crashes";
server_Utils.ensureDir(crashesFolder);
js_node_Fs.writeFileSync("" + crashesFolder + "/" + (DateTools.format(new Date(),"%Y-%m-%d_%H_%M_%S") + "-" + type) + ".json",JSON.stringify(data,null,"\t"));
@@ -3877,7 +3876,7 @@ server_Main.prototype = {
if(_gthis.clients.length == 0) {
return;
}
- haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 232, className : "server.Main", methodName : "initIntergationHandlers"});
+ haxe_Log.trace("Ping " + url,{ fileName : "src/server/Main.hx", lineNumber : 229, className : "server.Main", methodName : "initIntergationHandlers"});
js_node_Http.get(url,null,function(r) {
});
};
@@ -3891,7 +3890,7 @@ server_Main.prototype = {
}
this.userList.admins.push({ name : name, hash : hash});
this.writeUsers(this.userList);
- haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 247, className : "server.Main", methodName : "addAdmin"});
+ haxe_Log.trace("Admin " + name + " added.",{ fileName : "src/server/Main.hx", lineNumber : 244, className : "server.Main", methodName : "addAdmin"});
}
,replayLog: function(events) {
var _gthis = this;
@@ -3935,7 +3934,7 @@ server_Main.prototype = {
var ip = req.connection.remoteAddress;
var id = this.freeIds.length > 0 ? this.freeIds.shift() : this.clients.length;
var name = "Guest " + (id + 1);
- haxe_Log.trace("" + name + " connected (" + ip + ")",{ fileName : "src/server/Main.hx", lineNumber : 285, className : "server.Main", methodName : "onConnect"});
+ haxe_Log.trace("" + name + " connected (" + ip + ")",{ fileName : "src/server/Main.hx", lineNumber : 282, className : "server.Main", methodName : "onConnect"});
var client = new Client(ws,req,id,name,0);
client.setGroupFlag(ClientGroup.Admin,this.config.localAdmins && req.connection.localAddress == ip);
this.clients.push(client);
@@ -3947,7 +3946,7 @@ server_Main.prototype = {
var obj = _gthis.wsEventParser.fromJson(data);
if(_gthis.wsEventParser.errors.length > 0 || _gthis.noTypeObj(obj)) {
var errors = "" + ("Wrong request for type \"" + obj.type + "\":") + "\n" + json2object_ErrorUtils.convertErrorArray(_gthis.wsEventParser.errors);
- haxe_Log.trace(errors,{ fileName : "src/server/Main.hx", lineNumber : 301, className : "server.Main", methodName : "onConnect"});
+ haxe_Log.trace(errors,{ fileName : "src/server/Main.hx", lineNumber : 298, className : "server.Main", methodName : "onConnect"});
_gthis.serverMessage(client,errors);
return;
}
@@ -4044,7 +4043,7 @@ server_Main.prototype = {
if(!internal) {
return;
}
- haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 356, className : "server.Main", methodName : "onMessage"});
+ haxe_Log.trace("Client " + client.name + " disconnected",{ fileName : "src/server/Main.hx", lineNumber : 353, className : "server.Main", methodName : "onMessage"});
server_Utils.sortedPush(this.freeIds,client.id);
HxOverrides.remove(this.clients,client);
this.sendClientList();
@@ -4059,6 +4058,14 @@ server_Main.prototype = {
}
this.videoTimer.pause();
}
+ haxe_Timer.delay(function() {
+ if(Lambda.exists(_gthis.clients,function(i) {
+ return i.name == client.name;
+ })) {
+ return;
+ }
+ _gthis.broadcast({ type : "ServerMessage", serverMessage : { textId : "" + client.name + " has left"}});
+ },5000);
break;
case "GetTime":
if(this.videoList.length == 0) {
diff --git a/res/client.js b/res/client.js
index 73c0671..e0ad935 100644
--- a/res/client.js
+++ b/res/client.js
@@ -1091,7 +1091,7 @@ client_Main.prototype = {
first = items.shift();
}
items.reverse();
- if(this.player.isListEmpty()) {
+ if(first != null) {
items.unshift(first);
}
}
diff --git a/src/client/Main.hx b/src/client/Main.hx
index 31bd580..73f733c 100644
--- a/src/client/Main.hx
+++ b/src/client/Main.hx
@@ -224,7 +224,7 @@ class Main {
var first:Null<T> = null;
if (player.isListEmpty()) first = items.shift();
items.reverse();
- if (player.isListEmpty()) items.unshift(first);
+ if (first != null) items.unshift(first);
}
function addVideoArray(links:Array<String>, atEnd:Bool, isTemp:Bool):Void {
diff --git a/src/server/Main.hx b/src/server/Main.hx
index 85006c7..8a5f381 100644
--- a/src/server/Main.hx
+++ b/src/server/Main.hx
@@ -110,9 +110,6 @@ class Main {
continue;
}
client.ws.terminate();
- onMessage(client, {
- type: Disconnected
- }, true);
}
};
}
@@ -364,6 +361,14 @@ class Main {
if (waitVideoStart != null) waitVideoStart.stop();
videoTimer.pause();
}
+ Timer.delay(() -> {
+ if (clients.exists(i -> i.name == client.name)) return;
+ broadcast({
+ type: ServerMessage, serverMessage: {
+ textId: '${client.name} has left'
+ }
+ });
+ }, 5000);
case UpdateClients:
sendClientList();
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage