9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-27 19:09:08 +00:00

添加外部配方原料支持

This commit is contained in:
XiaoMoMi
2025-07-14 21:58:26 +08:00
parent 211bcd3df2
commit 9cbd8cd39e
12 changed files with 68 additions and 8 deletions

View File

@@ -105,6 +105,7 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
@Override
public boolean registerExternalItemProvider(ExternalItemProvider<I> externalItemProvider) {
if (!ResourceLocation.isValidNamespace(externalItemProvider.plugin())) return false;
if (this.externalItemProviders.containsKey(externalItemProvider.plugin())) return false;
this.externalItemProviders.put(externalItemProvider.plugin(), externalItemProvider);
return true;
@@ -510,7 +511,7 @@ public abstract class AbstractItemManager<I> extends AbstractModelGenerator impl
Map<String, Object> data = MiscUtils.castToMap(obj, false);
String plugin = data.get("plugin").toString();
String id = data.get("id").toString();
ExternalItemProvider<I> provider = AbstractItemManager.this.getExternalItemProvider(plugin);
ExternalItemProvider<I> provider = AbstractItemManager.this.getExternalItemProvider(plugin.toLowerCase(Locale.ENGLISH));
return new ExternalModifier<>(id, Objects.requireNonNull(provider, "Item provider " + plugin + " not found"));
}, "external");
if (VersionHelper.isOrAbove1_20_5()) {

View File

@@ -217,6 +217,7 @@ public abstract class CraftEngine implements Plugin {
this.fontManager.delayedInit();
this.vanillaLootManager.delayedInit();
this.advancementManager.delayedInit();
this.compatibilityManager.onDelayedEnable();
// reload the plugin
try {
this.reloadPlugin(Runnable::run, Runnable::run, true);

View File

@@ -25,4 +25,18 @@ public final class StringUtils {
result[index] = s.substring(start);
return result;
}
public static String toLowerCase(String str) {
if (str == null) {
return null;
}
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if (c >= 'A' && c <= 'Z') {
chars[i] = (char) (c + 32);
}
}
return new String(chars);
}
}