From 436df90387f03ef761218526e89487aa9a9f897d Mon Sep 17 00:00:00 2001 From: Martijn Braam Date: Thu, 22 Oct 2020 20:58:00 +0200 Subject: [PATCH] Fix chat <0 bug --- main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index 7655be2..bca46b1 100644 --- a/main.c +++ b/main.c @@ -766,19 +766,27 @@ not_yet: goto check_votes; } else if (strncmp(input, "/me ", 4) == 0) { - if (alive(players[pid])) { + if (state.chats_left > 0 && alive(players[pid])) { snprintf(buf, sizeof(buf), "(%d) * [%s] %s", state.chats_left, players[pid].name, &input[4]); broadcast(buf, -1); state.chats_left--; + } else if (alive(players[pid])) { + snprintf(buf, sizeof(buf), "No chats left, you can only vote now\n"); + write(players[pid].fd, buf, strlen(buf)); + return; } else { snprintf(buf, sizeof(buf), "(dead) * [%s] %s", players[pid].name, &input[4]); broadcast_ghosts(buf, -1); } } else if (strncmp(input, "/shrug", 6) == 0) { - if (alive(players[pid])) { + if (state.chats_left > 0 && alive(players[pid])) { snprintf(buf, sizeof(buf), "(%d) [%s]: ¯\\_(ツ)_/¯", state.chats_left, players[pid].name); broadcast(buf, -1); state.chats_left--; + } else if (alive(players[pid])) { + snprintf(buf, sizeof(buf), "No chats left, you can only vote now\n"); + write(players[pid].fd, buf, strlen(buf)); + return; } else { snprintf(buf, sizeof(buf), "(dead) [%s]: ¯\\_(ツ)_/¯", players[pid].name); broadcast_ghosts(buf, -1); @@ -802,7 +810,7 @@ not_yet: broadcast_ghosts(buf, -1); } } else { - if (state.chats_left == 0 && alive(players[pid])) { + if (state.chats_left <= 0 && alive(players[pid])) { snprintf(buf, sizeof(buf), "No chats left, you can only vote now\n"); write(players[pid].fd, buf, strlen(buf)); return;