rendered paste body//Thanks to Noobie, ascii, chaplex and humbababababababbababababababababababababaa#define _GNU_SOURCE#include "eth.h"typedef struct { char *arrayname; char *arrayver; char *arraymod; char *arrayIP; char *arrayshortname;} ethServer_t;//Define Variablesint count = 0;char map[21];char ping[4];char maxplayers[3];char currplayers[3];char name[101];char *qrycmd;//Server Arrayconst static ethServer_t ethServer[] = {// Name ETver Mod IP Shortname {"^0[^3*C^0]^6ALL ^nAIMBOTS ^5XPSAVE", "2.55", "etpub", "87.99.33.29:27962", "*C" }, {"^1[deF]ALLBOTS ^2Public-XPSAVE", "2.55", "etpub", "212.187.247.2:27960", "def" }, {"^7Karoo enemy Territory", "2.60", "none", "212.50.160.205:27960", "kar" }, {"^1.:V^7C:.^1Old^7School^1U^7S^4A", "2.55", "etpub", "8.6.2.5:27960", "vc" }, {"^ePUBLIC ^3ALL_AIMBOTS", "2.55", "etpub", "195.122.134.106:27960", "pub" }, {"^7=|HF|=^1AIM^7BOTS ^)OLD SKOOL", "2.60", "etpub", "193.200.158.43:27960", "hf1" }, {"^7=|HF|=^1AIM^7BOTS ^)OLD SKOOL", "2.55", "etpub", "208.167.247.114:27960", "hf2" }, };#define DELIMITER ";"#define RAWCOMMAND "%s -carets -raw \"" DELIMITER "\" -woets %s | grep 0"void ETHSQ() { //Check run.sh for QRYCMD env if (strlen(qrycmd) == 0) { qrycmd = getenv("QRYCMD"); if (!qrycmd) qrycmd = "quakestat"; } //==Start of parsing quakestat== //Raw char command[512]; snprintf(command, sizeof(command), RAWCOMMAND, qrycmd, ethServer[count].arrayIP); char *raw = strdupa(getOutputSystemCommand(command)); //Server Type strtok(raw, DELIMITER); //Server IP strtok(NULL, DELIMITER); //Servername strncpy(name, strtok(NULL, DELIMITER), sizeof(name)); //Map strncpy(map, strtok(NULL, DELIMITER), sizeof(map)); //Max Players strncpy(maxplayers, strtok(NULL, DELIMITER), sizeof(maxplayers)); //Current Players strncpy(currplayers, strtok(NULL, DELIMITER), sizeof(currplayers)); //Ping strncpy(ping, strtok(NULL, DELIMITER), sizeof(ping)); //==End of quakestat parse== //Output orig_syscall(UI_PRINT, "^0|^?------------------------------^0|^?----^0|^?-----------------^0|^?-------^0|\n"); orig_syscall(UI_PRINT, "^0|^3Servername ^0|^3Ping^0|^3Mapname ^0|^3Players^0|\n"); orig_syscall(UI_PRINT, "^0|^?------------------------------^0|^?----^0|^?-----------------^0|^?-------^0|\n"); orig_syscall(UI_CMD_EXECUTETEXT, EXEC_APPEND, va("echo \"^0|%-30s^0|^n%-4s^0|^n%-17s^0|^n%s/%-7s^0| ""\n", name, ping, map, maxplayers,currplayers)); orig_syscall(UI_CMD_EXECUTETEXT, EXEC_APPEND, va("echo \"^0|^?______________________________^0|^?____^0|^?_________________^0|^?_______^0|\n")); }void ETHSQCommand() { if (syscall_UI_Argc() == 1) { orig_syscall(UI_PRINT, "^nQuery Servers and/or join them\n"); orig_syscall(UI_PRINT, "^nUsage: " ETH_CMD_PREFIX "server query/join [shortname]\n"); orig_syscall(UI_PRINT, "^nAvailable Servers \n"); orig_syscall(UI_PRINT, "^0|^3Name ^0|^3Shortname^0|^3ET Ver. ^0|^3Mod ^0|\n"); orig_syscall(UI_PRINT, "^0|^?-----------------------------------------^0|^?---------^0|^?------------^0|^?-----------^0|\n"); count = 0; for ( ; count < sizeof(ethServer) / sizeof(ethServer_t[1]) ; count++ ) { orig_syscall(UI_CMD_EXECUTETEXT, EXEC_APPEND, va("echo \"^0|%-41s^0|^3%-9s^0|^3%-12s^0|^3%-11s^0| ""\n", (ethServer[count].arrayname), (ethServer[count].arrayshortname), (ethServer[count].arrayver), (ethServer[count].arraymod))); } count = 0; } if (syscall_UI_Argc() > 1){ const char *cmd = syscall_UI_Argv(1); if ( !strcmp(cmd,"query") ){ const char *server = syscall_UI_Argv(2); for ( ; count < sizeof(ethServer) / sizeof(ethServer[0]) ; count++ ) if ( !strcasecmp( server, ethServer[count].arrayshortname ) ) { ETHSQ(); count = 0; } else { orig_syscall(UI_PRINT, "^nUnknown Server, aborting\n"); count = 0; return; } } else if ( !strcmp(cmd, "join") ) { const char *server = syscall_UI_Argv(2); for ( ; count < sizeof(ethServer) / sizeof(ethServer[0]) ; count++ ) if ( !strcasecmp( server, ethServer[count].arrayshortname ) ) { orig_syscall( UI_CMD_EXECUTETEXT, EXEC_APPEND, va( "connect %s\n", ethServer[count].arrayIP ) ); count = 0; } else { orig_syscall(UI_PRINT, "^nUnknown Server, aborting\n"); count = 0; return; } } else { orig_syscall(UI_PRINT, "^nUnknown Option, aborting\n"); return; } }}void registerETHSQCommands() { orig_Cmd_AddCommand(ETH_CMD_PREFIX "server", ÐSQCommand);}