Allow for logos to be used as instance names

This commit is contained in:
SCOPEDD committed 2026-09-29 01:58:53 -04:00
1 parent a1f19e86c6
commit 522e3a5717
10 files changed
+38 -10

No files matched your search

+4
View File
@@ -215,6 +215,10 @@ const MIGRATIONS: &[&str] = &[
WHEN NEW.uuid <> ''
BEGIN INSERT OR IGNORE INTO reserved_usernames VALUES (NEW.username, NEW.uuid); END;
"#,
// 5: instance logo url.
r#"
ALTER TABLE instances ADD COLUMN logo_url TEXT;
"#,
];
pub async fn connect(data_dir: &Path) -> Result<SqlitePool> {
+6 -3
View File
@@ -349,6 +349,7 @@ pub struct InstanceInput {
description: String,
icon_url: Option<String>,
banner_url: Option<String>,
logo_url: Option<String>,
mc_version: String,
loader: Loader,
loader_version: Option<String>,
@@ -403,15 +404,16 @@ pub async fn create_instance(
let now = crate::db::now();
let mem = input.memory.unwrap_or_default();
sqlx::query(
"INSERT INTO instances (id, name, description, icon_url, banner_url, mc_version, loader, loader_version, source_kind, source_label,
"INSERT INTO instances (id, name, description, icon_url, banner_url, logo_url, mc_version, loader, loader_version, source_kind, source_label,
visibility, allowed_groups, memory_min, memory_max, jvm_args, server, featured, enabled, sort, created_at, updated_at)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'vanilla', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'vanilla', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
)
.bind(&id)
.bind(&input.name)
.bind(&input.description)
.bind(&input.icon_url)
.bind(&input.banner_url)
.bind(&input.logo_url)
.bind(&input.mc_version)
.bind(input.loader.as_str())
.bind(&input.loader_version)
@@ -461,7 +463,7 @@ pub async fn update_instance(
// admin explicitly changes them here.
let label = if existing.source_kind == "vanilla" { format!("Minecraft {}", input.mc_version) } else { existing.source_label.clone() };
sqlx::query(
"UPDATE instances SET name = ?, description = ?, icon_url = ?, banner_url = ?, mc_version = ?, loader = ?, loader_version = ?,
"UPDATE instances SET name = ?, description = ?, icon_url = ?, banner_url = ?, logo_url = ?, mc_version = ?, loader = ?, loader_version = ?,
source_label = ?, visibility = ?, allowed_groups = ?, memory_min = ?, memory_max = ?, jvm_args = ?, server = ?, featured = ?,
enabled = ?, sort = ?, revision = revision + 1, updated_at = ? WHERE id = ?",
)
@@ -469,6 +471,7 @@ pub async fn update_instance(
.bind(&input.description)
.bind(input.icon_url.filter(|s| !s.is_empty()))
.bind(input.banner_url.filter(|s| !s.is_empty()))
.bind(input.logo_url.filter(|s| !s.is_empty()))
.bind(&input.mc_version)
.bind(input.loader.as_str())
.bind(&input.loader_version)
+4
View File
@@ -63,6 +63,7 @@ pub struct InstanceRow {
pub description: String,
pub icon_url: Option<String>,
pub banner_url: Option<String>,
pub logo_url: Option<String>,
pub mc_version: String,
pub loader: String,
pub loader_version: Option<String>,
@@ -92,6 +93,7 @@ pub struct AdminInstance {
pub description: String,
pub icon_url: Option<String>,
pub banner_url: Option<String>,
pub logo_url: Option<String>,
pub mc_version: String,
pub loader: Loader,
pub loader_version: Option<String>,
@@ -123,6 +125,7 @@ impl InstanceRow {
description: self.description.clone(),
icon_url: self.icon_url.clone(),
banner_url: self.banner_url.clone(),
logo_url: self.logo_url.clone(),
mc_version: self.mc_version.clone(),
loader: Loader::parse(&self.loader).unwrap_or_default(),
loader_version: self.loader_version.clone(),
@@ -154,6 +157,7 @@ impl InstanceRow {
description: a.description,
icon_url: a.icon_url,
banner_url: a.banner_url,
logo_url: a.logo_url,
mc_version: a.mc_version,
loader: a.loader,
loader_version: a.loader_version,