mirror of
https://github.com/Xiao-MoMi/Custom-Crops.git
synced 2025-12-21 07:59:16 +00:00
增强兼容
This commit is contained in:
@@ -78,7 +78,6 @@ public class AbstractItem<R, I> implements Item<I> {
|
|||||||
return factory.lore(item);
|
return factory.lore(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean unbreakable() {
|
public boolean unbreakable() {
|
||||||
return factory.unbreakable(item);
|
return factory.unbreakable(item);
|
||||||
|
|||||||
@@ -13,10 +13,10 @@ jetbrains_annotations_version=24.0.0
|
|||||||
slf4j_version=2.0.16
|
slf4j_version=2.0.16
|
||||||
log4j_version=2.24.1
|
log4j_version=2.24.1
|
||||||
gson_version=2.11.0
|
gson_version=2.11.0
|
||||||
asm_version=9.7.1
|
asm_version=9.8
|
||||||
asm_commons_version=9.7.1
|
asm_commons_version=9.8
|
||||||
jar_relocator_version=1.7
|
jar_relocator_version=1.7
|
||||||
adventure_bundle_version=4.19.0
|
adventure_bundle_version=4.20.0
|
||||||
adventure_platform_version=4.3.4
|
adventure_platform_version=4.3.4
|
||||||
sparrow_heart_version=0.55
|
sparrow_heart_version=0.55
|
||||||
cloud_core_version=2.0.0
|
cloud_core_version=2.0.0
|
||||||
@@ -30,7 +30,7 @@ mojang_brigadier_version=1.0.18
|
|||||||
bstats_version=3.0.2
|
bstats_version=3.0.2
|
||||||
geantyref_version=1.3.16
|
geantyref_version=1.3.16
|
||||||
caffeine_version=3.1.8
|
caffeine_version=3.1.8
|
||||||
rtag_version=1.5.9
|
rtag_version=1.5.10
|
||||||
exp4j_version=0.4.8
|
exp4j_version=0.4.8
|
||||||
placeholder_api_version=2.11.6
|
placeholder_api_version=2.11.6
|
||||||
anti_grief_version=0.13
|
anti_grief_version=0.13
|
||||||
|
|||||||
@@ -45,9 +45,12 @@ public abstract class BukkitItemFactory extends ItemFactory<CustomCropsPlugin, R
|
|||||||
return new UniversalItemFactory(plugin);
|
return new UniversalItemFactory(plugin);
|
||||||
}
|
}
|
||||||
case "1.20.5", "1.20.6",
|
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);
|
return new ComponentItemFactory(plugin);
|
||||||
}
|
}
|
||||||
|
case "1.21.5" -> {
|
||||||
|
return new ComponentItemFactory1_21_5(plugin);
|
||||||
|
}
|
||||||
default -> throw new IllegalStateException("Unsupported server version: " + plugin.getServerVersion());
|
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