Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include attachModpackBadges into new API #7

Open
wants to merge 1 commit into
base: 1.8.9
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import net.minecraft.text.Text;

import java.util.Map;
import java.util.function.Consumer;

public interface ModMenuApi extends io.github.prospector.modmenu.util.ModMenuApiMarker {

Expand Down Expand Up @@ -57,4 +58,15 @@ default ConfigScreenFactory<?> getModConfigScreenFactory() {
default Map<String, ConfigScreenFactory<?>> getProvidedConfigScreenFactories() {
return ImmutableMap.of();
}

/**
* Used to mark mods with a badge indicating that they are
* provided by a modpack.
* <p>
* Builtin mods such as `minecraft` cannot be marked as
* provided by a modpack.
*/
default void attachModpackBadges(Consumer<String> consumer) {
return;
}
}
9 changes: 4 additions & 5 deletions src/main/java/io/github/prospector/modmenu/ModMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,7 @@
import org.apache.logging.log4j.Logger;

import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;

import static io.github.prospector.modmenu.util.TranslationUtil.hasTranslation;

Expand Down Expand Up @@ -69,6 +66,7 @@ public static Screen getConfigScreen( String modid, Screen menuScreen ) {
@Override
public void onInitializeClient() {
ModMenuConfigManager.initializeConfig();
Set<String> modpackMods = new HashSet<>();
Map<String, String> additionalParents = new HashMap<>();
// find all entrypoints
List<EntrypointContainer<ModMenuApiMarker>> entrypoints = FabricLoader.getInstance().getEntrypointContainers( "modmenu", ModMenuApiMarker.class );
Expand Down Expand Up @@ -97,6 +95,7 @@ public void onInitializeClient() {
ModMenuApi api = (com.terraformersmc.modmenu.api.ModMenuApi) marker;
configScreenFactories.put( modId, api.getModConfigScreenFactory() );
delayedScreenFactoryProviders.add( api.getProvidedConfigScreenFactories() );
api.attachModpackBadges( modpackMods::add );
} else if ( marker instanceof io.github.prospector.modmenu.api.ModMenuApi ) {
/* Legacy API */
io.github.prospector.modmenu.api.ModMenuApi api = (io.github.prospector.modmenu.api.ModMenuApi) entrypoint.getEntrypoint();
Expand All @@ -115,7 +114,7 @@ public void onInitializeClient() {
// fill mods map
for ( ModContainer modContainer : FabricLoader.getInstance().getAllMods() ) {
if ( !ModMenuConfig.HIDDEN_MODS.getValue().contains( modContainer.getMetadata().getId() ) ) {
Mod mod = new FabricMod( modContainer );
Mod mod = new FabricMod( modContainer, modpackMods );
MODS.put( mod.getId(), mod );
}
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/io/github/prospector/modmenu/api/Mod.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ final class Badge {
public static final Badge CLIENT = register( "modmenu.badge.clientsideOnly", 0xff2b4b7c, 0xff0e2a55, null );
public static final Badge DEPRECATED = register( "modmenu.badge.deprecated", 0xff841426, 0xff530C17, "deprecated" );
public static final Badge FORGE = register( "modmenu.badge.forge", 0xff1f2d42, 0xff101721, "forge" );
public static final Badge MODPACK = register( "modmenu.badge.modpack", 0xff7a2b7c, 0xff510d54, null );
public static final Badge MINECRAFT = register( "modmenu.badge.minecraft", 0xff6f6c6a, 0xff31302f, null );

private final Text text;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ private static boolean passesFilters( ModsScreen screen, Mod mod, String query )
String modSummary = mod.getSummary();

String library = new TranslatableText( "modmenu.searchTerms.library" ).toString();
String modpack = new TranslatableText( "modmenu.searchTerms.modpack" ).toString();
String deprecated = new TranslatableText( "modmenu.searchTerms.deprecated" ).toString();
String clientside = new TranslatableText( "modmenu.searchTerms.clientside" ).toString();
String configurable = new TranslatableText( "modmenu.searchTerms.configurable" ).toString();
Expand All @@ -42,6 +43,7 @@ private static boolean passesFilters( ModsScreen screen, Mod mod, String query )
|| modSummary.toLowerCase( Locale.ROOT ).contains( query ) // Search mod summary
|| authorMatches( mod, query ) // Search via author
|| library.contains( query ) && mod.getBadges().contains( Mod.Badge.LIBRARY ) // Search for lib mods
|| modpack.contains( query ) && mod.getBadges().contains( Mod.Badge.MODPACK ) // Search for modpack mods
|| deprecated.contains( query ) && mod.getBadges().contains( Mod.Badge.DEPRECATED ) // Search for deprecated mods
|| clientside.contains( query ) && mod.getBadges().contains( Mod.Badge.CLIENT ) // Search for clientside mods
|| configurable.contains( query ) && screen.getModHasConfigScreen().get( modId ) // Search for mods that can be configured
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,17 @@ public FabricDummyParentMod( FabricMod host, String id ) {
if ( id.equals( "fabric" ) || id.equals( "legacy-fabric-api" ) ) {
badges.add( Badge.LIBRARY );
}

boolean modpackChildren = true;
for ( Mod mod : ModMenu.PARENT_MAP.get( this ) ) {
if ( !mod.getBadges().contains( Badge.MODPACK ) ) {
modpackChildren = false;
}
}
if ( modpackChildren ) {
badges.add( Badge.MODPACK );
}

return badges;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public class FabricMod implements Mod {

private final Map<String, String> links = new HashMap<>();

public FabricMod( ModContainer modContainer ) {
public FabricMod( ModContainer modContainer, Set<String> modpackMods ) {
this.container = modContainer;
this.metadata = modContainer.getMetadata();

Expand Down Expand Up @@ -110,6 +110,9 @@ public FabricMod( ModContainer modContainer ) {
if ( "deprecated".equals( CustomValueUtil.getString( "fabric-api:module-lifecycle", metadata ).orElse( null ) ) ) {
badges.add( Badge.DEPRECATED );
}
if ( modpackMods.contains( getId() ) && !"builtin".equals( this.metadata.getType() ) ) {
badges.add( Badge.MODPACK );
}
if ( "minecraft".equals( getId() ) ) {
badges.add( Badge.MINECRAFT );
}
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/de_de.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@
"modmenu.showingMods.1": "Ein Mod angezeigt",
"modmenu.showingMods.n": "%s Mods angezeigt",
"modmenu.toggleFilterOptions": "Filteroptionen umschalten",
"modmenu.searchTerms.modpack": "Modpack Paket",
"modmenu.badge.deprecated": "Veraltet",
"modmenu.loaded.420.secret": "(%s geladen...brenn es)",
"modmenu.loaded.69.secret": "(%s geladen...nice)",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/de_de.lang
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ modmenu.showingLibraries.n=%s Bibliotheken angezeigt
modmenu.showingMods.1=Ein Mod angezeigt
modmenu.showingMods.n=%s Mods angezeigt
modmenu.toggleFilterOptions=Filteroptionen umschalten
modmenu.searchTerms.modpack=Modpack Paket
modmenu.badge.deprecated=Veraltet
modmenu.loaded.420.secret=(%s geladen...brenn es)
modmenu.loaded.69.secret=(%s geladen...nice)
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/assets/modmenu/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ modmenu.mods.420.secret= (%s Mods...blaze it)
modmenu.search=Search for mods
modmenu.searchTerms.library=api library
modmenu.searchTerms.patchwork=patchwork forge fml
modmenu.searchTerms.modpack=modpack pack
modmenu.searchTerms.deprecated=deprecated outdated old
modmenu.searchTerms.clientside=clientside gameside
modmenu.searchTerms.configurable=configurations configs configures configurable options
Expand All @@ -27,6 +28,7 @@ modmenu.badge.library=Library
modmenu.badge.clientsideOnly=Client
modmenu.badge.deprecated=Deprecated
modmenu.badge.forge=Forge
modmenu.badge.modpack=Modpack
modmenu.badge.minecraft=Minecraft
modmenu.modIdToolTip=Mod ID: %s
modmenu.authorPrefix=By %s
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/assets/modmenu/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"modmenu.search": "Search for mods",
"modmenu.searchTerms.library": "api library",
"modmenu.searchTerms.patchwork": "patchwork forge fml",
"modmenu.searchTerms.modpack": "modpack pack",
"modmenu.searchTerms.deprecated": "deprecated outdated old",
"modmenu.searchTerms.clientside": "clientside gameside",
"modmenu.searchTerms.configurable": "configurations configs configures configurable options",
Expand All @@ -32,6 +33,7 @@
"modmenu.badge.clientsideOnly": "Client",
"modmenu.badge.deprecated": "Deprecated",
"modmenu.badge.forge": "Forge",
"modmenu.badge.modpack": "Modpack",
"modmenu.badge.minecraft": "Minecraft",

"modmenu.dropInfo.line1": "Drag and drop files into",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/es_mx.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "Cliente",
"modmenu.badge.deprecated": "Obsoleta",
"modmenu.badge.library": "Librería",
"modmenu.badge.modpack": "Paquete de mods",
"modmenu.toggleFilterOptions": "Alternar opciones de filtros",
"modmenu.showingMods.n": "Mostrando %s mods",
"modmenu.showingMods.1": "Mostrando %s mod",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/es_mx.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=Buscar mods
modmenu.badge.clientsideOnly=Cliente
modmenu.badge.deprecated=Obsoleta
modmenu.badge.library=Librería
modmenu.badge.modpack=Paquete de mods
modmenu.toggleFilterOptions=Alternar opciones de filtros
modmenu.showingMods.n=Mostrando %s mods
modmenu.showingMods.1=Mostrando %s mod
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/assets/modmenu/lang/et_ee.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "Klient",
"modmenu.badge.deprecated": "Mittesoovitatav",
"modmenu.badge.library": "Teek",
"modmenu.badge.modpack": "Modipakk",
"modmenu.toggleFilterOptions": "Lülita filtreerimisvalikuid",
"modmenu.showingMods.n": "Kuvatakse %s modi",
"modmenu.showingLibraries.n": "Kuvatakse %s teeki",
Expand Down Expand Up @@ -80,6 +81,7 @@
"modmenu.loaded.69.secret": "(%s laaditud...lahe)",
"modmenu.wiki": "Viki",
"modmenu.searchTerms.library": "api library teek rakendusliides",
"modmenu.searchTerms.modpack": "modipakk pakk",
"modmenu.searchTerms.deprecated": "deprecated outdated old vananenud aegunud",
"modmenu.issues": "Veahaldus",
"modmenu.searchTerms.clientside": "clientside gameside mängupoolne kliendipoolne klient",
Expand Down
2 changes: 2 additions & 0 deletions src/main/resources/assets/modmenu/lang/et_ee.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=Otsi mode
modmenu.badge.clientsideOnly=Klient
modmenu.badge.deprecated=Mittesoovitatav
modmenu.badge.library=Teek
modmenu.badge.modpack=Modipakk
modmenu.toggleFilterOptions=Lülita filtreerimisvalikuid
modmenu.showingMods.n=Kuvatakse %s modi
modmenu.showingLibraries.n=Kuvatakse %s teeki
Expand Down Expand Up @@ -75,6 +76,7 @@ modmenu.loaded.69.secret=(%s laaditud...lahe)
modmenu.wiki=Viki
modmenu.searchTerms.library=api library teek rakendusliides
modmenu.searchTerms.deprecated=deprecated outdated old vananenud aegunud
modmenu.searchTerms.modpack=modipakk pakk
modmenu.issues=Veahaldus
modmenu.searchTerms.clientside=clientside gameside mängupoolne kliendipoolne klient
modmenu.github_releases=GitHubi väljalasked
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/it_it.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "Client",
"modmenu.badge.deprecated": "Deprecata",
"modmenu.badge.library": "Libreria",
"modmenu.badge.modpack": "Pacchetto di mod",
"modmenu.toggleFilterOptions": "Attiva/Disattiva le opzioni di filtraggio",
"modmenu.showingMods.n": "%s mod visualizzate",
"modmenu.showingMods.1": "%s mod visualizzata",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/it_it.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=Cerca tra le mod
modmenu.badge.clientsideOnly=Client
modmenu.badge.deprecated=Deprecata
modmenu.badge.library=Libreria
modmenu.badge.modpack=Pacchetto di mod
modmenu.toggleFilterOptions=Attiva/Disattiva le opzioni di filtraggio
modmenu.showingMods.n=%s mod visualizzate
modmenu.showingMods.1=%s mod visualizzata
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ja_jp.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"modmenu.search": "Modを検索",
"modmenu.badge.clientsideOnly": "クライアント",
"modmenu.badge.library": "前提mod",
"modmenu.badge.modpack": "モジュールパッケージ",
"modmenu.toggleFilterOptions": "フィルター設定の切り替え",
"modmenu.showingMods.n": "%s個のmodを表示中",
"option.modmenu.sorting": "表示順",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ja_jp.lang
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ modmenu.authorPrefix=制作: %s
modmenu.search=Modを検索
modmenu.badge.clientsideOnly=クライアント
modmenu.badge.library=前提mod
modmenu.badge.modpack=モジュールパッケージ
modmenu.toggleFilterOptions=フィルター設定の切り替え
modmenu.showingMods.n=%s個のmodを表示中
option.modmenu.sorting=表示順
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ko_kr.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "클라이언트",
"modmenu.badge.deprecated": "구식",
"modmenu.badge.library": "라이브러리",
"modmenu.badge.modpack": "モジュールパッケージ",
"modmenu.toggleFilterOptions": "필터 옵션 전환",
"modmenu.showingMods.n": "모드 %s개 표시",
"modmenu.showingMods.1": "모드 %s개 표시",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ko_kr.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=모드 검색
modmenu.badge.clientsideOnly=클라이언트
modmenu.badge.deprecated=구식
modmenu.badge.library=라이브러리
modmenu.badge.modpack=モジュールパッケージ
modmenu.toggleFilterOptions=필터 옵션 전환
modmenu.showingMods.n=모드 %s개 표시
modmenu.showingMods.1=모드 %s개 표시
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/lzh.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"modmenu.badge.clientsideOnly": "此計筭機",
"modmenu.badge.deprecated": "旣摒",
"modmenu.badge.library": "函式庫",
"modmenu.badge.modpack": "整合包",
"modmenu.toggleFilterOptions": "察",
"modmenu.showingMods.n": "旣示 %s 囊",
"modmenu.showingMods.1": "旣示 %s 囊",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/lzh.lang
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ modmenu.search=索
modmenu.badge.clientsideOnly=此計筭機
modmenu.badge.deprecated=旣摒
modmenu.badge.library=函式庫
modmenu.badge.modpack=整合包
modmenu.toggleFilterOptions=察
modmenu.showingMods.n=旣示 %s 囊
modmenu.showingMods.1=旣示 %s 囊
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/pl_pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "Klient",
"modmenu.badge.deprecated": "Porzucone",
"modmenu.badge.library": "Biblioteka",
"modmenu.badge.modpack": "Paczka modów",
"modmenu.toggleFilterOptions": "Zmień ustawienia filtrów",
"modmenu.showingMods.n": "Pokazuję %s modyfikacji",
"modmenu.showingMods.1": "Pokazuję %s modyfikację",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/pl_pl.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=Szukaj modyfikacji...
modmenu.badge.clientsideOnly=Klient
modmenu.badge.deprecated=Porzucone
modmenu.badge.library=Biblioteka
modmenu.badge.modpack=Paczka modów
modmenu.toggleFilterOptions=Zmień ustawienia filtrów
modmenu.showingMods.n=Pokazuję %s modyfikacji
modmenu.showingMods.1=Pokazuję %s modyfikację
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ru_ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "Клиент",
"modmenu.badge.deprecated": "Устарел",
"modmenu.badge.library": "Библиотека",
"modmenu.badge.modpack": "Сборка модов",
"modmenu.toggleFilterOptions": "Фильтры",
"modmenu.showingMods.n": "Показано %s модов",
"modmenu.showingMods.1": "Показан %s мод",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/ru_ru.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=Поиск модов
modmenu.badge.clientsideOnly=Клиент
modmenu.badge.deprecated=Устарел
modmenu.badge.library=Библиотека
modmenu.badge.modpack=Сборка модов
modmenu.toggleFilterOptions=Фильтры
modmenu.showingMods.n=Показано %s модов
modmenu.showingMods.1=Показан %s мод
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/tr_tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"modmenu.badge.library": "Kütüphane",
"modmenu.badge.clientsideOnly": "İstemci",
"modmenu.badge.deprecated": "Eskimiş",
"modmenu.badge.modpack": "Mod Paketi",
"modmenu.dropInfo.line1": "Modları eklemek için bu pencereye",
"modmenu.dropInfo.line2": "dosyaları sürükleyip bırakın",
"modmenu.dropConfirm": "Seçili mod veya modları mod dizinine kopyalamak istiyor musun?",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/tr_tr.lang
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ modmenu.showingModsLibraries.1.1=%s mod ve %s kütüphane gösteriliyor
modmenu.badge.library=Kütüphane
modmenu.badge.clientsideOnly=İstemci
modmenu.badge.deprecated=Eskimiş
modmenu.badge.modpack=Mod Paketi
modmenu.modIdToolTip=Mod kimliği: %s
modmenu.authorPrefix=%s tarafından geliştirildi
modmenu.config=Ayarları Düzenle
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/zh_cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"modmenu.badge.clientsideOnly": "客户端",
"modmenu.badge.deprecated": "已过时",
"modmenu.badge.library": "前置",
"modmenu.badge.modpack": "整合包",
"modmenu.toggleFilterOptions": "切换过滤选项",
"modmenu.showingMods.n": "当前显示%s个模组",
"modmenu.showingMods.1": "当前显示%s个模组",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/zh_cn.lang
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ modmenu.search=搜索模组
modmenu.badge.clientsideOnly=客户端
modmenu.badge.deprecated=已过时
modmenu.badge.library=前置
modmenu.badge.modpack=整合包
modmenu.toggleFilterOptions=切换过滤选项
modmenu.showingMods.n=当前显示%s个模组
modmenu.showingMods.1=当前显示%s个模组
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/zh_tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"modmenu.badge.clientsideOnly": "本機",
"modmenu.badge.deprecated": "已棄用",
"modmenu.badge.library": "函式庫",
"modmenu.badge.modpack": "模組包",
"modmenu.toggleFilterOptions": "檢視",
"modmenu.showingMods.n": "已顯示 %s 個模組",
"modmenu.showingMods.1": "已顯示 %s 個模組",
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/modmenu/lang/zh_tw.lang
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ modmenu.search=搜尋
modmenu.badge.clientsideOnly=本機
modmenu.badge.deprecated=已棄用
modmenu.badge.library=函式庫
modmenu.badge.modpack=模組包
modmenu.toggleFilterOptions=檢視
modmenu.showingMods.n=已顯示 %s 個模組
modmenu.showingMods.1=已顯示 %s 個模組
Expand Down
Loading