feat: Add slowmode functionality to text channels (#680)

* feat: Add slowmode functionality to text channels

Signed-off-by: arsabutispik <ispik@ispik.dev>

* fix: use atomic check-and-set to prevent spamming with scripts

Signed-off-by: arsabutispik <ispik@ispik.dev>

* feat: Add BypassSlowmode permission to channel permissions

Signed-off-by: arsabutispik <ispik@ispik.dev>

* refactor: Use set_options instead of manually building the command

Signed-off-by: arsabutispik <ispik@ispik.dev>

---------

Signed-off-by: arsabutispik <ispik@ispik.dev>
This commit is contained in:
İspik
2026-03-28 03:09:15 +03:00
committed by GitHub
parent a5cd08a655
commit 6107f242fd
9 changed files with 92 additions and 4 deletions

View File

@@ -41,6 +41,7 @@ pub async fn edit(
&& data.nsfw.is_none()
&& data.owner.is_none()
&& data.voice.is_none()
&& data.slowmode.is_none()
&& data.remove.is_empty()
{
return Ok(Json(channel.into()));
@@ -200,6 +201,7 @@ pub async fn edit(
icon,
nsfw,
voice,
slowmode,
..
} => {
if data.remove.contains(&v0::FieldsChannel::Icon) {
@@ -247,6 +249,11 @@ pub async fn edit(
*voice = Some(new_voice.clone().into());
partial.voice = Some(new_voice.into());
}
if let Some(new_slowmode) = data.slowmode {
*slowmode = Some(new_slowmode);
partial.slowmode = Some(new_slowmode);
}
}
_ => return Err(create_error!(InvalidOperation)),
};