snapshot_poker_phase3
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
const {
|
||||
executePokerAction
|
||||
} = require("../../utils/pokerInteractions");
|
||||
|
||||
module.exports = {
|
||||
name: "pokerAllIn",
|
||||
|
||||
async execute(interaction) {
|
||||
return executePokerAction(
|
||||
interaction,
|
||||
{
|
||||
type: "all_in"
|
||||
},
|
||||
"✅ All-In."
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,47 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
buildJoinPicker
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerBrowse",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
try {
|
||||
const tables =
|
||||
await getPokerService()
|
||||
.listJoinableTables({
|
||||
guildId:
|
||||
interaction.guildId,
|
||||
channelId:
|
||||
interaction.channelId
|
||||
});
|
||||
|
||||
return interaction.editReply(
|
||||
buildJoinPicker(
|
||||
tables
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
const {
|
||||
executePokerAction
|
||||
} = require("../../utils/pokerInteractions");
|
||||
|
||||
module.exports = {
|
||||
name: "pokerCall",
|
||||
|
||||
async execute(interaction) {
|
||||
return executePokerAction(
|
||||
interaction,
|
||||
{
|
||||
type: "call"
|
||||
},
|
||||
"✅ Called."
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,77 @@
|
||||
const {
|
||||
cardToString
|
||||
} = require("../../utils/pokerEngine");
|
||||
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
POKER_CARD_RESPONSE_LIFETIME,
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
getPokerGameIdFromInteraction
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerCards",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const gameId =
|
||||
getPokerGameIdFromInteraction(
|
||||
interaction
|
||||
);
|
||||
|
||||
if (!gameId) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ This Poker table is no longer active.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const cards =
|
||||
await getPokerService()
|
||||
.viewCards({
|
||||
gameId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
await interaction.editReply({
|
||||
content:
|
||||
`🃏 Your cards: **${cards.map(cardToString).join(" ")}**`,
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
|
||||
setTimeout(
|
||||
() => {
|
||||
interaction
|
||||
.deleteReply()
|
||||
.catch(() => {});
|
||||
},
|
||||
POKER_CARD_RESPONSE_LIFETIME
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,67 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
getPokerGameIdFromInteraction,
|
||||
refreshPokerTableMessage
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerCashOut",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const gameId =
|
||||
getPokerGameIdFromInteraction(
|
||||
interaction
|
||||
);
|
||||
|
||||
if (!gameId) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ This Poker table is no longer active.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const result =
|
||||
await getPokerService()
|
||||
.cashOut({
|
||||
gameId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
await refreshPokerTableMessage(
|
||||
interaction.client,
|
||||
result.game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
`✅ Cashed out **${result.amount.toLocaleString()} Cookies** back to your vault.`,
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
const {
|
||||
executePokerAction
|
||||
} = require("../../utils/pokerInteractions");
|
||||
|
||||
module.exports = {
|
||||
name: "pokerCheck",
|
||||
|
||||
async execute(interaction) {
|
||||
return executePokerAction(
|
||||
interaction,
|
||||
{
|
||||
type: "check"
|
||||
},
|
||||
"✅ Checked."
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,81 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
publishPokerTable,
|
||||
buildOpenTableLink
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerCreate",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const service =
|
||||
getPokerService();
|
||||
|
||||
let game = null;
|
||||
|
||||
try {
|
||||
game =
|
||||
await service.createTable({
|
||||
guildId:
|
||||
interaction.guildId,
|
||||
channelId:
|
||||
interaction.channelId,
|
||||
ownerId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
const published =
|
||||
await publishPokerTable(
|
||||
interaction,
|
||||
game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
`✅ Poker table created. **${published.game.data.buyIn.toLocaleString()} Cookies** were moved into your Poker stack.`,
|
||||
embeds: [],
|
||||
components:
|
||||
buildOpenTableLink(
|
||||
published.game
|
||||
)
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
if (game) {
|
||||
try {
|
||||
await service.cashOut({
|
||||
gameId:
|
||||
game.gameId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
}
|
||||
catch (refundError) {
|
||||
console.error(
|
||||
`[Poker] Failed to refund unpublished table ${game.gameId}:`,
|
||||
refundError
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,17 @@
|
||||
const {
|
||||
executePokerAction
|
||||
} = require("../../utils/pokerInteractions");
|
||||
|
||||
module.exports = {
|
||||
name: "pokerFold",
|
||||
|
||||
async execute(interaction) {
|
||||
return executePokerAction(
|
||||
interaction,
|
||||
{
|
||||
type: "fold"
|
||||
},
|
||||
"✅ Folded."
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,73 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
getPokerGameIdFromInteraction,
|
||||
refreshPokerTableMessage,
|
||||
buildOpenTableLink
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerJoinTable",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const gameId =
|
||||
getPokerGameIdFromInteraction(
|
||||
interaction
|
||||
);
|
||||
|
||||
if (!gameId) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ This Poker table is no longer active.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const game =
|
||||
await getPokerService()
|
||||
.joinTable({
|
||||
gameId,
|
||||
guildId:
|
||||
interaction.guildId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
await refreshPokerTableMessage(
|
||||
interaction.client,
|
||||
game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
`✅ Joined the Poker table for **${game.data.buyIn.toLocaleString()} Cookies**.`,
|
||||
embeds: [],
|
||||
components:
|
||||
buildOpenTableLink(
|
||||
game
|
||||
)
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,66 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
refreshPokerTableMessage,
|
||||
buildOpenTableLink
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerMyTable",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
try {
|
||||
const game =
|
||||
await getPokerService()
|
||||
.getMyTable({
|
||||
guildId:
|
||||
interaction.guildId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
if (!game) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ You are not currently seated at a Poker table.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
await refreshPokerTableMessage(
|
||||
interaction.client,
|
||||
game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"♠️ Your active Poker table:",
|
||||
embeds: [],
|
||||
components:
|
||||
buildOpenTableLink(
|
||||
game
|
||||
)
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
const {
|
||||
executeMinimumRaise
|
||||
} = require("../../utils/pokerInteractions");
|
||||
|
||||
module.exports = {
|
||||
name: "pokerRaise",
|
||||
|
||||
async execute(interaction) {
|
||||
return executeMinimumRaise(
|
||||
interaction
|
||||
);
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,65 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
getPokerGameIdFromInteraction,
|
||||
refreshPokerTableMessage
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerRefresh",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const gameId =
|
||||
getPokerGameIdFromInteraction(
|
||||
interaction
|
||||
);
|
||||
|
||||
if (!gameId) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ This Poker table is no longer active.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const game =
|
||||
await getPokerService()
|
||||
.getTable({
|
||||
gameId
|
||||
});
|
||||
|
||||
await refreshPokerTableMessage(
|
||||
interaction.client,
|
||||
game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"✅ Poker table refreshed.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,67 @@
|
||||
const {
|
||||
getPokerService
|
||||
} = require("../../utils/crumbPoker");
|
||||
|
||||
const {
|
||||
deferPokerReply,
|
||||
editPokerError,
|
||||
getPokerGameIdFromInteraction,
|
||||
refreshPokerTableMessage
|
||||
} = require("../../utils/pokerDiscord");
|
||||
|
||||
|
||||
module.exports = {
|
||||
name:
|
||||
"pokerStart",
|
||||
|
||||
async execute(
|
||||
interaction
|
||||
) {
|
||||
await deferPokerReply(
|
||||
interaction
|
||||
);
|
||||
|
||||
const gameId =
|
||||
getPokerGameIdFromInteraction(
|
||||
interaction
|
||||
);
|
||||
|
||||
if (!gameId) {
|
||||
return interaction.editReply({
|
||||
content:
|
||||
"❌ This Poker table is no longer active.",
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
const game =
|
||||
await getPokerService()
|
||||
.startTableHand({
|
||||
gameId,
|
||||
userId:
|
||||
interaction.user.id
|
||||
});
|
||||
|
||||
await refreshPokerTableMessage(
|
||||
interaction.client,
|
||||
game
|
||||
);
|
||||
|
||||
return interaction.editReply({
|
||||
content:
|
||||
`✅ Hand **#${game.data.handNumber}** started.`,
|
||||
embeds: [],
|
||||
components: []
|
||||
});
|
||||
}
|
||||
|
||||
catch (error) {
|
||||
return editPokerError(
|
||||
interaction,
|
||||
error
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user