Skip to content

Commit

Permalink
Merged FML
Browse files Browse the repository at this point in the history
  • Loading branch information
cpw committed May 11, 2015
2 parents 1f679be + 081a949 commit cb6f92e
Show file tree
Hide file tree
Showing 421 changed files with 96,901 additions and 4 deletions.
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

1 change: 0 additions & 1 deletion fml
Submodule fml deleted from 1c025f
14 changes: 14 additions & 0 deletions fml/.gitattributes
@@ -0,0 +1,14 @@
* text eol=lf
*.bat text eol=crlf
*.patch text eol=lf
*.java text eol=lf
*.gradle text eol=crlf
*.png binary
*.exe binary
*.dll binary
*.jar binary
*.lzma binary
*.zip binary
*.pyd binary
*.cfg text eol=lf
*.py text eol=lf
21 changes: 21 additions & 0 deletions fml/.gitignore
@@ -0,0 +1,21 @@
#eclipse
/bin
/.settings
/.classpath

#idea
/.idea
*.iml

#gradle
/build
/buildSrc
/.gradle

#occupational hazards
/eclipse/
/repo/


#Patch reject
*.rej
28 changes: 28 additions & 0 deletions fml/CREDITS-fml.txt
@@ -0,0 +1,28 @@
This is Forge Mod Loader.

You can find the source code at all times at https://github.com/MinecraftForge/FML

This minecraft mod is a clean open source implementation of a mod loader for minecraft servers
and minecraft clients.

The code is authored by cpw.

It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
http://www.minecraftforum.net/topic/75440-
This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.

It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
http://www.minecraftforge.net/

Additionally, it contains an implementation of topological sort based on that
published at http://keithschwarz.com/interesting/code/?dir=topological-sort

It also contains code from the Maven project for performing versioned dependency
resolution. http://maven.apache.org/

It also contains a partial repackaging of the javaxdelta library from http://sourceforge.net/projects/javaxdelta/
with credit to it's authors.

