From 371d69f89cb49c120ec2aa4e2493933f3b4e18ab Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Wed, 4 Apr 2012 09:48:36 -0400 Subject: [PATCH] Tidy up some of the installation media --- fml/{LICENSE => LICENSE-fml.txt} | 0 fml/build.xml | 35 ++++++++++++++++++++---- fml/install/CREDITS-fml.txt | 17 ++++++++++++ fml/install/README.txt | 46 +++++++++++++++++++++----------- fml/install/install.cmd | 19 +++---------- fml/install/install.sh | 20 +++----------- fml/install/lfcr.py | 8 ++++++ 7 files changed, 93 insertions(+), 52 deletions(-) rename fml/{LICENSE => LICENSE-fml.txt} (100%) create mode 100644 fml/install/CREDITS-fml.txt create mode 100755 fml/install/lfcr.py diff --git a/fml/LICENSE b/fml/LICENSE-fml.txt similarity index 100% rename from fml/LICENSE rename to fml/LICENSE-fml.txt diff --git a/fml/build.xml b/fml/build.xml index 4570fc1ca..535075666 100644 --- a/fml/build.xml +++ b/fml/build.xml @@ -59,7 +59,7 @@ - + @@ -130,20 +130,45 @@ + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - + @@ -152,7 +177,7 @@ - + diff --git a/fml/install/CREDITS-fml.txt b/fml/install/CREDITS-fml.txt new file mode 100644 index 000000000..65360889e --- /dev/null +++ b/fml/install/CREDITS-fml.txt @@ -0,0 +1,17 @@ +This is Forge Mod Loader. + +You can find the source code at all times at https://github.com/cpw/FML + +This minecraft mod is a clean open source implementation of a mod loader for +minecraft servers. + +The code is authored by cpw. +It implements API defined by the client side ModLoader, authored by Risugami. +http://www.minecraftforum.net/topic/75440- + +It also contains suggestions and hints from LexManos, author of MinecraftForge. +http://www.mod-buildcraft.com/forums/forum/minecraft-forge/ + +Finally, it contains an implementation of topological sort based on that +published at http://keithschwarz.com/interesting/code/?dir=topological-sort + diff --git a/fml/install/README.txt b/fml/install/README.txt index 20e451878..f4bdbda57 100755 --- a/fml/install/README.txt +++ b/fml/install/README.txt @@ -1,22 +1,38 @@ -*** HOW TO INSTALL *** +This is Forge Mod Loader, or FML for short, by cpw. -Extract the download archive directly into your MCP-directiory. -It should create a folder "forge" within that directory, containing all -extracted files. +It is a clean reimplementation of a mod loading system for server side use, +incorporating API implementations of client side ModLoader by Risugami. -You should use freshly downloaded jars, solely including ModLoader & -ModLoaderMP. Anything else can eventually cause conflicts. +It can be installed on its own, or as part of Minecraft Forge. -You also need to install the FernFlower decompiler, you can download it at -http://goo.gl/PnJHp. Extract fernflower.jar into your MCP's runtime/bin folder. +If you have downloaded the server zip file you can install it as follows: +Installation +============ +To install this on it's own into a minecraft server, simply copy the contents +of the fml server zip file into the minecraft_server.jar file. -Now just start the install.cmd/.sh, MCForge will install itself into the proper -locations and copy all needed files, as well as modifying the needed baseclasses. +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. -Forge also includes a snapshot of the MCP mapings, this may not be the current -version of the mapings. But you must use the provided mapings in order for the -patch files to work together. +If you have downloaded the source code pack, you can install it as follows: -The install scripts should take care of everything for you, so you should not need -to run ANY MCP script before installing forge. +Standalone source installation +============================== +To install this source code for development purposes, extract this zip file +into an mcp installation containing vanilla jars only. It should create a new +folder "fml" inside that installation. + +Once extracted, run the install.sh or install.bat script provided from the fml +directory. It should decompile and patch your MCP source code for the server. + +Forge source installation +========================= +MinecraftForge should ship with this code and install it as part of the forge +installation process, no further action should be required on your part. + + +For reference this is version @MAJOR@.@MINOR@.@REV@.@BUILD@ of FML +for Minecraft version @MCVERSION@. diff --git a/fml/install/install.cmd b/fml/install/install.cmd index 9960d9074..ff91c6f5d 100755 --- a/fml/install/install.cmd +++ b/fml/install/install.cmd @@ -15,8 +15,6 @@ if not exist "..\runtime\bin\fernflower.jar" ( pushd .. >nul -xcopy /Y /E /I fml\conf\* conf - if exist ".\src" ( runtime\bin\python\python_mcp runtime\cleanup.py ) @@ -24,30 +22,19 @@ if exist ".\src" ( echo Please make sure to backup your modified files, and say yes when it asks you to do cleanup. exit 1 ) -runtime\bin\python\python_mcp runtime\decompile.py +runtime\bin\python\python_mcp runtime\decompile.py -d -n -r pushd src >nul - if exist ..\jars\bin\minecraft.jar ( - for /f "delims=" %%a in ('dir /a -d /b /S ..\fml\patches\minecraft') do ( - pushd "%%a" 2>nul - if errorlevel 1 ( - ..\runtime\bin\python\python_mcp ..\fml\lfcr.py "%%a" "%%a" - ..\runtime\bin\applydiff.exe -uf -p2 -i "%%a" - ) else popd - ) - xcopy /Y /E ..\fml\src\minecraft\* minecraft - ) - if exist ..\jars\minecraft_server.jar ( for /f "delims=" %%a in ('dir /a -d /b /S ..\fml\patches\minecraft_server') do ( pushd "%%a" 2>nul if errorlevel 1 ( ..\runtime\bin\python\python_mcp ..\fml\lfcr.py "%%a" "%%a" - ..\runtime\bin\applydiff.exe -uf -p2 -i "%%a" + ..\runtime\bin\applydiff.exe -uf -p1 -i "%%a" ) else popd ) - xcopy /Y /E ..\fml\src\server\* minecraft_server + xcopy /Y /E ..\fml\src\* minecraft_server ) popd >nul diff --git a/fml/install/install.sh b/fml/install/install.sh index 5012eda5e..1c4bd3d24 100644 --- a/fml/install/install.sh +++ b/fml/install/install.sh @@ -16,34 +16,22 @@ fi pushd .. > /dev/null -rm -rf conf -mkdir conf -cp -r fml/conf/* conf - ./cleanup.sh + if [ -d "src" ] then echo "Failed to cleanup the MCP folder, please backup your modified files and run this script again and say yes when prompted." exit 1 fi -./decompile.sh + +./decompile.sh -d -n -r pushd src > /dev/null - if [ -f ../jars/bin/minecraft.jar ]; - then - for i in `find ../fml/patches/minecraft/ -type f` - do - patch -p2 -i $i - done - cp -r ../fml/src/minecraft/* minecraft - fi - - if [ -f ../jars/minecraft_server.jar ]; then for i in `find ../fml/patches/minecraft_server/ -type f` do - patch -p2 -i $i + patch -p1 -i $i done cp -r ../fml/src/minecraft_server/* minecraft_server fi diff --git a/fml/install/lfcr.py b/fml/install/lfcr.py new file mode 100755 index 000000000..d48f17c7b --- /dev/null +++ b/fml/install/lfcr.py @@ -0,0 +1,8 @@ +#! /usr/bin/env python + +import sys, re, os +data = open(sys.argv[1], "rb").read() +newdata = re.sub("\r?\n", "\r\n", data) +f = open(sys.argv[2], "wb") +f.write(newdata) +f.close() \ No newline at end of file