diff --git a/lib/blindtest/blindtest.ex b/lib/blindtest/blindtest.ex index 1fcc9ce..7b0e7ff 100644 --- a/lib/blindtest/blindtest.ex +++ b/lib/blindtest/blindtest.ex @@ -419,12 +419,10 @@ defmodule BlindTest do @doc """ Destroy the current blind test process """ - def destroy() do - guild_id = O2M.Application.from_env_to_int(:o2m, :guild) - + def destroy(guild_id) do Nostrum.Voice.leave_channel(guild_id) + # leave the channel - # kill game process and downloader case process() do {:one, pid} -> Process.exit(pid, :kill) _ -> nil diff --git a/lib/commands/blindtest.ex b/lib/commands/blindtest.ex index 350d8a8..013464a 100644 --- a/lib/commands/blindtest.ex +++ b/lib/commands/blindtest.ex @@ -426,9 +426,14 @@ defmodule O2M.Commands.Bt do with {:one, _} <- BlindTest.process(), :member <- is_member(msg.author, adm, guild_id), - {:ok, _} <- BlindTest.check_channel_id(msg.channel_id) do - BlindTest.destroy() + {:ok, _} <- BlindTest.check_channel_id(msg.channel_id), + downloarder_pid <- Process.whereis(Downloader.Worker) do + # kill downloader is any + if downloarder_pid, do: Process.exit(downloarder_pid, :kill) + # clean cache Cache.clean() + # kill running BT process + BlindTest.destroy(guild_id) Nostrum.Api.create_message( msg.channel_id,