forked from sass/tipibot
More bug fixes
This commit is contained in:
@@ -276,18 +276,16 @@ def register_economy_games_commands(
|
||||
bet_line_a = bet_line_b = ""
|
||||
if self.bet > 0:
|
||||
if winner == "a":
|
||||
res = await economy.do_give(self.player_b.id, self.player_a.id, self.bet)
|
||||
await economy.do_rps_pvp_payout(self.player_a.id, self.bet)
|
||||
bet_line_a = f"\n+{coin(self.bet)}"
|
||||
bet_line_b = f"\n-{coin(self.bet)}"
|
||||
elif winner == "b":
|
||||
res = await economy.do_give(self.player_a.id, self.player_b.id, self.bet)
|
||||
await economy.do_rps_pvp_payout(self.player_b.id, self.bet)
|
||||
bet_line_a = f"\n-{coin(self.bet)}"
|
||||
bet_line_b = f"\n+{coin(self.bet)}"
|
||||
else:
|
||||
res = {"ok": True}
|
||||
|
||||
if self.bet > 0 and winner is not None:
|
||||
if res.get("ok"):
|
||||
bet_line_a = f"\n{'+' if winner == 'a' else '-'}{coin(self.bet)}"
|
||||
bet_line_b = f"\n{'+' if winner == 'b' else '-'}{coin(self.bet)}"
|
||||
else:
|
||||
bet_line_a = bet_line_b = S.RPS_UI["duel_broke"]
|
||||
await economy.do_rps_pvp_refund(self.player_a.id, self.bet)
|
||||
await economy.do_rps_pvp_refund(self.player_b.id, self.bet)
|
||||
|
||||
data_a = await economy.get_user(self.player_a.id)
|
||||
data_b = await economy.get_user(self.player_b.id)
|
||||
@@ -375,6 +373,9 @@ def register_economy_games_commands(
|
||||
if self.game._resolved:
|
||||
return
|
||||
self.game._resolved = True
|
||||
if self.game.bet > 0:
|
||||
await economy.do_rps_pvp_refund(self.game.player_a.id, self.game.bet)
|
||||
await economy.do_rps_pvp_refund(self.game.player_b.id, self.game.bet)
|
||||
active_games.discard(self.game.player_a.id)
|
||||
active_games.discard(self.game.player_b.id)
|
||||
for item in self.children:
|
||||
@@ -431,21 +432,33 @@ def register_economy_games_commands(
|
||||
active_games.add(self.game.player_b.id)
|
||||
|
||||
if self.game.bet > 0:
|
||||
data_a = await economy.get_user(self.game.player_a.id)
|
||||
data_b = await economy.get_user(self.game.player_b.id)
|
||||
for player, data in ((self.game.player_a, data_a), (self.game.player_b, data_b)):
|
||||
if data["balance"] < self.game.bet:
|
||||
embed = discord.Embed(
|
||||
title=S.TITLE["rps_duel_cancel"],
|
||||
description=S.RPS_UI["duel_insufficient"].format(mention=player.mention),
|
||||
color=0xED4245,
|
||||
)
|
||||
await interaction.response.edit_message(embed=embed, view=None)
|
||||
async with self.game._lock:
|
||||
self.game._resolved = True
|
||||
active_games.discard(self.game.player_a.id)
|
||||
active_games.discard(self.game.player_b.id)
|
||||
return
|
||||
deposit_a = await economy.do_rps_pvp_deposit(self.game.player_a.id, self.game.bet)
|
||||
if not deposit_a.get("ok"):
|
||||
embed = discord.Embed(
|
||||
title=S.TITLE["rps_duel_cancel"],
|
||||
description=S.RPS_UI["duel_insufficient"].format(mention=self.game.player_a.mention),
|
||||
color=0xED4245,
|
||||
)
|
||||
await interaction.response.edit_message(embed=embed, view=None)
|
||||
async with self.game._lock:
|
||||
self.game._resolved = True
|
||||
active_games.discard(self.game.player_a.id)
|
||||
active_games.discard(self.game.player_b.id)
|
||||
return
|
||||
deposit_b = await economy.do_rps_pvp_deposit(self.game.player_b.id, self.game.bet)
|
||||
if not deposit_b.get("ok"):
|
||||
await economy.do_rps_pvp_refund(self.game.player_a.id, self.game.bet)
|
||||
embed = discord.Embed(
|
||||
title=S.TITLE["rps_duel_cancel"],
|
||||
description=S.RPS_UI["duel_insufficient"].format(mention=self.game.player_b.mention),
|
||||
color=0xED4245,
|
||||
)
|
||||
await interaction.response.edit_message(embed=embed, view=None)
|
||||
async with self.game._lock:
|
||||
self.game._resolved = True
|
||||
active_games.discard(self.game.player_a.id)
|
||||
active_games.discard(self.game.player_b.id)
|
||||
return
|
||||
|
||||
bet_str = S.RPS_UI["duel_active_bet"].format(bet=coin(self.game.bet)) if self.game.bet > 0 else ""
|
||||
embed = discord.Embed(
|
||||
@@ -479,6 +492,9 @@ def register_economy_games_commands(
|
||||
if dm_failed:
|
||||
async with self.game._lock:
|
||||
self.game._resolved = True
|
||||
if self.game.bet > 0:
|
||||
await economy.do_rps_pvp_refund(self.game.player_a.id, self.game.bet)
|
||||
await economy.do_rps_pvp_refund(self.game.player_b.id, self.game.bet)
|
||||
active_games.discard(self.game.player_a.id)
|
||||
active_games.discard(self.game.player_b.id)
|
||||
embed = discord.Embed(
|
||||
|
||||
Reference in New Issue
Block a user