Skip to content
Snippets Groups Projects
Commit 477b2cfd authored by rswindell's avatar rswindell
Browse files

Modernization of this script (e.g. "use strict", require(), load(), etc.)

Loads child scripts (finger.js, sbbsimsg.js) quicker.
Note: irc.js can't be load()ed from here because it calls exit().
Now using appropriate strings from text.dat (R_Chat, ON, OFF).
Added modopts.ini [chat_sec] irc option (disable IRC access by setting to false).
parent caa3e18e
Branches
Tags
No related merge requests found
// chat_sec.js
// $Id$
// Chat Section for any/all Synchronet command shells
// $Id$
"use strict";
load("sbbsdefs.js");
load("nodedefs.js");
require("sbbsdefs.js", 'USER_EXPERT');
require("nodedefs.js", 'NODE_CHAT');
require("text.js", 'R_Chat');
// Over-ride these default values by creating/modifying the [chat_sec] section in your ctrl/modopts.ini file
var irc_server = "irc.synchro.net 6667";
var irc_channel = "#Synchronet"
var irc_seclevel = 90; // Minimum security level required to change the IRC server being connected to
var finger = true;
var options = load("modopts.js", "chat_sec");
if (options) {
if (options.irc_server)
irc_server = options.irc_server;
if (options.irc_channel)
irc_channel = options.irc_channel;
if (options.irc_seclevel)
irc_seclevel = options.irc_seclevel;
if (options.finger != undefined)
finger = options.finger;
}
var cmdkey;
if (!options)
options = {};
if (options.irc === undefined)
options.irc = true;
if (options.irc_server === undefined)
options.irc_server = "irc.synchro.net 6667";
if (options.irc_channel === undefined)
options.irc_channel = "#Synchronet";
if (options.irc_seclevel === undefined)
options.irc_seclevel = 90;
if (options.finger === undefined)
options.finger = true;
if(user.compare_ars("rest C")) {
write("\r\nYou can't chat.\r\n");
if(user.security.restrictions & UFLAG_C) {
write(bbs.text(R_Chat));
exit(0);
}
function on_or_off(on)
{
return bbs.text(on ? ON : OFF);
}
// Set continue point for main menu commands
menu:
while(1) {
......@@ -41,57 +44,56 @@ while(1) {
}
// Update node status
bbs.node_action=NODE_CHAT;
bbs.node_action = NODE_CHAT;
bbs.nodesync();
write("\r\n\001_\1y\001hChat: \001n");
write("\r\n\x01_\x01y\x01hChat: \x01n");
var keys = "ACDIJPQRST?\r";
if(finger)
var keys = "ACDJLPQRST?\r";
if(options.irc)
keys += "I";
if(options.finger)
keys += "F";
switch(cmdkey=console.getkeys(keys,K_UPPER)) {
switch(console.getkeys(keys, K_UPPER)) {
case "S":
var val = user.chat_settings ^= CHAT_SPLITP;
write("\001n\r\nPrivate split-screen chat is now: \001h");
write((val & CHAT_SPLITP)?"ON\001n":"OFF\001n");
writeln("");
write("\x01n\r\nPrivate split-screen chat is now: \x01h");
writeln(on_or_off(val & CHAT_SPLITP));
break;
case "A":
var val = user.chat_settings ^= CHAT_NOACT;
write("\001n\r\nNode activity alerts are now: \001h");
write((val & CHAT_NOACT)?"OFF\001n":"ON\001n");
write("\x01n\r\nNode activity alerts are now: \x01h");
writeln(on_or_off(!(val & CHAT_NOACT)));
system.node_list[bbs.node_num-1].misc ^= NODE_AOFF;
writeln("");
break;
case 'D':
var val = user.chat_settings ^= CHAT_NOPAGE;
write("\001n\r\nNode chat-page ability is now: \001h");
write((val & CHAT_NOPAGE)?"OFF\001n":"ON\001n");
write("\x01n\r\nUser chat/messaging availability is now: \x01h");
writeln(on_or_off(!(val & CHAT_NOPAGE)));
system.node_list[bbs.node_num-1].misc ^= NODE_POFF;
writeln("");
break;
case 'F':
writeln("");
bbs.exec("?finger");
load("finger.js");
break;
case 'I':
writeln("");
bbs.exec("?sbbsimsg");
load("sbbsimsg.js");
break;
case 'R':
{
var server=irc_server;
if(user.security.level >= irc_seclevel || user.security.exemptions&UFLAG_C) {
write("\r\n\001n\001y\001hIRC Server: ");
server=console.getstr(irc_server, 40, K_EDIT|K_LINE|K_AUTODEL);
if(console.aborted)
break;
}
write("\r\n\001n\001y\001hIRC Channel: ");
var channel=console.getstr(irc_channel, 40, K_EDIT|K_LINE|K_AUTODEL);
if(!console.aborted)
bbs.exec("?irc -a " + server + " " + channel);
{
var server=options.irc_server;
if(user.security.level >= options.irc_seclevel || user.security.exemptions&UFLAG_C) {
write("\r\n\x01n\x01y\x01hIRC Server: ");
server=console.getstr(options.irc_server, 40, K_EDIT|K_LINE|K_AUTODEL);
if(console.aborted)
break;
}
write("\r\n\x01n\x01y\x01hIRC Channel: ");
var channel=console.getstr(options.irc_channel, 40, K_EDIT|K_LINE|K_AUTODEL);
if(!console.aborted)
bbs.exec("?irc -a " + server + " " + channel); // can't be load()ed because it calls exit()
break;
}
case 'J':
bbs.multinode_chat();
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment