1
0
Fork 0

Compare commits

..

3 Commits
main ... main

Author SHA1 Message Date
Daniel Errington f8fd096c0f Add randommk command (#2)
Hal Deployment / build (push) Successful in 6m1s Details
Hal Deployment / deploy (push) Successful in 8s Details
Add a new command (`/randommk`) to HAL to allow the randomization of Mario Kart 8 Deluxe kart combinations.

Reviewed-on: discord/hal-9000#2
Co-authored-by: Daniel Errington <derrington@gmail.com>
Co-committed-by: Daniel Errington <derrington@gmail.com>
2025-05-25 13:29:05 +00:00
Xyon cd68fe24f8 Merge pull request 'Add dockerfile and docker compose stuff and make that all work' (#1) from feature/ci-build-on-nonmainline into main
Hal Deployment / build (push) Successful in 6m9s Details
Hal Deployment / deploy (push) Successful in 9s Details
Reviewed-on: discord/hal-9000#1
2025-05-15 22:39:00 +00:00
Lucy Bladen 12d88af66c Add dockerfile and docker compose stuff and make that all work 2025-05-15 23:38:18 +01:00
9 changed files with 67 additions and 16 deletions

1
Cargo.lock generated
View File

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

15
Dockerfile Normal file
View File

@ -0,0 +1,15 @@
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"]

17
compose.yaml Normal file
View File

@ -0,0 +1,17 @@
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": "!",
"nickname": "Hal 9000",
"database": {
"host": "127.0.0.1",
"user": "badgey_development",
"host": "psql",
"user": "postgres",
"pass": "7ZhUVzr7sxcPEEDMdxfEryW4NTZX5C2ufzZd3r2s25xULgH7FWXJVts",
"database_name": "hal_development",
"database_name": "postgres",
"port": 5432
},
"channels": {

View File

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

View File

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

View File

@ -16,6 +16,8 @@ pub async fn run(arguments: ArgMatches) {
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();
warn!("HAL Client initialising...");
let client = match manifold::prepare_client::<HalHandler>(arguments, GatewayIntents::all(), commands::collect_commands(), version_string, MIGRATIONS).await {
Ok(c) => c,
Err(e) => {
@ -24,5 +26,7 @@ pub async fn run(arguments: ArgMatches) {
}
};
warn!("HAL Client connecting...");
let _ = client.build().await.unwrap().start().await;
}

View File

@ -58,7 +58,7 @@ impl MarioKartRandomizer {
let selection_slice = &scored_combinations[min as usize..max as usize];
for _ in 1..count {
for _ in 0..count {
let combo = selection_slice.choose(&mut random).unwrap();
result.push(combo.combination.clone());
}
@ -71,7 +71,7 @@ impl MarioKartRandomizer {
get_kart_combinations()
} else {
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 +1,2 @@
pub mod reminder;
pub mod reminder;
pub mod mario_kart_randomizer;