func (pool *Pool) IsBanned(player *PlayerData) bool {
	pool.mutex.RLock()
	defer pool.mutex.RUnlock()
	return len(player.blamedBy) >= pool.size-1
}
IsBanned returns true if the player has been banned by their pool.
This assumes that only one ban will happen per pool.
package server
import (
	"sync"
	"github.com/cashshuffle/cashshuffle/message"
)
const (
	firstPlayerNum = uint32(1)
)
type Pool struct {
	num            int
	mutex          sync.RWMutex
	players        map[uint32]*PlayerData
	size           int
	amount         uint64
	firstBan       *PlayerData
	version        uint64
	shuffleType    message.ShuffleType
	frozenSnapshot map[string]*PlayerData  
}
func newPool(num int, player *PlayerData, size int) *Pool {
	pool := &Pool{
		num:            num,
		size:           size,
		mutex:          sync.RWMutex{},
		players:        make(map[uint32]*PlayerData),
		amount:         player.amount,
		firstBan:       nil,
		version:        player.version,
		shuffleType:    player.shuffleType,
		frozenSnapshot: make(map[string]*PlayerData),
	}
	pool.AddPlayer(player)
	return pool
}
func (pool *Pool) IsFrozen() bool {
	pool.mutex.RLock()
	defer pool.mutex.RUnlock()
	return len(pool.frozenSnapshot) != 0
}