Skip to content

Commit c50c4f2

Browse files
committed
Fix crash
1 parent 7fd8b86 commit c50c4f2

File tree

2 files changed

+10
-23
lines changed

2 files changed

+10
-23
lines changed

src/main/java/net/modfest/scatteredshards/command/ItemCommand.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,21 @@
1111
import net.minecraft.text.Text;
1212
import net.minecraft.util.Identifier;
1313
import net.modfest.scatteredshards.ScatteredShards;
14+
import net.modfest.scatteredshards.api.ScatteredShardsAPI;
15+
import net.modfest.scatteredshards.api.ShardLibrary;
16+
import net.modfest.scatteredshards.api.shard.Shard;
1417
import net.modfest.scatteredshards.item.ShardItem;
1518

1619
public class ItemCommand {
1720

1821
public static int item(CommandContext<ServerCommandSource> ctx) throws CommandSyntaxException {
1922
ServerPlayerEntity player = ctx.getSource().getPlayerOrThrow();
2023
Identifier shardId = ctx.getArgument("shard_id", Identifier.class);
24+
ShardLibrary library = ScatteredShardsAPI.getServerLibrary();
2125

22-
ItemStack stack = ShardItem.createShardItem(shardId);
26+
var name = library.shards().get(shardId).map(Shard::name).orElse(null);
27+
28+
ItemStack stack = ShardItem.createShardItem(shardId, name);
2329

2430
player.getInventory().offerOrDrop(stack);
2531

src/main/java/net/modfest/scatteredshards/item/ShardItem.java

+3-22
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package net.modfest.scatteredshards.item;
22

3+
import net.minecraft.component.DataComponentTypes;
34
import net.minecraft.entity.Entity;
4-
import net.minecraft.entity.player.PlayerEntity;
55
import net.minecraft.item.Item;
66
import net.minecraft.item.ItemStack;
77
import net.minecraft.item.tooltip.TooltipType;
88
import net.minecraft.server.network.ServerPlayerEntity;
99
import net.minecraft.text.Style;
1010
import net.minecraft.text.Text;
1111
import net.minecraft.util.Formatting;
12-
import net.minecraft.util.Hand;
1312
import net.minecraft.util.Identifier;
14-
import net.minecraft.util.TypedActionResult;
1513
import net.minecraft.world.World;
1614
import net.modfest.scatteredshards.ScatteredShardsContent;
1715
import net.modfest.scatteredshards.api.ScatteredShardsAPI;
@@ -33,9 +31,10 @@ public ShardItem(Settings settings) {
3331
*
3432
* @return the shard item
3533
*/
36-
public static ItemStack createShardItem(Identifier shardId) {
34+
public static ItemStack createShardItem(Identifier shardId, Text name) {
3735
ItemStack stack = new ItemStack(ScatteredShardsContent.SHARD_ITEM);
3836
stack.set(ScatteredShardsContent.SHARD_ID_COMPONENT, shardId);
37+
stack.set(DataComponentTypes.ITEM_NAME, name);
3938

4039
return stack;
4140
}
@@ -76,22 +75,4 @@ public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> to
7675
tooltip.add(shardTypeDesc);
7776
tooltip.add(Text.translatable("item.scattered_shards.shard_item.description").formatted(Formatting.GRAY));
7877
}
79-
80-
@Override
81-
public Text getName(ItemStack stack) {
82-
Identifier id = stack.get(ScatteredShardsContent.SHARD_ID_COMPONENT);
83-
84-
if (id == null) {
85-
return getName();
86-
}
87-
88-
ShardLibrary library = ScatteredShardsAPI.getClientLibrary();
89-
Optional<Shard> shard = library.shards().get(id);
90-
91-
if (shard.isEmpty()) {
92-
return getName();
93-
}
94-
95-
return shard.get().name();
96-
}
9778
}

0 commit comments

Comments
 (0)