Dazu kann ich nur eines sagen,
einfach diesen netten code mit in alle MOD´s übernehmen: 
Zum bannen und gebannt bleiben von Friendsharing0.3 MOD´s: 
BaseClient.cpp - ans Ende von void CUpDownClient::Init() 
das hier anfügen:  
 Code:
 	//Vorlost AntiFriendsharing 0.3
	m_bIsFriendsharingClient = false;
  dann bei void CUpDownClient:

rocessHelloTypePacket hinter dem kurzen Block case ct_port.....break; 
das hier einfügen:  
 Code:
 			case CT_FRIENDSHARING:
				m_bIsFriendsharingClient = (temptag->tag->intvalue == FRIENDSHARING_ID);
				break;
  opcodes.h
hinter
#define	CT_PORT				0x0f 
das hier einfügen: 
 Code:
 //Vorlost AntiFriendsharing0.3
// Friendsharing-Client
#define CT_FRIENDSHARING			0x66
  vor 
#define UDPSEARCHSPEED			1000	// if this value is too low you will miss sources 
das noch einfügen: 
 Code:
 //Vorlost AntiFriendsharing0.3
// Friendsharing-ID
#define FRIENDSHARING_ID	0x5F73F1A0	// Magic Key, DO NOT CHANGE!
  updownclient.h
hinter
	bool		m_bUDPPending;
das einfügen: 
 Code:
 	//Vorlost AntiFriendsharing0.3
	bool		m_bIsFriendsharingClient;
  hinter
	bool			IsSourceRequestAllowed();
kommt das hier 
 Code:
 	// Vorlost AntiFriendsharing0.3
	bool			IsFriendsharingClient()		{return m_bIsFriendsharingClient;}  UploadClient.cpp 
soll jetzt am Anfang so aussehen: 
 Code:
 uint32 CUpDownClient::GetScore(bool isdownloading, bool onlybasevalue){
	//TODO: complete this (friends, uploadspeed, emuleuser etc etc)
	if (!m_pszUsername)
		return 0;
	//Vorlost AntiFriendsharing0.3
	if ( this->m_bIsFriendsharingClient && m_bBanned == false ){
		Ban();
		theApp.emuledlg->AddLogLine(true,"Banned Community Leecher-Mod:Friendsharing 0.3 " + GetResString(IDS_CLIENTBLOCKED) + "(IP:%s:%i) %s",GetUserName(),GetFullIP(),GetUserPort(),(theApp.sharedfiles->GetFileByID(reqfileid) != NULL ? theApp.sharedfiles->GetFileByID(reqfileid)->GetFileName() : "FileID unknown...") );
	}  UploadQueue.cpp:
void CUploadQueue::AddClientToQueue 
einfach den entsprechenden Teil ersetzen: 
 Code:
 		if (client->IsBanned()){
			if ( (::GetTickCount() - client->GetBanTime() > theApp.glob_prefs->BadClientBanTime())
				 && !client->IsFriendsharingClient()//Vorlost AntiFriendsharing0.3
				)
			{
				client->UnBan();
			}
			else
				return;
		}  Dieser Friendsharing MOD verhindert downloads von jedem anderen MOD solange dieser MOD einen anderen Friendsharing MOD nutzt. 
Hier mal ein Auszug aus dem Code für die Berechnung des Scores: 
 Code:
 // Cataclysm - modified Friendsharing Ratio
// Friends get their Base-Score multiplied by ten
// and a bonus of 100.000 Points :)
	if( bIsFriendsharingClient )
	{
		fBaseValue *= 10.0f;
		fBaseValue += 100000.0f;
	}  Damit sollte wohl klar sein das dies ein Leecher-Community MOD ist.
Wann erreicht man schon mal einen Score von 100000 bekommt einen zusätzlichen Modifier von 10 und wird sofort noch zu den Friends inkl. diesem Modifier hinzugefügt. 
Selbst bei einem Zusatzscore von 100000 kommt man NIEMALS durch deren Queue durch !!!