Add custom StaliniumSwordItem with strength buff effect
This commit is contained in:
@@ -22,7 +22,7 @@ public class ModItems {
|
|||||||
() -> new Item(new Item.Properties().jukeboxPlayable(ModSounds.SOVIET_ANTHEM_KEY).stacksTo(1)));
|
() -> new Item(new Item.Properties().jukeboxPlayable(ModSounds.SOVIET_ANTHEM_KEY).stacksTo(1)));
|
||||||
|
|
||||||
public static final DeferredItem<SwordItem> STALINIUM_SWORD = ITEMS.register("stalinium_sword",
|
public static final DeferredItem<SwordItem> STALINIUM_SWORD = ITEMS.register("stalinium_sword",
|
||||||
() -> new SwordItem(ModTiers.STALINIUM, new Item.Properties()
|
() -> new StaliniumSwordItem(ModTiers.STALINIUM, new Item.Properties()
|
||||||
.attributes(SwordItem.createAttributes(ModTiers.STALINIUM, 8, -2.75f))));
|
.attributes(SwordItem.createAttributes(ModTiers.STALINIUM, 8, -2.75f))));
|
||||||
|
|
||||||
public static void register(IEventBus eventBus) {
|
public static void register(IEventBus eventBus) {
|
||||||
|
|||||||
@@ -1,11 +1,8 @@
|
|||||||
package net.krituximon.stalinium.item;
|
package net.krituximon.stalinium.item;
|
||||||
|
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tags.TagKey;
|
|
||||||
import net.minecraft.world.item.Tier;
|
import net.minecraft.world.item.Tier;
|
||||||
import net.minecraft.world.item.component.Tool;
|
|
||||||
import net.minecraft.world.item.crafting.Ingredient;
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
import net.minecraft.world.level.block.Block;
|
|
||||||
import net.neoforged.neoforge.common.SimpleTier;
|
import net.neoforged.neoforge.common.SimpleTier;
|
||||||
|
|
||||||
public class ModTiers {
|
public class ModTiers {
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package net.krituximon.stalinium.item;
|
||||||
|
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.item.SwordItem;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Tier;
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class StaliniumSwordItem extends SwordItem {
|
||||||
|
public StaliniumSwordItem(Tier tier, Properties props) {
|
||||||
|
super(tier, props);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) {
|
||||||
|
boolean result = super.hurtEnemy(stack, target, attacker);
|
||||||
|
if (!attacker.getCommandSenderWorld().isClientSide) {
|
||||||
|
MobEffectInstance strength = new MobEffectInstance(MobEffects.DAMAGE_BOOST, 100, 0, false, true);
|
||||||
|
attacker.addEffect(strength);
|
||||||
|
Level world = attacker.getCommandSenderWorld();
|
||||||
|
var box = attacker.getBoundingBox().inflate(5.0);
|
||||||
|
List<Player> nearby = world.getEntitiesOfClass(Player.class, box, p -> p instanceof ServerPlayer);
|
||||||
|
for (Player p : nearby) {
|
||||||
|
p.addEffect(strength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user