forked from sass/tipibot
More bug fixes
This commit is contained in:
@@ -157,7 +157,7 @@ def register_dev_member_commands(
|
||||
await interaction.response.defer()
|
||||
|
||||
try:
|
||||
sheets.refresh()
|
||||
await sheets.refresh()
|
||||
except Exception as e:
|
||||
await interaction.followup.send(S.ERR["sheet_error"].format(error=e), ephemeral=True)
|
||||
return
|
||||
@@ -177,7 +177,7 @@ def register_dev_member_commands(
|
||||
return
|
||||
|
||||
try:
|
||||
data = sheets.refresh()
|
||||
data = await sheets.refresh()
|
||||
except Exception as e:
|
||||
await interaction.followup.send(S.ERR["sheet_error"].format(error=e), ephemeral=True)
|
||||
return
|
||||
@@ -195,7 +195,7 @@ def register_dev_member_commands(
|
||||
guild.members,
|
||||
)
|
||||
if guild_member:
|
||||
sheets.set_user_id(discord_name, guild_member.id)
|
||||
await sheets.set_user_id(discord_name, guild_member.id)
|
||||
ids_filled += 1
|
||||
|
||||
data = sheets.get_cache()
|
||||
@@ -243,7 +243,7 @@ def register_dev_member_commands(
|
||||
|
||||
if sync_updates:
|
||||
try:
|
||||
sheets.batch_set_synced(sync_updates)
|
||||
await sheets.batch_set_synced(sync_updates)
|
||||
except Exception as e:
|
||||
log.error("/check batch_set_synced failed: %s", e)
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ async def run_birthday_daily(
|
||||
return
|
||||
|
||||
try:
|
||||
data = sheets.refresh()
|
||||
data = await sheets.refresh()
|
||||
except Exception as e:
|
||||
log.error("Birthday task: sheet refresh failed: %s", e)
|
||||
data = sheets.get_cache()
|
||||
@@ -68,13 +68,13 @@ async def handle_member_join(
|
||||
log.info("Member joined: %s (ID: %s)", member, member.id)
|
||||
|
||||
if not sheets.get_cache():
|
||||
sheets.refresh()
|
||||
await sheets.refresh()
|
||||
|
||||
result = await sync_member(member, member.guild)
|
||||
|
||||
if result.not_found:
|
||||
try:
|
||||
sheets.add_new_member_row(member.name, member.id)
|
||||
await sheets.add_new_member_row(member.name, member.id)
|
||||
log.info(
|
||||
" → %s not in sheet, added new row (Discord=%s, ID=%s)",
|
||||
member,
|
||||
@@ -86,7 +86,7 @@ async def handle_member_join(
|
||||
return
|
||||
|
||||
log_sync_result(member, result)
|
||||
sheets.set_synced(member.id, result.synced)
|
||||
await sheets.set_synced(member.id, result.synced)
|
||||
|
||||
if result.birthday_soon and not has_announced_today(member.id):
|
||||
await announce_birthday(member, bot)
|
||||
|
||||
@@ -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