summaryrefslogtreecommitdiff
path: root/src/handlers/event/guild.rs
diff options
context:
space:
mode:
authorseth <[email protected]>2024-04-20 02:31:40 +0000
committerGitHub <[email protected]>2024-04-19 22:31:40 -0400
commit3d07413690c551d9f034c93af85ae8da5a495e14 (patch)
tree517d2e053ebdeb9a3be0ffce6dec36cbc4ce316e /src/handlers/event/guild.rs
parent1b92b254bc64b356f5c59657d2f0acc767bb2964 (diff)
spring cleaning (#165)
* treewide: lightly refactor everything * once_cell -> std::sync * remove build.rs we can get our target at runtime * commands::copypasta: refactor selection * drop owo_colors * reactboard: always remove author from count * commands: better handle behavior outside of guilds * ci: garnix -> gha * nix: drop flake-parts & pre-commit-hooks * nix: fix rust flags in derivation * add gha badge to readme * ci: fail when format changes are made * ci: only run on push to main * nix: fix nil script * nix: add libiconv to darwin deps * ci: disable fail-fast * nix: fix actionlint & static checks * ci: add release gates * nix: fix nil check again * ci: give release gates unique names * ci: only build static packages in docker workflow * nix: move dev outputs to subflake * fix some typos * nix: cleanup checks & dev shell * add editorconfig
Diffstat (limited to 'src/handlers/event/guild.rs')
-rw-r--r--src/handlers/event/guild.rs41
1 files changed, 23 insertions, 18 deletions
diff --git a/src/handlers/event/guild.rs b/src/handlers/event/guild.rs
index 51ae3b7..774179c 100644
--- a/src/handlers/event/guild.rs
+++ b/src/handlers/event/guild.rs
@@ -3,30 +3,35 @@ use log::{debug, warn};
use poise::serenity_prelude::{Guild, UnavailableGuild};
use crate::{storage, Data};
-use storage::Settings;
-
-pub async fn handle_create(guild: &Guild, _is_new: &bool, data: &Data) -> Result<()> {
- let storage = &data.storage;
-
- if storage.guild_settings_exist(&guild.id).await? {
- debug!("Not recreating settings key for {}", guild.id);
- return Ok(());
+use storage::settings::Settings;
+
+pub async fn handle_create(guild: &Guild, data: &Data) -> Result<()> {
+ if let Some(storage) = &data.storage {
+ if storage.guild_settings_exist(&guild.id).await? {
+ debug!("Not recreating settings key for {}", guild.id);
+ return Ok(());
+ }
+
+ let settings = Settings {
+ guild_id: guild.id,
+ ..Default::default()
+ };
+
+ warn!("Creating new settings key for {}:\n{settings:#?}", guild.id);
+ storage.create_guild_settings(settings).await?;
+ } else {
+ warn!("Can't create guild settings; no storage backend found!");
}
- let settings = Settings {
- guild_id: guild.id,
- optional_commands_enabled: false,
- ..Default::default()
- };
-
- warn!("Creating new settings key for {}:\n{settings:#?}", guild.id);
- storage.create_guild_settings(settings).await?;
-
Ok(())
}
pub async fn handle_delete(guild: &UnavailableGuild, data: &Data) -> Result<()> {
- data.storage.delete_guild_settings(&guild.id).await?;
+ if let Some(storage) = &data.storage {
+ storage.delete_guild_settings(&guild.id).await?;
+ } else {
+ warn!("Can't delete guild settings; no storage backend found!");
+ }
Ok(())
}