Commit 2f69b16d authored by mercury233's avatar mercury233

update for mycard

parent 8de268f9
{
"port": 7911,
"ygopro_path": "ygopro",
"modules": {
"welcome": "YGOPRO Server",
"update": "请更新游戏版本",
......@@ -16,8 +15,8 @@
"enable_deck_log": false,
"redis_port": 6379,
"windbot_port": 2399,
"spawn_windbot": false,
"mycard_auth": false,
"mycard_auth_key": "please set in config.user.json",
"hang_timeout": 90,
"tournament_mode": {
"enabled": false,
......@@ -59,8 +58,8 @@
"ssl": {
"enabled": false,
"port": 7923,
"cert": "ssl/ygopro-server.crt",
"key": "ssl/ygopro-server.key"
"cert": "ssl/fullchain.pem",
"key": "ssl/privkey.pem"
}
}
},
......@@ -68,7 +67,7 @@
"banned_user": [],
"banned_ip": [],
"badword_level0": ["滚", "衮", "操", "草", "艹", "狗", "日", "曰", "妈", "娘", "逼"],
"badword_level1": ["傻逼", "垃圾"],
"badword_level1": ["傻逼", "鸡巴"],
"badword_level2": ["死妈", "草你妈"],
"badword_level3": ["迷奸", "仿真枪"],
"illegal_id": ["^Lv.\\d+", "^VIP.\\d+"]
......
WebSocketServer = require('ws').Server;
WebSocketServer = require('ws').Server
server = null
......
......@@ -139,7 +139,6 @@ setInterval ()->
Graveyard[i][j] = null
Graveyard[i] = null
Graveyard = []
#global.gc()
return
, 3000
......@@ -384,7 +383,7 @@ class Room
@hostinfo.start_lp, @hostinfo.start_hand, @hostinfo.draw_count, @hostinfo.time_limit, @hostinfo.replay_mode]
try
@process = spawn './ygopro', param, {cwd: settings.ygopro_path}
@process = spawn './ygopro', param, {cwd: 'ygopro'}
@process.on 'exit', (code)=>
@disconnector = 'server' unless @disconnector
this.delete()
......@@ -936,7 +935,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)->
baseUrl: settings.modules.mycard_auth,
url: '/users/' + encodeURIComponent(client.name) + '.json',
qs:
api_key: settings.modules.mycard_auth_key,
api_key: process.env.MYCARD_AUTH_KEY,
api_username: client.name,
skip_track_visit: true
json: true
......@@ -1509,19 +1508,36 @@ ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server)->
else
return false
setInterval ()->
for room in ROOM_all when room and room.started and room.random_type and room.last_active_time and room.waiting_for_player
time_passed = Math.floor((moment() - room.last_active_time) / 1000)
#log.info time_passed
if time_passed >= settings.modules.hang_timeout
room.last_active_time = moment()
ROOM_ban_player(room.waiting_for_player.name, room.waiting_for_player.ip, "挂机")
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} 被系统请出了房间", ygopro.constants.COLORS.RED)
room.waiting_for_player.server.destroy()
else if time_passed >= (settings.modules.hang_timeout - 20) and not (time_passed % 10)
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} 已经很久没有操作了,若继续挂机,将于#{settings.modules.hang_timeout - time_passed}秒后被请出房间", ygopro.constants.COLORS.RED)
return
, 1000
if settings.modules.enable_random_duel
setInterval ()->
for room in ROOM_all when room and room.started and room.random_type and room.last_active_time and room.waiting_for_player
time_passed = Math.floor((moment() - room.last_active_time) / 1000)
#log.info time_passed
if time_passed >= settings.modules.hang_timeout
room.last_active_time = moment()
ROOM_ban_player(room.waiting_for_player.name, room.waiting_for_player.ip, "挂机")
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} 被系统请出了房间", ygopro.constants.COLORS.RED)
room.waiting_for_player.server.destroy()
else if time_passed >= (settings.modules.hang_timeout - 20) and not (time_passed % 10)
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} 已经很久没有操作了,若继续挂机,将于#{settings.modules.hang_timeout - time_passed}秒后被请出房间", ygopro.constants.COLORS.RED)
return
, 1000
if settings.modules.spawn_windbot
windbot_process = spawn 'mono', ['WindBot.exe', settings.modules.windbot_port], {cwd: 'windbot'}
windbot_process.on 'error', (err)->
log.warn 'WindBot ERROR', err
return
windbot_process.on 'exit', (code)->
log.warn 'WindBot EXIT', code
return
windbot_process.stdout.setEncoding('utf8')
windbot_process.stdout.on 'data', (data)->
log.info 'WindBot:', data
return
windbot_process.stderr.on 'data', (data)->
log.warn 'WindBot Error:', data
return
#http
if settings.modules.http
......
// Generated by CoffeeScript 1.10.0
(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, _, ban_user, bunyan, 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, pg, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, ygopro, zlib;
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, _, ban_user, bunyan, 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, pg, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
net = require('net');
......@@ -510,7 +510,7 @@
param = [0, this.hostinfo.lflist, this.hostinfo.rule, this.hostinfo.mode, (this.hostinfo.enable_priority ? 'T' : 'F'), (this.hostinfo.no_check_deck ? 'T' : 'F'), (this.hostinfo.no_shuffle_deck ? 'T' : 'F'), this.hostinfo.start_lp, this.hostinfo.start_hand, this.hostinfo.draw_count, this.hostinfo.time_limit, this.hostinfo.replay_mode];
try {
this.process = spawn('./ygopro', param, {
cwd: settings.ygopro_path
cwd: 'ygopro'
});
this.process.on('exit', (function(_this) {
return function(code) {
......@@ -1141,7 +1141,7 @@
baseUrl: settings.modules.mycard_auth,
url: '/users/' + encodeURIComponent(client.name) + '.json',
qs: {
api_key: settings.modules.mycard_auth_key,
api_key: process.env.MYCARD_AUTH_KEY,
api_username: client.name,
skip_track_visit: true
},
......@@ -1896,24 +1896,45 @@
}
});
setInterval(function() {
var k, len, room, time_passed;
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
if (!(room && room.started && room.random_type && room.last_active_time && room.waiting_for_player)) {
continue;
}
time_passed = Math.floor((moment() - room.last_active_time) / 1000);
if (time_passed >= settings.modules.hang_timeout) {
room.last_active_time = moment();
ROOM_ban_player(room.waiting_for_player.name, room.waiting_for_player.ip, "挂机");
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " 被系统请出了房间", ygopro.constants.COLORS.RED);
room.waiting_for_player.server.destroy();
} else if (time_passed >= (settings.modules.hang_timeout - 20) && !(time_passed % 10)) {
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " 已经很久没有操作了,若继续挂机,将于" + (settings.modules.hang_timeout - time_passed) + "秒后被请出房间", ygopro.constants.COLORS.RED);
if (settings.modules.enable_random_duel) {
setInterval(function() {
var k, len, room, time_passed;
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
if (!(room && room.started && room.random_type && room.last_active_time && room.waiting_for_player)) {
continue;
}
time_passed = Math.floor((moment() - room.last_active_time) / 1000);
if (time_passed >= settings.modules.hang_timeout) {
room.last_active_time = moment();
ROOM_ban_player(room.waiting_for_player.name, room.waiting_for_player.ip, "挂机");
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " 被系统请出了房间", ygopro.constants.COLORS.RED);
room.waiting_for_player.server.destroy();
} else if (time_passed >= (settings.modules.hang_timeout - 20) && !(time_passed % 10)) {
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " 已经很久没有操作了,若继续挂机,将于" + (settings.modules.hang_timeout - time_passed) + "秒后被请出房间", ygopro.constants.COLORS.RED);
}
}
}
}, 1000);
}, 1000);
}
if (settings.modules.spawn_windbot) {
windbot_process = spawn('mono', ['WindBot.exe', settings.modules.windbot_port], {
cwd: 'windbot'
});
windbot_process.on('error', function(err) {
log.warn('WindBot ERROR', err);
});
windbot_process.on('exit', function(code) {
log.warn('WindBot EXIT', code);
});
windbot_process.stdout.setEncoding('utf8');
windbot_process.stdout.on('data', function(data) {
log.info('WindBot:', data);
});
windbot_process.stderr.on('data', function(data) {
log.warn('WindBot Error:', data);
});
}
if (settings.modules.http) {
requestListener = function(request, response) {
......
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