wfc-server/gpcm/kick.go
2024-01-23 17:20:33 -05:00

48 lines
1010 B
Go

package gpcm
func kickPlayer(profileID uint32, reason string) {
if session, exists := sessions[profileID]; exists {
errorMessage := WWFCMsgKickedGeneric
switch reason {
case "banned":
errorMessage = WWFCMsgProfileBannedTOSNow
case "restricted":
errorMessage = WWFCMsgProfileRestrictedNow
case "restricted_join":
errorMessage = WWFCMsgProfileRestricted
case "moderator_kick":
errorMessage = WWFCMsgKickedModerator
case "room_kick":
errorMessage = WWFCMsgKickedRoomHost
case "invalid_elo":
errorMessage = WWFCMsgInvalidELO
case "network_error":
// No error message
session.Conn.Close()
return
}
session.replyError(GPError{
ErrorCode: ErrConnectionClosed.ErrorCode,
ErrorString: "The player was kicked from the server. Reason: " + reason,
Fatal: true,
WWFCMessage: errorMessage,
})
session.Conn.Close()
}
}
func KickPlayer(profileID uint32, reason string) {
mutex.Lock()
defer mutex.Unlock()
kickPlayer(profileID, reason)
}