From da36b62cc8fb6295608ae93b0aac18236073a1d0 Mon Sep 17 00:00:00 2001 From: Sunskimmer822 <92886026+Sunskimmer822@users.noreply.github.com> Date: Thu, 24 Feb 2022 11:32:28 -0800 Subject: [PATCH] make lean effect --- .../net/serenas/shitmod/ExpStatusEffect.java | 29 ++++++++++++++ src/main/java/net/serenas/shitmod/Lean.java | 2 +- .../net/serenas/shitmod/LeanStatusEffect.java | 39 +++++++++++++++++++ .../java/net/serenas/shitmod/Shitmod.java | 18 +++++++++ .../resources/assets/shitmod/lang/en_us.json | 4 +- 5 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 src/main/java/net/serenas/shitmod/ExpStatusEffect.java create mode 100644 src/main/java/net/serenas/shitmod/LeanStatusEffect.java diff --git a/src/main/java/net/serenas/shitmod/ExpStatusEffect.java b/src/main/java/net/serenas/shitmod/ExpStatusEffect.java new file mode 100644 index 0000000..930772d --- /dev/null +++ b/src/main/java/net/serenas/shitmod/ExpStatusEffect.java @@ -0,0 +1,29 @@ +package net.serenas.shitmod; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffect; +import net.minecraft.entity.effect.StatusEffectCategory; +import net.minecraft.entity.player.PlayerEntity; + +public class ExpStatusEffect extends StatusEffect { + public ExpStatusEffect() { + super( + StatusEffectCategory.BENEFICIAL, // whether beneficial or harmful for entities + 0x98D982); // color in RGB + } + + // This method is called every tick to check whether it should apply the status effect or not + @Override + public boolean canApplyUpdateEffect(int duration, int amplifier) { + // In our case, we just make it return true so that it applies the status effect every tick. + return true; + } + + // This method is called when it applies the status effect. We implement custom functionality here. + @Override + public void applyUpdateEffect(LivingEntity entity, int amplifier) { + if (entity instanceof PlayerEntity) { + ((PlayerEntity) entity).addExperience(3 << amplifier); // Higher amplifier gives you EXP faster + } + } + } \ No newline at end of file diff --git a/src/main/java/net/serenas/shitmod/Lean.java b/src/main/java/net/serenas/shitmod/Lean.java index 52d464e..d681181 100644 --- a/src/main/java/net/serenas/shitmod/Lean.java +++ b/src/main/java/net/serenas/shitmod/Lean.java @@ -6,7 +6,7 @@ public class Lean extends Item{ public Lean(Settings settings) { super(settings); - //TODO Auto-generated constructor stub + } } diff --git a/src/main/java/net/serenas/shitmod/LeanStatusEffect.java b/src/main/java/net/serenas/shitmod/LeanStatusEffect.java new file mode 100644 index 0000000..0474c10 --- /dev/null +++ b/src/main/java/net/serenas/shitmod/LeanStatusEffect.java @@ -0,0 +1,39 @@ +package net.serenas.shitmod; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffect; +import net.minecraft.entity.effect.StatusEffectCategory; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.player.PlayerEntity; + +public class LeanStatusEffect extends StatusEffect{ + public LeanStatusEffect() { + super( + StatusEffectCategory.HARMFUL, // whether beneficial or harmful for entities + 0x98D982); // color in RGB + } + + // This method is called every tick to check whether it should apply the status effect or not + @Override + public boolean canApplyUpdateEffect(int duration, int amplifier) { + // In our case, we just make it return true so that it applies the status effect every tick. + return true; + } + + // This method is called when it applies the status effect. We implement custom functionality here. + @Override + public void applyUpdateEffect(LivingEntity entity, int amplifier) { + if (entity instanceof PlayerEntity) { + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.WEAKNESS)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.BLINDNESS)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.SLOWNESS)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.POISON)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.NAUSEA)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.GLOWING)); + ((PlayerEntity) entity).addStatusEffect(new StatusEffectInstance(StatusEffects.MINING_FATIGUE)); + } + } +} + + diff --git a/src/main/java/net/serenas/shitmod/Shitmod.java b/src/main/java/net/serenas/shitmod/Shitmod.java index caccb73..ac18aba 100644 --- a/src/main/java/net/serenas/shitmod/Shitmod.java +++ b/src/main/java/net/serenas/shitmod/Shitmod.java @@ -5,11 +5,13 @@ import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.kyrptonaught.customportalapi.api.CustomPortalBuilder; import net.minecraft.block.Block; import net.minecraft.block.Blocks; +import net.minecraft.entity.effect.StatusEffect; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.Items; import net.minecraft.util.Identifier; +import net.minecraft.util.Rarity; import net.minecraft.util.registry.Registry; public class Shitmod implements ModInitializer { @@ -19,13 +21,29 @@ public class Shitmod implements ModInitializer { public static final Block FABRIC_BLOCK = new FabricBlock(); public static final Item HAUSBOMMER_ITEM = new Hausbommer(new Item.Settings().group(ItemGroup.MISC)); + + public static final Item LEAN = new Lean(new Item.Settings().group(ItemGroup.FOOD).rarity(Rarity.UNCOMMON)); + + public static final StatusEffect EXP = new ExpStatusEffect(); + + public static final StatusEffect LEAN_EFFECT = new LeanStatusEffect(); @Override public void onInitialize() { + Registry.register(Registry.ITEM, new Identifier("shitmod", "fabric_item"), FABRIC_ITEM); + Registry.register(Registry.BLOCK, new Identifier("shitmod", "fabric_block"), FABRIC_BLOCK); Registry.register(Registry.ITEM, new Identifier("shitmod", "fabric_block"), new BlockItem(FABRIC_BLOCK, new FabricItemSettings().group(ItemGroup.MISC))); + Registry.register(Registry.ITEM, new Identifier("shitmod", "hausbommer"), HAUSBOMMER_ITEM); + + Registry.register(Registry.ITEM, new Identifier("shitmod", "lean"), LEAN); + + Registry.register(Registry.STATUS_EFFECT, new Identifier("shitmod", "exp"), EXP); + + Registry.register(Registry.STATUS_EFFECT, new Identifier("shitmod", "lean"), LEAN_EFFECT); + CustomPortalBuilder.beginPortal() .frameBlock(Blocks.DIAMOND_BLOCK) .lightWithItem(Items.ENDER_EYE) diff --git a/src/main/resources/assets/shitmod/lang/en_us.json b/src/main/resources/assets/shitmod/lang/en_us.json index b56af44..680e671 100644 --- a/src/main/resources/assets/shitmod/lang/en_us.json +++ b/src/main/resources/assets/shitmod/lang/en_us.json @@ -1,5 +1,7 @@ { "item.shitmod.fabric_item": "Penis", "block.shitmod.fabric_block": "Gay Block", - "item.shitmod.hausbommer": "Hausbommer" + "item.shitmod.hausbommer": "Hausbommer", + "effect.shitmod.exp": "Experience", + "effect.shitmod.lean": "Lean" } \ No newline at end of file