Skip to content
This repository has been archived by the owner on Jun 28, 2024. It is now read-only.

Commit

Permalink
Merge pull request #299 from azlux/pause
Browse files Browse the repository at this point in the history
fix: Music wrongly started if two people left in channel.
  • Loading branch information
TerryGeng authored Dec 2, 2021
2 parents 9b9b4e4 + 3e1f810 commit 7a5e493
Showing 1 changed file with 15 additions and 7 deletions.
22 changes: 15 additions & 7 deletions mumbleBot.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ def __init__(self, args):
self.join_channel()
self.mumble.set_bandwidth(self.bandwidth)

self._user_in_channel = self.get_user_count_in_channel()

# ====== Volume ======
self.volume_helper = util.VolumeHelper()

Expand Down Expand Up @@ -351,28 +353,34 @@ def is_admin(user):
return False

# =======================
# Users changed
# Other Mumble Events
# =======================

def users_changed(self, user, message):
def get_user_count_in_channel(self):
own_channel = self.mumble.channels[self.mumble.users.myself['channel_id']]
return len(own_channel.get_users())

def users_changed(self, user, message):
# only check if there is one more user currently in the channel
# else when the music is paused and somebody joins, music would start playing again
if len(own_channel.get_users()) == 2:
user_count = self.get_user_count_in_channel()

if user_count > self._user_in_channel and user_count == 2:
if var.config.get("bot", "when_nobody_in_channel") == "pause_resume":
self.resume()
elif var.config.get("bot", "when_nobody_in_channel") == "pause" and self.is_pause:
self.send_channel_msg(tr("auto_paused"))

elif len(own_channel.get_users()) == 1 and len(var.playlist) != 0:
elif user_count == 1 and len(var.playlist) != 0:
# if the bot is the only user left in the channel and the playlist isn't empty
self.log.info('bot: Other users in the channel left. Stopping music now.')

if var.config.get("bot", "when_nobody_in_channel") == "stop":
self.log.info('bot: No user in my channel. Stop music now.')
self.clear()
else:
self.log.info('bot: No user in my channel. Pause music now.')
self.pause()

self._user_in_channel = user_count

# =======================
# Launch and Download
# =======================
Expand Down

0 comments on commit 7a5e493

Please sign in to comment.