Spaces:
Runtime error
Runtime error
Refactor command handling to use application commands and improve error handling
Browse files
app.py
CHANGED
@@ -73,11 +73,14 @@ music_bot = MusicBot()
|
|
73 |
@bot.event
|
74 |
async def on_ready():
|
75 |
print(f'Bot is ready! Logged in as {bot.user}')
|
|
|
76 |
try:
|
77 |
-
|
78 |
-
print(
|
|
|
|
|
79 |
except Exception as e:
|
80 |
-
print(e)
|
81 |
|
82 |
@bot.tree.command(name="play", description="Play a song from URL")
|
83 |
async def play(interaction: discord.Interaction, url: str):
|
@@ -92,20 +95,26 @@ async def play(interaction: discord.Interaction, url: str):
|
|
92 |
else:
|
93 |
await interaction.followup.send('Added to queue!')
|
94 |
|
95 |
-
|
96 |
-
|
|
|
97 |
if music_bot.voice_client:
|
98 |
music_bot.voice_client.stop()
|
99 |
-
await
|
|
|
|
|
100 |
|
101 |
-
|
102 |
-
|
|
|
103 |
if music_bot.voice_client:
|
104 |
await music_bot.voice_client.disconnect()
|
105 |
music_bot.voice_client = None
|
106 |
music_bot.queue = []
|
107 |
music_bot.is_playing = False
|
108 |
-
await
|
|
|
|
|
109 |
|
110 |
def run_discord_bot():
|
111 |
bot.run(os.getenv('DISCORD_TOKEN'))
|
|
|
73 |
@bot.event
|
74 |
async def on_ready():
|
75 |
print(f'Bot is ready! Logged in as {bot.user}')
|
76 |
+
print("Syncing commands...")
|
77 |
try:
|
78 |
+
await bot.tree.sync(guild=None) # Set to None for global sync
|
79 |
+
print("Successfully synced commands globally!")
|
80 |
+
except discord.app_commands.errors.CommandSyncFailure as e:
|
81 |
+
print(f"Failed to sync commands: {e}")
|
82 |
except Exception as e:
|
83 |
+
print(f"An error occurred while syncing commands: {e}")
|
84 |
|
85 |
@bot.tree.command(name="play", description="Play a song from URL")
|
86 |
async def play(interaction: discord.Interaction, url: str):
|
|
|
95 |
else:
|
96 |
await interaction.followup.send('Added to queue!')
|
97 |
|
98 |
+
# Replace the existing skip command with this version
|
99 |
+
@bot.tree.command(name="skip", description="Skip the current song")
|
100 |
+
async def skip(interaction: discord.Interaction):
|
101 |
if music_bot.voice_client:
|
102 |
music_bot.voice_client.stop()
|
103 |
+
await interaction.response.send_message('Skipped current song!')
|
104 |
+
else:
|
105 |
+
await interaction.response.send_message('No song is currently playing!')
|
106 |
|
107 |
+
# Replace the existing leave command with this version
|
108 |
+
@bot.tree.command(name="leave", description="Disconnect bot from voice channel")
|
109 |
+
async def leave(interaction: discord.Interaction):
|
110 |
if music_bot.voice_client:
|
111 |
await music_bot.voice_client.disconnect()
|
112 |
music_bot.voice_client = None
|
113 |
music_bot.queue = []
|
114 |
music_bot.is_playing = False
|
115 |
+
await interaction.response.send_message('Bot disconnected!')
|
116 |
+
else:
|
117 |
+
await interaction.response.send_message('Bot is not in a voice channel!')
|
118 |
|
119 |
def run_discord_bot():
|
120 |
bot.run(os.getenv('DISCORD_TOKEN'))
|