Skip to content

Commit 26f8f86

Browse files
committed
Most of shears completed
1 parent 695aafe commit 26f8f86

23 files changed

Lines changed: 314 additions & 56 deletions

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

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import java.util.List;
3030

3131
import com.oroarmor.config.ConfigItemGroup;
32-
import com.oroarmor.config.command.ConfigCommand;
3332
import com.oroarmor.multi_item_lib.UniqueItemRegistry;
3433
import com.oroarmor.netherite_plus.advancement.criterion.NetheritePlusCriteria;
3534
import com.oroarmor.netherite_plus.config.NetheritePlusConfig;
@@ -40,15 +39,13 @@
4039
import com.oroarmor.netherite_plus.screen.NetheriteBeaconScreenHandler;
4140
import com.oroarmor.netherite_plus.screen.NetheritePlusScreenHandlers;
4241
import com.oroarmor.netherite_plus.stat.NetheritePlusStats;
43-
import me.shedaniel.architectury.event.events.CommandRegistrationEvent;
4442
import me.shedaniel.architectury.networking.NetworkManager;
4543
import me.shedaniel.architectury.registry.Registries;
4644
import org.apache.logging.log4j.Level;
4745
import org.apache.logging.log4j.LogManager;
4846
import org.apache.logging.log4j.Logger;
4947

5048
import net.minecraft.entity.player.PlayerEntity;
51-
import net.minecraft.server.command.CommandManager;
5249
import net.minecraft.util.Identifier;
5350
import net.minecraft.util.Lazy;
5451

@@ -104,17 +101,26 @@ public static Identifier id(String id) {
104101
}
105102

106103
public static void registerItemsWithMultiItemLib() {
107-
if (NetheritePlusConfig.ENABLED.ENABLED_SHIELDS.getValue())
104+
if (NetheritePlusConfig.ENABLED.ENABLED_SHIELDS.getValue()) {
108105
UniqueItemRegistry.SHIELD.addItemToRegistry(NETHERITE_SHIELD.get());
109-
if (NetheritePlusConfig.ENABLED.ENABLED_FISHING_ROD.getValue())
106+
}
107+
if (NetheritePlusConfig.ENABLED.ENABLED_FISHING_ROD.getValue()) {
110108
UniqueItemRegistry.FISHING_ROD.addItemToRegistry(NETHERITE_FISHING_ROD.get());
111-
if (NetheritePlusConfig.ENABLED.ENABLED_ELYTRA.getValue())
109+
}
110+
if (NetheritePlusConfig.ENABLED.ENABLED_ELYTRA.getValue()) {
112111
UniqueItemRegistry.ELYTRA.addItemToRegistry(NETHERITE_ELYTRA.get());
112+
}
113113
if (NetheritePlusConfig.ENABLED.ENABLED_BOWS_AND_CROSSBOWS.getValue()) {
114114
UniqueItemRegistry.BOW.addItemToRegistry(NETHERITE_BOW.get());
115115
UniqueItemRegistry.CROSSBOW.addItemToRegistry(NETHERITE_CROSSBOW.get());
116116
}
117-
if (NetheritePlusConfig.ENABLED.ENABLED_TRIDENT.getValue())
117+
if (NetheritePlusConfig.ENABLED.ENABLED_TRIDENT.getValue()) {
118118
UniqueItemRegistry.TRIDENT.addItemToRegistry(NETHERITE_TRIDENT.get());
119+
}
120+
if (NetheritePlusConfig.ENABLED.ENABLED_SHEARS.getValue()) {
121+
System.out.println(NETHERITE_SHEARS.get());
122+
UniqueItemRegistry.SHEARS.addItemToRegistry(NETHERITE_SHEARS.get());
123+
System.out.println(UniqueItemRegistry.SHEARS.isItemInRegistry(NETHERITE_SHEARS.get()));
124+
}
119125
}
120126
}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ public static class DURABILITIES extends ConfigItemGroup {
9292
public static final ConfigItem<Integer> FISHING_ROD_DURABILITY = new IntegerConfigItem("fishing_rod", 128, "config.netherite_plus.durabilities.fishing_rod");
9393
public static final ConfigItem<Integer> SHIELD_DURABILITY = new IntegerConfigItem("shield", 672, "config.netherite_plus.durabilities.shield");
9494
public static final ConfigItem<Integer> TRIDENT_DURABILITY = new IntegerConfigItem("trident", 500, "config.netherite_plus.durabilities.trident");
95-
public static final List<ConfigItem<?>> OPTIONS = ImmutableList.of(ELYTRA_DURABILITY, FISHING_ROD_DURABILITY, SHIELD_DURABILITY, BOW_DURABILITY, CROSSBOW_DURABILITY, TRIDENT_DURABILITY);
95+
public static final ConfigItem<Integer> SHEARS_DURABILITY = new IntegerConfigItem("shears", 476, "config.netherite_plus.durabilities.shears");
96+
public static final List<ConfigItem<?>> OPTIONS = ImmutableList.of(ELYTRA_DURABILITY, FISHING_ROD_DURABILITY, SHIELD_DURABILITY, BOW_DURABILITY, CROSSBOW_DURABILITY, TRIDENT_DURABILITY, SHEARS_DURABILITY);
9697

9798
public DURABILITIES() {
9899
super(OPTIONS, "durabilities");
@@ -111,8 +112,9 @@ public static class ENABLED extends ConfigItemGroup {
111112
public static final ConfigItem<Boolean> ENABLED_SHULKER_BOXES = new BooleanConfigItem("shulker_boxes", true, "config.netherite_plus.enabled.shulker_boxes");
112113
public static final ConfigItem<Boolean> ENABLED_TRIDENT = new BooleanConfigItem("trident", true, "config.netherite_plus.enabled.trident");
113114
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", true, "config.netherite_plus.enabled.shears");
114116

115-
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);
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);
116118

117119
public ENABLED() {
118120
super(OPTIONS, "enabled");

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import net.minecraft.item.BlockItem;
3737
import net.minecraft.item.Item;
3838
import net.minecraft.item.ItemGroup;
39+
import net.minecraft.item.ShearsItem;
3940
import net.minecraft.util.Identifier;
4041
import net.minecraft.util.Rarity;
4142
import net.minecraft.util.registry.Registry;
@@ -83,6 +84,8 @@ public final class NetheritePlusItems {
8384

8485
public static RegistrySupplier<Item> NETHERITE_ANVIL_ITEM;
8586

87+
public static RegistrySupplier<Item> NETHERITE_SHEARS;
88+
8689
private static RegistrySupplier<Item> register(RegistrySupplier<Block> block, Supplier<BlockItem> item) {
8790
return register(block.getId(), item::get);
8891
}
@@ -157,6 +160,9 @@ public static void init() {
157160
if (NetheritePlusConfig.ENABLED.ENABLED_BEACON.getValue()) {
158161
NETHERITE_BEACON = register(NetheritePlusBlocks.NETHERITE_BEACON, () -> new BlockItem(NetheritePlusBlocks.NETHERITE_BEACON.get(), new Item.Settings().maxCount(64).group(ItemGroup.MISC).fireproof()));
159162
}
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())));
165+
}
160166
}
161167

