From 8f2406a2bab55d286738f858d24b161f15b60a09 Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Mon, 17 Jun 2024 13:33:36 +0800 Subject: [PATCH] Fixed some bugs --- ipc/methods.py | 10 ++++++---- voicelink/player.py | 3 ++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ipc/methods.py b/ipc/methods.py index 04a6a64..0fe2bef 100644 --- a/ipc/methods.py +++ b/ipc/methods.py @@ -109,7 +109,8 @@ async def initPlayer(player: Player, member: Member, data: Dict) -> Dict: "is_playing": player.is_playing, "is_paused": player.is_paused, "is_dj": player.is_privileged(member, check_user_join=False), - "autoplay": player.settings.get("autoplay", False) + "autoplay": player.settings.get("autoplay", False), + "volume": player.volume } async def closeConnection(player: Player, member: Member, data: Dict) -> None: @@ -255,6 +256,7 @@ async def updateVolume(player: Player, member: Member, data: Dict) -> None: return missingPermission(member.id) volume = data.get("volume", 100) + await func.update_settings(player.guild.id, {"$set": {"volume": volume}}) await player.set_volume(volume=volume, requester=member) async def updatePause(player: Player, member: Member, data: Dict) -> None: @@ -303,7 +305,7 @@ async def toggleAutoplay(player: Player, member: Member, data: Dict) -> Dict: "op": "toggleAutoplay", "status": check, "guild_id": player.guild.id, - "requester_id": member.id + "requester_id": str(member.id) } async def _loadPlaylist(playlist: Dict) -> Optional[List[Track]]: @@ -608,10 +610,10 @@ methods: Dict[str, Union[SystemMethod, PlayerMethod]] = { "moveTrack": PlayerMethod(moveTrack), "addTracks": PlayerMethod(addTracks, auto_connect=True), "getTracks": PlayerMethod(getTracks, auto_connect=True), - "shuffleTrack": PlayerMethod(shuffleTrack), + "shuffleTrack": PlayerMethod(shuffleTrack, credit=3), "repeatTrack": PlayerMethod(repeatTrack), "removeTrack": PlayerMethod(removeTrack), - "updateVolume": PlayerMethod(updateVolume), + "updateVolume": PlayerMethod(updateVolume, credit=2), "updatePause": PlayerMethod(updatePause), "updatePosition": PlayerMethod(updatePosition), "toggleAutoplay": PlayerMethod(toggleAutoplay), diff --git a/voicelink/player.py b/voicelink/player.py index 8743d93..3dc1c2d 100644 --- a/voicelink/player.py +++ b/voicelink/player.py @@ -607,9 +607,10 @@ class Player(VoiceProtocol): async def set_volume(self, volume: int, requester: Member = None) -> int: """Sets the volume of the player as an integer. Lavalink accepts values from 0 to 500.""" await self._node.send(method=0, guild_id=self._guild.id, data={"volume": volume}) + self._volume = volume + if self.is_ipc_connected: await self.send_ws({"op": "updateVolume", "volume": volume}, requester) - self._volume = volume self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) has been update the volume to {volume}.") return self._volume