Forge Mod Loader downloads components from the Minecraft Coder Pack
(http://mcp.ocean-labs.de/index.php/Main_Page) with kind permission from the MCP team.

491 changes: 491 additions & 0 deletions fml/LICENSE-fml.txt

Large diffs are not rendered by default.

94 changes: 94 additions & 0 deletions fml/README.txt
@@ -0,0 +1,94 @@
This is Forge Mod Loader, or FML for short, by cpw.

More information can be found at https://github.com/MinecraftForge/FML/wiki

It is a clean reimplementation of a mod loading system for client and server.

It can be installed on its own, or as part of Minecraft Forge.

----------------------
About Forge Mod Loader
----------------------

Environments and compatibility
==============================
FML covers two main environments: client and server. All environments share
the main mod loading code base, with additional varying hooks based on the
specific environment.

There are some very visible changes to the client when FML is installed.

There are some bukkit compatibility hooks available, consult MCPC+, now known as Cauldron
for more information.

Minecraft Forge in all cases bundles FML as it's modloading technology of choice
because FML is open source, freely distributable, and can be easily updated by
contributors through github.

Notable integrations
====================
Optifine has FML compatibility. It varies from Optifine release to release, however
in general it will work well alongside an FML or
Minecraft Forge installation. FML will detect and ensure the good operation of
Optifine (you can see it in your client as an additional data line on the
bottom left).

Mod information
===============
FML exposes the mod information through a mod list visible on the main screen as
well as some small branding enhancements. For full data mods need to provide an
information file. This file is a standard format so hopefully tools providing
launch capabilities can also leverage this content.

-------------------------------
Binary installation information
-------------------------------
If you have downloaded a binary zip file you can install it as follows (client
or server):

Installation
============
To install on a server, simply execute the FML or Forge jar file, with a copy of
minecraft_server-@MC_VERSION@.jar placed in the same directory. FML will launch
it's patched copy.

To install on a client, run the installer by executing java -jar <installer>.jar.
It will identify the location of you minecraft installation (this can be customized)
and create a new profile "FML" there.

Forge Installation
==================
This code also ships as a part of Minecraft Forge. You do not need to install it
separately from your Minecraft Forge installation. Minecraft Forge contains the
exact same code as this. You should not install FML if you are also installing
Minecraft Forge.

-------------------------------------------
Source installation information for modders
-------------------------------------------
This code follows the Minecraft Forge installation methodology. It will apply
some small patches to the vanilla MCP source code, giving you and it access
to some of the data and functions you need to build a successful mod.

Note also that the patches are built against "unrenamed" MCP source code (aka
srgnames) - this means that you will not be able to read them directly against
normal code.

Source pack installation information:

Standalone source installation
==============================

To install this source code for development purposes, extract this zip file.
It ships with a demonstration mod. Run "gradle setupDevWorkspace" to create
a gradle environment primed with FML. Run gradle eclipse or gradle idea to
create an IDE workspace of your choice.
Refer to ForgeGradle for more information about the gradle environment

Forge source installation
=========================
MinecraftForge ships with this code and installs it as part of the forge
installation process, no further action is required on your part.

For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML
for Minecraft version @MCVERSION@.
112 changes: 112 additions & 0 deletions fml/build.gradle
@@ -0,0 +1,112 @@
buildscript {
repositories {
mavenCentral()
mavenLocal()
maven {
name = "forge"
url = "http://files.minecraftforge.net/maven"
}
maven {
name = "sonatype"
url = "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}

import static net.minecraftforge.gradle.dev.FmlDevPlugin.*

apply plugin: 'maven'
apply plugin: 'fmldev'

repositories {
flatDir {
name "fileRepo"
dirs "repo"
}
}

minecraft {
version = '1.8'
mcpVersion = '9.10'
mappings = 'snapshot_nodoc_20141130'
fmlDir = projectDir.getAbsolutePath();
mainClass = 'net.minecraftforge.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'net.minecraftforge.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}

group = 'net.minecraftforge'
version = getVersionFromGit(getProject())

jenkins {
job = 'fml'
}

uploadArchives {
repositories {
if (project.hasProperty("filesmaven")) {
logger.info('Publishing to files server')

mavenDeployer {
configuration = configurations.deployJars

repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
}

pom {
groupId = project.group
version = project.version
artifactId = project.archivesBaseName
project {
name project.archivesBaseName
packaging 'jar'
description 'ForgeModLoader'
url 'https://github.com/MinecraftForge/FML'

scm {
url 'https://github.com/MinecraftForge/FML'
connection 'scm:git:git://github.com/MinecraftForge/FML.git'
developerConnection 'scm:git:git@github.com:MinecraftForge/FML.git'
}

issueManagement {
system 'github'
url 'https://github.com/MinecraftForge/FML/issues'
}

licenses {
license {
name 'GNU Lesser Public License (LGPL), Version 2.1'
url 'http://www.gnu.org/licenses/lgpl-2.1.txt'
distribution 'repo'
}
}

developers {
developer {
id 'cpw'
name 'cpw'
roles { role 'developer' }
}
developer {
id 'LexManos'
name 'Lex Manos'
roles { role 'developer' }
}
}
}
}
}
} else {
logger.info('Publishing to repo folder')

mavenDeployer {
repository(url: 'file://localhost/' + project.file('repo').getAbsolutePath())
}
}
}
}
19 changes: 19 additions & 0 deletions fml/conf/astyle.cfg
@@ -0,0 +1,19 @@
# Artistic Style format configuration
# see http://astyle.sourceforge.net/astyle.html

style=allman

add-brackets
break-closing-brackets

indent-switches

max-instatement-indent=40

pad-oper
pad-header
unpad-paren

break-blocks

delete-empty-lines

7 comments on commit cb6f92e

@bspkrs
Copy link
Contributor

@bspkrs bspkrs commented on cb6f92e May 12, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

forge_eat_fml

@Mitchellbrine
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xD So true...

@liach
Copy link
Contributor

@liach liach commented on cb6f92e May 12, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But it doesn't build on jenkins?

@LexManos
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, not yet. @AbrarSyed needs to finish up the necessary changes to FG2.0 before a full build can be done.

@jamierocks
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious as to why you have done this? I prefered it split...

@LexManos
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ease of development, nobody actually ever used FML itself. Lots of reasons.

@Mitchellbrine
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only time anyone ever used them separately is when Forge wasn't updated, so... Basically, that problem's eliminated with the merge.

Please sign in to comment.