9
0
mirror of https://github.com/Xiao-MoMi/Custom-Crops.git synced 2025-12-19 15:09:25 +00:00

增强兼容

This commit is contained in:
XiaoMoMi
2025-04-14 16:54:08 +08:00
parent 0b75361edd
commit b6e1606d8e
4 changed files with 60 additions and 6 deletions

View File

@@ -78,7 +78,6 @@ public class AbstractItem<R, I> implements Item<I> {
return factory.lore(item);
}
@Override
public boolean unbreakable() {
return factory.unbreakable(item);

View File

@@ -13,10 +13,10 @@ jetbrains_annotations_version=24.0.0
slf4j_version=2.0.16
log4j_version=2.24.1
gson_version=2.11.0
asm_version=9.7.1
asm_commons_version=9.7.1
asm_version=9.8
asm_commons_version=9.8
jar_relocator_version=1.7
adventure_bundle_version=4.19.0
adventure_bundle_version=4.20.0
adventure_platform_version=4.3.4
sparrow_heart_version=0.55
cloud_core_version=2.0.0
@@ -30,7 +30,7 @@ mojang_brigadier_version=1.0.18
bstats_version=3.0.2
geantyref_version=1.3.16
caffeine_version=3.1.8
rtag_version=1.5.9
rtag_version=1.5.10
exp4j_version=0.4.8
placeholder_api_version=2.11.6
anti_grief_version=0.13

View File

@@ -45,9 +45,12 @@ public abstract class BukkitItemFactory extends ItemFactory<CustomCropsPlugin, R
return new UniversalItemFactory(plugin);
}
case "1.20.5", "1.20.6",
"1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4", "1.21.5" -> {
"1.21", "1.21.1", "1.21.2", "1.21.3", "1.21.4" -> {
return new ComponentItemFactory(plugin);
}
case "1.21.5" -> {
return new ComponentItemFactory1_21_5(plugin);
}
default -> throw new IllegalStateException("Unsupported server version: " + plugin.getServerVersion());
}
}

View File

@@ -0,0 +1,52 @@
package net.momirealms.customcrops.bukkit.item;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.saicone.rtag.RtagItem;
import com.saicone.rtag.data.ComponentType;
import com.saicone.rtag.tag.TagList;
import com.saicone.rtag.util.ChatComponent;
import net.momirealms.customcrops.common.helper.GsonHelper;
import net.momirealms.customcrops.common.item.ComponentKeys;
import net.momirealms.customcrops.common.plugin.CustomCropsPlugin;
import net.momirealms.sparrow.heart.SparrowHeart;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@SuppressWarnings("UnstableApiUsage")
public class ComponentItemFactory1_21_5 extends ComponentItemFactory {
public ComponentItemFactory1_21_5(CustomCropsPlugin plugin) {
super(plugin);
}
@Override
protected Optional<List<String>> lore(RtagItem item) {
if (!item.hasComponent(ComponentKeys.LORE)) return Optional.empty();
return ComponentType.encodeJson(
ComponentKeys.LORE,
item.getComponent(ComponentKeys.LORE)
).map(list -> {
List<String> lore = new ArrayList<>();
for (JsonElement jsonElement : (JsonArray) list) {
lore.add(GsonHelper.get().toJson(jsonElement));
}
return lore;
});
}
@Override
protected void lore(RtagItem item, List<String> lore) {
if (lore == null || lore.isEmpty()) {
item.removeComponent(ComponentKeys.LORE);
} else {
List<Object> loreTags = new ArrayList<>();
for (String json : lore) {
loreTags.add(ChatComponent.toTag(SparrowHeart.getInstance().getMinecraftComponent(json)));
}
item.setComponent(ComponentKeys.LORE, TagList.newTag(loreTags));
}
}
}