Skip to content

Commit a572f8d

Browse files
committed
preenchanted items
1 parent 0e5526b commit a572f8d

15 files changed

Lines changed: 52 additions & 49 deletions

src/main/java/de/dafuqs/spectrum/api/item/Preenchanted.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
package de.dafuqs.spectrum.api.item;
22

3-
import de.dafuqs.spectrum.SpectrumCommon;
4-
import net.minecraft.component.DataComponentTypes;
5-
import net.minecraft.component.type.ItemEnchantmentsComponent;
6-
import net.minecraft.enchantment.Enchantment;
3+
import de.dafuqs.spectrum.*;
4+
import net.minecraft.component.*;
5+
import net.minecraft.component.type.*;
6+
import net.minecraft.enchantment.*;
77
import net.minecraft.item.*;
8-
import net.minecraft.registry.RegistryKeys;
9-
import net.minecraft.registry.RegistryWrapper;
8+
import net.minecraft.registry.*;
109
import org.jetbrains.annotations.*;
1110

12-
public interface Preenchanted {
13-
14-
void addDefaultEnchantments(RegistryWrapper.Impl<Enchantment> impl, ItemEnchantmentsComponent.Builder builder);
11+
import java.util.*;
1512

16-
default ItemEnchantmentsComponent getDefaultEnchantments() {
17-
var builder = new ItemEnchantmentsComponent.Builder(ItemEnchantmentsComponent.DEFAULT);
18-
SpectrumCommon.getRegistryLookup()
19-
.flatMap(r -> r.getOptionalWrapper(RegistryKeys.ENCHANTMENT))
20-
.ifPresent(impl -> addDefaultEnchantments(impl, builder));
13+
public interface Preenchanted {
14+
15+
Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments();
16+
17+
default ItemEnchantmentsComponent buildDefaultEnchantments(RegistryWrapper.WrapperLookup lookup) {
18+
ItemEnchantmentsComponent.Builder builder = new ItemEnchantmentsComponent.Builder(ItemEnchantmentsComponent.DEFAULT);
19+
for (Map.Entry<RegistryKey<Enchantment>, Integer> entry : getDefaultEnchantments().entrySet()) {
20+
builder.set(lookup.getWrapperOrThrow(RegistryKeys.ENCHANTMENT).getOrThrow(entry.getKey()), entry.getValue());
21+
}
2122
return builder.build();
2223
}
2324

2425
default @NotNull ItemStack getDefaultEnchantedStack(Item item) {
25-
var stack = new ItemStack(item);
26-
SpectrumCommon.getRegistryLookup().ifPresent(
27-
r -> stack.set(DataComponentTypes.ENCHANTMENTS, getDefaultEnchantments()));
26+
ItemStack stack = item.getDefaultStack();
27+
SpectrumCommon.getRegistryLookup().ifPresent(r -> stack.set(DataComponentTypes.ENCHANTMENTS, buildDefaultEnchantments()));
2828
return stack;
2929
}
3030

src/main/java/de/dafuqs/spectrum/items/food/StatusEffectDrinkItem.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
package de.dafuqs.spectrum.items.food;
22

3-
import de.dafuqs.spectrum.items.trinkets.*;
43
import net.minecraft.advancement.criterion.*;
4+
import net.minecraft.component.*;
5+
import net.minecraft.component.type.*;
56
import net.minecraft.entity.*;
6-
import net.minecraft.entity.effect.*;
77
import net.minecraft.entity.player.*;
88
import net.minecraft.item.*;
9-
import net.minecraft.potion.*;
109
import net.minecraft.server.network.*;
1110
import net.minecraft.stat.*;
1211
import net.minecraft.world.*;
1312
import net.minecraft.world.event.*;
1413

15-
import java.util.*;
16-
1714
public class StatusEffectDrinkItem extends DrinkItem {
1815

1916
public StatusEffectDrinkItem(Settings settings) {
@@ -28,14 +25,14 @@ public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) {
2825
}
2926

3027
if (!world.isClient) {
31-
List<StatusEffectInstance> list = PotionUtil.getPotionEffects(stack);
32-
for (StatusEffectInstance statusEffectInstance : list) {
33-
if (statusEffectInstance.getEffectType().isInstant()) {
34-
statusEffectInstance.getEffectType().applyInstantEffect(playerEntity, playerEntity, user, statusEffectInstance.getAmplifier(), 1.0D);
28+
PotionContentsComponent potionContentsComponent = stack.getOrDefault(DataComponentTypes.POTION_CONTENTS, PotionContentsComponent.DEFAULT);
29+
potionContentsComponent.forEachEffect((effect) -> {
30+
if ((effect.getEffectType().value()).isInstant()) {
31+
(effect.getEffectType().value()).applyInstantEffect(playerEntity, playerEntity, user, effect.getAmplifier(), 1.0);
3532
} else {
36-
user.addStatusEffect(new StatusEffectInstance(statusEffectInstance));
33+
user.addStatusEffect(effect);
3734
}
38-
}
35+
});
3936
}
4037

4138
if (playerEntity != null) {

src/main/java/de/dafuqs/spectrum/items/magic_items/PaintbrushItem.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ private boolean tryColorBlock(ItemUsageContext context) {
130130
BlockPos pos = context.getBlockPos();
131131
BlockState state = world.getBlockState(pos);
132132
if (state.getBlock() instanceof ColorableBlock colorableBlock) {
133-
if (!colorableBlock.isColor(state, dyeColor)) {
133+
if (!colorableBlock.isColor(world, pos, dyeColor)) {
134134
if (payBlockColorCost(context.getPlayer(), inkColor.get()) && colorableBlock.color(world, pos, dyeColor)) {
135135
context.getWorld().playSound(null, context.getBlockPos(), SpectrumSoundEvents.PAINTBRUSH_PAINT, SoundCategory.BLOCKS, 1.0F, 1.0F);
136136
} else {

src/main/java/de/dafuqs/spectrum/items/tools/BedrockBowItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import de.dafuqs.spectrum.api.item.*;
55
import net.minecraft.enchantment.*;
66
import net.minecraft.item.*;
7+
import net.minecraft.registry.*;
78

89
import java.util.*;
910

@@ -19,7 +20,7 @@ public boolean isDamageable() {
1920
}
2021

2122
@Override
22-
public Map<Enchantment, Integer> getDefaultEnchantments() {
23+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
2324
return Map.of(Enchantments.POWER, 6);
2425
}
2526

src/main/java/de/dafuqs/spectrum/items/tools/BedrockCrossbowItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import de.dafuqs.spectrum.api.item.*;
55
import net.minecraft.enchantment.*;
66
import net.minecraft.item.*;
7+
import net.minecraft.registry.*;
78

89
import java.util.*;
910

@@ -19,7 +20,7 @@ public boolean isDamageable() {
1920
}
2021

2122
@Override
22-
public Map<Enchantment, Integer> getDefaultEnchantments() {
23+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
2324
return Map.of(Enchantments.QUICK_CHARGE, 4);
2425
}
2526

src/main/java/de/dafuqs/spectrum/items/tools/BedrockFishingRodItem.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,15 @@
33
import de.dafuqs.spectrum.api.item.*;
44
import de.dafuqs.spectrum.entity.entity.*;
55
import de.dafuqs.spectrum.registries.*;
6-
import net.minecraft.client.item.*;
76
import net.minecraft.enchantment.*;
87
import net.minecraft.entity.player.*;
98
import net.minecraft.fluid.*;
109
import net.minecraft.item.*;
11-
import net.minecraft.item.tooltip.TooltipType;
10+
import net.minecraft.item.tooltip.*;
11+
import net.minecraft.registry.*;
1212
import net.minecraft.text.*;
1313
import net.minecraft.util.*;
1414
import net.minecraft.world.*;
15-
import org.jetbrains.annotations.*;
1615

1716
import java.util.*;
1817

@@ -28,7 +27,7 @@ public boolean isDamageable() {
2827
}
2928

3029
@Override
31-
public Map<Enchantment, Integer> getDefaultEnchantments() {
30+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
3231
return Map.of(Enchantments.LUCK_OF_THE_SEA, 4);
3332
}
3433

src/main/java/de/dafuqs/spectrum/items/tools/BedrockShearsItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import de.dafuqs.spectrum.api.item.*;
44
import net.minecraft.enchantment.*;
55
import net.minecraft.item.*;
6+
import net.minecraft.registry.*;
67

78
import java.util.*;
89

@@ -19,7 +20,7 @@ public boolean isDamageable() {
1920
}
2021

2122
@Override
22-
public Map<Enchantment, Integer> getDefaultEnchantments() {
23+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
2324
return Map.of(Enchantments.EFFICIENCY, 6);
2425
}
2526

src/main/java/de/dafuqs/spectrum/items/tools/DraconicTwinswordItem.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import net.minecraft.entity.projectile.*;
1414
import net.minecraft.item.*;
1515
import net.minecraft.item.tooltip.*;
16+
import net.minecraft.registry.*;
1617
import net.minecraft.server.network.*;
1718
import net.minecraft.sound.*;
1819
import net.minecraft.text.*;
@@ -200,8 +201,8 @@ public static ItemStack findThrownStack(PlayerEntity player, UUID id) {
200201
}
201202

202203
@Override
203-
public Map<Enchantment, Integer> getDefaultEnchantments() {
204-
return Map.of(Enchantments.SWEEPING, 5);
204+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
205+
return Map.of(Enchantments.SWEEPING_EDGE, 5);
205206
}
206207

207208
@Override

src/main/java/de/dafuqs/spectrum/items/tools/DragonTalonItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import net.minecraft.item.*;
1717
import net.minecraft.item.tooltip.*;
1818
import net.minecraft.nbt.*;
19+
import net.minecraft.registry.*;
1920
import net.minecraft.server.network.*;
2021
import net.minecraft.server.world.*;
2122
import net.minecraft.sound.*;
@@ -213,7 +214,7 @@ public boolean acceptsEnchantment(Enchantment enchantment) {
213214
}
214215

215216
@Override
216-
public Map<Enchantment, Integer> getDefaultEnchantments() {
217+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
217218
return Map.of();
218219
}
219220

src/main/java/de/dafuqs/spectrum/items/tools/GreatswordItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.minecraft.entity.*;
88
import net.minecraft.entity.attribute.*;
99
import net.minecraft.item.*;
10+
import net.minecraft.registry.*;
1011

1112
import java.util.*;
1213

@@ -43,7 +44,7 @@ public Multimap<EntityAttribute, EntityAttributeModifier> getAttributeModifiers(
4344
}
4445

4546
@Override
46-
public Map<Enchantment, Integer> getDefaultEnchantments() {
47+
public Map<RegistryKey<Enchantment>, Integer> getDefaultEnchantments() {
4748
return Map.of(Enchantments.SWEEPING, 4);
4849
}
4950

0 commit comments

Comments
 (0)