Bump versions

This commit is contained in:
Joey Hines 2026-05-03 16:18:04 -06:00
parent fb74c90a55
commit 26eabbe275
Signed by: joeyahines
GPG Key ID: E99D8FB14855100E
16 changed files with 1732 additions and 271 deletions

1886
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
[package]
name = "fren"
version = "2.8.1"
version = "2.9.0"
edition = "2024"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
@ -8,16 +8,16 @@ edition = "2024"
[dependencies]
config = "0.15.11"
structopt = "0.3.26"
reqwest = { version = "0.12.15", features = ["json", "multipart"] }
reqwest = { version = "0.13.3", features = ["json", "multipart", "query"] }
serde = "1.0.195"
rand = "0.9.0"
rand = "0.10.1"
tera = "1.19.1"
ndm = "0.9.10"
ndm = "0.10.0"
regex = "1.10.2"
magick_rust = "1.0.0"
magick_rust = "2.0.0"
json = "0.12.4"
axum = "0.8.1"
sha3 = "0.10.8"
sha3 = "0.11.0"
base64 = "0.22.0"
j_db = { version = "0.1.2", registry = "ahines" }
chrono = { version = "0.4.31", features = ["serde"] }
@ -26,17 +26,17 @@ serde_json = "1.0.113"
raas_types = { version = "0.1.0", registry = "ahines"}
tonic = "0.12.3"
prost = "0.13.5"
emojis = "0.6.2"
emojis = "0.8.1"
poise = "0.6.1"
tracing-subscriber = { version = "0.3.19", features = ["env-filter"] }
log = "0.4.26"
cta-api = { version = "0.5.0", registry = "ahines"}
thiserror = "2.0.12"
tracing-core = "0.1.33"
strum = { version = "0.27.2", features = ["derive"] }
strum = { version = "0.28.0", features = ["derive"] }
thousands = "0.2.0"
url = { version = "2.5.7", features = ["serde"] }
convert_case = "0.10.0"
convert_case = "0.11.0"
rust-dsn-parser = { version = "1.0.0", registry = "ahines"}
[dependencies.tokio]
@ -44,7 +44,7 @@ version = "1.35.1"
features = ["macros", "rt-multi-thread"]
[dependencies.songbird]
version = "0.5.0"
version = "0.6.0"
features = ["builtin-queue"]
[dependencies.symphonia]

View File

