/* * @brief */ void Sv_KickClient(sv_client_t *cl, const char *msg) { char buf[MAX_STRING_CHARS], name[32]; if (!cl) return; if (cl->state < SV_CLIENT_CONNECTED) return; if (*cl->name == '\0') // force a name to kick strcpy(name, "player"); else g_strlcpy(name, cl->name, sizeof(name)); memset(buf, 0, sizeof(buf)); if (msg && *msg != '\0') g_snprintf(buf, sizeof(buf), ": %s", msg); Sv_ClientPrint(cl->edict, PRINT_HIGH, "You were kicked%s\n", buf); Sv_DropClient(cl); Sv_BroadcastPrint(PRINT_HIGH, "%s was kicked%s\n", name, buf); }
/* * Sv_Serverinfo_f * * Dumps the serverinfo info string */ static void Sv_Info_f(void) { const cvar_t *cvar; char line[MAX_STRING_CHARS]; if (!sv_client) { // print to server console Com_PrintInfo(Cvar_ServerInfo()); return; } for (cvar = cvar_vars; cvar; cvar = cvar->next) { if (!(cvar->flags & CVAR_SERVER_INFO)) continue; //only print serverinfo cvars snprintf(line, sizeof(line), "%s %s\n", cvar->name, cvar->string); Sv_ClientPrint(sv_client->edict, PRINT_MEDIUM, "%s", line); } }