Commit 28f058ef authored by IamIpanda's avatar IamIpanda

Add extra custom random duel modes

parent 0e751721
...@@ -90,7 +90,8 @@ ...@@ -90,7 +90,8 @@
"T": false "T": false
}, },
"ready_time": 20, "ready_time": 20,
"hang_timeout": 90 "hang_timeout": 90,
"extra_modes": {}
}, },
"mysql": { "mysql": {
"enabled": false, "enabled": false,
......
...@@ -738,7 +738,7 @@ ROOM_find_or_create_by_name = global.ROOM_find_or_create_by_name = (name, player ...@@ -738,7 +738,7 @@ ROOM_find_or_create_by_name = global.ROOM_find_or_create_by_name = (name, player
uname=name.toUpperCase() uname=name.toUpperCase()
if settings.modules.windbot.enabled and (uname[0...2] == 'AI' or (!settings.modules.random_duel.enabled and uname == '')) if settings.modules.windbot.enabled and (uname[0...2] == 'AI' or (!settings.modules.random_duel.enabled and uname == ''))
return ROOM_find_or_create_ai(name) return ROOM_find_or_create_ai(name)
if settings.modules.random_duel.enabled and (uname == '' or uname == 'S' or uname == 'M' or uname == 'T') if settings.modules.random_duel.enabled and (uname == '' or uname == 'S' or uname == 'M' or uname == 'T' or settings.modules.random_duel.extra_modes[uname] != undefined)
return await ROOM_find_or_create_random(uname, player_ip) return await ROOM_find_or_create_random(uname, player_ip)
if room = ROOM_find_by_name(name) if room = ROOM_find_by_name(name)
return room return room
...@@ -796,8 +796,9 @@ ROOM_find_or_create_random = global.ROOM_find_or_create_random = (type, player_i ...@@ -796,8 +796,9 @@ ROOM_find_or_create_random = global.ROOM_find_or_create_random = (type, player_i
else else
return null return null
if result.random_type=='S' then result.welcome2 = '${random_duel_enter_room_single}' if result.random_type=='S' then result.welcome2 = '${random_duel_enter_room_single}'
if result.random_type=='M' then result.welcome2 = '${random_duel_enter_room_match}' else if result.random_type=='M' then result.welcome2 = '${random_duel_enter_room_match}'
if result.random_type=='T' then result.welcome2 = '${random_duel_enter_room_tag}' else if result.random_type=='T' then result.welcome2 = '${random_duel_enter_room_tag}'
else result.welcome2 = settings.modules.random_duel.extra_modes[type]?.welcome ? ''
return result return result
ROOM_find_or_create_ai = global.ROOM_find_or_create_ai = (name)-> ROOM_find_or_create_ai = global.ROOM_find_or_create_ai = (name)->
......
// Generated by CoffeeScript 2.7.0 // Generated by CoffeeScript 2.6.1
(function() { (function() {
// 标准库 // 标准库
var Aragami, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_replays_and_kick, CLIENT_set_ip, PQueue, Q, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_kick, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_oppentlist, ROOM_unwelcome, ROOM_validate, ReplayParser, ResolveData, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, YGOProDeck, _, _async, addCallback, aragami, aragami_classes, athleticChecker, auth, axios, badwordR, badwords, ban_user, bunyan, challonge, checkFileExists, createDirectoryIfNotExists, crypto, dataManager, deck_name_match, dialogues, disconnect_list, exec, execFile, extra_mode_list, fs, geoip, getDuelLogQueryFromQs, getRealIp, get_memory_usage, http, httpRequestListener, importOldConfig, import_datas, init, ip6addr, isTrustedProxy, lflists, loadJSON, loadJSONAsync, loadLFList, loadRemoteData, load_dialogues, load_tips, log, long_resolve_cards, memory_usage, merge, moment, moment_long_ago_string, moment_now, moment_now_string, msg_polyfill, neosRequestListener, net, netRequestHandler, os, osu, path, qs, real_windbot_server_ip, release_disconnect, report_to_big_brother, request, roomlist, rooms_count, setting_change, setting_get, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, toIpv4, toIpv6, url, users_cache, util, utility, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, ygopro, zlib; var Aragami, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_replays_and_kick, CLIENT_set_ip, PQueue, Q, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_kick, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_oppentlist, ROOM_unwelcome, ROOM_validate, ReplayParser, ResolveData, Room, SERVER_clear_disconnect, SERVER_kick, SOCKET_flush_data, YGOProDeck, _, _async, addCallback, aragami, aragami_classes, athleticChecker, auth, axios, badwordR, badwords, ban_user, bunyan, challonge, checkFileExists, createDirectoryIfNotExists, crypto, dataManager, deck_name_match, dialogues, disconnect_list, exec, execFile, extra_mode_list, fs, geoip, getDuelLogQueryFromQs, getRealIp, get_memory_usage, http, httpRequestListener, importOldConfig, import_datas, init, ip6addr, isTrustedProxy, lflists, loadJSON, loadJSONAsync, loadLFList, loadRemoteData, load_dialogues, load_tips, log, long_resolve_cards, memory_usage, merge, moment, moment_long_ago_string, moment_now, moment_now_string, msg_polyfill, neosRequestListener, net, netRequestHandler, os, osu, path, qs, real_windbot_server_ip, release_disconnect, report_to_big_brother, request, roomlist, rooms_count, setting_change, setting_get, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, toIpv4, toIpv6, url, users_cache, util, utility, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, ygopro, zlib;
...@@ -949,7 +949,7 @@ ...@@ -949,7 +949,7 @@
if (settings.modules.windbot.enabled && (uname.slice(0, 2) === 'AI' || (!settings.modules.random_duel.enabled && uname === ''))) { if (settings.modules.windbot.enabled && (uname.slice(0, 2) === 'AI' || (!settings.modules.random_duel.enabled && uname === ''))) {
return ROOM_find_or_create_ai(name); return ROOM_find_or_create_ai(name);
} }
if (settings.modules.random_duel.enabled && (uname === '' || uname === 'S' || uname === 'M' || uname === 'T')) { if (settings.modules.random_duel.enabled && (uname === '' || uname === 'S' || uname === 'M' || uname === 'T' || settings.modules.random_duel.extra_modes[uname] !== void 0)) {
return (await ROOM_find_or_create_random(uname, player_ip)); return (await ROOM_find_or_create_random(uname, player_ip));
} }
if (room = ROOM_find_by_name(name)) { if (room = ROOM_find_by_name(name)) {
...@@ -971,7 +971,7 @@ ...@@ -971,7 +971,7 @@
}; };
ROOM_find_or_create_random = global.ROOM_find_or_create_random = async function(type, player_ip) { ROOM_find_or_create_random = global.ROOM_find_or_create_random = async function(type, player_ip) {
var max_player, name, playerbanned, randomDuelBanRecord, result; var max_player, name, playerbanned, randomDuelBanRecord, ref, ref1, result;
if (settings.modules.mysql.enabled) { if (settings.modules.mysql.enabled) {
randomDuelBanRecord = (await dataManager.getRandomDuelBan(player_ip)); randomDuelBanRecord = (await dataManager.getRandomDuelBan(player_ip));
if (randomDuelBanRecord) { if (randomDuelBanRecord) {
...@@ -1021,12 +1021,12 @@ ...@@ -1021,12 +1021,12 @@
} }
if (result.random_type === 'S') { if (result.random_type === 'S') {
result.welcome2 = '${random_duel_enter_room_single}'; result.welcome2 = '${random_duel_enter_room_single}';
} } else if (result.random_type === 'M') {
if (result.random_type === 'M') {
result.welcome2 = '${random_duel_enter_room_match}'; result.welcome2 = '${random_duel_enter_room_match}';
} } else if (result.random_type === 'T') {
if (result.random_type === 'T') {
result.welcome2 = '${random_duel_enter_room_tag}'; result.welcome2 = '${random_duel_enter_room_tag}';
} else {
result.welcome2 = (ref = (ref1 = settings.modules.random_duel.extra_modes[type]) != null ? ref1.welcome : void 0) != null ? ref : '';
} }
return result; return result;
}; };
......
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