Let players join sessions

This commit is contained in:
Hamcha 2019-06-27 18:14:17 +02:00
parent 4f3ad1d63a
commit f8b5dbfc17

View file

@ -70,13 +70,53 @@ func (d *draftBot) handleMessage(roomid string, msg room.Message) {
if !ok { if !ok {
// Room does not have a currently running session, ignore unless it's the owner asking for specific stuff // Room does not have a currently running session, ignore unless it's the owner asking for specific stuff
//TODO //TODO
return
} }
// Check if player is in the draft // Check if player is in the draft
player, ok := session.Players[msg.From] player, ok := session.Players[msg.From]
if !ok { if !ok {
// Player not in draft, are they asking to join? // Player not in draft, are they asking to join?
//TODO switch msg.Type {
// Player is asking to join
case "join":
// Players can only join if session didn't start yet
if session.started {
d.sendMessage(roomid, room.Message{
To: msg.From,
Type: "session-already-started",
Message: "You can't join a running session",
})
return
}
// Check if there are still open slots
if len(session.Players)+1 > len(session.Pod.Players) {
d.sendMessage(roomid, room.Message{
To: msg.From,
Type: "session-full",
Message: "There aren't any spots left",
})
return
}
// Add player to the list
session.Players[msg.From] = nil
// Player wants something else
default:
// Tell them can either join or GTFO
d.sendMessage(roomid, room.Message{
To: msg.From,
Type: "not-joined-err",
Data: "not joined",
Message: "You must join the session to do anything",
})
return
}
return
} }
switch msg.Type { switch msg.Type {