Skip to content

Commit f0ab985

Browse files
committed
Bug fixes.
1 parent b3b0cb8 commit f0ab985

File tree

6 files changed

+68
-16
lines changed

6 files changed

+68
-16
lines changed

api/src/main/java/kr/toxicity/libraries/datacomponent/api/Codec.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ public interface Codec<T> {
1616
@NotNull
1717
T decode(@NotNull JsonElement t) throws IllegalStateException;
1818

19-
Codec<Integer> INTEGER = of(Integer.TYPE, JsonPrimitive::new, JsonElement::getAsInt);
20-
Codec<String> STRING = of(String.class, JsonPrimitive::new, JsonElement::getAsString);
21-
Codec<Boolean> BOOL = of(Boolean.TYPE, JsonPrimitive::new, JsonElement::getAsBoolean);
19+
Codec<Integer> INTEGER = of(JsonPrimitive::new, JsonElement::getAsInt);
20+
Codec<String> STRING = of(JsonPrimitive::new, JsonElement::getAsString);
21+
Codec<Boolean> BOOL = of(JsonPrimitive::new, JsonElement::getAsBoolean);
2222

23-
static <T> @NotNull Codec<T> of(@NotNull Class<T> tClass, @NotNull Function<T, JsonElement> encoder, @NotNull Function<JsonElement, T> decoder) {
23+
static <T> @NotNull Codec<T> of(@NotNull Function<T, JsonElement> encoder, @NotNull Function<JsonElement, T> decoder) {
2424
return new Codec<>() {
2525
@Override
2626
public @NotNull JsonElement encode(@NotNull T t) throws IllegalStateException {

api/src/main/java/kr/toxicity/libraries/datacomponent/api/DataComponentType.java

+44
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,56 @@
11
package kr.toxicity.libraries.datacomponent.api;
22

33
import com.google.gson.JsonElement;
4+
import net.kyori.adventure.text.Component;
45
import org.jetbrains.annotations.NotNull;
56
import org.jetbrains.annotations.Nullable;
7+
import kr.toxicity.libraries.datacomponent.api.wrapper.*;
68

9+
import java.util.List;
10+
import java.util.function.Supplier;
11+
12+
import static kr.toxicity.libraries.datacomponent.api.NMS.nms;
13+
14+
@SuppressWarnings("unused")
715
public interface DataComponentType<T> {
16+
17+
Supplier<DataComponentType<Integer>> MAX_STACK_SIZE = () -> nms().maxStackSize();
18+
Supplier<DataComponentType<Integer>> MAX_DAMAGE = () -> nms().maxDamage();
19+
Supplier<DataComponentType<Integer>> DAMAGE = () -> nms().damage();
20+
Supplier<DataComponentType<Component>> CUSTOM_NAME = () -> nms().customName();
21+
Supplier<DataComponentType<Component>> ITEM_NAME = () -> nms().itemName();
22+
Supplier<DataComponentType<ItemLore>> LORE = () -> nms().lore();
23+
Supplier<DataComponentType<Rarity>> RARITY = () -> nms().rarity();
24+
Supplier<DataComponentType<AdventureModePredicate>> CAN_PLACE_ON = () -> nms().canPlaceOn();
25+
Supplier<DataComponentType<AdventureModePredicate>> CAN_BREAK = () -> nms().canBreak();
26+
Supplier<DataComponentType<CustomModelData>> CUSTOM_MODEL_DATA = () -> nms().customModelData();
27+
Supplier<DataComponentType<Integer>> REPAIR_COST = () -> nms().repairCost();
28+
Supplier<DataComponentType<Unit>> CREATIVE_SLOT_LOCK = () -> nms().creativeSlotLock();
29+
Supplier<DataComponentType<Boolean>> ENCHANTMENT_GLINT_OVERRIDE = () -> nms().enchantmentGlintOverride();
30+
Supplier<DataComponentType<Unit>> INTANGIBLE_PROJECTILE = () -> nms().intangibleProjectile();
31+
Supplier<DataComponentType<FoodProperties>> FOOD = () -> nms().food();
32+
Supplier<DataComponentType<Unit>> FIRE_RESISTANT = () -> nms().fireResistant();
33+
Supplier<DataComponentType<Tool>> TOOL = () -> nms().tool();
34+
Supplier<DataComponentType<DyedItemColor>> DYED_COLOR = () -> nms().dyedColor();
35+
Supplier<DataComponentType<MapItemColor>> MAP_COLOR = () -> nms().mapColor();
36+
Supplier<DataComponentType<MapId>> MAP_ID = () -> nms().mapId();
37+
Supplier<DataComponentType<BundleContents>> BUNDLE_CONTENTS = () -> nms().bundleContents();
38+
Supplier<DataComponentType<PotionContents>> POTION_CONTENTS = () -> nms().potionContents();
39+
Supplier<DataComponentType<SuspiciousStewEffects>> SUSPICIOUS_STEW_EFFECTS = () -> nms().suspiciousStewEffects();
40+
Supplier<DataComponentType<WritableBookContent>> WRITABLE_BOOK_CONTENT = () -> nms().writableBookContent();
41+
Supplier<DataComponentType<WrittenBookContent>> WRITTEN_BOOK_CONTENT = () -> nms().writtenBookContent();
42+
Supplier<DataComponentType<ArmorTrim>> TRIM = () -> nms().trim();
43+
Supplier<DataComponentType<BlockItemStateProperties>> BLOCK_STATE = () -> nms().blockState();
44+
Supplier<DataComponentType<CustomData>> ENTITY_DATA = () -> nms().entityData();
45+
Supplier<DataComponentType<CustomData>> BUCKET_ENTITY_DATA = () -> nms().bucketEntityData();
46+
Supplier<DataComponentType<CustomData>> BLOCK_ENTITY_DATA = () -> nms().blockEntityData();
47+
Supplier<DataComponentType<Integer>> OMINOUS_BOTTLE_AMPLIFIER = () -> nms().ominousBottleAmplifier();
48+
Supplier<DataComponentType<List<String>>> RECIPES = () -> nms().recipes();
49+
850
static Registry<? extends DataComponentType<?>> registry() {
951
return NMS.nms().componentRegistry();
1052
}
53+
1154
@NotNull String key();
1255
@NotNull Codec<T> codec();
1356

@@ -16,4 +59,5 @@ static Registry<? extends DataComponentType<?>> registry() {
1659

1760
@Nullable T setToJson(@NotNull ItemAdapter adapter, @Nullable JsonElement element);
1861
@Nullable JsonElement getToJson(@NotNull ItemAdapter adapter);
62+
1963
}

api/src/main/java/kr/toxicity/libraries/datacomponent/api/ItemAdapter.java

+14
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import org.jetbrains.annotations.NotNull;
77
import org.jetbrains.annotations.Nullable;
88

9+
import java.util.function.Supplier;
10+
911
@SuppressWarnings("unused")
1012
public interface ItemAdapter {
1113
@NotNull
@@ -17,13 +19,25 @@ default <T> void set(@NotNull DataComponentType<T> type, @Nullable T t) {
1719
default <T> T get(@NotNull DataComponentType<T> type) {
1820
return type.get(this);
1921
}
22+
default <T> void set(@NotNull Supplier<DataComponentType<T>> type, @Nullable T t) {
23+
set(type.get(), t);
24+
}
25+
default <T> T get(@NotNull Supplier<DataComponentType<T>> type) {
26+
return get(type.get());
27+
}
2028

2129
default void setToJson(@NotNull DataComponentType<?> type, @Nullable JsonElement element) {
2230
type.setToJson(this, element);
2331
}
2432
default JsonElement getToJson(@NotNull DataComponentType<?> type) {
2533
return type.getToJson(this);
2634
}
35+
default void setToJson(@NotNull Supplier<DataComponentType<?>> type, @Nullable JsonElement element) {
36+
setToJson(type.get(), element);
37+
}
38+
default JsonElement getToJson(@NotNull Supplier<DataComponentType<?>> type) {
39+
return getToJson(type.get());
40+
}
2741

2842
default void deserialize(@NotNull JsonObject object) {
2943
DataComponentAPI.api().deserializer().deserialize(object).set(this);

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ allprojects {
1111
apply(plugin = "java")
1212

1313
group = "kr.toxicity.libraries.datacomponent"
14-
version = "1.0.9"
14+
version = "1.0.10"
1515

1616
repositories {
1717
mavenCentral()

nms/v1_20_R4/src/main/java/kr/toxicity/libraries/datacomponent/nms/v1_20_R4/DataComponentTypeImpl.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -208,13 +208,13 @@ final class DataComponentTypeImpl<T, R> implements kr.toxicity.libraries.datacom
208208
);
209209
static final DataComponentTypeImpl<CustomData, net.minecraft.world.item.component.CustomData> BUCKET_ENTITY_DATA = register(
210210
"bucket_entity_data",
211-
DataComponents.ENTITY_DATA,
211+
DataComponents.BUCKET_ENTITY_DATA,
212212
Converters.CUSTOM_DATA,
213213
CodecImpl.CUSTOM_DATA
214214
);
215215
static final DataComponentTypeImpl<CustomData, net.minecraft.world.item.component.CustomData> BLOCK_ENTITY_DATA = register(
216216
"block_entity_data",
217-
DataComponents.ENTITY_DATA,
217+
DataComponents.BLOCK_ENTITY_DATA,
218218
Converters.CUSTOM_DATA,
219219
CodecImpl.CUSTOM_DATA
220220
);

test-plugin/shade/src/main/java/kr/toxicity/test/TestPlugin.java

+3-9
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,21 @@
55
import kr.toxicity.libraries.datacomponent.api.DataComponentAPI;
66
import kr.toxicity.libraries.datacomponent.api.DataComponentType;
77
import kr.toxicity.libraries.datacomponent.api.NMS;
8-
import kr.toxicity.libraries.datacomponent.api.wrapper.CompoundTag;
9-
import kr.toxicity.libraries.datacomponent.api.wrapper.CustomData;
108
import kr.toxicity.libraries.datacomponent.api.wrapper.Rarity;
11-
import kr.toxicity.libraries.datacomponent.api.wrapper.Tag;
129
import net.kyori.adventure.text.Component;
1310
import org.bukkit.Material;
1411
import org.bukkit.inventory.ItemStack;
1512
import org.bukkit.plugin.java.JavaPlugin;
1613

17-
import java.util.HashMap;
18-
import java.util.List;
19-
2014
public class TestPlugin extends JavaPlugin {
2115
@Override
2216
public void onEnable() {
2317
DataComponentAPIBukkit.load();
2418

2519
var apply = DataComponentAPI.api().adapter(new ItemStack(Material.DIAMOND_SWORD));
26-
apply.set(NMS.nms().damage(), 3);
27-
apply.set(NMS.nms().repairCost(), 20);
28-
apply.set(NMS.nms().rarity(), Rarity.EPIC);
20+
apply.set(DataComponentType.DAMAGE, 3);
21+
apply.set(DataComponentType.REPAIR_COST, 20);
22+
apply.set(DataComponentType.RARITY, Rarity.EPIC);
2923
getLogger().info(apply.serialize().toString());
3024

3125
// Serialization.

0 commit comments

Comments
 (0)