diff --git a/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql b/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql index 000637388..8edeb1407 100644 --- a/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql +++ b/apps/labrinth/fixtures/labrinth-seed-data-202508052143.sql @@ -1,83 +1,83 @@ BEGIN TRANSACTION; COPY public.categories (id, category, project_type, icon, header, ordering) FROM stdin; -60 cursed 3 categories 0 -61 locale 3 features 0 -62 48x 3 resolutions 0 -1 technology 1 categories 0 -16 challenging 2 categories 0 -5 decoration 1 categories 0 -6 library 1 categories 0 -7 cursed 1 categories 0 -2 adventure 1 categories 0 -56 64x 3 resolutions 0 -55 32x 3 resolutions 0 -58 256x 3 resolutions 0 -59 512x+ 3 resolutions 0 -54 16x 3 resolutions 0 -63 path-tracing 4 features 0 -64 realistic 4 categories 0 -65 medium 4 performance impact 0 -66 low 4 performance impact 0 -67 high 4 performance impact 0 -68 atmosphere 4 features 0 -69 fantasy 4 categories 0 -70 foliage 4 features 0 -71 bloom 4 features 0 -72 vanilla-like 4 categories 0 -73 cartoon 4 categories 0 -74 potato 4 performance impact 0 -75 shadows 4 features 0 -76 pbr 4 features 0 -77 semi-realistic 4 categories 0 -78 cursed 4 categories 0 -79 reflections 4 features 0 -80 screenshot 4 performance impact 0 -81 colored-lighting 4 features 0 -57 128x 3 resolutions 0 -30 economy 1 categories 0 -31 management 1 categories 0 -26 optimization 2 categories 0 -27 mobs 1 \n \n \n \n categories 0 -28 transportation 1 categories 0 -24 kitchen-sink 2 categories 0 -44 blocks 3 features 0 -43 audio 3 features 0 -21 combat 2 categories 0 -22 adventure 2 categories 0 -23 technology 2 categories 0 -33 minigame 1 categories 0 -34 combat 3 categories 0 -35 decoration 3 categories 0 -36 modded 3 categories 0 -47 environment 3 features 0 -46 entities 3 \n \n \n \n features 0 -32 game-mechanics 1 categories 0 -41 utility 3 categories 0 -45 core-shaders 3 features 0 -40 tweaks 3 categories 0 -51 items 3 features 0 -52 models 3 features 0 -48 equipment 3 features 0 -49 fonts 3 features 0 -37 simplistic 3 categories 0 -38 realistic 3 categories 0 -39 themed 3 categories 0 -3 magic 1 categories 0 -4 utility 1 categories 0 -15 optimization 1 categories 0 -9 storage 1 categories 0 -53 8x- 3 resolutions 0 -42 vanilla-like 3 categories 0 -10 food 1 categories 0 -11 equipment 1 categories 0 -50 gui 3 features 0 -8 worldgen 1 categories 0 -17 multiplayer 2 categories 0 -18 quests 2 categories 0 -19 magic 2 categories 0 -20 lightweight 2 \n categories 0 -29 social 1 categories 0 +10060 cursed 3 categories 0 +10061 locale 3 features 0 +10062 48x 3 resolutions 0 +1001 technology 1 categories 0 +10016 challenging 2 categories 0 +1005 decoration 1 categories 0 +1006 library 1 categories 0 +1007 cursed 1 categories 0 +1002 adventure 1 categories 0 +10056 64x 3 resolutions 0 +10055 32x 3 resolutions 0 +10058 256x 3 resolutions 0 +10059 512x+ 3 resolutions 0 +10054 16x 3 resolutions 0 +10063 path-tracing 4 features 0 +10064 realistic 4 categories 0 +10065 medium 4 performance impact 0 +10066 low 4 performance impact 0 +10067 high 4 performance impact 0 +10068 atmosphere 4 features 0 +10069 fantasy 4 categories 0 +10070 foliage 4 features 0 +10071 bloom 4 features 0 +10072 vanilla-like 4 categories 0 +10073 cartoon 4 categories 0 +10074 potato 4 performance impact 0 +10075 shadows 4 features 0 +10076 pbr 4 features 0 +10077 semi-realistic 4 categories 0 +10078 cursed 4 categories 0 +10079 reflections 4 features 0 +10080 screenshot 4 performance impact 0 +10081 colored-lighting 4 features 0 +10057 128x 3 resolutions 0 +10030 economy 1 categories 0 +10031 management 1 categories 0 +10026 optimization 2 categories 0 +10027 mobs 1 \n \n \n \n categories 0 +10028 transportation 1 categories 0 +10024 kitchen-sink 2 categories 0 +10044 blocks 3 features 0 +10043 audio 3 features 0 +10021 combat 2 categories 0 +10022 adventure 2 categories 0 +10023 technology 2 categories 0 +10033 minigame 1 categories 0 +10034 combat 3 categories 0 +10035 decoration 3 categories 0 +10036 modded 3 categories 0 +10047 environment 3 features 0 +10046 entities 3 \n \n \n \n features 0 +10032 game-mechanics 1 categories 0 +10041 utility 3 categories 0 +10045 core-shaders 3 features 0 +10040 tweaks 3 categories 0 +10051 items 3 features 0 +10052 models 3 features 0 +10048 equipment 3 features 0 +10049 fonts 3 features 0 +10037 simplistic 3 categories 0 +10038 realistic 3 categories 0 +10039 themed 3 categories 0 +1003 magic 1 categories 0 +1004 utility 1 categories 0 +10015 optimization 1 categories 0 +1009 storage 1 categories 0 +10053 8x- 3 resolutions 0 +10042 vanilla-like 3 categories 0 +10010 food 1 categories 0 +10011 equipment 1 categories 0 +10050 gui 3 features 0 +1008 worldgen 1 categories 0 +10017 multiplayer 2 categories 0 +10018 quests 2 categories 0 +10019 magic 2 categories 0 +10020 lightweight 2 \n categories 0 +10029 social 1 categories 0 \. diff --git a/apps/labrinth/migrations/20260114130019_server_listing_projects.sql b/apps/labrinth/migrations/20260114130019_server_listing_projects.sql new file mode 100644 index 000000000..7de4b975a --- /dev/null +++ b/apps/labrinth/migrations/20260114130019_server_listing_projects.sql @@ -0,0 +1,2 @@ +ALTER TABLE mods +ADD COLUMN components JSONB NOT NULL DEFAULT '{}'; diff --git a/apps/labrinth/migrations/20260207153522_version_components.sql b/apps/labrinth/migrations/20260207153522_version_components.sql new file mode 100644 index 000000000..f6c318526 --- /dev/null +++ b/apps/labrinth/migrations/20260207153522_version_components.sql @@ -0,0 +1,8 @@ +ALTER TABLE versions +ADD COLUMN components JSONB NOT NULL DEFAULT '{}'; + +-- extra metadata for the `minecraft_java_server` version component +CREATE TABLE minecraft_java_server_versions ( + id bigint PRIMARY KEY REFERENCES versions(id), + modpack_id bigint REFERENCES versions(id) +); diff --git a/apps/labrinth/migrations/20260218183440_server_project_links_categories.sql b/apps/labrinth/migrations/20260218183440_server_project_links_categories.sql new file mode 100644 index 000000000..7ed04f125 --- /dev/null +++ b/apps/labrinth/migrations/20260218183440_server_project_links_categories.sql @@ -0,0 +1,60 @@ +INSERT INTO link_platforms (name, donation) VALUES ('store', false); + +INSERT INTO project_types (id, name) +VALUES (7, 'minecraft_java_server'); + +INSERT INTO categories (header, category, project_type) +VALUES + ('minecraft_server_gameplay', 'skyblock', 7), + ('minecraft_server_gameplay', 'oneblock', 7), + ('minecraft_server_gameplay', 'gens', 7), + ('minecraft_server_gameplay', 'prison', 7), + ('minecraft_server_gameplay', 'factions', 7), + ('minecraft_server_gameplay', 'lifesteal', 7), + ('minecraft_server_gameplay', 'anarchy', 7), + ('minecraft_server_gameplay', 'towns', 7), + ('minecraft_server_gameplay', 'vanilla-like', 7), + ('minecraft_server_gameplay', 'rpg', 7), + ('minecraft_server_gameplay', 'minigames', 7), + ('minecraft_server_gameplay', 'racing', 7), + ('minecraft_server_gameplay', 'battle-royale', 7), + ('minecraft_server_gameplay', 'parkour', 7), + ('minecraft_server_gameplay', 'bedwars', 7), + ('minecraft_server_gameplay', 'kitpvp', 7), + ('minecraft_server_gameplay', 'microgames', 7), + + ('minecraft_server_features', 'pokemon', 7), + ('minecraft_server_features', 'teams', 7), + ('minecraft_server_features', 'pvp', 7), + ('minecraft_server_features', 'pve', 7), + ('minecraft_server_features', 'op', 7), + ('minecraft_server_features', 'economy', 7), + ('minecraft_server_features', 'plots', 7), + ('minecraft_server_features', 'questing', 7), + ('minecraft_server_features', 'personal-worlds', 7), + ('minecraft_server_features', 'media', 7), + ('minecraft_server_features', 'bosses', 7), + ('minecraft_server_features', 'classes', 7), + ('minecraft_server_features', 'custom-content', 7), + ('minecraft_server_features', 'dungeons', 7), + + ('minecraft_server_meta', 'crossplay', 7), + ('minecraft_server_meta', 'offline-mode', 7), + ('minecraft_server_meta', 'whitelisted', 7), + ('minecraft_server_meta', 'keep-inventory', 7), + ('minecraft_server_meta', 'network', 7), + ('minecraft_server_meta', 'world-resets', 7), + ('minecraft_server_meta', 'creative-mode', 7), + ('minecraft_server_meta', 'hardcore-mode', 7), + ('minecraft_server_meta', 'survival-mode', 7), + ('minecraft_server_meta', 'adventure-mode', 7), + + ('minecraft_server_community', 'adventure-mode', 7), + ('minecraft_server_community', 'smp', 7), + ('minecraft_server_community', 'mmo', 7), + ('minecraft_server_community', 'roleplay', 7), + ('minecraft_server_community', 'social', 7), + ('minecraft_server_community', 'creator-community', 7), + ('minecraft_server_community', 'recording-smp', 7), + ('minecraft_server_community', 'competitive', 7), + ('minecraft_server_community', 'technical', 7); diff --git a/apps/labrinth/tests/tags.rs b/apps/labrinth/tests/tags.rs index 4cd93d60a..5ca1bb49a 100644 --- a/apps/labrinth/tests/tags.rs +++ b/apps/labrinth/tests/tags.rs @@ -21,21 +21,18 @@ async fn get_tags() { .into_iter() .map(|x| x.name) .collect::>(); - assert_eq!( - category_names, - [ - "combat", - "economy", - "food", - "optimization", - "decoration", - "mobs", - "magic" - ] - .iter() - .map(|s| s.to_string()) - .collect() - ); + + for name in [ + "combat", + "economy", + "food", + "optimization", + "decoration", + "mobs", + "magic", + ] { + assert!(category_names.contains(name)); + } }) .await; }