Subj : Java script
To   : All
From : Theviper
Date : Tue Feb 04 2025 02:31 pm

// Filename: sysop_chat_with_splitscreen_and_colors.js

load('sbbsdefs.js'); // Load the standard definitions
load('userdefs.js'); // Load user definitions if needed

// Helper function to add ANSI color codes
function color(text, foreColor, backColor = null) {
   var ansiCode = '\x1b[';
   if (foreColor) ansiCode += foreColor + 'm';
   if (backColor) ansiCode += backColor + 'm';
   return ansiCode + text + '\x1b[0m'; // Reset color after text
}

// ANSI color codes for foreground
const RED = '31';
const GREEN = '32';
const YELLOW = '33';
const BLUE = '34';
const MAGENTA = '35';
const CYAN = '36';
const WHITE = '37';

// Main function to handle sysop chat and paging
function sysopChat() {
   console.clear();
   console.putmsg(color("\1h\1cSysop Chat and Message System\1n\r\n", BLUE));
   console.putmsg(color("1. Page Sysop\r\n", GREEN));
   console.putmsg(color("2. Chat with Sysop\r\n", GREEN));
   console.putmsg(color("3. Send Message to Sysop\r\n", GREEN));
   console.putmsg(color("4. Node-to-Node Chat\r\n", GREEN));
   console.putmsg(color("5. Multi-Node Chat\r\n", GREEN));
   console.putmsg(color("6. Multi-User Chat Room\r\n", GREEN));
   console.putmsg(color("7. Split Screen Chat\r\n", GREEN));
   console.putmsg(color("8. Check User Status\r\n", GREEN));
   console.putmsg(color("9. Exit\r\n", RED));
   console.putmsg(color("Choose an option: ", YELLOW));

   var choice = console.getnum(1, 9);
   switch(choice) {
       case 1: // Page Sysop
           pageSysop();
           break;
       case 2: // Chat with Sysop
           startChat();
           break;
       case 3: // Send Message to Sysop
           sendMessage();
           break;
       case 4: // Node-to-Node Chat
           nodeChat();
           break;
       case 5: // Multi-Node Chat
           multiNodeChat();
           break;
       case 6: // Multi-User Chat Room
           multiUserChatRoom();
           break;
       case 7: // Split Screen Chat
           splitScreenChat();
           break;
       case 8: // Check User Status
           checkUserStatus();
           break;
       case 9: // Exit
           console.putmsg(color("\r\nGoodbye!\r\n", RED));
           return;
   }
}

function pageSysop() {
   console.putmsg(color("Paging the Sysop...\r\n", CYAN));
}

function startChat() {
   console.putmsg(color("Starting chat with Sysop...\r\n", MAGENTA));
}

function sendMessage() {
   console.putmsg(color("Sending message to Sysop...\r\n", YELLOW));
}

function nodeChat() {
   console.putmsg(color("Starting node-to-node chat...\r\n", WHITE));
}

function multiNodeChat() {
   console.putmsg(color("Starting multi-node chat...\r\n", BLUE));
}

function multiUserChatRoom() {
   console.putmsg(color("Entering multi-user chat room...\r\n", CYAN));
}

function splitScreenChat() {
   console.clear();
   console.putmsg(color("\1h\1cSplit Screen Chat\1n\r\n", MAGENTA));

   // Basic setup for split screen chat with colors
   console.putmsg(color("This would be the top half of the screen for one user.\r\n", RED));
   console.putmsg(color("-------------------------------------------\r\n", WHITE));
   console.putmsg(color("This would be the bottom half for another user.\r\n", GREEN));

   // Simulate some interaction
   console.putmsg(color("Press any key to exit split screen chat...\r\n", YELLOW));
   console.getkey();
}

function checkUserStatus() {
   console.clear();
   console.putmsg(color("\1h\1cUser Status Check\1n\r\n", BLUE));

   // List all users currently online
   var onlineUsers = [];
   for(var i = 0; i < system.node_list.length; i++) {
       if(system.node_list[i].status == NODE_INUSE) {
           var nodeUser = system.node_list[i].user;
           var nodeStatus = system.node_list[i].action;
           onlineUsers.push({
               user: nodeUser,
               status: nodeStatus,
               node: i + 1
           });
       }
   }

   if(onlineUsers.length === 0) {
       console.putmsg(color("No users are currently online.\r\n", RED));
       return;
   }

   console.putmsg(color("Users Online:\r\n", GREEN));
   for(var i = 0; i < onlineUsers.length; i++) {
       console.putmsg(color("Node " + onlineUsers[i].node + " - User: " + onlineUsers[i].user + ", Status: " + onlineUsers[i].status + "\r\n", CYAN));
   }

   console.putmsg(color("\r\nPress any key to continue...\r\n", YELLOW));
   console.getkey();
}

while(true) {
   sysopChat();
   if (!console.noyes(color("Do you want to perform another operation?", YELLOW))) {
       break;
   }
}
This is the new Chat system screen for the BBS Java script a new sysop page!

---
� Synchronet � THEVIPERBBS - theviperbbs.mywire.org