Recently I've been working on how teams should work. At first you could just join any team, but because of the team rankings this was not such a good idea. It's not totally decided yet which ranking system we're going to use and how the team ranking is going to work. However team ranking might work a bit like this. Right now it's an average of the players in team, but someone suggested that instead it works like the individual ranking, so that in a battle the best player of each team in that battle counts for the team ranking that battle and the ranking points achieved is calculated based on the teams and other teams ranking.
This is why it is important that no one plays a battle while in a wrong team, hence fucking up the team ranking. The solution I decided on after discussing it a bit with kd is as follows. By default you can join any team you like. Anyone in a team can then lock and unlock the team. So when the team is locked obviously no one can join it. It also saves a history of which teams you've been in when. So that in case someone joins an unlocked team he is not part of, plays a battle, and fucks up the teams ranking, we can edit his team history and recalculate the team rankings using the team history.
I have coded it all except the part that recalculates the team ranking according to the team history. So I hope I'll be able to so all this works ;-)
And sorry it all this doesn't make any sense, but it does in my head atleast.