Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VecsonON

Members
  • Joined

  • Last visited

Everything posted by VecsonON

  1. Ok, I delete mod on client side and download mod from server and put them on client and still not work. I check forge version. vesion is same.
  2. debug (1).log debug.log
  3. Wait a second, I will delete then. I adding this.
  4. main: package pl.coding.tutorial; import net.minecraft.item.ItemGroup; import net.minecraft.item.ItemStack; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import pl.coding.tutorial.util.RegistryHandler; @Mod("hardmode") public class tutorial { public int tenperature = 0; public int playertemp = 0; private static final Logger LOGGER = LogManager.getLogger(); public static String MOD_ID = "hardmode"; public tutorial() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff); RegistryHandler.Init(); MinecraftForge.EVENT_BUS.register(this); } private void setup(final FMLCommonSetupEvent event) { } private void doClientStuff(final FMLClientSetupEvent event) { } public static final ItemGroup TAB = new ItemGroup("tutorialtab") { @Override public ItemStack createIcon() { return new ItemStack(RegistryHandler.BANDAGE.get()); } }; } Registry: package pl.coding.tutorial.util; import net.minecraft.enchantment.Enchantment; import net.minecraft.item.Item; import net.minecraft.potion.Effect; import net.minecraftforge.fml.RegistryObject; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import pl.coding.tutorial.Enchantment.*; import pl.coding.tutorial.base.*; import pl.coding.tutorial.base.effects.*; import pl.coding.tutorial.tutorial; public class RegistryHandler { public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, tutorial.MOD_ID); public static final DeferredRegister<Effect> EFFECTS = DeferredRegister.create(ForgeRegistries.POTIONS, tutorial.MOD_ID); public static final DeferredRegister<Enchantment> ENCHANTMENTS = DeferredRegister.create(ForgeRegistries.ENCHANTMENTS, tutorial.MOD_ID); public static void Init(){ ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); EFFECTS.register(FMLJavaModLoadingContext.get().getModEventBus()); ENCHANTMENTS.register(FMLJavaModLoadingContext.get().getModEventBus()); } //items //How to do this //public static final RegistryObject<Item> ITEM = ITEMS.register("item", ItemBase::new); //public static final RegistryObject<Effect> EFFECT = EFFECTS.register("effect", EffectBase::new); public static final RegistryObject<Item> BANDAGE = ITEMS.register("bandage", ItemBase::new); public static final RegistryObject<Item> STRINGE = ITEMS.register("stringe", ItemBase::new); public static final RegistryObject<Effect> INFECTION = EFFECTS.register("infection", EffectBaseHarmful::new); public static final RegistryObject<Effect> BREAK_LEG = EFFECTS.register("breakleg", EffectBaseHarmful::new); public static final RegistryObject<Effect> BREAK_ARM = EFFECTS.register("breakarm", EffectBaseHarmful::new); public static final RegistryObject<Enchantment> COLD = ENCHANTMENTS.register("cold", Cold::new); public static final RegistryObject<Enchantment> HEAT = ENCHANTMENTS.register("heat", Heat::new); } mod.toml [maybe] modLoader="javafml" loaderVersion="[35,)" license="All rights reserved" [[mods]] modId="hardmode" version="1.16.4" displayName="HardMode MOD" #mandatory credits="Thanks for this example mod goes to Java" #optional authors="VecsonON" #optional description=''' ''' [[dependencies.hardmode]] modId="forge" #mandatory mandatory=true #mandatory versionRange="[35,)" #mandatory ordering="NONE" side="BOTH" [[dependencies.hardmode]] modId="minecraft" mandatory=true versionRange="[1.16.4,1.17)" ordering="NONE" side="BOTH" Events Yes this code is awful... package pl.coding.tutorial.events; import net.minecraft.block.BlockState; import net.minecraft.client.Minecraft; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.Attributes; import net.minecraft.entity.monster.ZombieEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.INBT; import net.minecraft.network.play.server.STitlePacket; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Effects; import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.event.entity.living.LivingDamageEvent; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.network.NetworkRegistry; import net.minecraftforge.fml.network.PacketDistributor; import net.minecraftforge.fml.network.simple.SimpleChannel; import org.lwjgl.system.CallbackI; import pl.coding.tutorial.util.RegistryHandler; import pl.coding.tutorial.util.utils; import java.util.Random; import java.util.function.Supplier; @Mod.EventBusSubscriber(modid = "hardmode", bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) public class ModClientEvents { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel INSTANCE = NetworkRegistry.newSimpleChannel( new ResourceLocation("mymodid", "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); //INFECTION @SubscribeEvent public static void PlayerAttackByZombie(LivingDamageEvent e){ Random ran = new Random(); if(e.getEntity() instanceof PlayerEntity){ PlayerEntity p = (PlayerEntity) e.getEntity(); if(e.getSource().getTrueSource() instanceof ZombieEntity){ int rand = ran.nextInt(100); Iterable<ItemStack> list = e.getEntity().getArmorInventoryList(); if(list.spliterator().getExactSizeIfKnown() > 0){ rand +=list.spliterator().getExactSizeIfKnown() * 5; } System.out.println(rand); if(rand <= 25){ p.addPotionEffect(new EffectInstance(RegistryHandler.INFECTION.get().addAttributesModifier(Attributes.ATTACK_DAMAGE, "648D7064-6A60-4F59-8ABE-C2C23A6DD7A9", 0.5D, AttributeModifier.Operation.ADDITION).addAttributesModifier(Attributes.MOVEMENT_SPEED, "7107DE5E-7CE8-4030-940E-514C1F160890", (double)-0.25F, AttributeModifier.Operation.MULTIPLY_TOTAL), 140000, 1)); p.addPotionEffect(new EffectInstance(Effects.HUNGER, 140000, 1)); } } } } //Temperature @SubscribeEvent public static void TemperatureDec(LivingEvent.LivingUpdateEvent event){ LivingEntity player = event.getEntityLiving(); utils.setPlayer(player); CompoundNBT tag = player.getPersistentData(); INBT BL = tag.get("BL"); INBT BA = tag.get("BA"); INBT modeTag = tag.get("time"); if (modeTag == null || BA == null || BL == null) { tag.putInt("time", 1); tag.putBoolean("BA", false); tag.putBoolean("BL", false); } if(tag.getBoolean("BL") == true) player.addPotionEffect(new EffectInstance(RegistryHandler.BREAK_LEG.get().addAttributesModifier(Attributes.MOVEMENT_SPEED, "7107DE5E-7CE8-4030-940E-514C1F160890", (double)-0.25F, AttributeModifier.Operation.MULTIPLY_TOTAL), 140000, 1)); if(tag.getBoolean("BA") == true) player.addPotionEffect(new EffectInstance(RegistryHandler.BREAK_ARM.get(), 1400, 1)); float tenperature; float playertemp; BlockPos pos = new BlockPos(player.getPositionVec()); World world = player.getEntityWorld(); if (world.getBiome(pos).getCategory().equals(Biome.Category.ICY)) { tenperature = -6f; } else if (world.getBiome(pos).getCategory().equals(Biome.Category.JUNGLE)) { tenperature = 6; } else if (world.getBiome(pos).getCategory().equals(Biome.Category.NETHER)) { tenperature = 9; } else if (world.getBiome(pos).getCategory().equals(Biome.Category.DESERT)) { tenperature = 6; } else if (world.getBiome(pos).getCategory().equals(Biome.Category.EXTREME_HILLS)) { tenperature = -6f; } else { tenperature = 0; } float armorTEMP = 0f; Iterable<ItemStack> list = event.getEntity().getArmorInventoryList(); for (ItemStack element : list) { if (element.getItem().equals(Items.LEATHER_HELMET)) { armorTEMP += 0.25f; } else if (element.getItem().equals(Items.IRON_HELMET)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.DIAMOND_HELMET)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.GOLDEN_HELMET)) { armorTEMP += 0.5f; } else if (element.getItem().equals(Items.NETHERITE_HELMET)) { armorTEMP += 2f; } if (element.getItem().equals(Items.LEATHER_CHESTPLATE)) { armorTEMP += 0.25f; } else if (element.getItem().equals(Items.IRON_CHESTPLATE)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.DIAMOND_CHESTPLATE)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.GOLDEN_CHESTPLATE)) { armorTEMP += 0.5f; } else if (element.getItem().equals(Items.NETHERITE_CHESTPLATE)) { armorTEMP += 2f; } if (element.getItem().equals(Items.LEATHER_LEGGINGS)) { armorTEMP += 0.25f; } else if (element.getItem().equals(Items.IRON_LEGGINGS)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.DIAMOND_LEGGINGS)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.GOLDEN_LEGGINGS)) { armorTEMP += 0.5f; } else if (element.getItem().equals(Items.NETHERITE_LEGGINGS)) { armorTEMP += 2f; } if (element.getItem().equals(Items.LEATHER_BOOTS)) { armorTEMP += 0.25f; } else if (element.getItem().equals(Items.IRON_BOOTS)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.DIAMOND_BOOTS)) { armorTEMP += 1f; } else if (element.getItem().equals(Items.GOLDEN_BOOTS)) { armorTEMP += 0.5f; } else if (element.getItem().equals(Items.NETHERITE_BOOTS)) { armorTEMP += 2f; } if (EnchantmentHelper.getEnchantmentLevel(RegistryHandler.HEAT.get(), element) > 0) { armorTEMP -= 2f; } else if (EnchantmentHelper.getEnchantmentLevel(RegistryHandler.COLD.get(), element) > 0) { armorTEMP += 2f; } } playertemp = tenperature; playertemp += armorTEMP; if (playertemp >= 10) { if(event.getEntity() instanceof PlayerEntity){ SendTitle("{\"text\":\"Player "+ ((PlayerEntity)event.getEntity()).getScoreboardName()+" is Overheating\",\"bold\":true,\"color\":\"dark_red\"}"); } event.getEntityLiving().setFire(5); tag.putInt("time", tag.getInt("time") - 1); } else if (playertemp <= -5) { if(event.getEntity() instanceof PlayerEntity){ SendTitle("{\"text\":\"Player "+ ((PlayerEntity)event.getEntity()).getScoreboardName()+" is Overcooling\",\"bold\":true,\"color\":\"dark_blue\"}"); } tag.putInt("time", tag.getInt("time") - 1); event.getEntity().attackEntityFrom(DamageSource.GENERIC, 1); } else { } // ONE ARMOR // // ARMOR | +TEMPERATUR // // Leather| +0.25 // // IRON | +1 // // DIAMOND| +1 // // GOLD | +0.5 // // NETHER | +2 // //////////////////////////// } //BREAKS ARMS, LEGS ITD. @SubscribeEvent public static void BreakLeg(LivingHurtEvent e){ Random ran = new Random(); if(e.getEntity() instanceof PlayerEntity){ if(e.getAmount() >= 6){ int rand = ran.nextInt(100); if(rand <= 25){ ((PlayerEntity) e.getEntity()).addPotionEffect(new EffectInstance(RegistryHandler.BREAK_LEG.get().addAttributesModifier(Attributes.MOVEMENT_SPEED, "7107DE5E-7CE8-4030-940E-514C1F160890", (double)-0.25F, AttributeModifier.Operation.MULTIPLY_TOTAL), 140000, 1)); CompoundNBT tag = e.getEntity().getPersistentData(); } } } } @SubscribeEvent public static void onBlockHarvested(BlockEvent.BreakEvent e){ Random ran = new Random(); int rand = 0; ItemStack i = e.getPlayer().inventory.getCurrentItem(); if(i.getItem().equals(Items.AIR)){ rand = ran.nextInt(100); if(rand <= 5){ e.getPlayer().addPotionEffect(new EffectInstance(RegistryHandler.BREAK_ARM.get(), 1400, 1)); CompoundNBT tag = e.getPlayer().getPersistentData(); } } if(e.getPlayer().isPotionActive(RegistryHandler.BREAK_ARM.get())){ e.setCanceled(true); } } @SubscribeEvent public static void BandageEvent(PlayerInteractEvent e){ if(e.getPlayer().inventory.getCurrentItem().getItem().equals(RegistryHandler.BANDAGE.get())){ CompoundNBT tag = e.getPlayer().getPersistentData(); tag.putBoolean("BA", false); tag.putBoolean("BL", false); e.getPlayer().inventory.getCurrentItem().setCount(e.getPlayer().inventory.getCurrentItem().getCount()-1); e.getPlayer().clearActivePotions(); }else if(e.getPlayer().inventory.getCurrentItem().getItem().equals(Items.MILK_BUCKET)){ CompoundNBT tag = e.getPlayer().getPersistentData(); if(e.getPlayer().isPotionActive(RegistryHandler.BREAK_ARM.get())){ tag.putBoolean("BA", true); }else if(e.getPlayer().isPotionActive(RegistryHandler.BREAK_LEG.get())){ tag.putBoolean("BL", true); } } } //OTHER static void SendTitle(String w){ try{ Minecraft.getInstance().player.connection.handleTitle( new STitlePacket( STitlePacket.Type.ACTIONBAR, ITextComponent.Serializer.getComponentFromJson(w), 5, 25, 5 ) ); }catch (Exception v){ } } } Do you need more? debug.log debug.log
  5. Hello, Recently I am creating a mod. when I wanted to play with a friend, but mod doesn't' work on server We have same mods on server and client if this is stupid question , I sorry Sorry for my bad English, I'm not native Englishman

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.