Commit 2396832c authored by mercury233's avatar mercury233

update

parent 54f06e4d
......@@ -144,25 +144,6 @@ get_memory_usage = ()->
percentUsed = 0
return percentUsed
# 定时清理关闭的连接
# the server write data directly to the socket object
# so this is a dumb way to clean data
Graveyard = []
tribute = (socket) ->
setTimeout ((socket)-> Graveyard.push(socket);return), 3000, socket
return
setInterval ()->
for fuck,i in Graveyard
Graveyard[i].destroy() if Graveyard[i]
for you,j in Graveyard[i]
Graveyard[i][j] = null
Graveyard[i] = null
Graveyard = []
return
, 3000
Cloud_replay_ids = []
ROOM_all = []
......@@ -608,7 +589,6 @@ net.createServer (client) ->
connect_count--
ROOM_connected_ip[client.ip] = connect_count
#log.info "disconnect", client.ip, ROOM_connected_ip[client.ip]
#tribute(client)
unless client.closed
client.closed = true
room.disconnect(client) if room
......@@ -623,7 +603,6 @@ net.createServer (client) ->
connect_count--
ROOM_connected_ip[client.ip] = connect_count
#log.info "err disconnect", client.ip, ROOM_connected_ip[client.ip]
#tribute(client)
unless client.closed
client.closed = error
room.disconnect(client, error) if room
......@@ -638,7 +617,6 @@ net.createServer (client) ->
#log.info "server closed", client.name, had_error
room=ROOM_all[client.rid]
#log.info "server close", client.ip, ROOM_connected_ip[client.ip]
#tribute(server)
room.disconnector = 'server' if room
server.closed = true unless server.closed
unless client.closed
......@@ -650,7 +628,6 @@ net.createServer (client) ->
#log.info "server error", client.name, error
room=ROOM_all[client.rid]
#log.info "server err close", client.ip, ROOM_connected_ip[client.ip]
#tribute(server)
room.disconnector = 'server' if room
server.closed = error
unless client.closed
......@@ -1370,8 +1347,8 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server)->
else
if response.statusCode != 200
log.warn 'DECK POST FAIL', response.statusCode, client.name, body
else
log.info 'DECK POST OK', response.statusCode, client.name, body
#else
#log.info 'DECK POST OK', response.statusCode, client.name, body
return
client.deck_saved = true
return
......
// Generated by CoffeeScript 1.12.1
(function() {
var Cloud_replay_ids, Graveyard, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, addCallback, ban_user, bunyan, cppversion, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
var Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, addCallback, ban_user, bunyan, cppversion, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
net = require('net');
......@@ -88,16 +88,16 @@
};
ban_user = function(name) {
var bad_ip, k, l, len, len1, player, ref, room;
var bad_ip, j, k, len, len1, player, ref, room;
settings.ban.banned_user.push(name);
nconf.myset(settings, "ban:banned_user", settings.ban.banned_user);
bad_ip = 0;
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
for (j = 0, len = ROOM_all.length; j < len; j++) {
room = ROOM_all[j];
if (room && room.established) {
ref = room.players;
for (l = 0, len1 = ref.length; l < len1; l++) {
player = ref[l];
for (k = 0, len1 = ref.length; k < len1; k++) {
player = ref[k];
if (player && (player.name === name || player.ip === bad_ip)) {
bad_ip = player.ip;
ROOM_bad_ip[bad_ip] = 99;
......@@ -120,11 +120,11 @@
}
settings.lflist = (function() {
var k, len, ref, results;
var j, len, ref, results;
ref = fs.readFileSync('ygopro/lflist.conf', 'utf8').match(/!.*/g);
results = [];
for (k = 0, len = ref.length; k < len; k++) {
list = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
list = ref[j];
date = list.match(/!([\d\.]+)/);
if (!date) {
continue;
......@@ -194,31 +194,6 @@
return percentUsed;
};
Graveyard = [];
tribute = function(socket) {
setTimeout((function(socket) {
Graveyard.push(socket);
}), 3000, socket);
};
setInterval(function() {
var fuck, i, j, k, l, len, len1, ref, you;
for (i = k = 0, len = Graveyard.length; k < len; i = ++k) {
fuck = Graveyard[i];
if (Graveyard[i]) {
Graveyard[i].destroy();
}
ref = Graveyard[i];
for (j = l = 0, len1 = ref.length; l < len1; j = ++l) {
you = ref[j];
Graveyard[i][j] = null;
}
Graveyard[i] = null;
}
Graveyard = [];
}, 3000);
Cloud_replay_ids = [];
ROOM_all = [];
......@@ -556,10 +531,10 @@
_this.port = parseInt(data);
_.each(_this.players, function(player) {
player.server.connect(_this.port, '127.0.0.1', function() {
var buffer, k, len, ref;
var buffer, j, len, ref;
ref = player.pre_establish_buffers;
for (k = 0, len = ref.length; k < len; k++) {
buffer = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
buffer = ref[j];
player.server.write(buffer);
}
player.established = true;
......@@ -736,10 +711,10 @@
roomlist.update(this);
}
client.server.connect(this.port, '127.0.0.1', function() {
var buffer, k, len, ref;
var buffer, j, len, ref;
ref = client.pre_establish_buffers;
for (k = 0, len = ref.length; k < len; k++) {
buffer = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
buffer = ref[j];
client.server.write(buffer);
}
client.established = true;
......@@ -886,7 +861,7 @@
}
client.pre_establish_buffers = new Array();
client.on('data', function(ctos_buffer) {
var b, bad_ip_count, buffer, cancel, ctos_message_length, ctos_proto, datas, k, l, len, len1, looplimit, room, struct;
var b, bad_ip_count, buffer, cancel, ctos_message_length, ctos_proto, datas, j, k, len, len1, looplimit, room, struct;
if (client.is_post_watcher) {
room = ROOM_all[client.rid];
if (room) {
......@@ -957,20 +932,20 @@
}
}
if (client.established) {
for (k = 0, len = datas.length; k < len; k++) {
buffer = datas[k];
for (j = 0, len = datas.length; j < len; j++) {
buffer = datas[j];
server.write(buffer);
}
} else {
for (l = 0, len1 = datas.length; l < len1; l++) {
buffer = datas[l];
for (k = 0, len1 = datas.length; k < len1; k++) {
buffer = datas[k];
client.pre_establish_buffers.push(buffer);
}
}
}
});
server.on('data', function(stoc_buffer) {
var b, buffer, cancel, datas, k, len, looplimit, stanzas, stoc_message_length, stoc_proto, struct;
var b, buffer, cancel, datas, j, len, looplimit, stanzas, stoc_message_length, stoc_proto, struct;
stoc_message_length = 0;
stoc_proto = 0;
datas = [];
......@@ -1031,8 +1006,8 @@
break;
}
}
for (k = 0, len = datas.length; k < len; k++) {
buffer = datas[k];
for (j = 0, len = datas.length; j < len; j++) {
buffer = datas[j];
client.write(buffer);
}
});
......@@ -1064,7 +1039,7 @@
});
ygopro.ctos_follow('JOIN_GAME', false, function(buffer, info, client, server) {
var check, decrypted_buffer, finish, i, id, k, l, len, len1, name, ref, ref1, replay_id, room, secret, struct;
var check, decrypted_buffer, finish, i, id, j, k, len, len1, name, ref, ref1, replay_id, room, secret, struct;
if (settings.modules.stop) {
ygopro.stoc_die(client, settings.modules.stop);
} else if (info.pass.toUpperCase() === "R" && settings.modules.cloud_replay.enabled) {
......@@ -1131,9 +1106,9 @@
return;
}
check = function(buf) {
var checksum, i, k, ref;
var checksum, i, j, ref;
checksum = 0;
for (i = k = 0, ref = buf.length; 0 <= ref ? k < ref : k > ref; i = 0 <= ref ? ++k : --k) {
for (i = j = 0, ref = buf.length; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
checksum += buf.readUInt8(i);
}
return (checksum & 0xFF) === 0;
......@@ -1206,8 +1181,8 @@
secret = id % 65535 + 1;
decrypted_buffer = new Buffer(6);
ref = [0, 2, 4];
for (k = 0, len = ref.length; k < len; k++) {
i = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
i = ref[j];
decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i);
}
if (check(decrypted_buffer)) {
......@@ -1224,13 +1199,13 @@
},
json: true
}, function(error, response, body) {
var l, len1, ref1;
var k, len1, ref1;
if (body && body.user) {
secret = body.user.id % 65535 + 1;
decrypted_buffer = new Buffer(6);
ref1 = [0, 2, 4];
for (l = 0, len1 = ref1.length; l < len1; l++) {
i = ref1[l];
for (k = 0, len1 = ref1.length; k < len1; k++) {
i = ref1[k];
decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i);
}
if (check(decrypted_buffer)) {
......@@ -1301,8 +1276,8 @@
room.watchers.push(client);
ygopro.stoc_send_chat(client, "观战中", ygopro.constants.COLORS.BABYBLUE);
ref1 = room.watcher_buffers;
for (l = 0, len1 = ref1.length; l < len1; l++) {
buffer = ref1[l];
for (k = 0, len1 = ref1.length; k < len1; k++) {
buffer = ref1[k];
client.write(buffer);
}
} else {
......@@ -1380,15 +1355,15 @@
ygopro.ctos_send(watcher, 'HS_TOOBSERVER');
});
watcher.on('data', function(data) {
var k, len, ref, w;
var j, len, ref, w;
room = ROOM_all[client.rid];
if (!room) {
return;
}
room.watcher_buffers.push(data);
ref = room.watchers;
for (k = 0, len = ref.length; k < len; k++) {
w = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
w = ref[j];
if (w) {
w.write(data);
}
......@@ -1419,7 +1394,7 @@
}
ygopro.stoc_follow('GAME_MSG', false, function(buffer, info, client, server) {
var card, k, len, line, msg, playertype, pos, reason, ref, ref1, ref2, room, val;
var card, j, len, line, msg, playertype, pos, reason, ref, ref1, ref2, room, val;
room = ROOM_all[client.rid];
if (!room) {
return;
......@@ -1489,8 +1464,8 @@
card = buffer.readUInt32LE(1);
if (settings.dialogues[card]) {
ref2 = _.lines(settings.dialogues[card][Math.floor(Math.random() * settings.dialogues[card].length)]);
for (k = 0, len = ref2.length; k < len; k++) {
line = ref2[k];
for (j = 0, len = ref2.length; j < len; j++) {
line = ref2[j];
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK);
}
}
......@@ -1499,14 +1474,14 @@
});
ygopro.ctos_follow('HS_KICK', true, function(buffer, info, client, server) {
var k, len, player, ref, room;
var j, len, player, ref, room;
room = ROOM_all[client.rid];
if (!room) {
return;
}
ref = room.players;
for (k = 0, len = ref.length; k < len; k++) {
player = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
player = ref[j];
if (player && player.pos === info.pos && player !== client) {
client.kick_count = client.kick_count ? client.kick_count + 1 : 1;
if (client.kick_count >= 5) {
......@@ -1530,7 +1505,7 @@
});
ygopro.stoc_follow('HS_PLAYER_CHANGE', false, function(buffer, info, client, server) {
var is_ready, k, len, player, pos, ref, room;
var is_ready, j, len, player, pos, ref, room;
room = ROOM_all[client.rid];
if (!(room && room.max_player && client.is_host)) {
return;
......@@ -1540,8 +1515,8 @@
if (pos < room.max_player) {
room.ready_player_count_without_host = 0;
ref = room.players;
for (k = 0, len = ref.length; k < len; k++) {
player = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
player = ref[j];
if (player.pos === pos) {
player.is_ready = is_ready;
}
......@@ -1558,7 +1533,7 @@
});
wait_room_start = function(room, time) {
var k, len, player, ref;
var j, len, player, ref;
if (!(!room || room.started || room.ready_player_count_without_host < room.max_player - 1)) {
time -= 1;
if (time) {
......@@ -1570,8 +1545,8 @@
}), 1000);
} else {
ref = room.players;
for (k = 0, len = ref.length; k < len; k++) {
player = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
player = ref[j];
if (player && player.is_host) {
ROOM_ban_player(player.name, player.ip, "挂房间");
ygopro.stoc_send_chat_to_room(room, player.name + " 被系统请出了房间", ygopro.constants.COLORS.RED);
......@@ -1613,9 +1588,9 @@
if (settings.modules.tips.get) {
load_tips();
setInterval(function() {
var k, len, room;
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
var j, len, room;
for (j = 0, len = ROOM_all.length; j < len; j++) {
room = ROOM_all[j];
if (room && room.established) {
if (!(room && room.started)) {
ygopro.stoc_send_random_tip_to_room(room);
......@@ -1626,7 +1601,7 @@
}
ygopro.stoc_follow('DUEL_START', false, function(buffer, info, client, server) {
var deck_name, deck_text, k, len, player, ref, room;
var deck_name, deck_text, j, len, player, ref, room;
room = ROOM_all[client.rid];
if (!room) {
return;
......@@ -1639,8 +1614,8 @@
}
room.dueling_players = [];
ref = room.players;
for (k = 0, len = ref.length; k < len; k++) {
player = ref[k];
for (j = 0, len = ref.length; j < len; j++) {
player = ref[j];
if (!(player.pos !== 7)) {
continue;
}
......@@ -1680,8 +1655,6 @@
} else {
if (response.statusCode !== 200) {
log.warn('DECK POST FAIL', response.statusCode, client.name, body);
} else {
log.info('DECK POST OK', response.statusCode, client.name, body);
}
}
});
......@@ -1823,23 +1796,23 @@
});
ygopro.ctos_follow('UPDATE_DECK', true, function(buffer, info, client, server) {
var buff_main, buff_side, card, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, k, l, len, len1, line, room, struct;
var buff_main, buff_side, card, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, j, k, len, len1, line, room, struct;
room = ROOM_all[client.rid];
if (!room) {
return false;
}
buff_main = (function() {
var k, ref, results;
var j, ref, results;
results = [];
for (i = k = 0, ref = info.mainc; 0 <= ref ? k < ref : k > ref; i = 0 <= ref ? ++k : --k) {
for (i = j = 0, ref = info.mainc; 0 <= ref ? j < ref : j > ref; i = 0 <= ref ? ++j : --j) {
results.push(info.deckbuf[i]);
}
return results;
})();
buff_side = (function() {
var k, ref, ref1, results;
var j, ref, ref1, results;
results = [];
for (i = k = ref = info.mainc, ref1 = info.mainc + info.sidec; ref <= ref1 ? k < ref1 : k > ref1; i = ref <= ref1 ? ++k : --k) {
for (i = j = ref = info.mainc, ref1 = info.mainc + info.sidec; ref <= ref1 ? j < ref1 : j > ref1; i = ref <= ref1 ? ++j : --j) {
results.push(info.deckbuf[i]);
}
return results;
......@@ -1860,8 +1833,8 @@
buffer = struct.buffer;
found_deck = false;
decks = fs.readdirSync(settings.modules.tournament_mode.deck_path);
for (k = 0, len = decks.length; k < len; k++) {
deck = decks[k];
for (j = 0, len = decks.length; j < len; j++) {
deck = decks[j];
if (_.endsWith(deck, client.name + ".ydk")) {
found_deck = deck;
}
......@@ -1877,8 +1850,8 @@
deck_main = [];
deck_side = [];
current_deck = deck_main;
for (l = 0, len1 = deck_array.length; l < len1; l++) {
line = deck_array[l];
for (k = 0, len1 = deck_array.length; k < len1; k++) {
line = deck_array[k];
if (line.indexOf("!side") >= 0) {
current_deck = deck_side;
}
......@@ -1973,7 +1946,7 @@
});
ygopro.stoc_follow('REPLAY', true, function(buffer, info, client, server) {
var duellog, dueltime, i, k, len, player, ref, replay_filename, room;
var duellog, dueltime, i, j, len, player, ref, replay_filename, room;
room = ROOM_all[client.rid];
if (!room) {
return settings.modules.tournament_mode.enabled && settings.modules.tournament_mode.replay_safe;
......@@ -1986,7 +1959,7 @@
dueltime = moment().format('YYYY-MM-DD HH:mm:ss');
replay_filename = dueltime;
ref = room.dueling_players;
for (i = k = 0, len = ref.length; k < len; i = ++k) {
for (i = j = 0, len = ref.length; j < len; i = ++j) {
player = ref[i];
replay_filename = replay_filename + (i > 0 ? " VS " : " ") + player.name;
}
......@@ -1998,11 +1971,11 @@
cloud_replay_id: "R#" + room.cloud_replay_id,
replay_filename: replay_filename,
players: (function() {
var l, len1, ref1, results;
var k, len1, ref1, results;
ref1 = room.dueling_players;
results = [];
for (l = 0, len1 = ref1.length; l < len1; l++) {
player = ref1[l];
for (k = 0, len1 = ref1.length; k < len1; k++) {
player = ref1[k];
results.push({
name: player.name,
winner: player.pos === room.winner
......@@ -2030,9 +2003,9 @@
if (settings.modules.random_duel.enabled) {
setInterval(function() {
var k, len, room, time_passed;
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
var j, len, room, time_passed;
for (j = 0, len = ROOM_all.length; j < len; j++) {
room = ROOM_all[j];
if (!(room && room.started && room.random_type && room.last_active_time && room.waiting_for_player)) {
continue;
}
......@@ -2077,7 +2050,7 @@
return callback + "( " + text + " );";
};
requestListener = function(request, response) {
var duellog, filename, getpath, k, len, parseQueryString, pass_validated, player, room, roomsjson, u;
var duellog, filename, getpath, j, len, parseQueryString, pass_validated, player, room, roomsjson, u;
parseQueryString = true;
u = url.parse(request.url, parseQueryString);
pass_validated = u.query.pass === settings.modules.http.password;
......@@ -2089,10 +2062,10 @@
response.writeHead(200);
roomsjson = JSON.stringify({
rooms: (function() {
var k, len, results;
var j, len, results;
results = [];
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
for (j = 0, len = ROOM_all.length; j < len; j++) {
room = ROOM_all[j];
if (room && room.established) {
results.push({
pid: room.process.pid.toString(),
......@@ -2100,11 +2073,11 @@
roomname: pass_validated ? room.name : room.name.split('$', 2)[0],
needpass: (room.name.indexOf('$') !== -1).toString(),
users: (function() {
var l, len1, ref, results1;
var k, len1, ref, results1;
ref = room.players;
results1 = [];
for (l = 0, len1 = ref.length; l < len1; l++) {
player = ref[l];
for (k = 0, len1 = ref.length; k < len1; k++) {
player = ref[k];
if (player.pos != null) {
results1.push({
id: (-1).toString(),
......@@ -2162,8 +2135,8 @@
return;
}
if (u.query.shout) {
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
for (j = 0, len = ROOM_all.length; j < len; j++) {
room = ROOM_all[j];
if (room && room.established) {
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment