Giter Site home page Giter Site logo

stormhammer-forge's Introduction

Modern Minecraft Modding with Forge

What do we want to build?

  • When a player

    • hits a monster
    • with a golden axe
    • named Stormbreaker,
    • strike the monster with lightning and
    • make an explosion.
  • When a player

    • uses the /thunder command
    • summon lightning around the player

Download Forge

Using 1.13.2 because it's more mature. 1.14 is still under active development.

  1. https://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.13.2.html
  2. unzip forge-1.13.2-25.0.219-mdk.zip -d storm-hammer
  3. cd storm-hammer

Set up dev environment

Must use Java 8. Java 9+ not supported. jenv local 1.8

  1. ./gradlew genIntellijRuns
  2. Open Intellij Idea
  3. Import project > select directory
  4. Import as gradle project
  5. Execute tasks > fg_runs > runClient
  6. Verify example mod
  7. Create new singleplayer world
  8. See logs in Idea :runClient task

Set up mod metadata

  1. Edit src > main > resources > META-INF > mods.toml
  2. Set modId, displayName, and description
  3. Edit ExampleMod.java
  4. Set @Mod("stormhammer")
  5. Delete unused lifecycle event handlers

Create first event handler

@SubscribeEvent
public void onHurt(LivingHurtEvent event) {
    LOGGER.info(">>> " + event.getSource().getImmediateSource().getName().getString() + " hurt " +
            event.getEntity().getName().getString());
}

Summon lightning

World world = event.getEntityLiving().getEntityWorld();

// Summon lightning
world.addWeatherEffect(new EntityLightningBolt(
        world,
        event.getEntity().posX,
        event.getEntity().posY,
        event.getEntity().posZ,
        false));

Create an explosion

World world = event.getEntityLiving().getEntityWorld();

// Make an explosion
world.createExplosion(
        event.getEntity(),
        event.getEntity().posX,
        event.getEntity().posY,
        event.getEntity().posZ,
        8,
        true);

Package jar

  1. Set group and archivesBaseName in build.gradle
  2. Execute tasks > build > build (don't use jar)
  3. Extract built jar from build/libs directory

Run with Forge

  1. Copy mod into Forge mods directory
  2. Start Forge from Minecraft launcher

stormhammer-forge's People

Contributors

rmichela avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

artcodex

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.