mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-19 15:09:25 +00:00
增强兼容
This commit is contained in:
@@ -78,7 +78,6 @@ public class AbstractItem<R, I> implements Item<I> {
|
||||
return factory.lore(item);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean unbreakable() {
|
||||
return factory.unbreakable(item);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user