func (player *Player) GetUserSession() string {
	return player.userSession
}
GetUserSession returns the players current user session.
package game
import (
	"strings"
	"sync"
	"time"
	discordemojimap "github.com/Bios-Marcel/discordemojimap/v2"
	"github.com/gofrs/uuid"
	"github.com/gorilla/websocket"
	"golang.org/x/text/cases"
)
const slotReservationTime = time.Minute * 5
type Lobby struct {
	LobbyID string
	*EditableLobbySettings
	DrawingTimeNew int
	CustomWords []string
	words       []string
	players []*Player
	State gameState
	drawer *Player
	Owner *Player
	creator *Player
	CurrentWord string
	wordHints []*WordHint
	wordHintsShown []*WordHint
	hintsLeft int
	hintCount int
	Round int
	wordChoice []string
	Wordpack   string
	RoundEndTime int64
	timeLeftTicker        *time.Ticker
	scoreEarnedByGuessers int
	currentDrawing []interface{}
	lastDrawEvent                 time.Time
	connectedDrawEventsIndexStack []int
	lowercaser cases.Caser
	LastPlayerDisconnectTime *time.Time
	mutex *sync.Mutex
	WriteJSON func(player *Player, object interface{}) error
}
type EditableLobbySettings struct {
	MaxPlayers int `json:"maxPlayers"`
	Public bool `json:"public"`
	EnableVotekick bool `json:"enableVotekick"`
	CustomWordsChance int `json:"customWordsChance"`
	ClientsPerIPLimit int `json:"clientsPerIpLimit"`
	DrawingTime int `json:"drawingTime"`
	Rounds int `json:"rounds"`
}
type gameState string
const (
	Unstarted gameState = "unstarted"
	Ongoing gameState = "ongoing"
	GameOver gameState = "gameOver"
)
type WordHint struct {
	Character rune `json:"character"`
	Underline bool `json:"underline"`
}
type RGBColor struct {
	R uint8 `json:"r"`
	G uint8 `json:"g"`
	B uint8 `json:"b"`
}
type Line struct {
	FromX     float32  `json:"fromX"`
	FromY     float32  `json:"fromY"`
	ToX       float32  `json:"toX"`
	ToY       float32  `json:"toY"`
	Color     RGBColor `json:"color"`
	LineWidth float32  `json:"lineWidth"`
}
type Fill struct {
	X     float32  `json:"x"`
	Y     float32  `json:"y"`
	Color RGBColor `json:"color"`
}
const MaxPlayerNameLength int = 30
type Player struct {
	userSession      string
	ws               *websocket.Conn
	socketMutex      *sync.Mutex
	lastKnownAddress string
	disconnectTime *time.Time
	votedForKick map[string]bool
	ID string `json:"id"`
	Name string `json:"name"`
	Score int `json:"score"`
	Connected bool `json:"connected"`
	LastScore int         `json:"lastScore"`
	Rank      int         `json:"rank"`
	State     PlayerState `json:"state"`
}
func (player *Player) GetLastKnownAddress() string {
	return player.lastKnownAddress
}
func (player *Player) SetLastKnownAddress(address string) {
	player.lastKnownAddress = address
}
func (player *Player) GetWebsocket() *websocket.Conn {
	return player.ws
}
func (player *Player) SetWebsocket(socket *websocket.Conn) {
	player.ws = socket
}
func (player *Player) GetWebsocketMutex() *sync.Mutex {
	return player.socketMutex
}