<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <div class="paragraph">
      <p>Greetings, Oklahoma City tech community! Do you have a son or
        daughter (or niece, nephew, grandchild, super-friendly
        neighborhood child)
        who loves Minecraft? Does said Minecraftian have an interest in
        learning how to program? If so, this is your lucky day. The
        Oklahoma
        City Java User Group would like to invite you and 0 or more of
        your pint-sized and precocious progeny to our July session where
        we’ll be
        offering an introduction to programming using Minecraft modding
        as the goal.</p>
    </div>
    <div class="paragraph">
      <p><strong>What will we be doing?</strong> We’re going to be
        getting an introduction to various programming concepts (types,
        variables, loops, conditionals,
        classes, etc) using the Java programming language. Having a
        concrete, usable goal is always more interesting, so we’ll learn
        these
        concepts as we develop (and RUN!) simple Minecraft mods.</p>
    </div>
    <div class="paragraph">
      <p><strong>Will my <em>CHILD<Relationship></em> be an
          expert programmer or modder when we’re done?</strong> Probably
        not, but the hope is that this session will
        be enough to flatten the learning curve a bit, leaving each
        child well-equipped for further study, either self-directed or
        with you,
        as well as with a taste for how fun programming can be.</p>
    </div>
    <div class="paragraph">
      <p><strong>How old does you mini-me need to be?</strong> That’s
        entirely up you. If you have, say, a 6 year-old who’s
        comfortable with compilers and API
        docs, then that’s old enough for us.</p>
    </div>
    <div class="paragraph">
      <p><strong>Is there anything we need to install before we come?</strong>
        There certainly is! Our time will be limited, so it would be
        extremely helpful
        to have a basic, working environment already set up. While you
        are free to use any IDE you want, I will be using NetBeans, the
        Free
        (and TOTALLY AWESOME) IDE from Oracle, which can be downloaded
        from <a href="http://netbeans.org" class="bare">http://netbeans.org</a>.
        You will also need a working Java environment,
        as well as a relatively current copy of the Minecraft Forge
        plugin development kit. I’ll have detailed instructions at the
        end of this
        email to help you set up your environment.</p>
    </div>
    <div class="paragraph">
      <p><strong>This sounds great? When and where is it?!</strong> In a
        departure from our normal schedule (which will be significant
        only for normal JUG
        attendees), we will be meeting on Monday, July 13 at 11:30AM at
        Prototek, which is located at 10th and Hudson in Oklahoma City
        (<a href="https://goo.gl/maps/tD26c" class="bare">https://goo.gl/maps/tD26c</a>).
        You can park in the dirt lot Hudson, just north of Park Place.
        Do not park ON Park Place, as I own both
        that and Boardwalk, and my improvements there are guaranteed to
        ruin you.</p>
    </div>
    <div class="paragraph">
      <p><strong>That’s right during lunch. What’s wrong with you
          people?</strong> Nothing that some free pizza can’t solve, so
        bring your appetite!</p>
    </div>
    <div class="paragraph">
      <p><strong>What should we bring to the session?</strong> To
        participate, you will obviously need a laptop to work on, with
        one per laptop per child (no
        government organizations/programs, please) being ideal. If you
        are bringing multiple wee ones and need to share, that would be
        fine.
        If you don’t have a laptop and just want to come listen, that
        will work as well. :)</p>
    </div>
    <div class="paragraph">
      <p><strong>Is there anything else we need to know?</strong> That’s
        about it. Come prepared to have fun and learn. And don’t forget
        your questions!</p>
    </div>
    <div class="paragraph">
      <p>We’re pretty excited about this session and hope to see LOTS of
        kids come out for a fun time.</p>
    </div>
    <hr>
    <div style="font-size: 48pt; color: #FF0000; font-weight: bold;">Detailed
      Pre-Meeting Instructions</div>
    <div class="paragraph">
      <p>I made that really large for two reasons: I really wanted to
        use that formatting bar in Thunderbird that I’ve ignored for so
        long,
        and I wanted to make sure you don’t miss this part. :) You <strong>can</strong>
        come and set up your laptop at the meeting, but we won’t have
        time
        to do that as a group, so we’ll have to keep moving while you’re
        setting up. If you have to do that, that’s fine. I hope to
        conscript
        a few of the JUG leaders to act as workshop assistants in case
        anyone needs help installing the various pieces. Another issue
        is
        bandwidth: Prototek will let us use their wifi, but regardless
        of their bandwidth, when two dozen people start downloading all
        of the
        dependencies, it probably won’t be very fast. :)</p>
    </div>
    <div class="paragraph">
      <p><strong>What do you need to download then?</strong> These three
        things:</p>
    </div>
    <div class="olist arabic">
      <ol class="arabic">
        <li>
          <p>Java - <a
href="http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html"
              class="bare">http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html</a>.
            You will need the Java SDK, and I would suggest the latest
            version, which is currently Java SE 8u45. Download the
            installer appropriate for your platform and install it.</p>
        </li>
        <li>
          <p>NetBeans - <a href="https://netbeans.org/downloads/"
              class="bare">https://netbeans.org/downloads/</a> - You
            will need the Java SE version. Again, get the installer
            appropriate for your platform and install it.</p>
        </li>
        <li>
          <p>Minecraft Forge - <a
href="http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8-11.14.1.1341/forge-1.8-11.14.1.1341-src.zip"
              class="bare">http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8-11.14.1.1341/forge-1.8-11.14.1.1341-src.zip</a>
            - There are platform-specific installers, but I’d just get
            this zip</p>
        </li>
      </ol>
    </div>
    <div class="paragraph">
      <p>With those downloaded and installed, extract the zip file
        (using the tool of your choice) in a directory. Mac and Linux
        users can do this:</p>
    </div>
    <div class="listingblock">
      <div class="content">
        <pre class="CodeRay highlight"><code data-lang="bash">$ cd ~
$ mkdir MinecraftMods
$ cd MinecraftMods
$ unzip $PATH_TO_ZIP/forge-1.8-11.14.1.1341-src.zip</code></pre>
      </div>
    </div>
    <div class="paragraph">
      <p>Wherever you’ve extracted the archive, you will need to open a
        shell (or command prompt) and run this command in that
        directory:</p>
    </div>
    <div class="listingblock">
      <div class="content">
        <pre class="CodeRay highlight"><code data-lang="bash">$ ./gradlew setupDecompWorkspace --refresh-dependencies</code></pre>
      </div>
    </div>
    <div class="paragraph">
      <p>(Windows users can leave off the leading ./)</p>
    </div>
    <div class="paragraph">
      <p>Once that is done, open up NetBeans, then click File | Open
        Project and navigate to this directory. Hopefully, this
        directory will
        show up as a Gradle project. If it does not, you will need to
        install the Gradle plugin ( Go to Tools | Plugins and install
        "Gradle
        Support".) After a few seconds, you should see the project open
        in the Project view, with several nodes beneath it in the tree.
        To test
        things, click on the project node (it should be called
        MinecraftMods), click Tasks, Run, and runClient. After a few
        seconds, you should
        see Minecraft start up. Congratulations, you should be ready to
        go.</p>
    </div>
    <div class="paragraph">
      <p><strong>Whew! That’s kind of hard to follow!</strong> Well,
        yeah. If you’re like me and like to see pictures, you can see
        these same instructions on the NetBeans
        blog at <a
href="https://blogs.oracle.com/geertjan/entry/seamless_minecraft_forge_in_netbeans"
          class="bare">https://blogs.oracle.com/geertjan/entry/seamless_minecraft_forge_in_netbeans</a>.</p>
    </div>
    <div class="paragraph">
      <p><strong>But I don’t like NetBeans. I like pain!</strong> There
        may be some Eclipse fans out there. If you just have to use
        Eclipse, you can generate the
        Eclipse project files by running <code>gradlew eclipse</code>.</p>
    </div>
    <div class="paragraph">
      <p><strong>NetBeans is nice and all, but I prefer to buy things.
          Can I use IDEA?</strong> Sure! Just run <code>gradlew idea</code>
        to generate the project files.</p>
    </div>
    <div class="paragraph">
      <p><strong>Is that "all"?</strong> Should be. Pretty simple, huh?
        :P If you run into problems, try to do as much as you can before
        you come, and you can
        either ask for help on the JUG mailing list (<a
          href="http://okcjug.org/contact-us" class="bare">http://okcjug.org/contact-us</a>)
        or, worst-case scenario, wait until the day of the JUG and
        get help there (though it would help to arrive early ;).</p>
    </div>
    <pre class="moz-signature" cols="72">-- 
Jason Lee
<a class="moz-txt-link-freetext" href="http://cubtracker.com">http://cubtracker.com</a> 
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com">http://blogs.steeplesoft.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/jasondlee">http://twitter.com/jasondlee</a>
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com/+">http://blogs.steeplesoft.com/+</a>
<a class="moz-txt-link-freetext" href="http://blogs.steeplesoft.com/in">http://blogs.steeplesoft.com/in</a></pre>
  </body>
</html>