@ -3,7 +3,6 @@ use crate::error::Error;
use crate::models::birthday::BirthdayEntry;
use poise::serenity_prelude::model::id::UserId;
use poise::serenity_prelude::utils::MessageBuilder;
use rand::{Rng, rng};
/// Add your birthday to the bot, it can probably be trusted with this info
#[poise::command(prefix_command, category = "Birthdays")]
@ -33,7 +32,7 @@ pub async fn add_birthday(
ctx.reply(format!(
"Thank you subject #{}, I am now {}% closer to making a full AI replica of you.",
ctx.author().id.get(),
rng().random_range(0.0..100.0)
rand::random_range(0.0..100.0)
))
.await?;
} else {

View File

@ -52,7 +52,7 @@ pub async fn race(ctx: Context<'_>) -> Result<(), Error> {
let emojis = ctx.guild_id().unwrap().emojis(ctx.http()).await?;
let racers: Vec<_> = emojis.iter().choose_multiple(&mut rng(), NUMBER_OF_RACERS);
let racers: Vec<_> = emojis.iter().sample(&mut rng(), NUMBER_OF_RACERS);
let racers: Result<Vec<Racer>, Error> = racers
.iter()

View File

@ -5,7 +5,6 @@ use j_db::database::Database;
use log::info;
use poise::serenity_prelude::model::id::UserId;
use poise::serenity_prelude::prelude::Mentionable;
use rand::{Rng, rng};
/// Get your balance or someone else's
#[poise::command(prefix_command, category = "Fren Coin", aliases("audit"))]
@ -120,11 +119,7 @@ pub async fn give_coin(
percent: f64,
number_of_coins: i64,
) -> Result<bool, Error> {
let should_get_coin = {
let mut rng = rng();
rng.random_bool(percent)
};
let should_get_coin = { rand::random_bool(percent) };
if should_get_coin {
info!("Randomly giving {} {} fren coins", user, number_of_coins);

View File

@ -398,7 +398,7 @@ pub async fn emoji_8ball(
emojis.append(&mut unicode_emojis);
let emoji_msg: Vec<String> = emojis.choose_multiple(&mut rng(), 3).cloned().collect();
let emoji_msg: Vec<String> = emojis.sample(&mut rng(), 3).cloned().collect();
ctx.reply(emoji_msg.join("")).await?;

View File

@ -5,7 +5,7 @@ use crate::models::lil_fren::{AliveState, LilFren, LilFrenState};
use poise::serenity_prelude::model::misc::EmojiIdentifier;
use poise::serenity_prelude::utils::MessageBuilder;
use rand::prelude::IndexedRandom;
use rand::{Rng, rng};
use rand::rng;
/// Adopt a new little buddy!
#[poise::command(
@ -113,7 +113,7 @@ pub async fn feed(
if let Some(mut lil_fren) = lil_fren {
if lil_fren.is_alive() == AliveState::Alive {
let feed: f32 = rng().random_range(-0.1..=1.0);
let feed: f32 = rand::random_range(-0.1..=1.0);
lil_fren.hunger = (lil_fren.hunger + feed).clamp(-1.0, 1.0);
let guild = ctx.guild_id().unwrap();
@ -159,7 +159,7 @@ pub async fn give_water(ctx: Context<'_>) -> Result<(), Error> {
ctx.reply("Lil buddy be drinking!").await?;
ctx.data().db.insert(lil_fren)?;
let drink = if rng().random_bool(0.20) {
let drink = if rand::random_bool(0.20) {
":beer:"
} else {
":cup_with_straw:"
@ -190,7 +190,7 @@ pub async fn play(ctx: Context<'_>) -> Result<(), Error> {
if let Some(mut lil_fren) = lil_fren {
if lil_fren.is_alive() == AliveState::Alive {
lil_fren.entertainment =
(lil_fren.entertainment + rng().random_range(0.10..1.0)).clamp(-1.0, 1.0);
(lil_fren.entertainment + rand::random_range(0.10..1.0)).clamp(-1.0, 1.0);
let guild = ctx.guild_id().unwrap();
let lil_fren_emoji = guild.emoji(ctx, lil_fren.emoji).await?;

View File

@ -33,7 +33,7 @@ use poise::serenity_prelude::{
CreateMessage, GuildId, Http, Message, MessageBuilder, ReactionType, RoleId,
};
use poise::{FrameworkOptions, find_command, serenity_prelude as serenity};
use rand::{Rng, rng};
use rand::rng;
use regex::Regex;
use songbird::SerenityInit;
use std::sync::Arc;
@ -167,8 +167,7 @@ async fn handle_message(
new_message.author.name, phrase.phrase
);
let social_credit_change =
rand::rng().random_range(phrase.lower_bound..=phrase.upper_bound);
let social_credit_change = rand::random_range(phrase.lower_bound..=phrase.upper_bound);
User::update_social_credit(&data.db, new_message.author.id, social_credit_change)?;
}
@ -516,7 +515,7 @@ pub async fn is_alive(ctx: Context<'_>) -> Result<bool, Error> {
ctx.reply("Sorry there ghosty looking fella, you appear to be unalived. I only give service to those who are alive.").await?;
Ok(false)
} else {
if is_ghoul && rng().random_bool(0.50) {
if is_ghoul && rand::random_bool(0.50) {
let ghoul_responses = [
"Oh god, what's wrong with your face? Looks like someone took it through a blender and lit it on fire",
"You kiss your mother with that mouth?",

View File

@ -9,7 +9,6 @@ use crate::user::{User, UserError};
use chrono::{Duration, Utc};
use poise::serenity_prelude::utils::MessageBuilder;
use poise::serenity_prelude::{Channel, CreateMessage, UserId};
use rand::{Rng, rng};
use std::collections::hash_map::DefaultHasher;
use std::hash::Hasher;
use std::sync::Arc;
@ -363,34 +362,34 @@ pub async fn restock_shop(
bot_user
.inventory
.give_item(ItemType::TheConceptOfLove, rng().random_range(0..=5), None);
.give_item(ItemType::TheConceptOfLove, rand::random_range(0..=5), None);
bot_user
.inventory
.give_item(ItemType::GoodFortune, rng().random_range(0..10), None);
.give_item(ItemType::GoodFortune, rand::random_range(0..10), None);
bot_user
.inventory
.give_item(ItemType::CancelInsurance, rng().random_range(1..=3), None);
.give_item(ItemType::CancelInsurance, rand::random_range(1..=3), None);
bot_user
.inventory
.give_item(ItemType::LicenseToBeHorny, rng().random_range(0..=25), None);
.give_item(ItemType::LicenseToBeHorny, rand::random_range(0..=25), None);
bot_user
.inventory
.give_item(ItemType::KillGun, rng().random_range(1..=5), None);
.give_item(ItemType::KillGun, rand::random_range(1..=5), None);
bot_user
.inventory
.give_item(ItemType::CancelRay, rng().random_range(1..=5), None);
.give_item(ItemType::CancelRay, rand::random_range(1..=5), None);
bot_user
.inventory
.give_item(ItemType::Helmet, rng().random_range(1..=3), None);
.give_item(ItemType::Helmet, rand::random_range(1..=3), None);
bot_user
.inventory
.give_item(ItemType::EMP, rng().random_range(1..=2), None);
.give_item(ItemType::EMP, rand::random_range(1..=2), None);
bot_user
.inventory
.give_item(ItemType::PhraseCanceler, rng().random_range(1..=5), None);
.give_item(ItemType::PhraseCanceler, rand::random_range(1..=5), None);
bot_user
.inventory
.give_item(ItemType::LandMine, rng().random_range(1..=5), None);
.give_item(ItemType::LandMine, rand::random_range(1..=5), None);
bot_user.inventory.give_item(ItemType::Nuke, 1, None);
loop {

View File

@ -199,7 +199,7 @@ pub async fn speak(
let src = input::File::new(word_path);
let audio_src = Compressed::new(src.into(), Bitrate::BitsPerSecond(128_000))
let audio_src = Compressed::new(src.into(), Bitrate::Bits(128_000))
.await
.expect("Bad params on message load");

View File

@ -9,7 +9,6 @@ use log::{debug, error};
use poise::serenity_prelude::{
ArgumentConvert, CacheHttp, ChannelId, Context, Emoji, MessageId, UserId,
};
use rand::{Rng, rng};
use serde::{Deserialize, Serialize};
use std::fmt::Debug;
use std::sync::Arc;
@ -160,7 +159,7 @@ impl Listener {
}
pub fn check_if_triggers(&self, trigger_type: &TriggerType) -> bool {
self.trigger.match_event(trigger_type) && rng().random_bool(self.trigger_chance)
self.trigger.match_event(trigger_type) && rand::random_bool(self.trigger_chance)
}
pub async fn handle_action(

View File

@ -190,22 +190,12 @@ async fn apply_motivation_layer(
border_wand.set_color(&motivation.border_color)?;
let width = wand.get_image_width();
let border = width / 100;
wand.border_image(
&border_wand,
border,
border,
magick_rust::bindings::CompositeOperator_OverCompositeOp.into(),
)?;
wand.border_image(&border_wand, border, border, CompositeOperator::Over)?;
border_wand.set_color("black")?;
let width = wand.get_image_width();
let border = width * 20 / 100;
wand.border_image(
&border_wand,
border,
border,
magick_rust::bindings::CompositeOperator_OverCompositeOp.into(),
)?;
wand.border_image(&border_wand, border, border, CompositeOperator::Over)?;
let text_pos_x = wand.get_image_width() as f64 / 2.0;
let text_pos_y = wand.get_image_height() as f64 - (wand.get_image_height() as f64 * 0.05);
@ -363,8 +353,8 @@ impl Alignment {
}
impl Distribution<Alignment> for StandardUniform {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Alignment {
match rng.random_range(0..=2) {
fn sample<R: Rng + ?Sized>(&self, _rng: &mut R) -> Alignment {
match rand::random_range(0..=2) {
0 => Alignment::Left,
1 => Alignment::Center,
_ => Alignment::Right,

View File

@ -4,7 +4,7 @@ use j_db::database::Database;
use j_db::model::JdbModel;
use poise::serenity_prelude::model::id::UserId;
use rand::distr::Alphanumeric;
use rand::{Rng, rng};
use rand::{RngExt, rng};
use serde::{Deserialize, Serialize};
use sha3::digest::FixedOutput;
use sha3::{Digest, Sha3_256};

View File

@ -5,7 +5,6 @@ use chrono::{DateTime, Days, NaiveTime, TimeZone, Utc};
use j_db::database::Database;
use log::info;
use poise::serenity_prelude::UserId;
use rand::{Rng, rng};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use thiserror::Error;
@ -216,11 +215,11 @@ impl GogurtReserves {
}
pub fn market_function() -> f64 {
match rng().random_range(0..100) {
0..10 => rng().random_range(8.5..10.0),
90..98 => rng().random_range(10.0..12.0),
98..100 => rng().random_range(12.0..14.0),
_ => rng().random_range(9.0..11.0),
match rand::random_range(0..100) {
0..10 => rand::random_range(8.5..10.0),
90..98 => rand::random_range(10.0..12.0),
98..100 => rand::random_range(12.0..14.0),
_ => rand::random_range(9.5..10.1),
}
}

View File

@ -9,7 +9,7 @@ use poise::serenity_prelude::model::guild::Emoji;
use poise::serenity_prelude::model::id::{EmojiId, GuildId};
use poise::serenity_prelude::utils::MessageBuilder;
use rand::distr::{Distribution, StandardUniform};
use rand::{Rng, rng};
use rand::{Rng, RngExt, rng};
use serde::{Deserialize, Serialize};
use std::sync::Arc;
@ -285,8 +285,8 @@ impl LilFren {
thirst: 1.0,
entertainment: 1.0,
state: LilFrenState::Standing,
smarts: rng().random_range(0.0..0.5),
metabolism: rng().random_range(0.2..0.75),
smarts: rand::random_range(0.0..0.5),
metabolism: rand::random_range(0.2..0.75),
}
}

View File

@ -3,7 +3,6 @@ use crate::user::UserError;
use j_db::database::Database;
use j_db::model::JdbModel;
use poise::serenity_prelude::{Emoji, EmojiId, MessageBuilder, UserId};
use rand::{Rng, rng};
use serde::{Deserialize, Serialize};
use std::fmt::{Display, Formatter};
@ -121,7 +120,7 @@ impl Eq for Racer {}
impl Racer {
pub fn new(emoji: Emoji) -> Self {
let genetic_stat = (emoji.id.get() & 0xff) as f32 / 255.0;
let random_stat = rng().random_range(0.0..0.5);
let random_stat = rand::random_range(0.0..0.5);
let speed = BASE_SPEED + (0.50 * genetic_stat) + (0.50 * random_stat);
Racer {
@ -133,7 +132,7 @@ impl Racer {
}
pub fn update_pos(&mut self) {
let speed_boost = rng().random_range(-0.75..0.75);
let speed_boost = rand::random_range(-0.75..0.75);
self.pos += self.speed + (self.speed * speed_boost);
self.pos = self.pos.clamp(0.0, RACE_SIZE as f32);