162168
private static void registerShield() {

fabric/build.gradle

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ repositories {
4444
includeGroup "curse.maven"
4545
}
4646
}
47+
maven {
48+
name = 'Ladysnake Mods'
49+
url = 'https://ladysnake.jfrog.io/artifactory/mods'
50+
}
4751
}
4852

4953
sourceCompatibility = JavaVersion.VERSION_1_8
@@ -58,8 +62,8 @@ def runAndCompile(List<String> mods, boolean run) {
5862
}
5963
if (run) {
6064
modRuntime (it) {
61-
exclude(module: "modmenu")
6265
exclude(module: "fabric-api")
66+
exclude(module: "modmenu")
6367
}
6468
}
6569
}
@@ -116,7 +120,9 @@ dependencies {
116120
runAndCompile([/*"net.kyrptonaught:quickshulker:${project.quickshulker}",*/
117121
"com.github.emilyploszaj:trinkets:${project.trinkets}",
118122
"com.misterpemodder:shulkerboxtooltip:${project.shulkerboxtooltip}+"+/*${project.minecraft_version}*/"1.16.4",
119-
], true)
123+
], false)
124+
125+
modRuntime "io.github.onyxstudios.Cardinal-Components-API:cardinal-components-entity:2.8.1"
120126

121127
// modCompileOnly "curse.maven:betterend-413596:3168267"
122128

forge/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ dependencies {
3737
exclude(module: "fabric-loader")
3838
}
3939

40-
modImplementation('com.oroarmor:oro-config-forge:3.1.0')
41-
modRuntime('com.oroarmor:oro-config-forge:3.1.0')
40+
modImplementation('com.oroarmor:oro-config-forge:3.0.0')
41+
modRuntime('com.oroarmor:oro-config-forge:3.0.0')
4242

