coollsd commited on
Commit
0ce2627
·
verified ·
1 Parent(s): 2383b20

Update sportbet.py

Browse files
Files changed (1) hide show
  1. sportbet.py +26 -24
sportbet.py CHANGED
@@ -71,13 +71,11 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
71
  user_cash[self.user_id] -= bet_amount
72
  save_database()
73
 
74
- user = await interaction.client.fetch_user(self.user_id)
75
  embed = discord.Embed(title="Bet Placed", color=0x787878)
76
  embed.add_field(name="Team", value=self.team, inline=False)
77
  embed.add_field(name="Amount", value=f"${bet_amount}", inline=False)
78
  embed.add_field(name="Game", value=f"{self.game_data['teams']['away']['teamName']} vs {self.game_data['teams']['home']['teamName']}", inline=False)
79
  embed.add_field(name="Start Time", value=discord.utils.format_dt(datetime.fromisoformat(self.game_data['startTime'].replace('Z', '+00:00')), style='F'), inline=False)
80
- await user.send(embed=embed)
81
 
82
  if self.user_id not in user_bets:
83
  user_bets[self.user_id] = []
@@ -90,7 +88,7 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
90
  view = discord.ui.View()
91
  view.add_item(discord.ui.Button(label="Bet Again", custom_id="bet_again"))
92
  view.add_item(discord.ui.Button(label="View Current Bets", custom_id="view_bets"))
93
- await interaction.response.send_message("Bet placed successfully!", view=view)
94
 
95
  asyncio.create_task(self.monitor_game(interaction, bet_amount))
96
  except ValueError as e:
@@ -120,6 +118,30 @@ class BetModal(discord.ui.Modal, title="Place Your Bet"):
120
 
121
  await asyncio.sleep(300)
122
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  @app_commands.command(name="sportbet", description="bet on sports game")
124
  async def sportbet(interaction: discord.Interaction):
125
  if interaction.user.id in user_bets and user_bets[interaction.user.id]:
@@ -136,29 +158,9 @@ async def sportbet(interaction: discord.Interaction):
136
  await interaction.response.send_message("No games for betting.")
137
  return
138
 
139
- view = discord.ui.View()
140
- game_select = GameSelect(upcoming_games)
141
- view.add_item(game_select)
142
-
143
  await interaction.response.send_message("game to bet on:", view=view)
144
 
145
- async def game_callback(interaction: discord.Interaction):
146
- selected_game = next(game for game in upcoming_games if f"{game['teams']['away']['abbreviation']}_{game['teams']['home']['abbreviation']}" == game_select.values[0])
147
-
148
- team_view = discord.ui.View()
149
- team_select = TeamSelect(selected_game['teams']['away'], selected_game['teams']['home'])
150
- team_view.add_item(team_select)
151
-
152
- await interaction.response.edit_message(content="team to bet on:", view=team_view)
153
-
154
- async def team_callback(interaction: discord.Interaction):
155
- selected_team = team_select.values[0]
156
- await interaction.response.send_modal(BetModal(selected_team, interaction.user.id, selected_game))
157
-
158
- team_select.callback = team_callback
159
-
160
- game_select.callback = game_callback
161
-
162
  async def view_current_bets(interaction: discord.Interaction):
163
  user_id = interaction.user.id
164
  if user_id not in user_bets or not user_bets[user_id]:
 
71
  user_cash[self.user_id] -= bet_amount
72
  save_database()
73
 
 
74
  embed = discord.Embed(title="Bet Placed", color=0x787878)
75
  embed.add_field(name="Team", value=self.team, inline=False)
76
  embed.add_field(name="Amount", value=f"${bet_amount}", inline=False)
77
  embed.add_field(name="Game", value=f"{self.game_data['teams']['away']['teamName']} vs {self.game_data['teams']['home']['teamName']}", inline=False)
78
  embed.add_field(name="Start Time", value=discord.utils.format_dt(datetime.fromisoformat(self.game_data['startTime'].replace('Z', '+00:00')), style='F'), inline=False)
 
79
 
80
  if self.user_id not in user_bets:
81
  user_bets[self.user_id] = []
 
88
  view = discord.ui.View()
89
  view.add_item(discord.ui.Button(label="Bet Again", custom_id="bet_again"))
90
  view.add_item(discord.ui.Button(label="View Current Bets", custom_id="view_bets"))
91
+ await interaction.response.send_message(embed=embed, view=view)
92
 
93
  asyncio.create_task(self.monitor_game(interaction, bet_amount))
94
  except ValueError as e:
 
118
 
119
  await asyncio.sleep(300)
120
 
121
+ class SportBetView(discord.ui.View):
122
+ def __init__(self, upcoming_games):
123
+ super().__init__()
124
+ self.upcoming_games = upcoming_games
125
+ self.add_item(GameSelect(upcoming_games))
126
+
127
+ @discord.ui.select(cls=GameSelect)
128
+ async def on_game_select(self, interaction: discord.Interaction, select: GameSelect):
129
+ selected_game = next(game for game in self.upcoming_games if f"{game['teams']['away']['abbreviation']}_{game['teams']['home']['abbreviation']}" == select.values[0])
130
+
131
+ team_view = discord.ui.View()
132
+ team_select = TeamSelect(selected_game['teams']['away'], selected_game['teams']['home'])
133
+ team_view.add_item(team_select)
134
+
135
+ @discord.ui.select(cls=TeamSelect)
136
+ async def on_team_select(interaction: discord.Interaction, select: TeamSelect):
137
+ selected_team = select.values[0]
138
+ modal = BetModal(selected_team, interaction.user.id, selected_game)
139
+ await interaction.response.send_modal(modal)
140
+
141
+ team_view.on_team_select = on_team_select
142
+
143
+ await interaction.response.edit_message(content="team to bet on:", view=team_view)
144
+
145
  @app_commands.command(name="sportbet", description="bet on sports game")
146
  async def sportbet(interaction: discord.Interaction):
147
  if interaction.user.id in user_bets and user_bets[interaction.user.id]:
 
158
  await interaction.response.send_message("No games for betting.")
159
  return
160
 
161
+ view = SportBetView(upcoming_games)
 
 
 
162
  await interaction.response.send_message("game to bet on:", view=view)
163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
  async def view_current_bets(interaction: discord.Interaction):
165
  user_id = interaction.user.id
166
  if user_id not in user_bets or not user_bets[user_id]: