diff --git a/pyweb/mumble/MumbleCtlDbus.py b/pyweb/mumble/MumbleCtlDbus.py index 090ce9e..8557d96 100644 --- a/pyweb/mumble/MumbleCtlDbus.py +++ b/pyweb/mumble/MumbleCtlDbus.py @@ -291,6 +291,21 @@ class MumbleCtlDbus_118(MumbleCtlBase): else: return -1 + def moveUser(self, srvid, sessionid, channelid): + srv = self._getDbusServerObject(srvid) + (session, ismute, isdeaf, suppressed, selfMute, selfDeaf, channel) = srv.getPlayerState(dbus.UInt32(sessionid)) + srv.setPlayerState((session, ismute, isdeaf, suppressed, selfMute, selfDeaf, channelid)) + + def muteUser(self, srvid, sessionid, mute): + srv = self._getDbusServerObject(srvid) + (session, ismute, isdeaf, suppressed, selfMute, selfDeaf, channel) = srv.getPlayerState(dbus.UInt32(sessionid)) + srv.setPlayerState((session, mute, isdeaf, suppressed, selfMute, selfDeaf, channel)) + + def deafenUser(self, srvid, sessionid, deaf): + srv = self._getDbusServerObject(srvid) + (session, ismute, isdeaf, suppressed, selfMute, selfDeaf, channel) = srv.getPlayerState(dbus.UInt32(sessionid)) + srv.setPlayerState((session, ismute, deaf, suppressed, selfMute, selfDeaf, channel)) + @staticmethod def convertDbusTypeToNative(data): #i know dbus.* type is extends python native type. diff --git a/pyweb/mumble/MumbleCtlIce.py b/pyweb/mumble/MumbleCtlIce.py index f22f1c7..c7ccf12 100644 --- a/pyweb/mumble/MumbleCtlIce.py +++ b/pyweb/mumble/MumbleCtlIce.py @@ -434,6 +434,28 @@ class MumbleCtlIce_118(MumbleCtlBase): def getLog( self, srvid, first=0, last=100 ): return self._getIceServerObject(srvid).getLog( first, last ) + @protectDjangoErrPage + def moveUser(self, srvid, sessionid, channelid): + srv = self._getIceServerObject(srvid) + state = srv.getState(sessionid) + state.channel = channelid + srv.setState(state) + + @protectDjangoErrPage + def muteUser(self, srvid, sessionid, mute=True): + srv = self._getIceServerObject(srvid) + state = srv.getState(sessionid) + state.mute = mute + srv.setState(state) + + @protectDjangoErrPage + def deafenUser(self, srvid, sessionid, deaf=True): + srv = self._getIceServerObject(srvid) + state = srv.getState(sessionid) + state.deaf = deaf + srv.setState(state) + + class MumbleCtlIce_120(MumbleCtlIce_118): @protectDjangoErrPage def getRegisteredPlayers(self, srvid, filter = ''):