Skip to content

Commit f3a33af

Browse files
committed
Finalize Netherite Shears
1 parent f37b9df commit f3a33af

8 files changed

Lines changed: 56 additions & 11 deletions

File tree

common/src/main/java/com/oroarmor/netherite_plus/NetheritePlusMod.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ public static void registerItemsWithMultiItemLib() {
117117
if (NetheritePlusConfig.ENABLED.ENABLED_TRIDENT.getValue()) {
118118
UniqueItemRegistry.TRIDENT.addItemToRegistry(NETHERITE_TRIDENT.get());
119119
}
120-
// if (NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue()) {
121-
// UniqueItemRegistry.SHEARS.addItemToRegistry(NETHERITE_SHEARS.get());
122-
// }
120+
if (NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue()) {
121+
UniqueItemRegistry.SHEARS.addItemToRegistry(NETHERITE_SHEARS.get());
122+
}
123123
}
124124
}

common/src/main/java/com/oroarmor/netherite_plus/config/NetheritePlusConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ public static class ENABLED extends ConfigItemGroup {
112112
public static final ConfigItem<Boolean> ENABLED_SHULKER_BOXES = new BooleanConfigItem("shulker_boxes", true, "config.netherite_plus.enabled.shulker_boxes");
113113
public static final ConfigItem<Boolean> ENABLED_TRIDENT = new BooleanConfigItem("trident", true, "config.netherite_plus.enabled.trident");
114114
public static final ConfigItem<Boolean> ENABLED_BEACON = new BooleanConfigItem("beacon", true, "config.netherite_plus.enabled.beacon");
115-
public static final ConfigItem<Boolean> ENABLED_SHEARS = new BooleanConfigItem("shears", false, "config.netherite_plus.enabled.shears");
115+
public static final ConfigItem<Boolean> ENABLED_SHEARS = new BooleanConfigItem("shears", true, "config.netherite_plus.enabled.shears");
116116

117-
public static final List<ConfigItem<?>> OPTIONS = ImmutableList.of(ENABLED_SHULKER_BOXES, ENABLED_ELYTRA, ENABLED_SHIELDS, ENABLED_BOWS_AND_CROSSBOWS, ENABLED_FISHING_ROD, ENABLED_HORSE_ARMOR, ENABLED_FAKE_NETHERITE_BLOCKS, ENABLED_ANVIL, ENABLED_CONFIG_PRINT, ENABLED_TRIDENT, ENABLED_BEACON/*, ENABLED_SHEARS*/);
117+
public static final List<ConfigItem<?>> OPTIONS = ImmutableList.of(ENABLED_SHULKER_BOXES, ENABLED_ELYTRA, ENABLED_SHIELDS, ENABLED_BOWS_AND_CROSSBOWS, ENABLED_FISHING_ROD, ENABLED_HORSE_ARMOR, ENABLED_FAKE_NETHERITE_BLOCKS, ENABLED_ANVIL, ENABLED_CONFIG_PRINT, ENABLED_TRIDENT, ENABLED_BEACON, ENABLED_SHEARS);
118118

119119
public ENABLED() {
120120
super(OPTIONS, "enabled");

common/src/main/java/com/oroarmor/netherite_plus/item/NetheritePlusItems.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,9 @@
3333
import me.shedaniel.architectury.registry.RegistrySupplier;
3434

3535
import net.minecraft.block.Block;
36-
import net.minecraft.item.BlockItem;
37-
import net.minecraft.item.Item;
38-
import net.minecraft.item.ItemGroup;
39-
import net.minecraft.item.ShearsItem;
36+
import net.minecraft.block.DispenserBlock;
37+
import net.minecraft.block.dispenser.ShearsDispenserBehavior;
38+
import net.minecraft.item.*;
4039
import net.minecraft.util.Identifier;
4140
import net.minecraft.util.Rarity;
4241
import net.minecraft.util.registry.Registry;
@@ -160,8 +159,13 @@ public static void init() {
160159
if (NetheritePlusConfig.ENABLED.ENABLED_BEACON.getValue()) {
161160
NETHERITE_BEACON = register(NetheritePlusBlocks.NETHERITE_BEACON, () -> new BlockItem(NetheritePlusBlocks.NETHERITE_BEACON.get(), new Item.Settings().maxCount(64).group(ItemGroup.MISC).fireproof()));
162161
}
163-
if(NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue()) {
164-
NETHERITE_SHEARS = register(id("netherite_shears"), () -> new ShearsItem(new Item.Settings().group(ItemGroup.TOOLS).fireproof().maxDamage(NetheritePlusConfig.DURABILITIES.SHEARS_DURABILITY.getValue())));
162+
163+
if (NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue()) {
164+
NETHERITE_SHEARS = register(id("netherite_shears"), () -> {
165+
ShearsItem shearsItem = new ShearsItem(new Item.Settings().group(ItemGroup.TOOLS).fireproof().maxDamage(NetheritePlusConfig.DURABILITIES.SHEARS_DURABILITY.getValue()));
166+
DispenserBlock.registerBehavior(shearsItem, new ShearsDispenserBehavior());
167+
return shearsItem;
168+
});
165169
}
166170
}
167171

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.oroarmor.netherite_plus.mixin;
2+
3+
import com.oroarmor.netherite_plus.config.NetheritePlusConfig;
4+
import com.oroarmor.netherite_plus.item.NetheritePlusItems;
5+
import org.jetbrains.annotations.Nullable;
6+
import org.spongepowered.asm.mixin.Final;
7+
import org.spongepowered.asm.mixin.Mixin;
8+
import org.spongepowered.asm.mixin.Shadow;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.ModifyVariable;
11+
12+
import net.minecraft.item.Item;
13+
import net.minecraft.item.ItemStack;
14+
import net.minecraft.item.Items;
15+
import net.minecraft.predicate.item.ItemPredicate;
16+
17+
@Mixin(ItemPredicate.class)
18+
public class ItemPredicateMixin {
19+
@Shadow
20+
@Final
21+
@Nullable
22+
private Item item;
23+
@ModifyVariable(method = "test", at = @At("HEAD"))
24+
public ItemStack letNetheriteShearsCountAsShears(ItemStack stack) {
25+
if(item != null && NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue() && stack.getItem() == NetheritePlusItems.NETHERITE_SHEARS.get()) {
26+
ItemStack itemStack = new ItemStack(Items.SHEARS);
27+
itemStack.setCount(stack.getCount());
28+
itemStack.setTag(stack.getOrCreateTag());
29+
return itemStack;
30+
}
31+
return stack;
32+
}
33+
}

common/src/main/resources/assets/netherite_plus/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"block.netherite_plus.netherite_anvil": "Netherite Anvil",
2626
"block.netherite_plus.netherite_beacon": "Netherite Beacon",
2727
"block.netherite_plus.netherite_beacon.tertiary": "Tertiary Power",
28+
"item.netherite_plus.netherite_shears": "Netherite Shears",
2829
"item.netherite_plus.netherite_shield": "Netherite Shield",
2930
"item.netherite_plus.netherite_shield.black": "Black Netherite Shield",
3031
"item.netherite_plus.netherite_shield.red": "Red Netherite Shield",
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"parent": "item/generated",
3+
"textures": {
4+
"layer0": "netherite_plus:item/netherite_shears"
5+
}
6+
}
347 Bytes
Loading

common/src/main/resources/netherite_plus.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
"mixins": [
77
"CauldronBlockMixin",
88
"CrossbowItemMixin",
9+
"ItemPredicateMixin",
910
"NetheriteShieldMixin",
1011
"PlayerEntityMixin",
1112
"ServerPlayNetworkHandlerMixin",

0 commit comments

Comments
 (0)