Skip to content
This repository was archived by the owner on Sep 1, 2023. It is now read-only.

Commit 439a867

Browse files
committed
gah
1 parent 3d8595a commit 439a867

File tree

6 files changed

+13
-2
lines changed

6 files changed

+13
-2
lines changed

src/commands/fixgame.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ export const cmd = {
7575
else if (Object.values(game.cards).some(c => Object.keys(cardArrayToCount(c)).length > 48)) {
7676
const badPlayer = Object.entries(game.cards).find(c => Object.keys(cardArrayToCount(c[1])).length > 48)![0];
7777
game.players.splice(game.players.indexOf(badPlayer), 1);
78+
delete game.cards[badPlayer];
79+
game.playersWhoLeft.push(badPlayer);
7880
respond(msg, `Removed **${getUsername(badPlayer, true, msg.guild)}**`);
7981

8082
if (game.players.length <= 1) return;

src/components.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,9 @@ export function PickCardSelect(game: UnoGame<true>, id: string, canSkip = false)
103103

104104
if (entries.length > 50) {
105105
game.players.splice(game.players.indexOf(id), 1);
106+
delete game.cards[id];
107+
game.playersWhoLeft.push(id);
108+
106109
sendMessage(game.channelID, `Removed **${getUsername(id, true, client.guilds.get(game.guildID))}**`);
107110
if (game.players.length <= 1) return;
108111
if (game.currentPlayer === id) {

src/gameLogic/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ export function onTimeout(game: UnoGame<true>, player: string) {
2828
game.currentPlayer = next(game.players, game.players.indexOf(player));
2929
if (game.settings.kickOnTimeout) {
3030
game.players.splice(game.players.indexOf(player), 1);
31+
delete game.cards[player];
32+
game.playersWhoLeft.push(player);
3133
}
3234

3335
sendMessage(game.channelID,

src/gameLogic/notStarted.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ export function startGame(game: UnoGame<false>, automatic: boolean) {
115115
const players = new Proxy(playerList, {
116116
deleteProperty(t, p: string) {
117117
delete t[p];
118-
delete startedGame.cards[p];
119-
startedGame.playersWhoLeft.push(p);
120118

121119
startedGame._debug.pushState({
122120
type: "delete-player",
@@ -140,6 +138,7 @@ won by default`,
140138
.toJSON()
141139
}), 50);
142140
}
141+
143142
return true;
144143
},
145144
});

src/gameLogic/playedCards.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ function isSabotage(ctx: ComponentInteraction<ComponentTypes.STRING_SELECT>, gam
1919

2020
if (game.drawDuration >= maxDuration) {
2121
game.players.splice(game.players.indexOf(ctx.member.id), 1);
22+
delete game.cards[ctx.member.id];
23+
game.playersWhoLeft.push(ctx.member.id);
2224

2325
sendMessage(ctx.channel.id, `Removed **${getUsername(game.lastPlayer.id, true, ctx.guild)}** for attempting to sabotage the game`);
2426
if (game.players.length <= 1) {
@@ -30,6 +32,7 @@ function isSabotage(ctx: ComponentInteraction<ComponentTypes.STRING_SELECT>, gam
3032

3133
game.currentPlayer = next(game.players, game.players.indexOf(game.currentPlayer));
3234
game.lastPlayer.duration = 0;
35+
sendGameMessage(game);
3336
return true;
3437
}
3538

src/gameLogic/started.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import { makeDrawCardProxy } from "./notStarted.js";
1414
export function leaveGame(ctx: ComponentInteraction<ComponentTypes.BUTTON>, game: UnoGame<true>) {
1515
if (game.players.includes(ctx.member.id)) {
1616
game.players.splice(game.players.indexOf(ctx.member.id), 1);
17+
delete game.cards[ctx.member.id];
18+
game.playersWhoLeft.push(ctx.member.id);
1719
if (game.currentPlayer === ctx.member.id) game.currentPlayer = next(game.players, game.players.indexOf(game.currentPlayer));
1820

1921
sendMessage(ctx.channel.id, `**${getUsername(ctx.member.id, true, ctx.guild)}** left the game.`);

0 commit comments

Comments
 (0)