HTTPServer::HTTPServer() { baseURL = "http://"; serverHostname = "localhost"; if (bz_getPublicAddr().size()) serverHostname = bz_getPublicAddr().c_str(); // make sure it has the port if (strrchr(serverHostname.c_str(),':') == NULL) serverHostname += format(":%d",bz_getPublicPort()); baseURL += serverHostname +"/"; }
std::string BZFSHTTP::getBaseURL ( void ) { std::string URL = "http://"; std::string host = "localhost"; if (bz_getPublicAddr().size()) host = bz_getPublicAddr().c_str(); // make sure it has the port if ( strrchr(host.c_str(),':') == NULL ) host += format(":%d",bz_getPublicPort()); URL += host +"/"; URL += getVDir(); URL += "/"; return URL; }
void sendMapChangeMessage ( bool end ) { std::string message = "Map change!\n"; bz_sendTextMessage(BZ_SERVER,BZ_ALLUSERS,message.c_str()); if (end) { message = "Good bye!\n"; } else { message = "Please Rejoin!\n"; } bz_sendTextMessage(BZ_SERVER, BZ_ALLUSERS, message.c_str()); if (!end) { bz_sendJoinServer(BZ_ALLUSERS, bz_getPublicAddr().c_str(), bz_getPublicPort(), eNoTeam, bz_getPublicAddr().c_str(), "Map change"); } }
bool getPushHeader(std::string &header) { bz_ApiString host = bz_getPublicAddr(); bz_ApiString desc = bz_getPublicDescription(); header += "&isgameserver=1"; header+= "&host="; if (host.size()) header += host.c_str(); else return false; header += format("&port=%s",port.c_str()); if (desc.size()) header += "&desc=" + std::string(desc.c_str()); if (mapFile.size()) header += "&map=" + mapFile; // game mode header += "&game="; switch(bz_getGameType()) { default: header +="TeamFFA"; break; case eCTFGame: header +="CTF"; break; case eRabbitGame: header +="Rabbit"; break; } // team scores header += format("&redteamscore=%d",bz_getTeamScore(eRedTeam)); header += format("&redteamwins=%d",bz_getTeamWins(eRedTeam)); header += format("&redteamlosses=%d",bz_getTeamLosses(eRedTeam)); header += format("&greenteamscore=%d",bz_getTeamScore(eGreenTeam)); header += format("&greenteamwins=%d",bz_getTeamWins(eGreenTeam)); header += format("&greenteamlosses=%d",bz_getTeamLosses(eGreenTeam)); header += format("&blueteamscore=%d",bz_getTeamScore(eBlueTeam)); header += format("&blueteamwins=%d",bz_getTeamWins(eBlueTeam)); header += format("&blueteamlosses=%d",bz_getTeamLosses(eBlueTeam)); header += format("&purpleteamscore=%d",bz_getTeamScore(ePurpleTeam)); header += format("&purpleteamwins=%d",bz_getTeamWins(ePurpleTeam)); header += format("&purpleteamlosses=%d",bz_getTeamLosses(ePurpleTeam)); return true; }
void Templateiser::keyCallback ( std::string &data, const std::string &key ) { if (key == "date") { bz_Time time; bz_getLocaltime(&time); data = format("%d/%d/%d",time.month,time.day,time.year); } else if (key == "time") { bz_Time time; bz_getLocaltime(&time); data = format("%d:%d:%d",time.hour,time.minute,time.second); } else if (key == "hostname") { data = bz_getPublicAddr().c_str(); if (!data.size()) data = format("localhost:%d",bz_getPublicPort()); } else if (key == "pagetime") { data = format("%.3f",bz_getCurrentTime()-startTime); } else if (key == "baseurl") { data =baseURL; } else if (key == "pluginname") { data = pluginName; } }