4343
implementation(project(path: ":common")) {
4444
exclude(module: "fabric-loader")

forge/src/main/java/com/oroarmor/multi_item_lib/UniqueItemRegistry.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public final class UniqueItemRegistry {
3636
public static UniqueItemRegistry BOW = new UniqueItemRegistry(Items.BOW);
3737
public static UniqueItemRegistry CROSSBOW = new UniqueItemRegistry(Items.CROSSBOW);
3838
public static UniqueItemRegistry TRIDENT = new UniqueItemRegistry(Items.TRIDENT);
39+
public static UniqueItemRegistry SHEARS = new UniqueItemRegistry(Items.SHEARS);
3940

4041
private final List<Item> itemList;
4142

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* MIT License
3+
*
4+
* Copyright (c) 2021 OroArmor (Eli Orona)
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
package com.oroarmor.multi_item_lib.mixin;
26+
27+
import com.oroarmor.multi_item_lib.UniqueItemRegistry;
28+
import org.spongepowered.asm.mixin.Mixin;
29+
import org.spongepowered.asm.mixin.injection.At;
30+
import org.spongepowered.asm.mixin.injection.Redirect;
31+
32+
import net.minecraft.block.BeehiveBlock;
33+
import net.minecraft.item.Item;
34+
import net.minecraft.item.ItemStack;
35+
36+
@Mixin(BeehiveBlock.class)
37+
public class BeehiveBlockMixin {
38+
@Redirect(method = "onUse", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;", ordinal = 0))
39+
private Item onUse(ItemStack stack) {
40+
return UniqueItemRegistry.SHEARS.getDefaultItem(stack.getItem());
41+
}
42+
}

forge/src/main/java/com/oroarmor/multi_item_lib/mixin/CrossbowItemMixin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,9 @@
3535

3636
@Mixin(CrossbowItem.class)
3737
public class CrossbowItemMixin {
38-
@Redirect(method = "getSpeed", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
39-
private static Item tickMovement(ItemStack itemStack) {
40-
return UniqueItemRegistry.CROSSBOW.getDefaultItem(itemStack.getItem());
41-
}
38+
39+
@Redirect(method = "getSpeed", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
40+
private static Item tickMovement(ItemStack itemStack) {
41+
return UniqueItemRegistry.CROSSBOW.getDefaultItem(itemStack.getItem());
42+
}
4243
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* MIT License
3+
*
4+
* Copyright (c) 2021 OroArmor (Eli Orona)
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
package com.oroarmor.multi_item_lib.mixin;
26+
27+
import com.oroarmor.multi_item_lib.UniqueItemRegistry;
28+
import org.spongepowered.asm.mixin.Mixin;
29+
import org.spongepowered.asm.mixin.injection.At;
30+
import org.spongepowered.asm.mixin.injection.Redirect;
31+
32+
import net.minecraft.enchantment.EfficiencyEnchantment;
33+
import net.minecraft.item.Item;
34+
import net.minecraft.item.ItemStack;
35+
36+
@Mixin(EfficiencyEnchantment.class)
37+
public class EfficiencyEnchantmentMixin {
38+
@Redirect(method = "isAcceptableItem", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
39+
private Item isAcceptableItem(ItemStack stack) {
40+
return UniqueItemRegistry.SHEARS.getDefaultItem(stack.getItem());
41+
}
42+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* MIT License
3+
*
4+
* Copyright (c) 2021 OroArmor (Eli Orona)
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in all
14+
* copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
* SOFTWARE.
23+
*/
24+
25+
package com.oroarmor.multi_item_lib.mixin;
26+
27+
import com.oroarmor.multi_item_lib.UniqueItemRegistry;
28+
import org.spongepowered.asm.mixin.Mixin;
29+
import org.spongepowered.asm.mixin.injection.At;
30+
import org.spongepowered.asm.mixin.injection.Redirect;
31+
32+
import net.minecraft.entity.player.PlayerEntity;
33+
import net.minecraft.entity.projectile.FishingBobberEntity;
34+
import net.minecraft.item.Item;
35+
import net.minecraft.item.ItemStack;
36+
37+
@Mixin(FishingBobberEntity.class)
38+
public abstract class FishBobberEntityMixin {
39+
40+
@Redirect(method = "removeIfInvalid", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;getItem()Lnet/minecraft/item/Item;"))
41+
private Item replaceGetItem1(ItemStack itemStack, PlayerEntity playerEntity) {
42+
return UniqueItemRegistry.FISHING_ROD.getDefaultItem(itemStack.getItem());
43+
}
44+
}

0 commit comments

Comments
 (0)