Compare commits

..

1 Commits
main ... main

Author SHA1 Message Date
Daniel Errington 47c00d90de Add Mario Kart randomizer command 2025-05-12 18:15:17 +01:00
9 changed files with 16 additions and 67 deletions

1
Cargo.lock generated
View File

@ -1407,7 +1407,6 @@ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
[[package]] [[package]]
name = "manifold" name = "manifold"
version = "8.0.0" version = "8.0.0"
source = "git+https://code.orbiter-radio.uk/discord/manifold.git#a9fb91c7718a5b21310f2c9a196ee66081d72054"
dependencies = [ dependencies = [
"built", "built",
"chrono", "chrono",

View File

@ -1,15 +0,0 @@
FROM rust:latest AS builder
WORKDIR /usr/src/hal
COPY . .
RUN cargo install --path .
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y libpq5 libssl3 && rm -rf /var/lib/apt/lists/*
RUN mkdir -pv /srv/hal
COPY --from=builder /usr/local/cargo/bin/hal /srv/hal
RUN chmod a+x /srv/hal/hal
COPY --from=builder /usr/src/hal/config /srv/hal/config
COPY --from=builder /usr/src/hal/txt /srv/hal/txt
RUN find /srv/hal/
WORKDIR /srv/hal
CMD ["./hal", "-e", "development"]

View File

@ -1,17 +0,0 @@
services:
hal:
depends_on:
psql:
condition: service_started
restart: true
build: .
environment:
- DISCORD_TOKEN=${DISCORD_TOKEN}
- RUST_LOG=warn
psql:
image: postgres
restart: always
# set shared memory limit when using docker compose
shm_size: 128mb
environment:
POSTGRES_PASSWORD: "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts"

View File

@ -2,10 +2,10 @@
"prefix": "!", "prefix": "!",
"nickname": "Hal 9000", "nickname": "Hal 9000",
"database": { "database": {
"host": "psql", "host": "127.0.0.1",
"user": "postgres", "user": "badgey_development",
"pass": "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts", "pass": "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts",
"database_name": "postgres", "database_name": "hal_development",
"port": 5432 "port": 5432
}, },
"channels": { "channels": {

View File

@ -4,7 +4,7 @@ use rand::rngs::StdRng;
use rand::SeedableRng; use rand::SeedableRng;
use rand::seq::IndexedRandom; use rand::seq::IndexedRandom;
use crate::hal::models::mario_kart_randomizer::MarioKartRandomizer; use crate::hal::commands::mario_kart_randomizer::MarioKartRandomizer;
#[poise::command(slash_command, prefix_command)] #[poise::command(slash_command, prefix_command)]
async fn bikeshed(ctx: ManifoldContext<'_>) -> ManifoldResult<()> { async fn bikeshed(ctx: ManifoldContext<'_>) -> ManifoldResult<()> {
@ -42,28 +42,14 @@ async fn randommk(context: ManifoldContext<'_>, count: u32, balance: bool, insid
for combo in combos { for combo in combos {
context.send(|c| { context.send(|c| {
c c.embed(|embed| {
.content(format!("{combo_number}. {0}, {1}, {2}, {3}", combo.character, combo.body, combo.tires, combo.glider)) embed
.embed(|embed| { .title(format!("{combo_number}. {0}, {1}, {2}, {3}", combo.character, combo.body, combo.tires, combo.glider))
embed .image(format!("https://mkrandomizer.awsxdr.com/images/characters/{0}.png", combo.character))
.url("https://mkrandomizer.awsxdr.com/") .image(format!("https://mkrandomizer.awsxdr.com/images/bodies/{0}.png", combo.body))
.image(format!("https://mkrandomizer.awsxdr.com/images/characters/{0}.png", combo.character)) .image(format!("https://mkrandomizer.awsxdr.com/images/tires/{0}.png", combo.tires))
}) .image(format!("https://mkrandomizer.awsxdr.com/images/gliders/{0}.png", combo.glider))
.embed(|embed| { })
embed
.url("https://mkrandomizer.awsxdr.com/")
.image(format!("https://mkrandomizer.awsxdr.com/images/bodies/{0}.png", combo.body))
})
.embed(|embed| {
embed
.url("https://mkrandomizer.awsxdr.com/")
.image(format!("https://mkrandomizer.awsxdr.com/images/tires/{0}.png", combo.tires))
})
.embed(|embed| {
embed
.url("https://mkrandomizer.awsxdr.com/")
.image(format!("https://mkrandomizer.awsxdr.com/images/gliders/{0}.png", combo.glider))
})
}).await?; }).await?;
combo_number += 1; combo_number += 1;

View File

@ -58,7 +58,7 @@ impl MarioKartRandomizer {
let selection_slice = &scored_combinations[min as usize..max as usize]; let selection_slice = &scored_combinations[min as usize..max as usize];
for _ in 0..count { for _ in 1..count {
let combo = selection_slice.choose(&mut random).unwrap(); let combo = selection_slice.choose(&mut random).unwrap();
result.push(combo.combination.clone()); result.push(combo.combination.clone());
} }
@ -71,7 +71,7 @@ impl MarioKartRandomizer {
get_kart_combinations() get_kart_combinations()
} else { } else {
let stats = get_item_stats(); let stats = get_item_stats();
get_kart_combinations().iter().filter(|k| { !stats.bodies[&k.body].inside_drift }).cloned().collect() get_kart_combinations().iter().filter(|k| { stats.bodies[&k.body].inside_drift }).cloned().collect()
} }
} }

View File

@ -1,5 +1,6 @@
mod utility; mod utility;
mod fun; mod fun;
mod mario_kart_randomizer;
use manifold::{ManifoldData}; use manifold::{ManifoldData};
use manifold::error::{ManifoldError}; use manifold::error::{ManifoldError};

View File

@ -16,8 +16,6 @@ pub async fn run(arguments: ArgMatches) {
let git_info: String = built_info::GIT_VERSION.unwrap_or("unknown").to_string(); let git_info: String = built_info::GIT_VERSION.unwrap_or("unknown").to_string();
let version_string = format!("Hal 9000 Bot version {ver} built at {time} from revision {rev}", ver=built_info::PKG_VERSION, time=built_info::BUILT_TIME_UTC, rev=git_info).to_string(); let version_string = format!("Hal 9000 Bot version {ver} built at {time} from revision {rev}", ver=built_info::PKG_VERSION, time=built_info::BUILT_TIME_UTC, rev=git_info).to_string();
warn!("HAL Client initialising...");
let client = match manifold::prepare_client::<HalHandler>(arguments, GatewayIntents::all(), commands::collect_commands(), version_string, MIGRATIONS).await { let client = match manifold::prepare_client::<HalHandler>(arguments, GatewayIntents::all(), commands::collect_commands(), version_string, MIGRATIONS).await {
Ok(c) => c, Ok(c) => c,
Err(e) => { Err(e) => {
@ -26,7 +24,5 @@ pub async fn run(arguments: ArgMatches) {
} }
}; };
warn!("HAL Client connecting...");
let _ = client.build().await.unwrap().start().await; let _ = client.build().await.unwrap().start().await;
} }

View File

@ -1,2 +1 @@
pub mod reminder; pub mod reminder;
pub mod mario_kart_randomizer;