diff --git a/.gitignore b/.gitignore
index 967255e4..8e24443d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,19 +1,44 @@
+# Filter Minecraft sources
+/src/minecraft/*
+!/src/minecraft/invtweaks
+!/src/minecraft/net
+/src/minecraft/net/minecraft/client
+/src/minecraft/net/minecraft/server
+/src/minecraft/net/minecraft/src/*
+!/src/minecraft/net/minecraft/src/InvTweaks*
+
+# Builds & binaries
bin/
target/
lib/
-client/
-isom/
-InvTweaks-*/
-files/
+invtweaks_docs/_build
launcher/
-docs/_build
*.zip
*.jar
-minecraft/net/minecraft/src/*.java
-*#
+
+# Tmp files
*~
-*.rej
+*#
+
+# IDEs
.classpath
.project
.settings
.pydevproject
+
+# MCP Files
+docs/
+conf/
+eclipse/
+jars/
+logs/
+runtime/
+temp/
+reobf/
+CHANGELOG
+LICENSE.txt
+*.bat
+*.sh
+
+# Misc
+*.rej
diff --git a/LICENSE.md b/LICENSE.md
old mode 100755
new mode 100644
index 8abeba79..fe92f288
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
## Inventory Tweaks Mod license (MIT)
-Copyright (c) 2011-2012 Marwane Kalam-Alami
+Copyright (c) 2011-2013 Marwane Kalam-Alami
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 6ed75606..f6e969ef 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
-
+## This repository is not maintained anymore.
-* Matching Minecraft version: **1.4.4**
+**Kobata has a well maintained fork with multiple bugfixes and additions. Since March 2013, he is the new official maintainer for InvTweaks.**
-## What's this project about
+* **Please go to [his fork of this repository](https://github.com/Kobata/inventory-tweaks) for further updates**
+* **See also the new [InvTweaks thread](http://www.minecraftforum.net/topic/1720872-inventory-tweaks-151-mar-9/) on the Minecraft forums**
-This Open Source project (see [License](https://github.com/mkalam-alami/inventory-tweaks/blob/master/src/doc/license.txt)) is a client mod for [Minecraft](http://www.minecraft.net/), a game by [Mojang AB](http://mojang.com/). It implements various features to help players with the management of inventories and chests. A lot of effort has been put to make it as customizable as possible, without being annoying to set up.
+## What is Inventory Tweaks?
-## Get started
+This Open Source project (see [License](https://github.com/mkalam-alami/inventory-tweaks/blob/master/src/doc/license.txt)) is a client mod for [Minecraft](http://www.minecraft.net/), a game by [Mojang AB](http://mojang.com/). It implements various features to help players with the management of inventories and chests. A lot of effort has been put to make it as customizable as possible, without being annoying to set up.
-* For documentation about how to use or install the mod, see the [main page of Inventory Tweaks](http://wan.ka.free.fr/?invtweaks). This place is for developers!
-* To start coding, all is explained on the [project's wiki](https://github.com/mkalam-alami/inventory-tweaks/wiki).
+
diff --git a/build.xml b/build.xml
index de852232..054c6944 100755
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
- Copying zip to mods folder
-
+
- Done!
diff --git a/conf/mcp.cfg b/conf/mcp.cfg
new file mode 100644
index 00000000..b4d6940c
--- /dev/null
+++ b/conf/mcp.cfg
@@ -0,0 +1,155 @@
+[DEFAULT]
+DirTemp = temp
+DirSrc = src
+DirLogs = logs
+DirBin = bin
+DirJars = jars
+DirReobf = reobf
+DirConf = conf
+DirRuntime = runtime
+DirLib = lib
+DirTempSrc = temp/src
+DirTempCls = temp/cls
+DirTempBin = temp/bin
+DirModSrc = modsrc
+DirEclipse = eclipse
+
+[CSV]
+Classes = %(DirConf)s/classes.csv
+Methods = %(DirConf)s/methods.csv
+Fields = %(DirConf)s/fields.csv
+Params = %(DirConf)s/params.csv
+NewIds = %(DirConf)s/newids.csv
+
+[SRGS]
+ConfClient = %(DirConf)s/client.srg
+ConfServer = %(DirConf)s/server.srg
+Client = %(DirTemp)s/client_rg.srg
+Server = %(DirTemp)s/server_rg.srg
+DeobfClient = %(DirTemp)s/client_deobf.srg
+DeobfServer = %(DirTemp)s/server_deobf.srg
+ReobfClient = %(DirTemp)s/client_ro.srg
+ReobfServer = %(DirTemp)s/server_ro.srg
+
+[JAR]
+DirNatives = %(DirJars)s/bin/natives
+Client = %(DirJars)s/bin/minecraft.jar
+Server = %(DirJars)s/minecraft_server.jar
+LWJGL = %(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
+MD5Client = 48677dc4c2b98c29918722b5ab27b4fd
+MD5Server = b0700fa969dbf0ff085082cde87384d2
+
+[RETROGUARD]
+Location = %(DirRuntime)s/bin/retroguard.jar
+RetroConf = %(DirTemp)s/retroguard.cfg
+RetroReobConf = %(DirTemp)s/retroguard_ro.cfg
+ClientConf = %(DirTemp)s/client_rg.cfg
+ServerConf = %(DirTemp)s/server_rg.cfg
+ClientReobConf = %(DirTemp)s/client_ro.cfg
+ServerReobConf = %(DirTemp)s/server_ro.cfg
+ClientOut = %(DirTemp)s/minecraft_rg.jar
+ServerOut = %(DirTemp)s/minecraft_server_rg.jar
+ClientLog = %(DirLogs)s/client_rg.log
+ServerLog = %(DirLogs)s/server_rg.log
+ClientDeobLog = %(DirLogs)s/client_deob.log
+ServerDeobLog = %(DirLogs)s/server_deob.log
+NullPkg = net/minecraft/src
+
+[EXCEPTOR]
+XClientCfg = %(DirConf)s/joined.exc
+XServerCfg = %(DirConf)s/joined.exc
+XClientOut = %(DirTemp)s/minecraft_exc.jar
+XServerOut = %(DirTemp)s/minecraft_server_exc.jar
+XClientLog = %(DirLogs)s/client_exc.log
+XServerLog = %(DirLogs)s/server_exc.log
+
+[DECOMPILE]
+ClsClientTemp = %(DirTempCls)s/minecraft
+ClsServerTemp = %(DirTempCls)s/minecraft_server
+SrcClientTemp = %(DirTempSrc)s/minecraft
+SrcServerTemp = %(DirTempSrc)s/minecraft_server
+FFSource = net
+
+[OUTPUT]
+BinClientTemp = %(DirTempBin)s/minecraft
+BinServerTemp = %(DirTempBin)s/minecraft_server
+SrcClient = %(DirSrc)s/minecraft
+SrcServer = %(DirSrc)s/minecraft_server
+TestClient = net/minecraft/client/Minecraft
+TestServer = net/minecraft/server/MinecraftServer
+
+[PATCHES]
+PatchClient = %(DirConf)s/patches/minecraft.patch
+PatchServer = %(DirConf)s/patches/minecraft_server.patch
+PatchTemp = %(DirTemp)s/temp.patch
+FFPatchClient = %(DirConf)s/patches/minecraft_ff.patch
+FFPatchServer = %(DirConf)s/patches/minecraft_server_ff.patch
+PatchClient_osx = %(DirConf)s/patches/minecraft_osx.patch
+PatchServer_osx = %(DirConf)s/patches/minecraft_server_osx.patch
+
+[RECOMPILE]
+BinClient = %(DirBin)s/minecraft
+BinServer = %(DirBin)s/minecraft_server
+LogClient = %(DirLogs)s/client_compile.log
+LogServer = %(DirLogs)s/server_compile.log
+ClassPathClient = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/bin/minecraft.jar,%(DirJars)s/bin/jinput.jar,%(DirJars)s/bin/lwjgl.jar,%(DirJars)s/bin/lwjgl_util.jar
+ClassPathServer = %(DirLib)s/,%(DirLib)s/*,%(DirJars)s/minecraft_server.jar
+ClientFixes = %(DirConf)s/patches
+FixStart = Start
+IgnorePkg = paulscode,com/jcraft,isom,ibxm,de/matthiasmann/twl,org/xmlpull,javax/xml
+
+[REOBF]
+MD5Client = %(DirTemp)s/client.md5
+MD5Server = %(DirTemp)s/server.md5
+MD5PreReobfClient = %(DirTemp)s/client_reobf.md5
+MD5PreReobfServer = %(DirTemp)s/server_reobf.md5
+RecompJarClient = %(DirTemp)s/client_recomp.jar
+RecompJarServer = %(DirTemp)s/server_recomp.jar
+ObfJarClient = %(DirTemp)s/client_reobf.jar
+ObfJarServer = %(DirTemp)s/server_reobf.jar
+ReobfDirClient = %(DirReobf)s/minecraft
+ReobfDirServer = %(DirReobf)s/minecraft_server
+ClientRoLog = %(DirLogs)s/client_ro.log
+ServerRoLog = %(DirLogs)s/server_ro.log
+ReobfClientLog = %(DirLogs)s/client_reob.log
+ReobfServerLog = %(DirLogs)s/server_reob.log
+
+[GETMODSOURCE]
+OutSRCClient = %(DirModSrc)s/minecraft
+OutSRCServer = %(DirModSrc)s/minecraft_server
+
+[MCP]
+LogFile = %(DirLogs)s/mcp.log
+LogFileErr = %(DirLogs)s/mcperr.log
+UpdateUrl = http://mcp.ocean-labs.de/files/mcprolling_{version}/
+IgnoreUpdate = %(DirBin)s,%(DirLib)s,%(DirLogs)s,%(DirModSrc)s,%(DirReobf)s,%(DirSrc)s,%(DirTemp)s,%(DirEclipse)s/Client/bin,%(DirEclipse)s/Server/bin,%(DirJars)s/world,%(DirJars)s/saves,%(DirJars)s/resources
+RGIndex = 92000
+ParamIndex = 8000
+
+[ASTYLE]
+AstyleConfig = %(DirConf)s/astyle.cfg
+
+[COMMANDS]
+Wine = wine
+Patcher_win = %(DirRuntime)s/bin/applydiff.exe
+Patcher_linux = patch
+Patcher_osx = patch
+Jad_win = %(DirRuntime)s/bin/jad.exe
+Jad_osx = %(DirRuntime)s/bin/jad-osx
+AStyle_win = %(DirRuntime)s/bin/astyle.exe
+AStyle_linux = astyle
+AStyle_osx = %(DirRuntime)s/bin/astyle-osx
+JadRetro = %(DirRuntime)s/bin/jadretro.jar
+Fernflower = %(DirRuntime)s/bin/fernflower.jar
+Exceptor = %(DirRuntime)s/bin/mcinjector.jar
+CmdPatch = %s -p1 -u -i {patchfile} -d {srcdir}
+CmdJad = %s -b -d {outdir} -dead -o -r -s .java -stat -ff {classes}
+CmdAStyle = %s --suffix=none --quiet --options={conffile} {classes}
+CmdRG = %s -cp "{classpath}" RetroGuard -searge {conffile}
+CmdRGReobf = %s -cp "{classpath}" RetroGuard -notch {conffile}
+CmdJadretro = %s -jar %s {targetdir}
+CmdFernflower = %s -jar %s -din=0 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
+CmdExceptor = %s -jar %s {input} {output} {conf} {log}
+CmdRecomp = %s -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
+CmdStartSrv = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" net.minecraft.server.MinecraftServer
+CmdStartClt = %s -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" -Djava.library.path={natives} Start
diff --git a/docs/download.txt b/docs/download.txt
deleted file mode 100644
index 44b90e24..00000000
--- a/docs/download.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-.. image:: _static/img/dl.png
- :align: left
-
-`Inventory Tweaks 1.45 `_ for **Minecraft 1.4.4** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
-
-.. image:: _static/img/dl.png
- :align: left
-
-`Inventory Tweaks 1.44 `_ for **Minecraft 1.4.2** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
-
-.. image:: _static/img/dl.png
- :align: left
-
-`Inventory Tweaks 1.43b `_ for **Minecraft 1.3.2** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
\ No newline at end of file
diff --git a/docs/make.bat b/docs/make.bat
deleted file mode 100755
index 61f12477..00000000
--- a/docs/make.bat
+++ /dev/null
@@ -1,190 +0,0 @@
-@ECHO OFF
-
-REM Command file for Sphinx documentation
-
-if "%SPHINXBUILD%" == "" (
- set SPHINXBUILD=sphinx-build
-)
-set BUILDDIR=_build
-set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
-set I18NSPHINXOPTS=%SPHINXOPTS% .
-if NOT "%PAPER%" == "" (
- set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
- set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
-)
-
-if "%1" == "" goto help
-
-if "%1" == "help" (
- :help
- echo.Please use `make ^` where ^ is one of
- echo. html to make standalone HTML files
- echo. dirhtml to make HTML files named index.html in directories
- echo. singlehtml to make a single large HTML file
- echo. pickle to make pickle files
- echo. json to make JSON files
- echo. htmlhelp to make HTML files and a HTML help project
- echo. qthelp to make HTML files and a qthelp project
- echo. devhelp to make HTML files and a Devhelp project
- echo. epub to make an epub
- echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
- echo. text to make text files
- echo. man to make manual pages
- echo. texinfo to make Texinfo files
- echo. gettext to make PO message catalogs
- echo. changes to make an overview over all changed/added/deprecated items
- echo. linkcheck to check all external links for integrity
- echo. doctest to run all doctests embedded in the documentation if enabled
- goto end
-)
-
-if "%1" == "clean" (
- for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
- del /q /s %BUILDDIR%\*
- goto end
-)
-
-if "%1" == "html" (
- %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/html.
- goto end
-)
-
-if "%1" == "dirhtml" (
- %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
- goto end
-)
-
-if "%1" == "singlehtml" (
- %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
- goto end
-)
-
-if "%1" == "pickle" (
- %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can process the pickle files.
- goto end
-)
-
-if "%1" == "json" (
- %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can process the JSON files.
- goto end
-)
-
-if "%1" == "htmlhelp" (
- %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can run HTML Help Workshop with the ^
-.hhp project file in %BUILDDIR%/htmlhelp.
- goto end
-)
-
-if "%1" == "qthelp" (
- %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; now you can run "qcollectiongenerator" with the ^
-.qhcp project file in %BUILDDIR%/qthelp, like this:
- echo.^> qcollectiongenerator %BUILDDIR%\qthelp\InventoryTweaks.qhcp
- echo.To view the help file:
- echo.^> assistant -collectionFile %BUILDDIR%\qthelp\InventoryTweaks.ghc
- goto end
-)
-
-if "%1" == "devhelp" (
- %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished.
- goto end
-)
-
-if "%1" == "epub" (
- %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The epub file is in %BUILDDIR%/epub.
- goto end
-)
-
-if "%1" == "latex" (
- %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
- goto end
-)
-
-if "%1" == "text" (
- %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The text files are in %BUILDDIR%/text.
- goto end
-)
-
-if "%1" == "man" (
- %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The manual pages are in %BUILDDIR%/man.
- goto end
-)
-
-if "%1" == "texinfo" (
- %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
- goto end
-)
-
-if "%1" == "gettext" (
- %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
- if errorlevel 1 exit /b 1
- echo.
- echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
- goto end
-)
-
-if "%1" == "changes" (
- %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
- if errorlevel 1 exit /b 1
- echo.
- echo.The overview file is in %BUILDDIR%/changes.
- goto end
-)
-
-if "%1" == "linkcheck" (
- %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
- if errorlevel 1 exit /b 1
- echo.
- echo.Link check complete; look for any errors in the above output ^
-or in %BUILDDIR%/linkcheck/output.txt.
- goto end
-)
-
-if "%1" == "doctest" (
- %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
- if errorlevel 1 exit /b 1
- echo.
- echo.Testing of doctests in the sources finished, look at the ^
-results in %BUILDDIR%/doctest/output.txt.
- goto end
-)
-
-:end
diff --git a/docs/Makefile b/invtweaks_docs/Makefile
old mode 100755
new mode 100644
similarity index 100%
rename from docs/Makefile
rename to invtweaks_docs/Makefile
diff --git a/docs/README.md b/invtweaks_docs/README.md
similarity index 100%
rename from docs/README.md
rename to invtweaks_docs/README.md
diff --git a/docs/_static/img/button10px.png b/invtweaks_docs/_static/img/button10px.png
similarity index 100%
rename from docs/_static/img/button10px.png
rename to invtweaks_docs/_static/img/button10px.png
diff --git a/docs/_static/img/demo.jpg b/invtweaks_docs/_static/img/demo.jpg
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/demo.jpg
rename to invtweaks_docs/_static/img/demo.jpg
diff --git a/docs/_static/img/dl.png b/invtweaks_docs/_static/img/dl.png
similarity index 100%
rename from docs/_static/img/dl.png
rename to invtweaks_docs/_static/img/dl.png
diff --git a/docs/_static/img/flag/cn.png b/invtweaks_docs/_static/img/flag/cn.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/cn.png
rename to invtweaks_docs/_static/img/flag/cn.png
diff --git a/docs/_static/img/flag/dk.png b/invtweaks_docs/_static/img/flag/dk.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/dk.png
rename to invtweaks_docs/_static/img/flag/dk.png
diff --git a/docs/_static/img/flag/es.png b/invtweaks_docs/_static/img/flag/es.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/es.png
rename to invtweaks_docs/_static/img/flag/es.png
diff --git a/docs/_static/img/flag/fr.png b/invtweaks_docs/_static/img/flag/fr.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/fr.png
rename to invtweaks_docs/_static/img/flag/fr.png
diff --git a/docs/_static/img/flag/it.png b/invtweaks_docs/_static/img/flag/it.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/it.png
rename to invtweaks_docs/_static/img/flag/it.png
diff --git a/docs/_static/img/flag/jp.png b/invtweaks_docs/_static/img/flag/jp.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/jp.png
rename to invtweaks_docs/_static/img/flag/jp.png
diff --git a/docs/_static/img/flag/kr.png b/invtweaks_docs/_static/img/flag/kr.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/kr.png
rename to invtweaks_docs/_static/img/flag/kr.png
diff --git a/docs/_static/img/flag/nl.png b/invtweaks_docs/_static/img/flag/nl.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/nl.png
rename to invtweaks_docs/_static/img/flag/nl.png
diff --git a/docs/_static/img/flag/pl.png b/invtweaks_docs/_static/img/flag/pl.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/pl.png
rename to invtweaks_docs/_static/img/flag/pl.png
diff --git a/docs/_static/img/flag/pt.png b/invtweaks_docs/_static/img/flag/pt.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/pt.png
rename to invtweaks_docs/_static/img/flag/pt.png
diff --git a/docs/_static/img/flag/ru.png b/invtweaks_docs/_static/img/flag/ru.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/ru.png
rename to invtweaks_docs/_static/img/flag/ru.png
diff --git a/docs/_static/img/flag/tw.png b/invtweaks_docs/_static/img/flag/tw.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/tw.png
rename to invtweaks_docs/_static/img/flag/tw.png
diff --git a/docs/_static/img/flag/us.png b/invtweaks_docs/_static/img/flag/us.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/flag/us.png
rename to invtweaks_docs/_static/img/flag/us.png
diff --git a/docs/_static/img/invtweaks.png b/invtweaks_docs/_static/img/invtweaks.png
old mode 100755
new mode 100644
similarity index 100%
rename from docs/_static/img/invtweaks.png
rename to invtweaks_docs/_static/img/invtweaks.png
diff --git a/docs/_themes/nature-custom/static/nature.css_t b/invtweaks_docs/_themes/nature-custom/static/nature.css_t
similarity index 100%
rename from docs/_themes/nature-custom/static/nature.css_t
rename to invtweaks_docs/_themes/nature-custom/static/nature.css_t
diff --git a/docs/_themes/nature-custom/static/pygments.css b/invtweaks_docs/_themes/nature-custom/static/pygments.css
similarity index 100%
rename from docs/_themes/nature-custom/static/pygments.css
rename to invtweaks_docs/_themes/nature-custom/static/pygments.css
diff --git a/docs/_themes/nature-custom/theme.conf b/invtweaks_docs/_themes/nature-custom/theme.conf
similarity index 100%
rename from docs/_themes/nature-custom/theme.conf
rename to invtweaks_docs/_themes/nature-custom/theme.conf
diff --git a/docs/changelog.txt b/invtweaks_docs/changelog.txt
old mode 100755
new mode 100644
similarity index 96%
rename from docs/changelog.txt
rename to invtweaks_docs/changelog.txt
index d346cbcf..42d4ae3b
--- a/docs/changelog.txt
+++ b/invtweaks_docs/changelog.txt
@@ -3,7 +3,13 @@
Latest changes
==============
-`[11.15.2012] 1.45 (1.4.4) ??>`_
+`[01.17.2013] 1.50 (1.4.7) `_
+ * Switched sources to MCP (= faster to update, easier to contribute)
+ * Middle click evens the stacks on crafting tables (thanks to InvTweaks-1.50-1.4.7.zip)
+ * Removed uneffective NoCheatPlus hack, put a help screen instead
+ * Fix chests being sometimes left open forever
+
+`[11.15.2012] 1.45 (1.4.4) `_
* Added Beta option to make the mod work on anti-cheat servers
* Fixed the potato IDs in the item tree (delete config/InvTweaksTree.txt to refresh it)
* Added Norwegian translation (thanks to mymusicmanager)
diff --git a/docs/conf.py b/invtweaks_docs/conf.py
old mode 100755
new mode 100644
similarity index 98%
rename from docs/conf.py
rename to invtweaks_docs/conf.py
index 6da5f333..96d9556e
--- a/docs/conf.py
+++ b/invtweaks_docs/conf.py
@@ -20,6 +20,12 @@
# -- General configuration -----------------------------------------------------
+# INVENTORY TWEAKS VERSION
+invtweaks_version = '1.50'
+
+
+
+
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
@@ -48,9 +54,9 @@
# built documents.
#
# The short X.Y version.
-version = '1.45'
+version = invtweaks_version
# The full version, including alpha/beta/rc tags.
-release = '1.45'
+release = invtweaks_version
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/invtweaks_docs/download.txt b/invtweaks_docs/download.txt
new file mode 100644
index 00000000..4ed931c3
--- /dev/null
+++ b/invtweaks_docs/download.txt
@@ -0,0 +1,14 @@
+.. image:: _static/img/dl.png
+ :align: left
+
+`Inventory Tweaks 1.50 `_ for **Minecraft 1.4.6/1.4.7** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
+
+.. image:: _static/img/dl.png
+ :align: left
+
+`Inventory Tweaks 1.45 `_ for **Minecraft 1.4.4/1.4.5** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
+
+.. image:: _static/img/dl.png
+ :align: left
+
+`Inventory Tweaks 1.43b `_ for **Minecraft 1.3.2** (requires `Forge `_ or `ModLoader `_) | `Mirror `_
\ No newline at end of file
diff --git a/docs/index.txt b/invtweaks_docs/index.txt
old mode 100755
new mode 100644
similarity index 96%
rename from docs/index.txt
rename to invtweaks_docs/index.txt
index 14cb3314..d26920d5
--- a/docs/index.txt
+++ b/invtweaks_docs/index.txt
@@ -52,7 +52,9 @@ Just start playing Minecraft, you can already use most features of the mod. Noti
Inventory sorting
~~~~~~~~~~~~~~~~~
-Trigger the sorting in your inventory by using the **middle click**, or by pressing **R** (by default), at any time. If you want to change the shortcut, you can do that from the "..." menu in your inventory.
+Trigger the sorting in your inventory by using the **middle click**, or by pressing **R** (by default), at any time. If you want to change the shortcut, you can do that from the "..." menu in your inventory.
+
+Tip: The middle click shortcut behaves differently if you target the **crafting input**: in that case, it will adjust the item amounts to balance them, helping optimize your recipe input. For example, if you want to make sticks, it will make sure your wood will be split equally between the top and the bottom stack.
Chests sorting
~~~~~~~~~~~~~~
diff --git a/docs/index_cn.txt b/invtweaks_docs/index_cn.txt
similarity index 100%
rename from docs/index_cn.txt
rename to invtweaks_docs/index_cn.txt
diff --git a/docs/index_de.txt b/invtweaks_docs/index_de.txt
similarity index 100%
rename from docs/index_de.txt
rename to invtweaks_docs/index_de.txt
diff --git a/docs/index_dk.txt b/invtweaks_docs/index_dk.txt
similarity index 100%
rename from docs/index_dk.txt
rename to invtweaks_docs/index_dk.txt
diff --git a/docs/index_es.txt b/invtweaks_docs/index_es.txt
similarity index 100%
rename from docs/index_es.txt
rename to invtweaks_docs/index_es.txt
diff --git a/docs/index_fr.txt b/invtweaks_docs/index_fr.txt
similarity index 100%
rename from docs/index_fr.txt
rename to invtweaks_docs/index_fr.txt
diff --git a/docs/index_it.txt b/invtweaks_docs/index_it.txt
similarity index 100%
rename from docs/index_it.txt
rename to invtweaks_docs/index_it.txt
diff --git a/docs/index_jp.txt b/invtweaks_docs/index_jp.txt
similarity index 100%
rename from docs/index_jp.txt
rename to invtweaks_docs/index_jp.txt
diff --git a/docs/index_kr.txt b/invtweaks_docs/index_kr.txt
similarity index 100%
rename from docs/index_kr.txt
rename to invtweaks_docs/index_kr.txt
diff --git a/docs/index_nl.txt b/invtweaks_docs/index_nl.txt
similarity index 100%
rename from docs/index_nl.txt
rename to invtweaks_docs/index_nl.txt
diff --git a/docs/index_pl.txt b/invtweaks_docs/index_pl.txt
similarity index 100%
rename from docs/index_pl.txt
rename to invtweaks_docs/index_pl.txt
diff --git a/docs/index_pt.txt b/invtweaks_docs/index_pt.txt
similarity index 100%
rename from docs/index_pt.txt
rename to invtweaks_docs/index_pt.txt
diff --git a/docs/index_ru.txt b/invtweaks_docs/index_ru.txt
similarity index 100%
rename from docs/index_ru.txt
rename to invtweaks_docs/index_ru.txt
diff --git a/docs/index_tw.txt b/invtweaks_docs/index_tw.txt
similarity index 100%
rename from docs/index_tw.txt
rename to invtweaks_docs/index_tw.txt
diff --git a/docs/langs.txt b/invtweaks_docs/langs.txt
similarity index 100%
rename from docs/langs.txt
rename to invtweaks_docs/langs.txt
diff --git a/invtweaks_scripts/copy_resources.py b/invtweaks_scripts/copy_resources.py
new file mode 100644
index 00000000..3c3ca061
--- /dev/null
+++ b/invtweaks_scripts/copy_resources.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+
+import shutil
+import sys
+import os
+
+# Functions
+
+INVTWEAKS_SRC = 'src/minecraft/invtweaks/'
+INVTWEAKS_BIN = 'bin/minecraft/invtweaks/'
+
+def copy_resource_tree(resource):
+ shutil.rmtree(INVTWEAKS_BIN + resource, True)
+ shutil.copytree(INVTWEAKS_SRC + resource, INVTWEAKS_BIN + resource)
+
+def copy_resource(resource):
+ try:
+ os.remove(INVTWEAKS_BIN + resource)
+ except OSError:
+ pass
+ shutil.copy(INVTWEAKS_SRC + resource, INVTWEAKS_BIN + resource)
+
+# Resources copy
+
+print 'Copying InvTweaks resources...'
+
+copy_resource_tree('lang/')
+copy_resource('DefaultConfig.dat')
+copy_resource('DefaultTree.dat')
+
+print 'OK!'
\ No newline at end of file
diff --git a/invtweaks_scripts/package_mod.py b/invtweaks_scripts/package_mod.py
new file mode 100644
index 00000000..9d3a9328
--- /dev/null
+++ b/invtweaks_scripts/package_mod.py
@@ -0,0 +1,60 @@
+# -*- coding: utf-8 -*-
+
+import shutil
+import sys
+import os
+import zipfile
+
+# Constants
+
+INVTWEAKS_SRC = 'src/minecraft/invtweaks'
+INVTWEAKS_CLASS = 'reobf/minecraft'
+INVTWEAKS_TMP = 'temp/invtweaks'
+
+# Remove tmp dir
+
+shutil.rmtree(INVTWEAKS_TMP, True)
+
+# Gather files
+
+print 'Packaging InvTweaks...'
+
+shutil.copytree(INVTWEAKS_CLASS, INVTWEAKS_TMP)
+shutil.copy(INVTWEAKS_SRC + '/DefaultConfig.dat', INVTWEAKS_TMP + '/invtweaks/DefaultConfig.dat')
+shutil.copy(INVTWEAKS_SRC + '/DefaultTree.dat', INVTWEAKS_TMP + '/invtweaks/DefaultTree.dat')
+shutil.copytree(INVTWEAKS_SRC + '/lang', INVTWEAKS_TMP + '/invtweaks/lang')
+shutil.copy('LICENSE.md', INVTWEAKS_TMP + '/LICENSE.txt')
+
+# Zip
+
+def get_compression_mode():
+ try:
+ import zlib
+ return zipfile.ZIP_DEFLATED
+ except:
+ print '(...but without compressing)'
+ return zipfile.ZIP_STORED
+
+def write_to_zip(zip, compression, path):
+ archive_path = path.replace(INVTWEAKS_TMP, '')
+ zip.write(path, arcname=archive_path, compress_type=compression)
+
+def list_files_recursive(folder):
+ contents = []
+ for folder_element in os.listdir(folder):
+ sys.stdout.write(folder_element + '\n')
+ if os.path.isfile(folder_element):
+ contents.append(folder_element)
+ else:
+ contents.extend(list_files_recursive(folder_element))
+ return contents
+
+print 'Zipping InvTweaks...'
+
+compression_mode = get_compression_mode()
+invtweaks_zip = zipfile.ZipFile('InvTweaks-DEV.zip', mode='w')
+for root, dirs, files in os.walk(INVTWEAKS_TMP):
+ for file in files:
+ write_to_zip(invtweaks_zip, compression_mode, root + '/' + file)
+
+print 'OK!'
\ No newline at end of file
diff --git a/obfutils.sh b/obfutils.sh
deleted file mode 100755
index 356a6ef1..00000000
--- a/obfutils.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-# Replacement utils, helpful when updating the mod.
-# @author Jimeo Wan
-# License: MIT
-
-# Replace class names
-if [[ ($1 == "-class") && $2 && $3 ]]
-then
- sed -i "s/\([(< ]\)$2\([)> ]\)/\1$3\2/" src/*.java
-
-else
- HELP=1
-fi
-
-# Help
-if [ $help ]
-then
- echo 'Usage:'
- echo 'obfutils.sh -class FROMCLASS TOCLASS'
-fi
-
diff --git a/pom.xml b/pom.xml
deleted file mode 100755
index de1dfc8a..00000000
--- a/pom.xml
+++ /dev/null
@@ -1,155 +0,0 @@
-
- 4.0.0
-
- net.jimeowan
- inventory-tweaks
- 1.45-1.4.4
- jar
- Inventory Tweaks
-
-
- UTF-8
- InvTweaks-${project.version}
-
-
-
- ${archive.name}
-
-
- src
-
-
- .
- false
- src
-
- doc/*
- invtweaks/lang/*
- *.dat
-
-
- *.java
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 2.3.2
-
-
- 1.6
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- 1.6
-
-
-
- move
-
- run
-
- package
-
-
-
-
-
-
-
-
- deploy
-
- run
-
- install
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- minecraft-path-windows
-
-
- windows
-
-
-
- ${user.home}/AppData/Roaming/.minecraft/
- ${minecraft.path}bin/
-
-
-
- minecraft-path-linux
-
-
- unix
-
-
-
- ${user.home}/.minecraft/
- ${minecraft.path}bin/
-
-
-
- minecraft-path-mac
-
-
- unix
- mac os x
-
-
-
- ${user.home}/Library/Application Support/minecraft/
- ${minecraft.path}bin/
-
-
-
-
-
-
-
- net.minecraft
- minecraft
- any
- system
- ${minecraft.bin.path}minecraft.jar
-
-
- net.minecraft
- lwjgl
- 1.8
- system
- ${minecraft.bin.path}lwjgl.jar
-
-
- net.minecraft
- lwjgl_util
- 1.8
- system
- ${minecraft.bin.path}lwjgl_util.jar
-
-
-
-
diff --git a/recompile.bat b/recompile.bat
new file mode 100644
index 00000000..c97cdbb5
--- /dev/null
+++ b/recompile.bat
@@ -0,0 +1,4 @@
+@echo off
+runtime\bin\python\python_mcp runtime\recompile.py %*
+runtime\bin\python\python_mcp invtweaks_scripts\copy_resources.py
+pause
diff --git a/recompile.sh b/recompile.sh
new file mode 100644
index 00000000..abdb34b3
--- /dev/null
+++ b/recompile.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+python runtime/recompile.py "$@"
+python invtweaks_scripts/copy_resources.py
\ No newline at end of file
diff --git a/reobfuscate.bat b/reobfuscate.bat
new file mode 100755
index 00000000..493583f0
--- /dev/null
+++ b/reobfuscate.bat
@@ -0,0 +1,4 @@
+@echo off
+runtime\bin\python\python_mcp runtime\reobfuscate.py %*
+runtime\bin\python\python_mcp invtweaks_scripts\package_mod.py
+pause
diff --git a/reobfuscate.sh b/reobfuscate.sh
new file mode 100755
index 00000000..6ee02adb
--- /dev/null
+++ b/reobfuscate.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+python runtime/reobfuscate.py "$@"
+python invtweaks_scripts/package_mod.py
diff --git a/src/InvTweaksObfuscation.java b/src/InvTweaksObfuscation.java
deleted file mode 100755
index 5df19d1f..00000000
--- a/src/InvTweaksObfuscation.java
+++ /dev/null
@@ -1,492 +0,0 @@
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Logger;
-
-import net.minecraft.client.Minecraft;
-
-/**
- * Minecraft 1.3 Obfuscation layer
- *
- * @author Jimeo Wan
- *
- */
-public class InvTweaksObfuscation {
-
- private static final Logger log = Logger.getLogger("InvTweaks");
-
- protected Minecraft mc;
-
- protected InvTweaksModCompatibility mods;
-
- private static Map fieldsMap = new HashMap();
-
- static {
- // CreativeSlot.underlyingSlot
- makeFieldPublic(avn.class, "b");
- // RenderEngine.texturePack
- makeFieldPublic(bap.class, "k");
- }
-
- public InvTweaksObfuscation(Minecraft mc) {
- this.mc = mc;
- this.mods = new InvTweaksModCompatibility(this);
- }
-
- // Minecraft members
-
- protected void addChatMessage(String message) {
- if (mc.v != null) {
- mc.v.b().a(message);
- }
- }
- protected ayk getThePlayer() { // EntityPlayer
- return mc.g;
- }
- protected ayh getTheWorld() { // World
- return mc.e;
- }
- protected ayg getPlayerController() { // PlayerController
- return mc.b;
- }
- protected aue getCurrentScreen() { // GuiScreen
- return mc.r;
- }
- protected atj getFontRenderer() { // FontRenderer
- return mc.p;
- }
- protected void displayGuiScreen(aue parentScreen) {
- mc.a(parentScreen);
- }
- protected int getDisplayWidth() {
- return mc.c;
- }
- protected int getDisplayHeight() {
- return mc.d;
- }
- protected asl getGameSettings() {
- return mc.y;
- }
- public arn[] getRegisteredBindings() {
- return getGameSettings().P;
- }
- public void setRegisteredBindings(arn[] bindings) {
- getGameSettings().P = bindings;
- }
- protected int getKeyBindingForwardKeyCode() {
- return getKeyCode(getGameSettings().B);
- }
- protected int getKeyBindingBackKeyCode() {
- return getKeyCode(getGameSettings().D);
- }
-
- // EntityPlayer members
-
- protected qw getInventoryPlayer() { // InventoryPlayer
- return getThePlayer().bI;
- }
- protected um getCurrentEquippedItem() { // ItemStack
- return getThePlayer().bT();
- }
- protected rp getCraftingInventory() { // Container
- return getThePlayer().bJ;
- }
- protected rp getPlayerContainer() { // ContainerPlayer
- return (rp) getThePlayer().bJ; // MCP name: inventorySlots // XXX Why the same as craftying inventory?
- }
-
- // InventoryPlayer members
-
- protected um[] getMainInventory() {
- return getInventoryPlayer().a;
- }
- protected void setMainInventory(um[] value) {
- getInventoryPlayer().a = value;
- }
- protected void setHasInventoryChanged(boolean value) {
- getInventoryPlayer().e = value;
- }
- protected void setHeldStack(um stack) {
- getInventoryPlayer().b(stack); // setItemStack
- }
- protected boolean hasInventoryChanged() {
- return getInventoryPlayer().e;
- }
- protected um getHeldStack() {
- return getInventoryPlayer().n(); // getItemStack
- }
- protected um getFocusedStack() {
- return getInventoryPlayer().g(); // getCurrentItem
- }
- protected int getFocusedSlot() {
- return getInventoryPlayer().c; // currentItem
- }
-
- // GuiScreen members
-
- protected int getWindowWidth(aue guiScreen) {
- return guiScreen.g;
- }
- protected int getWindowHeight(aue guiScreen) {
- return guiScreen.h;
- }
- protected int getGuiX(auy guiContainer) { // GuiContainer
- return guiContainer.n;
- }
- protected int getGuiY(auy guiContainer) {
- return guiContainer.o;
- }
- protected int getGuiWidth(auy guiContainer) { // GuiContainer
- return guiContainer.b;
- }
- protected int getGuiHeight(auy guiContainer) {
- return guiContainer.c;
- }
- @SuppressWarnings("unchecked")
- protected List