// teamPerms.cpp : Defines the entry point for the DLL application. // #include "bzfsAPI.h" BZ_GET_PLUGIN_VERSION class Teamer : public bz_EventHandler { public: virtual void process ( bz_EventData *eventData ) { bz_GetAutoTeamEventData *teamData = (bz_GetAutoTeamEventData*)eventData; bz_PlayerRecord *player = bz_getPlayerByIndex(teamData->playeID); bool ok = (teamData->team == eRogueTeam && player->hasPerm("rogue")) || (teamData->team == eRedTeam && player->hasPerm("red")) || (teamData->team == eGreenTeam && player->hasPerm("green")) || (teamData->team == eBlueTeam && player->hasPerm("blue")) || (teamData->team == ePurpleTeam && player->hasPerm("purple")) || (teamData->team == eObservers && player->hasPerm("observer")); if (!ok) { if (player->hasPerm("red")) teamData->team = eRedTeam; else if (player->hasPerm("green")) teamData->team = eGreenTeam; else if (player->hasPerm("blue")) teamData->team = eBlueTeam; else if (player->hasPerm("purple")) teamData->team = ePurpleTeam; else if (player->hasPerm("rogue")) teamData->team = eRogueTeam; else if (player->hasPerm("observer")) teamData->team = eObservers; else bz_kickUser(teamData->playeID, "You do not have permission to join this server.", false); } bz_freePlayerRecord(player); } }; Teamer teamer; BZF_PLUGIN_CALL int bz_Load ( const char* /*commandLine*/ ) { bz_debugMessage(4,"teamPerms plugin loaded"); bz_registerEvent(bz_eGetAutoTeamEvent,&teamer); return 0; } BZF_PLUGIN_CALL int bz_Unload ( void ) { bz_removeEvent(bz_eGetAutoTeamEvent,&teamer); bz_debugMessage(4,"teamPerms plugin unloaded"); return 0; } // Local Variables: *** // mode:C++ *** // tab-width: 8 *** // c-basic-offset: 2 *** // indent-tabs-mode: t *** // End: *** // ex: shiftwidth=2 tabstop=8