Updated how mute and deafen for self works, more similar to official client behavior.
This commit is contained in:
@@ -233,6 +233,13 @@ func (b *Barnard) setSelfMute(muted bool) {
|
||||
b.UpdateGeneralStatus("cannot change self mute while disconnected", true)
|
||||
return
|
||||
}
|
||||
if !muted && b.selfDeafened() {
|
||||
b.setUnmuteOnUndeafen(false)
|
||||
b.Client.Self.SetSelfMutedAndDeafened(false, false)
|
||||
b.Notify("unmuteundeafen", "me", "")
|
||||
b.AddOutputLine("You unmuted and undeafened yourself")
|
||||
return
|
||||
}
|
||||
if b.selfMuted() == muted {
|
||||
return
|
||||
}
|
||||
@@ -272,17 +279,36 @@ func (b *Barnard) setSelfDeafen(deafened bool) {
|
||||
if b.selfDeafened() == deafened {
|
||||
return
|
||||
}
|
||||
if b.isTransmitting() {
|
||||
if deafened && b.isTransmitting() {
|
||||
b.StopTransmission()
|
||||
}
|
||||
b.Client.Self.SetSelfMutedAndDeafened(true, deafened)
|
||||
muted, unmuteOnUndeafen := selfDeafenTarget(deafened, b.selfMuted(), b.shouldUnmuteOnUndeafen())
|
||||
b.setUnmuteOnUndeafen(unmuteOnUndeafen)
|
||||
b.Client.Self.SetSelfMutedAndDeafened(muted, deafened)
|
||||
if deafened {
|
||||
b.Notify("mutedeafen", "me", "")
|
||||
b.AddOutputLine("You muted and deafened yourself")
|
||||
if unmuteOnUndeafen {
|
||||
b.Notify("mutedeafen", "me", "")
|
||||
b.AddOutputLine("You muted and deafened yourself")
|
||||
} else {
|
||||
b.Notify("deafen", "me", "")
|
||||
b.AddOutputLine("You deafened yourself")
|
||||
}
|
||||
return
|
||||
}
|
||||
b.Notify("muteundeafen", "me", "")
|
||||
b.AddOutputLine("You undeafened yourself; microphone remains muted")
|
||||
if muted {
|
||||
b.Notify("muteundeafen", "me", "")
|
||||
b.AddOutputLine("You undeafened yourself; microphone remains muted")
|
||||
} else {
|
||||
b.Notify("unmuteundeafen", "me", "")
|
||||
b.AddOutputLine("You unmuted and undeafened yourself")
|
||||
}
|
||||
}
|
||||
|
||||
func selfDeafenTarget(deafened, currentlyMuted, unmuteOnUndeafen bool) (muted, rememberUnmute bool) {
|
||||
if deafened {
|
||||
return true, !currentlyMuted
|
||||
}
|
||||
return !unmuteOnUndeafen, false
|
||||
}
|
||||
|
||||
func (b *Barnard) toggleSelfDeafen() {
|
||||
|
||||
Reference in New Issue
Block a user