Compare commits

..
245 Commits
Author SHA1 Message Date
Christian d5af053edb First draft 1.7.9 support.
This is not modding minecraft. It's performing an update. Go away!
2014-05-17 16:30:13 -04:00
Christian 43e3ee1af1 Swap Listenerlist constructor around. Should fix parent resizing issue? 2014-05-14 14:22:51 -04:00
Christian 70570a863f Fix up possible CME 2014-05-13 15:11:50 -04:00
Christian 503da3a257 Don't consider null NetworkDispatchers. This should fix a bunch of fakeplayer issues.
Nothing to see here. No modding being done.
2014-05-13 08:14:21 -04:00
cpw 42713c66e5 Merge pull request #426 from sfPlayer1/master
Fix ObjectIntIdentityMap sporadically matching non-identical objects.
2014-05-12 10:50:20 -04:00
Player 8dbd1ae0a1 Fix ObjectIntIdentityMap sporadically matching non-identical objects. 2014-05-12 16:29:37 +02:00
Christian a8cbef2321 Finally hopefully fully kills the race condition causing a classcast
on slow machines.

This is me bugfixing. NOT MODDING! No! Stop it! I'm not!
2014-05-11 22:15:29 -04:00
Christian 5275cea844 Try and see if there is anything to the identityHashCode collision hypothesis. If you see this in your error messages, kindly let us know! 2014-05-10 14:53:08 -04:00
Christian d8b6adb259 Add a helper for casting some common collection types into generic form 2014-05-10 13:36:24 -04:00
Lex Manos 0c36868f92 Fix network disconnect with message on the client side in NetworkDispatcher. 2014-05-09 13:23:24 -07:00
Lex Manos f2fe80dc36 Fixed default network mod checking to allow client side mods without the server side. Mods wishing to REQUIRE server side components must specify a custom check handler using @NetworkCheckHandler 2014-05-09 13:22:54 -07:00
Christian cd43eacbb2 Ensure that the loadcontroller is ready to preinit. 2014-05-08 10:40:52 -04:00
Christian de546bdf6c Clean up some missing generic info
PS: NOPE: still not modding.
2014-05-08 10:36:01 -04:00
Christian b0eb1ef7c6 Split loadmods into loadmods and preinitmods, to allow resource loading to occur *always* between the two phases. This should fix
mods not being able to access resources during preinit.

PS: I'm still not modding.
2014-05-08 10:23:05 -04:00
Christian 738ce1d7cd Re-add removed genericiterable to clean a warning 2014-05-08 09:58:03 -04:00
Christian b9de9ebc96 Revert "Fix refreshResources not happening if an error occurs."
This reverts commit fff86ee9d3.
2014-05-08 09:56:43 -04:00
LexManos 362ec8dee7 Merge pull request #419 from Thog92/master
updated wrapper to gradle 1.12
2014-05-07 15:41:05 -07:00
LexManos ddc2cfbe86 Merge pull request #402 from AbrarSyed/patch-1
Added dependency examples to the shipped example mod's build.gradle.
2014-05-07 15:40:50 -07:00
AbrarSyed 542e9acec1 documented dependencies 2014-05-07 17:34:44 -05:00
Lex Manos 1436ac2f14 Fine use FMLCommonHandler. 2014-05-07 14:36:00 -07:00
Lex Manos c73a2076e3 Fix potential rance condition in connecting to vanilla servers as well. And move latch into client side only. 2014-05-07 13:54:22 -07:00
Lex Manos 3612ad0c25 Attempt to fix another race condition related to reading NetClientHandler. 2014-05-07 13:31:16 -07:00
LexManos 1d5fc60f82 Merge pull request #411 from matthewprenger/master
Update ExampleMod mcmod.info
2014-05-07 12:39:12 -07:00
Thog92 8555344eb3 updated wrapper to gradle 1.12 2014-05-06 22:03:44 +02:00
Lex Manos 251af1d09d Fixed memory leak on the client caused by Netty holding references to the World. Closes #415 #417 2014-05-05 22:14:13 -07:00
Christian b84d0760ae Fix display of mod status at the server 2014-04-30 22:47:10 -04:00
Christian 76d8d0e870 Fix mod version checking 2014-04-30 22:26:16 -04:00
Christian fff86ee9d3 Fix refreshResources not happening if an error occurs. 2014-04-30 21:55:55 -04:00
Christian 810b1f3075 Clean some generic warnings up. Make a generic list handler. Helpful for others I think too. 2014-04-30 21:55:55 -04:00
LexManos d0f8073fa5 Merge pull request #413 from sfPlayer1/master
backup+default block use fix
2014-04-30 10:12:21 -07:00
Player 2c56c32c5a Fix saving backups with the raw name.
Fix air block not being assigned as the default.
2014-04-30 09:44:09 +02:00
Matthew Prenger a70308ef41 Update mcmod.info 2014-04-28 22:27:52 -05:00
Player 78248da399 Registry: Treat all 1.6 entries as items. 2014-04-26 21:56:25 +02:00
Player 7ba167c500 Registry: Misc tweaks 2014-04-26 21:56:25 +02:00
Player 9b1cbab03b Registry: Crash earlier with conflicting name/object registrations. 2014-04-26 21:56:25 +02:00
Player d88b2aa0c5 prevent the world from getting saved twice at shutdown 2014-04-26 21:56:25 +02:00
Player 59a5adfdb3 Registry: Fix Block-before-ItemBlock allocation when loading 1.6 world saves, more validation 2014-04-26 21:56:25 +02:00
Player ddee7eb117 Fix vanilla bug causing integrated server saving from 2 threads concurrently after a crash 2014-04-26 21:56:25 +02:00
Christian 2b8d0f6680 Fix SimpleNetworkWrapper - this is not me modding,
I didn't realize it was broken until Pahimar told me.

Put an example in the docs.
2014-04-26 09:33:09 -04:00
Christian 7f01cf549b I'm still not modding. Player has contributed greatly to the 1.7 release of FML. He needs authorship credit. 2014-04-19 11:38:46 -04:00
Christian 77c254a6d9 I am not modding, I am fixing an annoyance. The MCP version has long since been 9.03. Also, the JSON from MC updated.. 2014-04-19 10:46:04 -04:00
LexManos 3b42b33b6e Merge pull request #400 from sfPlayer1/master
Fix various registry issues
2014-04-07 09:57:13 -07:00
Player 294c93212c Registry: Add support for registering ItemBlocks before their Blocks 2014-04-07 17:30:38 +02:00
Player 8e44006f43 Registry: Protect against putObject misuse, handle duplicate registrations better 2014-04-06 17:11:23 +02:00
Player c8a0b72eba Registry: Complain about missing mods when repairing broken worlds
Registry: Reduce console spam
2014-04-06 14:49:59 +02:00
Player c8a245a985 Registry: Fix debug info 2014-04-05 01:54:07 +02:00
Player c7adb42199 Registry: Repair mismatched ItemBlocks as well
Fix a few misc issues
2014-04-05 01:47:19 +02:00
Player f77632df35 Remove unneeded entity spawn debug logging. 2014-04-03 21:00:42 +02:00
Player c47fc3b382 Enable custom gui rendering only as required 2014-04-03 17:58:53 +02:00
Player fd6d55afcc Registry: Allow ignoring missing mods from the GUI, with confirm+backup
Registry: Add confirm+backup for automated corrupted id table fixup
Require the user to confirm loading from a backup level.dat
2014-04-01 21:56:53 +02:00
Player 9be92dcfcb Registry: Complain about bogus registrations 2014-04-01 14:40:24 +02:00
Player 49c623f59c initial attempt at a better way to ask the user in case of startup issues 2014-04-01 14:30:47 +02:00
Player 038fa17ad3 Merge branch 'master' of https://github.com/MinecraftForge/FML
Conflicts:
	src/main/java/cpw/mods/fml/client/FMLClientHandler.java
	src/main/java/cpw/mods/fml/client/GuiModItemsMissing.java
	src/main/java/cpw/mods/fml/common/FMLContainer.java
	src/main/java/cpw/mods/fml/common/registry/FMLControlledNamespacedRegistry.java
	src/main/java/cpw/mods/fml/common/registry/GameData.java
2014-04-01 07:00:20 +02:00
Lex Manos 58a4095f56 Update patches for Fixed FF in FG 1.2. 2014-03-31 16:02:54 -07:00
Player 6fd3c12a4a Registry: allow handling missing blocks/items regardless of the mod id 2014-03-31 04:09:59 +02:00
Player eb29d651eb Fix old 1.7 worlds with broken ID mappings 2014-03-30 17:17:54 +02:00
Player 7325aa5033 Registry: cleanup, fix missing id error GUI formatting 2014-03-27 08:30:55 +01:00
LexManos 89cda92561 Merge pull request #392 from AbrarSyed/master
Updated to ForgeGradle 1.2
2014-03-26 16:04:30 -07:00
AbrarSyed 385beb504d updated wrapper to gradle 1.11 2014-03-26 13:34:25 -05:00
AbrarSyed 2b46906ac5 updated example a little 2014-03-26 13:34:01 -05:00
Player 5eebd4df71 Registry: Implement support for remapping blocks/items to a new name. 2014-03-25 00:36:37 +01:00
Player fd9389015f Fix FMLMissingMappingsEvent.get 2014-03-24 21:47:25 +01:00
Player a82195772e Registry: Block IDs after failing to find a mapping for them 2014-03-24 21:16:36 +01:00
Player e58562d3ed Fix remaining issue with autoassigned Block and Item IDs overlapping. 2014-03-20 23:41:01 +01:00
AbrarSyed c3912836dc updated for ForgeGradle 1.2 2014-03-19 02:15:53 -05:00
LexManos 40270c881a Update README.txt 2014-03-18 01:54:32 -05:00
Lex Manos c2143dbeb1 Fix network close events never getting called. Closes #381 #382 2014-03-15 18:16:27 -07:00
Lex Manos f08b485852 Fix long standing deobf issue that caused announce-player-achievements property to have no effect on dedicated servers. 2014-03-11 01:57:44 -07:00
Lex Manos ef07de4f65 Fix hard link to DedicatedSerever when opening a LAN connection causing stalls on connecting. 2014-03-11 00:50:55 -07:00
Lex Manos b7ad532ab5 Re-enable post initalize texture pack reloading to allow Icons to be registerd through any init phase. 2014-03-03 23:23:55 -08:00
Lex Manos 399770e572 Kill the modEventTypes list, register anything that extends FMLEvent, Fixes MissingMappingEvent handler, and any future events added. 2014-02-25 12:30:29 -08:00
Lex Manos e8b60441cc Reload game settings after mod loading is finished to capture mod keybindings. Closes #378 2014-02-22 20:59:25 -08:00
Christian d0dd05a15c FML expands S3F to support payloads up to 2 megs in size. Should be transparent 2014-02-16 18:30:27 -05:00
cpw 572d32358a Merge pull request #373 from bloodmc/master
Prevent player data getting reset during disconnects.
2014-02-14 10:57:50 -07:00
cpw 33100d6bab Merge pull request #371 from bl4ckscor3/patch-1
Fix ExampleMod.java for build #1024+
2014-02-14 10:57:32 -07:00
bloodshot 45409bfa0c Prevent player dat files getting reset during disconnects.
Since FML nulls out the player's playerNetServerHandler during login, we need to
make sure that writePlayerData does not attempt to overwrite the player's dat file
if the player disconnects during the "Logging In" process.
2014-02-13 02:44:18 -05:00
Christian fa5f4c8842 Some argumentation 2014-02-08 22:41:02 -05:00
Christian 995c204338 Fix failing to load a world with missing mod blocks and items. There will be a way to force worlds to load
when stuff is missing, but for right now, it will fail as this is "world safe".
2014-02-08 22:37:40 -05:00
Christian c890206268 Try and handle removal of mods a bit better. Currently no way to allow a world which has missing
blocks to load - but i have the code in place to allow it i think.
2014-02-08 12:18:34 -05:00
bl4ckscor3 2aa73afa15 Fix ExampleMod.java for build #1024+ 2014-02-08 12:34:01 +01:00
Dan Roque 064b66af3d Prevent players from logging in until server has finished starting.
This improves server security as it guarantees no players will be
allowed to connect until the server has fully initialized.
2014-02-05 20:49:10 -05:00
Lex Manos 8c9e8b5270 Fix isRemote, this is integral to so many parts of the code, everyone knows it by this name, People should not change it. 2014-02-04 23:40:50 -08:00
Lex Manos b7b3450dcd Update MCP mapping snapshot to latest crowdsourced names. 2014-02-04 22:56:27 -08:00
Christian 6bb9b8b953 Clean up FMLEventChannel. Closes #367. 2014-02-04 20:01:44 -05:00
Lex Manos 03fb1879d7 Fix obf error when right clicking a Empty Map. 2014-02-04 12:49:18 -08:00
Christian cee0f0b811 Tweak so that writing to the context will automatically send a message back to
the originator in handshakeestablished.
2014-02-02 12:11:57 -05:00
Christian 359ac3ca2a Ensure we check both item and block registries when finding valid IDs. Should fix #365 2014-02-01 11:05:33 +00:00
Lex Manos d87822ad85 Bump gradle wrapper to 1.10 2014-01-29 21:04:55 -08:00
Christian 8633d780c9 And make a loud message if there isn't a modcontainer found, substitute Minecraft. In general, this can only happen
for coremods not properly registering their code. Closes #363
2014-01-25 06:20:09 -05:00
Christian ab199c5811 Try harder to find a mod container. 2014-01-25 06:17:14 -05:00
Christian 544320b8d2 Beginning of a saveinspectionhandler. 2014-01-20 22:27:03 -05:00
Christian 741e172ffe Log4j2 doesn't need debug level logging for itself anymore 2014-01-20 22:01:20 -05:00
Christian a7ca131a33 And don't spam NONE everywhere 2014-01-20 22:00:24 -05:00
Christian 8692ca17d1 Log4j2 logging context for things. This should help add context when things go wrong in mods. 2014-01-20 21:58:39 -05:00
Christian b6d95d704b Name the log files properly. fml-junk is an early startup annoyance I can't kill because log4j2. 2014-01-20 21:31:20 -05:00
Christian 458b0620b4 Log the bad packet in a prettier way. Also, don't show the authlib debug data in the log file. 2014-01-20 17:29:17 -05:00
Christian 675b5a0778 And turn down some more logging, now we have useful logging back again.. 2014-01-20 16:09:34 -05:00
Christian 1c793abe0e Fix derp with networkcheck 2014-01-20 16:06:50 -05:00
Christian a355eecb2c Add in error logging for outbound messages. Fix bug with indexedcodec NPE 2014-01-20 16:02:26 -05:00
Christian 9a8d16b66e Fix log4j2 config. Fix server gui to *show* logging. Fix log spamminess in the console. Fix bug in servergui that can cause deadlock. 2014-01-20 15:09:24 -05:00
Christian 5719b9ec53 Fix reply handling. Make the proxy message available for subclasses of indexedcodec. Fire user events into the network
event firing.
2014-01-20 11:58:14 -05:00
Christian 16d33d2989 Clean up and document outbound handler a bit better. Add in dispatcher target. Closes #361 2014-01-20 11:26:54 -05:00
Christian 32bb7315cc Add in example assets dir. Closes #308 2014-01-20 08:15:55 -05:00
Christian 3dfb54e066 Merge branch 'trait-optional' of github.com:RainWarrior/FML 2014-01-20 08:14:27 -05:00
Christian 79b04898d4 And restore suppressions. ABRAR, DON'T TIDY CODE!!!! 2014-01-20 08:09:02 -05:00
Christian 9d2e089df6 Merge branch 'logging' of github.com:AbrarSyed/FML into abrar-borked 2014-01-20 08:06:45 -05:00
Christian 35a38d7840 Make sidedproxy support non-public fields. Closes #344 2014-01-20 07:55:26 -05:00
Christian 6a695c4348 Try and stop the epic channel closed spam at close time. Closes #353 2014-01-20 07:53:09 -05:00
Christian a62374d4ac findBlock should now return null, not the default block, if the thing being looked for is not found. Closes #352 2014-01-20 07:49:44 -05:00
Christian 3d26f28bcf Allow connection when server is apparently offline. Might allow :NOFML circumvention though. Hmmm. Closes #359 2014-01-20 07:46:17 -05:00
Christian 5adacc3b33 Check the mod, not it's container, in the check handler. Closes #358 2014-01-20 07:42:35 -05:00
Christian 7ac5bddbc3 Allow indexed messages to validate themselves. Also, catch exceptions from
an embedded channel, and cause them to close the connection. It's ugly, but
it means that the client doesn't crash if it connects to a screwy bungycord that's trying a 1.6 handshake for some reason.
2014-01-19 22:08:19 -05:00
Christian 7907e16e96 Add a type adapter for artifact version. Should fix #354 2014-01-19 10:49:28 -05:00
cpw 79d42fca8d Merge pull request #355 from jk-5/errorhandling
Throw an exception when discriminator is not found
2014-01-19 07:38:41 -08:00
cpw dfc0899ec6 Merge pull request #357 from jk-5/sharable
Make NetworkEventFiringHandler sharable
2014-01-19 07:37:52 -08:00
jk-5 2524045728 Make NetworkEventFiringHandler sharable
Fixes #356
2014-01-19 12:27:31 +01:00
jk-5 3557fe31c9 Throw an exception when discriminator is not found 2014-01-19 11:21:24 +01:00
Christian 449ac98b77 SSP Worlds updating from 1.6 will now pop a warning message before loading, and will capture a timestamped
zip file in the minecraft dir before starting to load. Allows for people to test updates.
2014-01-18 22:25:35 -05:00
Abrar Syed f23eba4352 put max number of FML log files to 3 2014-01-19 00:53:58 +00:00
Abrar Syed f0132a6f3b changed fml log level to all 2014-01-19 00:49:47 +00:00
Lex Manos 444a7d7fa1 Move placement of single player world load hook to fix NPEs. 2014-01-18 13:05:18 -08:00
Christian 2a5a8d0cd0 Fix memory leak?! 2014-01-17 23:36:03 -05:00
Christian 275ccac6f1 Fix NPE at startup 2014-01-17 23:35:53 -05:00
Christian ff7b5845e7 Clean up some warnings about @Override 2014-01-17 23:19:22 -05:00
Christian 7c5d62704a Make UniqueIdentifier final and add a hashCode. Closes #348
Clean up language registry. It can be used to access all translations of mods on client or server.
Auto loads from assets files.
2014-01-17 17:47:30 -05:00
Christian 53557dcd05 Put logging exception handlers on all channel inbounds. Fix problem with failure to login. Closes #350 2014-01-17 17:00:55 -05:00
Christian 9c96ca4402 Fire a custom packet channel registration/deregistration event, for any mods that care about that
kind of thing
2014-01-16 19:45:42 -05:00
Christian a429e106dd Fix bug with SSP, and hook so we can do confirmation of world loading, as well as other things 2014-01-16 18:15:45 -05:00
Christian 9cab2ab36e Add in some tests and examples for the "simple" network stuff 2014-01-16 18:07:25 -05:00
Christian 30882b0c1d Clean up some warnings. Add in simple network impl 2014-01-16 18:06:36 -05:00
Christian c013870b1d Merge branch 'simplenet' 2014-01-16 14:59:13 -05:00
Christian dd17979a2f Fix bukkit connectivity issue. 2014-01-16 14:58:28 -05:00
Christian e14efe786f Some fixes and tweaks 2014-01-16 09:14:39 -05:00
Lex Manos a4686b1261 Added basic Mojang account authentication support for development time login. 2014-01-14 16:49:03 -08:00
LexManos e344303ec7 Merge pull request #346 from Jezzadabomb338/master
At the request of AbrarSyed.
2014-01-13 23:11:42 -08:00
Jezzadabomb b362e8a273 At the request of AbrarSyed. 2014-01-14 15:39:24 +11:00
Christian 5da6dcc7e3 Divert connection through FML, so we can deny connections to servers that don't want us 2014-01-13 13:47:18 -05:00
Christian 10d056a494 Fix possible NPE derp 2014-01-13 13:46:22 -05:00
Christian fc69bcf280 Fix up privacy derp in TickEvent. Closes #343 2014-01-13 08:43:33 -05:00
Christian 80b00dc796 Fix openGui. Closes #342 2014-01-13 08:40:56 -05:00
Christian 28293b29ea Add in a simple(ish) event driven network handling system. Register using newEventDrivenChannel
and you'll get a simple network handler that will fire events at the subscriber(s) of your
choice, whenever a packet is received. You'll also get some convenience methods for sending
to things.
2014-01-12 13:20:41 -05:00
Christian 584c0f368b Fix potential ordering issue, clean up some imports 2014-01-11 22:01:01 -05:00
AbrarSyed fc025a7b73 Logging Changes 2014-01-11 16:43:14 +00:00
RainWarrior 4aa2416ce5 Propagate Optional method removal to trait implementation classes 2014-01-10 00:56:00 +04:00
Christian 717a8d6945 Fix csv string vs list of strings. Thanks immibis. Closes #334 2014-01-09 14:55:52 -05:00
cpw a89939e57e Merge pull request #336 from jadar/master
added override toString method for getting full name.
2014-01-09 11:54:54 -08:00
Christian 43068eb986 Fix TargetPoint to be static 2014-01-09 08:41:52 -05:00
Christian dd098854b0 Fix the keybinding array to the right one 2014-01-09 08:40:42 -05:00
Christian d5bfd69e35 Fix problem with connecting to vanilla.
SHOW what's modded and what's vanilla in the list. Hooks that make the blocking work to come
2014-01-06 23:48:53 -05:00
Jadar 96c19b3580 undid readme change 2014-01-06 15:58:42 -06:00
Jadar acf74a3403 changed the readme to reflect new setup task. 2014-01-06 11:09:34 -06:00
Jadar 1db3daa0e8 added override toString method for getting full name. 2014-01-06 10:25:13 -06:00
Lex Manos 0d810c01fa Mark jopt needed on the server, herp derp, blame Abrar! 2014-01-05 19:02:47 -08:00
Christian 9de9a15530 Fix stupid hardcoding derp 2014-01-03 23:04:24 -05:00
Christian 5317672631 Add a utility method for finding the channel handler name based on type. Should fix naming weirdnesses. 2014-01-03 22:57:36 -05:00
Christian 6f1da6550e Fix up mcpname derp in GuiScrollingList. 2014-01-02 22:44:26 -05:00
Christian b51fb91355 Merge branch 'patch-1' of github.com:airbreather/FML 2014-01-02 22:21:25 -05:00
Christian 779cd05aa1 Tweaks 2014-01-02 22:18:02 -05:00
Christian 7bf119e1e5 Fix up readmes and credits. We no longer support modloader. 2014-01-02 22:18:02 -05:00
iChun fa4f3015a0 Added transparent background for GuiIngameModOptions as per cpw's request. May not compile due to manual de-mcp-fication. 2014-01-02 22:18:02 -05:00
Christian fbc1f8f6f9 Config GUIs in the modlist now work. 2014-01-02 11:51:16 -05:00
airbreather c5e29b574a Avoiding redundant calls to LogManager 2014-01-01 11:40:32 -05:00
Christian 3113138bd1 Tweak button positions. 2014-01-01 02:09:40 -05:00
iChun ab5eb3ccff Fix button size for GuiModList 2014-01-01 14:16:23 +08:00
Christian cdd9d92a4f Starting work on the actual GUI. Still work to do. Needs an API. 2014-01-01 00:57:24 -05:00
Christian b3f98d1ee0 Fix derpiness with Mods button when Realms is available 2013-12-31 20:21:28 -05:00
Christian 21b13d6351 Lots of network cleanup. Gui packets now work too! 2013-12-31 19:55:41 -05:00
Christian 22ba6fda5e Expose the nethandler in a few places, and pull out FMLEmbeddedChannel, exposing a utility method on it.
More to come.
2013-12-31 09:45:26 -05:00
Christian f36152398d Add in the tweakclass, fix the json for lzma @ the server. 2013-12-30 13:06:59 -05:00
Christian 5d069629cf Allow itemstacks for furnace recipe inputs. Allow passing extra arguments through registerblock into the itemblock constructor. 2013-12-28 18:04:30 -05:00
Christian 061288909d Fire simple network connect/disconnect gameevents. 2013-12-28 17:51:40 -05:00
Christian 6a5f9e135f Fix example mod code for 1.7 2013-12-28 13:44:37 -05:00
Christian 53a1f98414 Attempt to load old pre-1.7 worlds. ENSURE YOU HAVE A BACKUP! 2013-12-27 11:48:55 -05:00
Christian 34819c9303 Make gradlew executable on linux 2013-12-27 11:26:46 -05:00
Christian ec316f113f AT for renderblocks 2013-12-27 00:08:49 -05:00
Christian f8d6213829 Update render registry 2013-12-27 00:07:48 -05:00
Christian 268bbabee6 Fix handling world reloads when new stuffs are added 2013-12-26 12:42:40 -05:00
Lex Manos c180d9b157 Add 1.7.2 base json, Gradle will automatically download updated versions of this. Keeping it in the repo allows us to see what base json we have built our jsons off of. And if it changes update accordingly. 2013-12-23 22:36:47 -08:00
Christian 7d3b1250e8 Fix handshaking properly. Also, fix ID syncup. It now will completely freeze the idmap after preinit.
This frozen map is used to inject "new" stuff into existing serverside worlds. Interesting sideeffect: remote
servers lacking things will change the client, to also LACK ids for those things. watch for -1 ids in your remap
events. Note: idmaps should be considered temporary per server instance. SERVERSTOPPED will restore "startup" state,
as will client logout.
2013-12-24 00:47:10 -05:00
Christian 156a9ae03a Fix build script 2013-12-23 20:24:54 -05:00
Lex Manos 58132ccda3 Add new required --accessToken to launch specs. 2013-12-22 18:35:50 -08:00
Christian f860c8ad3b bump to legacy launcher 1.9 with logging unification stuffs. 2013-12-18 11:15:53 -05:00
Christian 3e76dfba34 More tweaking on id stuffs at worldload 2013-12-18 11:15:03 -05:00
Christian 31ea100b29 Working on id missing handling 2013-12-18 08:34:44 -05:00
Lex Manos ef3856f9a3 Update patches for Gradle's rename rewrite: MinecraftForge/ForgeGradle@19e7acf2a2 2013-12-18 04:01:37 -08:00
Christian e4b63a1801 IWorldGenerator now has an ordering at registration time. This means the order of worldgen should be much more stable. 2013-12-17 11:42:54 -05:00
Christian 85516d9588 ICraftingHandler, IPickupHandler are now both events. 2013-12-17 11:24:57 -05:00
Christian a17489172c Code to disable mods at runtime, or other times. 2013-12-17 10:51:00 -05:00
Christian 32561265fc Ticks, Player events, keybindings, all migrated to the new event driven system. 2013-12-16 23:18:00 -05:00
Christian 0b419ac79c Fire a user event down the channels when a handshake has occured. 2013-12-16 20:00:01 -05:00
Christian 4071ff38af Patch some GUIs. We're gonna add some basic mod gui config support. 2013-12-16 11:48:39 -05:00
Christian a2b324beb2 Copy eventhandler from Forge into FML. It is going to replace a lot of the runtime event systems. 2013-12-16 11:48:09 -05:00
Christian 557357fe17 Update for log4j2 2013-12-16 11:47:48 -05:00
Christian 3b2994a3de Some patching touchups 2013-12-13 00:18:05 -05:00
LexManos 0098c57f94 Merge pull request #316 from AbrarSyed/patch-4
Update shiped ForgeGradle for 1.7
2013-12-12 17:23:04 -08:00
Lex Manos 55aa337f95 Rename synthetic bridge methods, these methods are not decompiled, but need to reobf correctly cross the recompile boundary. 2013-12-12 17:18:04 -08:00
Abrar Syed df870c1a33 Update shiped ForgeGradle for 1.7 2013-12-12 17:11:37 -06:00
Christian b852e30285 First functional release under reobfuscation. 2013-12-12 18:01:09 -05:00
Christian 7ea571f593 Fix AT, Fix exc. Almost works now! 2013-12-12 01:39:30 -05:00
Lex Manos 7a4ceebf5e Kill old patches and add rejects to ignore file. 2013-12-11 20:39:15 -08:00
Christian 31efcfc3b2 Clean up patches for latest exc. 2013-12-11 23:03:30 -05:00
Christian 49cb893d12 Fix exc this time *sigh* 2013-12-11 22:58:46 -05:00
Christian 009d4dee23 Fix the exc file. Fix the deobfremapper for handling inner classes. 2013-12-11 22:54:51 -05:00
Christian 3e278acb71 Fix stupid possible compiler error. 2013-12-11 20:17:08 -05:00
Christian d0d31d9575 SpawnAdjustment packet. Clean up stuffs. No more compile errors. 2013-12-11 19:29:52 -05:00
Christian ef492407ef Entity spawning works. 2013-12-11 18:46:25 -05:00
Christian cd417c6786 Fixed remote and local connections work with mods now. 2013-12-11 12:35:08 -05:00
Christian 89e4e483c2 Add in a remapping event for mods to consume. 2013-12-10 19:25:49 -05:00
Christian fd36f50d82 Cleanups 2013-12-10 17:29:26 -05:00
Christian 1d71c017f4 ID syncing. 2013-12-10 14:32:06 -05:00
Lex Manos 99c681ad87 Did it manually, forgot it needed the end comma 2013-12-09 20:49:37 -08:00
Lex Manos 57f7f1d7ab Update for fixed Enum cleaning and names. 2013-12-09 20:44:17 -08:00
Lex Manos b2550b8a69 Add mappings for Items/Blocks fields. 2013-12-09 20:43:57 -08:00
Lex Manos a30f173627 Add sonatype snapshots repo for SpecialSource snapshots. 2013-12-09 20:43:27 -08:00
Christian 2aaaeba15e ID loading from the server save now works. 2013-12-09 21:36:49 -05:00
Christian 9c96a0a10a More network stuff, partially done id syncing. 2013-12-09 01:22:24 -05:00
Christian f5c38e2359 OK, network channels appear to be working well for both dedi and integrated servers.
The beginnings of the new mod structure too.
2013-12-06 14:52:33 -05:00
Christian e544adba5c More cleanup. Bidirectional server <-> client network works for mods as well as FML|HS now. 2013-12-06 11:17:40 -05:00
Christian 58f7487cfa Check in patches. Add in some network timeout tweaking values so you can debug the network. 2013-12-06 08:07:09 -05:00
Christian 9f928963f2 A network design I like. It uses the netty embedded channel to allow mods to build channel pipelines on top of
custom payload packets.
2013-12-06 03:11:03 -05:00
Christian 38cec7a11f The basic network handshaking for FML is done. All scenarios seem to work. 2013-12-04 00:11:08 -05:00
Christian 7ab3c3a37c Update gitignore 2013-12-02 23:54:15 -05:00
Christian 53127eec30 Merge branch 'master' of github.com:MinecraftForge/FML
Conflicts:
	install/build.gradle
	patches/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java.patch
	patches/minecraft/net/minecraft/network/NetServerHandler.java.patch
2013-12-02 23:52:27 -05:00
Christian 30d532f4fc Pass 1: Most patches are restored.
NOTES: 1. Network is completely broken. 2. GameRegistry is partially broken. 3. ID sync is not in.
2013-12-02 23:48:26 -05:00
cpw 01fb451b69 Merge pull request #311 from AbrarSyed/patch-3
fix derp in example builscript
2013-11-27 02:13:42 -08:00
Abrar Syed 3714426e19 fix derp in example builscript 2013-11-26 14:23:31 -06:00
Lex Manos c2b919d339 Don't validate signatures in dev env. 2013-11-20 13:18:26 -08:00
Lex Manos c4b8a393f9 Make the working directory the root of the eclipse workspace. 2013-11-17 19:26:21 -08:00
LexManos 30894f7afa Merge pull request #307 from AbrarSyed/master
updated samples
2013-11-17 17:58:01 -08:00
AbrarSyed e9a7660cb8 updated samples 2013-11-17 18:21:24 -06:00
LexManos 4d46abf761 Merge pull request #306 from MinecraftForge/1.6.4
Actually do it correctly. Should be more forge friendly now.
2013-11-17 10:04:27 -08:00
Christian 23baf3a8ce Actually do it correctly. Should be more forge friendly now. 2013-11-13 19:10:11 -05:00
Christian c6a21d0d62 Merge branch '1.6.4' 2013-11-13 07:55:12 -05:00
Christian da72640c7e Way to go, missing import. *sigh* 2013-11-13 07:45:37 -05:00
Christian b7f34629c3 Don't try and open GUIs on the server. 2013-11-12 18:04:25 -05:00
Christian 5500d69b77 Merge branch '1.6.4' 2013-11-12 17:02:08 -05:00
pahimar 6af42bc656 Add in null protection for client/server sides of handleChat 2013-11-11 14:12:02 -05:00
Christian e19fcb8844 Kill more references to modloader. 2013-11-10 13:15:26 -05:00
Christian 0a62333890 Remove all public all the time from Minecraft. It is unnecessary with ModLoader gone. DEAL WITH IT. File AT public requests, make a coremod, whatever. This needed to die. 2013-11-10 12:01:26 -05:00
Christian e7512f13e4 Deprecation cleanup. Bye bye more modloader stuffs 2013-11-10 11:58:34 -05:00
Christian 4708d77c98 First pass : kill modloader, clean up warnings 2013-11-10 11:49:06 -05:00
Lex Manos 9b1d2bdd13 Join the developers list in the pom and fix the client run configs in the workspace. 2013-11-09 19:22:17 -08:00
LexManos a6dc03aa7e Merge pull request #302 from AbrarSyed/patch-1
Update 1.6.4-rel.json
2013-11-09 19:15:34 -08:00
Abrar Syed 6cd8349542 Update 1.6.4-rel.json 2013-11-09 21:14:58 -06:00
Christian 976c589c78 Change the build to capture an MCP version, also, tweak the sources so mavenLocal can be used for ForgeGradle 2013-11-09 20:00:05 -05:00
368 changed files with 66203 additions and 60814 deletions

No files matched your search

+5
View File
@@ -9,8 +9,13 @@
#gradle
/build
/buildSrc
/.gradle
#occupational hazards
/eclipse/
/repo/
#Patch reject
*.rej
+4 -3
View File
@@ -2,13 +2,14 @@ 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, minecraft bukkit servers, and minecraft clients.
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 (partially) implements API defined by the client side ModLoader, authored by Risugami.
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/
+23 -46
View File
@@ -2,9 +2,7 @@ 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, server and
bukkit use, incorporating API implementations of client side ModLoader by
Risugami.
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.
@@ -14,25 +12,14 @@ About Forge Mod Loader
Environments and compatibility
==============================
FML covers the three main environments: client, server and bukkit. All
environments share the main mod loading code base, with additional varying hooks
based on the specific environment. Compatibility is almost 100% with all
ModLoader based mods- any mod with any difficulty (unless noted below) should
be reported as a ticket to the github, please.
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.
Client side mods should be 100% compatible with ModLoader. The only exception is
Optifine, however new versions of optifine are compatible. There are some very
visible changes to the client when FML is installed.
There are some very visible changes to the client when FML is installed.
Server side mods are mostly compatible with previous MLMP based incarnations,
however, this compatibility is not guaranteed. Most mods have adapted to FML
and MLMP is not assured and will cause errors. Ask your mod author to update
to FML.
Bukkit side modding is an adaptation of the server side mod code to the bukkit
environment. Mods need to be recompiled against the bukkit decompilation to work
however there are guides and tools in development to make this process easier.
Consult mcportcentral.co.za for more information.
There are some bukkit compatibility hooks available, consult MCPC+ 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
@@ -46,12 +33,6 @@ 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).
Client notes
============
FML does provide a standard pattern for mods to provide HD textures. This is why
optifine needed integration code. FML supports HD texture packs
up to 128x resolution.
Mod information
===============
FML exposes the mod information through a mod list visible on the main screen as
@@ -68,45 +49,41 @@ or server):
Installation
============
To install on a server, simply execute the FML or Forge jar file, with a copy of
minecraft_server.jar placed in the same directory. FML will launch it's patched
copy.
minecraft_server-@MC_VERSION@.jar placed in the same directory. FML will launch
it's patched copy.
To install on a client, FIRST delete META-INF from the minecraft.jar file, then
copy the contents of the FML or Forge jar file into it. FML and Forge provide
their own META-INF data which should *not* be deleted.
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. Generally, you should not install FML if you are also
installing Minecraft Forge.
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 your MCP extracted source code, giving you and it access
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- this
means that you will not be able to read them directly against normal code.
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
into an mcp installation containing vanilla jars only. It should create a new
folder "fml" inside that installation.
Be sure that you have both vanilla client jars, and the vanilla server jar installed
as per the MCP install instructions. Both are required for FML to run properly.
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 client
and server.
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
=========================
+11 -6
View File
@@ -1,13 +1,18 @@
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.0-SNAPSHOT'
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
@@ -24,14 +29,16 @@ repositories {
}
minecraft {
version = '1.6.4'
version = '1.7.9'
mcpVersion = '9.04'
fmlDir = projectDir.getAbsolutePath();
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
}
group = 'cpw.mods'
version = getVersionFromGit(project)
version = getVersionFromGit(getProject())
jenkins {
job = 'fml'
@@ -43,7 +50,7 @@ uploadArchives {
logger.info('Publishing to files server')
mavenDeployer {
configuration = configurations.deployerJars
configuration = configurations.deployJars
repository(url: project.filesmaven.url) {
authentication(userName: project.filesmaven.username, privateKey: project.filesmaven.key)
@@ -84,8 +91,6 @@ uploadArchives {
name 'cpw'
roles { role 'developer' }
}
}
developers {
developer {
id 'LexManos'
name 'Lex Manos'
+9796
View File
File diff suppressed because it is too large. Load diff
+1614 -2240
View File
File diff suppressed because it is too large. Load diff
+17288 -12933
View File
File diff suppressed because it is too large. Load diff
+22632 -18769
View File
File diff suppressed because it is too large. Load diff
+19 -17
View File
@@ -22,8 +22,8 @@ Params = %(DirConf)s/params.csv
NewIds = %(DirConf)s/newids.csv
[SRGS]
ConfClient = %(DirConf)s/packaged.srg
ConfServer = %(DirConf)s/packaged.srg
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
@@ -38,8 +38,8 @@ 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 = 2e5044f5359e82245551167a237f3167
MD5Server = ba3145656b1480122bd8759cecd7b7a1
MD5Client = 7a304554fdea879a799efe6eaedd8c95
MD5Server = c48168f463e935262ea65b702f175153
[RETROGUARD]
Location = %(DirRuntime)s/bin/retroguard.jar
@@ -58,8 +58,10 @@ ServerDeobLog = %(DirLogs)s/server_deob.log
NullPkg = net/minecraft/src
[EXCEPTOR]
XClientCfg = %(DirConf)s/packaged.exc
XServerCfg = %(DirConf)s/packaged.exc
XClientJson = %(DirConf)s/exceptor.json
XServerJson = %(DirConf)s/exceptor.json
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
@@ -96,11 +98,11 @@ BinClient = %(DirBin)s/minecraft
BinServer = %(DirBin)s/minecraft_server
LogClient = %(DirLogs)s/client_compile.log
LogServer = %(DirLogs)s/server_compile.log
ClassPathClient =
ClassPathServer =
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,isom,ibxm,de/matthiasmann/twl,org,javax/xml,javax/ws,argo
IgnorePkg = paulscode,com,isom,ibxm,de/matthiasmann/twl,org,javax,argo,gnu,io/netty
[REOBF]
MD5Client = %(DirTemp)s/client.md5
@@ -125,10 +127,10 @@ OutSRCServer = %(DirModSrc)s/minecraft_server
[MCP]
LogFile = %(DirLogs)s/mcp.log
LogFileErr = %(DirLogs)s/mcperr.log
UpdateUrl =
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 = 143000
ParamIndex = 43000
RGIndex = 145000
ParamIndex = 45000
[ASTYLE]
AstyleConfig = %(DirConf)s/astyle.cfg
@@ -155,9 +157,9 @@ CmdRGReobf = %s -cp "{classpath}" RetroGuard -notch {conffile}
CmdSS = %s -cp "{classpath}" -jar %s -i {injar} -o {outjar} -m {mapfile} --kill-source
CmdSSReobf = %s -cp "{classpath}" -jar %s -i {injar} -o {outjar} -r -m {mapfile} -d {identifier} -e %s
CmdJadretro = %s -jar %s {targetdir}
CmdFernflower = %s -Xmx512M -jar %s -din=0 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
CmdExceptor = %s -jar %s {input} {output} {conf} {log}
CmdRecomp = %s -encoding UTF-8 -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
CmdFernflower = %s -jar %s -din=1 -rbr=0 -dgs=1 -asc=1 -log=WARN {indir} {outdir}
CmdExceptor = %s -jar %s --jarIn {input} --jarOut {output} --mapIn {conf} --log {log} --jsonIn {json} --applyMarkers
CmdRecomp = %s -Xlint:-options -deprecation -g -source 1.6 -target 1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
CmdRecompScala = %s -encoding UTF-8 -deprecation -target:jvm-1.6 -classpath "{classpath}" -sourcepath {sourcepath} -d {outpath} {pkgs}
CmdStartSrv = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" cpw.mods.fml.relauncher.ServerLaunchWrapper {extraargs}
CmdStartClt = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" -Djava.library.path={natives} net.minecraft.launchwrapper.Launch --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --version FML_DEV {extraargs}
CmdStartSrv = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" net.minecraft.server.MinecraftServer
CmdStartClt = %s -Xincgc -Xms1024M -Xmx1024M -cp "{classpath}" -Djava.library.path={natives} Start
+1527 -1936
View File
File diff suppressed because it is too large. Load diff
+1 -11740
View File
File diff suppressed because it is too large. Load diff
-309
View File
@@ -1,309 +0,0 @@
diff -r -U 3 minecraft\net\minecraft\src\CallableSuspiciousClasses.java minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java
--- minecraft\net\minecraft\src\CallableSuspiciousClasses.java Tue Sep 17 13:58:48 2013
+++ minecraft_patched\net\minecraft\src\CallableSuspiciousClasses.java Tue Sep 17 14:01:01 2013
@@ -21,9 +21,14 @@
public String func_85085_a() throws SecurityException, NoSuchFieldException, IllegalAccessException, IllegalArgumentException {
StringBuilder var1 = new StringBuilder();
+ ArrayList var3;
+ try {
Field var2 = ClassLoader.class.getDeclaredField("classes");
var2.setAccessible(true);
- ArrayList var3 = new ArrayList((Vector)var2.get(CrashReport.class.getClassLoader()));
+ var3 = new ArrayList((Vector)var2.get(CrashReport.class.getClassLoader()));
+ } catch(Exception ex) {
+ return "";
+ }
boolean var4 = true;
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
HashMap var6 = new HashMap();
@@ -98,6 +103,10 @@
// $FF: synthetic method
public Object call() {
+ try {
return this.func_85085_a();
+ } catch(Exception ex) {
+ return null;
+ }
}
}
diff -r -U 3 minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
--- minecraft\net\minecraft\src\ComponentStrongholdRightTurn.java Tue Sep 17 13:58:48 2013
+++ minecraft_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Tue Sep 17 14:01:01 2013
@@ -11,6 +11,10 @@
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
+ public ComponentStrongholdRightTurn(int p_i2074_1_, Random p_i2074_2_, StructureBoundingBox p_i2074_3_, int p_i2074_4_) {
+ super(p_i2074_1_, p_i2074_2_, p_i2074_3_, p_i2074_4_);
+ }
+
public void func_74861_a(StructureComponent p_74861_1_, List p_74861_2_, Random p_74861_3_) {
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
diff -r -U 3 minecraft\net\minecraft\src\DedicatedServer.java minecraft_patched\net\minecraft\src\DedicatedServer.java
--- minecraft\net\minecraft\src\DedicatedServer.java Tue Sep 17 13:58:48 2013
+++ minecraft_patched\net\minecraft\src\DedicatedServer.java Tue Sep 17 14:01:01 2013
@@ -208,7 +208,7 @@
System.exit(0);
}
- protected void func_71190_q() {
+ public void func_71190_q() {
super.func_71190_q();
this.func_71333_ah();
}
diff -r -U 3 minecraft\net\minecraft\src\EnumChatFormatting.java minecraft_patched\net\minecraft\src\EnumChatFormatting.java
--- minecraft\net\minecraft\src\EnumChatFormatting.java Tue Sep 17 13:58:49 2013
+++ minecraft_patched\net\minecraft\src\EnumChatFormatting.java Tue Sep 17 14:01:01 2013
@@ -38,7 +38,7 @@
private final String field_96304_B;
private EnumChatFormatting(char p_i1336_3_) {
- this(p_i1336_1_, p_i1336_2_, p_i1336_3_, false);
+ this(p_i1336_3_, false);
}
private EnumChatFormatting(char p_i1337_3_, boolean p_i1337_4_) {
diff -r -U 3 minecraft\net\minecraft\src\FileResourcePack.java minecraft_patched\net\minecraft\src\FileResourcePack.java
--- minecraft\net\minecraft\src\FileResourcePack.java Tue Sep 17 13:58:49 2013
+++ minecraft_patched\net\minecraft\src\FileResourcePack.java Tue Sep 17 14:01:01 2013
@@ -84,12 +84,18 @@
protected void finalize() {
this.close();
+ try {
super.finalize();
+ } catch(Throwable t) {
+ }
}
public void close() {
if(this.field_110600_d != null) {
+ try {
this.field_110600_d.close();
+ } catch(Exception ex) {
+ }
this.field_110600_d = null;
}
diff -r -U 3 minecraft\net\minecraft\src\FolderResourcePack.java minecraft_patched\net\minecraft\src\FolderResourcePack.java
--- minecraft\net\minecraft\src\FolderResourcePack.java Tue Sep 17 13:58:49 2013
+++ minecraft_patched\net\minecraft\src\FolderResourcePack.java Tue Sep 17 14:01:01 2013
@@ -29,7 +29,7 @@
HashSet var1 = Sets.newHashSet();
File var2 = new File(this.field_110597_b, "assets/");
if(var2.isDirectory()) {
- File[] var3 = var2.listFiles(DirectoryFileFilter.DIRECTORY);
+ File[] var3 = var2.listFiles((java.io.FileFilter)DirectoryFileFilter.DIRECTORY);
int var4 = var3.length;
for(int var5 = 0; var5 < var4; ++var5) {
diff -r -U 3 minecraft\net\minecraft\src\FontRenderer.java minecraft_patched\net\minecraft\src\FontRenderer.java
--- minecraft\net\minecraft\src\FontRenderer.java Tue Sep 17 13:58:49 2013
+++ minecraft_patched\net\minecraft\src\FontRenderer.java Tue Sep 17 14:01:01 2013
@@ -630,8 +630,6 @@
case 10:
--var5;
break;
- case 32:
- var6 = var5;
case 167:
if(var5 < var3 - 1) {
++var5;
@@ -645,6 +643,8 @@
}
}
break;
+ case 32:
+ var6 = var5;
default:
var4 += this.func_78263_a(var8);
if(var7) {
diff -r -U 3 minecraft\net\minecraft\src\IntegratedServer.java minecraft_patched\net\minecraft\src\IntegratedServer.java
--- minecraft\net\minecraft\src\IntegratedServer.java Tue Sep 17 13:58:50 2013
+++ minecraft_patched\net\minecraft\src\IntegratedServer.java Tue Sep 17 14:01:01 2013
@@ -103,7 +103,7 @@
return true;
}
- protected void func_71217_p() {
+ public void func_71217_p() {
boolean var1 = this.field_71348_o;
this.field_71348_o = this.field_71347_n.func_71752_f();
if(!var1 && this.field_71348_o) {
diff -r -U 3 minecraft\net\minecraft\src\Minecraft.java minecraft_patched\net\minecraft\src\Minecraft.java
--- minecraft\net\minecraft\src\Minecraft.java Tue Sep 17 13:58:50 2013
+++ minecraft_patched\net\minecraft\src\Minecraft.java Tue Sep 17 14:01:01 2013
@@ -604,8 +604,8 @@
return;
}
- while(true) {
- try {
+ try {
+ while(this.field_71425_J) {
if(this.field_71425_J) {
if(this.field_71434_R && this.field_71433_S != null) {
this.func_71377_b(this.field_71433_S);
@@ -626,23 +626,20 @@
}
continue;
}
- } catch (MinecraftError var12) {
- ;
- } catch (ReportedException var13) {
- this.func_71396_d(var13.func_71575_a());
- this.func_71398_f();
- var13.printStackTrace();
- this.func_71377_b(var13.func_71575_a());
- } catch (Throwable var14) {
- var2 = this.func_71396_d(new CrashReport("Unexpected error", var14));
- this.func_71398_f();
- var14.printStackTrace();
- this.func_71377_b(var2);
- } finally {
- this.func_71405_e();
}
-
- return;
+ } catch (MinecraftError var12) {
+ } catch (ReportedException var13) {
+ this.func_71396_d(var13.func_71575_a());
+ this.func_71398_f();
+ var13.printStackTrace();
+ this.func_71377_b(var13.func_71575_a());
+ } catch (Throwable var14) {
+ var2 = this.func_71396_d(new CrashReport("Unexpected error", var14));
+ this.func_71398_f();
+ var14.printStackTrace();
+ this.func_71377_b(var2);
+ } finally {
+ this.func_71405_e();
}
}
diff -r -U 3 minecraft\net\minecraft\src\RConThreadClient.java minecraft_patched\net\minecraft\src\RConThreadClient.java
--- minecraft\net\minecraft\src\RConThreadClient.java Tue Sep 17 13:58:51 2013
+++ minecraft_patched\net\minecraft\src\RConThreadClient.java Tue Sep 17 14:01:01 2013
@@ -32,8 +32,8 @@
}
public void run() {
- while(true) {
- try {
+ try {
+ while(true) {
if(!this.field_72619_a) {
break;
}
@@ -84,20 +84,14 @@
continue;
}
}
- } catch (SocketTimeoutException var17) {
- break;
- } catch (IOException var18) {
- break;
- } catch (Exception var19) {
- System.out.println(var19);
- break;
- } finally {
- this.func_72653_g();
}
-
- return;
+ } catch (SocketTimeoutException var17) {
+ } catch (IOException var18) {
+ } catch (Exception var19) {
+ System.out.println(var19);
+ } finally {
+ this.func_72653_g();
}
-
}
private void func_72654_a(int p_72654_1_, int p_72654_2_, String p_72654_3_) throws IOException {
diff -r -U 3 minecraft\net\minecraft\src\RenderBlocks.java minecraft_patched\net\minecraft\src\RenderBlocks.java
--- minecraft\net\minecraft\src\RenderBlocks.java Tue Sep 17 13:58:51 2013
+++ minecraft_patched\net\minecraft\src\RenderBlocks.java Tue Sep 17 14:01:01 2013
@@ -1960,16 +1960,16 @@
float var25 = (float)(p_78589_2_ + 1);
float var26 = (float)(p_78589_4_ + 0);
float var27 = (float)(p_78589_4_ + 1);
- boolean var28 = false;
+ int var28 = 0;
if((var20 || var21) && !var22 && !var23) {
- var28 = true;
+ var28 = 1;
}
if((var22 || var23) && !var21 && !var20) {
- var28 = true;
+ var28 = 2;
}
- if(!var28) {
+ if(var28 == 0) {
int var29 = 0;
int var30 = 0;
int var31 = 16;
@@ -2016,7 +2016,7 @@
var5.func_78374_a((double)var25, (double)p_78589_3_ + 0.015625D, (double)var26, (double)var9.func_94214_a((double)var31), (double)var9.func_94207_b((double)var30));
var5.func_78374_a((double)var24, (double)p_78589_3_ + 0.015625D, (double)var26, (double)var9.func_94214_a((double)var29), (double)var9.func_94207_b((double)var30));
var5.func_78374_a((double)var24, (double)p_78589_3_ + 0.015625D, (double)var27, (double)var9.func_94214_a((double)var29), (double)var9.func_94207_b((double)var32));
- } else if(var28) {
+ } else if(var28 == 1) {
var5.func_78374_a((double)var25, (double)p_78589_3_ + 0.015625D, (double)var27, (double)var8.func_94212_f(), (double)var8.func_94210_h());
var5.func_78374_a((double)var25, (double)p_78589_3_ + 0.015625D, (double)var26, (double)var8.func_94212_f(), (double)var8.func_94206_g());
var5.func_78374_a((double)var24, (double)p_78589_3_ + 0.015625D, (double)var26, (double)var8.func_94209_e(), (double)var8.func_94206_g());
diff -r -U 3 minecraft\net\minecraft\src\RenderGlobal.java minecraft_patched\net\minecraft\src\RenderGlobal.java
--- minecraft\net\minecraft\src\RenderGlobal.java Tue Sep 17 13:58:51 2013
+++ minecraft_patched\net\minecraft\src\RenderGlobal.java Tue Sep 17 14:01:01 2013
@@ -1445,7 +1445,7 @@
double var15 = this.field_72777_q.field_71451_h.field_70165_t - p_72726_2_;
double var17 = this.field_72777_q.field_71451_h.field_70163_u - p_72726_4_;
double var19 = this.field_72777_q.field_71451_h.field_70161_v - p_72726_6_;
- Object var21 = null;
+ EntityFX var21 = null;
if(p_72726_1_.equals("hugeexplosion")) {
this.field_72777_q.field_71452_i.func_78873_a(var21 = new EntityHugeExplodeFX(this.field_72769_h, p_72726_2_, p_72726_4_, p_72726_6_, p_72726_8_, p_72726_10_, p_72726_12_));
} else if(p_72726_1_.equals("largeexplode")) {
diff -r -U 3 minecraft\net\minecraft\src\SoundPoolURLConnection.java minecraft_patched\net\minecraft\src\SoundPoolURLConnection.java
--- minecraft\net\minecraft\src\SoundPoolURLConnection.java Tue Sep 17 13:58:51 2013
+++ minecraft_patched\net\minecraft\src\SoundPoolURLConnection.java Tue Sep 17 14:01:01 2013
@@ -22,7 +22,11 @@
public void connect() {}
public InputStream getInputStream() {
+ try {
return SoundPool.func_110655_a(this.field_110660_a).func_110536_a(this.field_110659_b).func_110527_b();
+ } catch(Exception ex) {
+ return null;
+ }
}
// $FF: synthetic method
diff -r -U 3 minecraft\net\minecraft\src\TcpMasterThread.java minecraft_patched\net\minecraft\src\TcpMasterThread.java
--- minecraft\net\minecraft\src\TcpMasterThread.java Tue Sep 17 13:58:51 2013
+++ minecraft_patched\net\minecraft\src\TcpMasterThread.java Tue Sep 17 14:01:01 2013
@@ -11,6 +11,7 @@
this.field_74504_a = p_i1395_1_;
}
+ @SuppressWarnings("deprecation")
public void run() {
try {
Thread.sleep(5000L);
diff -r -U 3 minecraft\net\minecraft\src\ThreadedFileIOBase.java minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java
--- minecraft\net\minecraft\src\ThreadedFileIOBase.java Tue Sep 17 13:58:52 2013
+++ minecraft_patched\net\minecraft\src\ThreadedFileIOBase.java Tue Sep 17 14:01:01 2013
@@ -20,6 +20,7 @@
}
public void run() {
+ while(true)
this.func_75736_b();
}
@@ -0,0 +1,22 @@
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
--- minecraft\net\minecraft\client\Minecraft.java
+++ minecraft_patched\net\minecraft\client\Minecraft.java
@@ -695,9 +695,7 @@
while(true) {
try {
- if(!this.field_71425_J) {
- break;
- }
+ while(this.field_71425_J) {
if(!this.field_71434_R || this.field_71433_S == null) {
try {
@@ -711,6 +709,7 @@
}
this.func_71377_b(this.field_71433_S);
+ }
} catch (MinecraftError var12) {
break;
} catch (ReportedException var13) {
@@ -0,0 +1,12 @@
diff -r -U 3 minecraft\net\minecraft\client\Minecraft.java minecraft_patched\net\minecraft\client\Minecraft.java
--- minecraft\net\minecraft\client\Minecraft.java
+++ minecraft_patched\net\minecraft\client\Minecraft.java
@@ -695,7 +695,7 @@
while(true) {
try {
- if(this.field_71425_J) {
+ while(this.field_71425_J) {
if(!this.field_71434_R || this.field_71433_S == null) {
try {
this.func_71411_J();
@@ -0,0 +1,21 @@
diff -r -U 3 minecraft\net\minecraft\client\gui\FontRenderer.java minecraft_patched\net\minecraft\client\gui\FontRenderer.java
--- minecraft\net\minecraft\client\gui\FontRenderer.java
+++ minecraft_patched\net\minecraft\client\gui\FontRenderer.java
@@ -581,8 +581,6 @@
case 10:
--var5;
break;
- case 32:
- var6 = var5;
case 167:
if(var5 < var3 - 1) {
++var5;
@@ -596,6 +594,8 @@
}
}
break;
+ case 32:
+ var6 = var5;
default:
var4 += this.func_78263_a(var8);
if(var7) {
@@ -0,0 +1,11 @@
diff -r -U 3 minecraft\net\minecraft\client\network\NetHandlerHandshakeMemory.java minecraft_patched\net\minecraft\client\network\NetHandlerHandshakeMemory.java
--- minecraft\net\minecraft\client\network\NetHandlerHandshakeMemory.java
+++ minecraft_patched\net\minecraft\client\network\NetHandlerHandshakeMemory.java
@@ -31,6 +31,7 @@
switch(NetHandlerHandshakeMemory.SwitchEnumConnectionState.field_151263_a[p_147232_2_.ordinal()]) {
case 1:
this.field_147384_b.func_150719_a(new NetHandlerLoginServer(this.field_147385_a, this.field_147384_b));
+ break;
case 2:
throw new UnsupportedOperationException("NYI");
default:
@@ -0,0 +1,23 @@
diff -r -U 3 minecraft\net\minecraft\client\particle\EffectRenderer.java minecraft_patched\net\minecraft\client\particle\EffectRenderer.java
--- minecraft\net\minecraft\client\particle\EffectRenderer.java
+++ minecraft_patched\net\minecraft\client\particle\EffectRenderer.java
@@ -53,7 +53,8 @@
}
public void func_78868_a() {
- for(final int var1 = 0; var1 < 4; ++var1) {
+ for(int var11 = 0; var11 < 4; ++var11) {
+ final int var1 = var11;
for(int var2 = 0; var2 < this.field_78876_b[var1].size(); ++var2) {
final EntityFX var3 = (EntityFX)this.field_78876_b[var1].get(var2);
@@ -99,7 +100,8 @@
EntityFX.field_70554_ao = p_78874_1_.field_70137_T + (p_78874_1_.field_70163_u - p_78874_1_.field_70137_T) * (double)p_78874_2_;
EntityFX.field_70555_ap = p_78874_1_.field_70136_U + (p_78874_1_.field_70161_v - p_78874_1_.field_70136_U) * (double)p_78874_2_;
- for(final int var8 = 0; var8 < 3; ++var8) {
+ for(int var88 = 0; var88 < 3; ++var88) {
+ final int var8 = var88;
if(!this.field_78876_b[var8].isEmpty()) {
switch(var8) {
case 0:
@@ -0,0 +1,33 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\RenderBlocks.java minecraft_patched\net\minecraft\client\renderer\RenderBlocks.java
--- minecraft\net\minecraft\client\renderer\RenderBlocks.java
+++ minecraft_patched\net\minecraft\client\renderer\RenderBlocks.java
@@ -1929,16 +1929,16 @@
float var24 = (float)(p_147788_2_ + 1);
float var25 = (float)(p_147788_4_ + 0);
float var26 = (float)(p_147788_4_ + 1);
- boolean var27 = false;
+ int var27 = 0;
if((var19 || var20) && !var21 && !var22) {
- var27 = true;
+ var27 = 1;
}
if((var21 || var22) && !var20 && !var19) {
- var27 = true;
+ var27 = 2;
}
- if(!var27) {
+ if(var27 == 0) {
int var28 = 0;
int var29 = 0;
int var30 = 16;
@@ -1985,7 +1985,7 @@
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var9.func_94214_a((double)var30), (double)var9.func_94207_b((double)var29));
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var9.func_94214_a((double)var28), (double)var9.func_94207_b((double)var29));
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var26, (double)var9.func_94214_a((double)var28), (double)var9.func_94207_b((double)var31));
- } else if(var27) {
+ } else if(var27 == 1) {
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var26, (double)var8.func_94212_f(), (double)var8.func_94210_h());
var5.func_78374_a((double)var24, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var8.func_94212_f(), (double)var8.func_94206_g());
var5.func_78374_a((double)var23, (double)p_147788_3_ + 0.015625D, (double)var25, (double)var8.func_94209_e(), (double)var8.func_94206_g());
@@ -0,0 +1,12 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\RenderGlobal.java minecraft_patched\net\minecraft\client\renderer\RenderGlobal.java
--- minecraft\net\minecraft\client\renderer\RenderGlobal.java
+++ minecraft_patched\net\minecraft\client\renderer\RenderGlobal.java
@@ -1566,7 +1566,7 @@
double var15 = this.field_72777_q.field_71451_h.field_70165_t - p_72726_2_;
double var17 = this.field_72777_q.field_71451_h.field_70163_u - p_72726_4_;
double var19 = this.field_72777_q.field_71451_h.field_70161_v - p_72726_6_;
- Object var21 = null;
+ EntityFX var21 = null;
if(p_72726_1_.equals("hugeexplosion")) {
this.field_72777_q.field_71452_i.func_78873_a(var21 = new EntityHugeExplodeFX(this.field_72769_h, p_72726_2_, p_72726_4_, p_72726_6_, p_72726_8_, p_72726_10_, p_72726_12_));
} else if(p_72726_1_.equals("largeexplode")) {
@@ -0,0 +1,30 @@
diff -r -U 3 minecraft\net\minecraft\client\renderer\texture\TextureManager.java minecraft_patched\net\minecraft\client\renderer\texture\TextureManager.java
--- minecraft\net\minecraft\client\renderer\texture\TextureManager.java
+++ minecraft_patched\net\minecraft\client\renderer\texture\TextureManager.java
@@ -72,13 +72,14 @@
public boolean func_110579_a(ResourceLocation p_110579_1_, final ITextureObject p_110579_2_) {
boolean var3 = true;
-
+ ITextureObject p_110579_2_2 = p_110579_2_;
+
try {
((ITextureObject)p_110579_2_).func_110551_a(this.field_110582_d);
} catch (IOException var8) {
field_147646_a.warn("Failed to load texture: " + p_110579_1_, var8);
- p_110579_2_ = TextureUtil.field_111001_a;
- this.field_110585_a.put(p_110579_1_, p_110579_2_);
+ p_110579_2_2 = TextureUtil.field_111001_a;
+ this.field_110585_a.put(p_110579_1_, p_110579_2_2);
var3 = false;
} catch (Throwable var9) {
CrashReport var5 = CrashReport.func_85055_a(var9, "Registering texture");
@@ -95,7 +96,7 @@
throw new ReportedException(var5);
}
- this.field_110585_a.put(p_110579_1_, p_110579_2_);
+ this.field_110585_a.put(p_110579_1_, p_110579_2_2);
return var3;
}
@@ -0,0 +1,12 @@
diff -r -U 3 minecraft\net\minecraft\client\resources\FolderResourcePack.java minecraft_patched\net\minecraft\client\resources\FolderResourcePack.java
--- minecraft\net\minecraft\client\resources\FolderResourcePack.java
+++ minecraft_patched\net\minecraft\client\resources\FolderResourcePack.java
@@ -31,7 +31,7 @@
HashSet var1 = Sets.newHashSet();
File var2 = new File(this.field_110597_b, "assets/");
if(var2.isDirectory()) {
- File[] var3 = var2.listFiles(DirectoryFileFilter.DIRECTORY);
+ File[] var3 = var2.listFiles((java.io.FileFilter)DirectoryFileFilter.DIRECTORY);
int var4 = var3.length;
for(int var5 = 0; var5 < var4; ++var5) {
@@ -0,0 +1,34 @@
diff -r -U 3 minecraft\net\minecraft\inventory\ContainerPlayer.java minecraft_patched\net\minecraft\inventory\ContainerPlayer.java
--- minecraft\net\minecraft\inventory\ContainerPlayer.java
+++ minecraft_patched\net\minecraft\inventory\ContainerPlayer.java
@@ -29,7 +29,7 @@
this.field_82862_h = p_i1819_3_;
this.func_75146_a(new SlotCrafting(p_i1819_1_.field_70458_d, this.field_75181_e, this.field_75179_f, 0, 144, 36));
- final int var4;
+ int var4;
int var5;
for(var4 = 0; var4 < 2; ++var4) {
for(var5 = 0; var5 < 2; ++var5) {
@@ -38,6 +38,7 @@
}
for(var4 = 0; var4 < 4; ++var4) {
+ final int var44 = var4;
this.func_75146_a(new Slot(p_i1819_1_, p_i1819_1_.func_70302_i_() - 1 - var4, 8, 8 + var4 * 18) {
private static final String __OBFID = "CL_00001755";
@@ -46,11 +47,11 @@
return 1;
}
public boolean func_75214_a(ItemStack p_75214_1_) {
- return p_75214_1_ == null?false:(p_75214_1_.func_77973_b() instanceof ItemArmor?((ItemArmor)p_75214_1_.func_77973_b()).field_77881_a == var4:(p_75214_1_.func_77973_b() != Item.func_150898_a(Blocks.field_150423_aK) && p_75214_1_.func_77973_b() != Items.field_151144_bL?false:var4 == 0));
+ return p_75214_1_ == null?false:(p_75214_1_.func_77973_b() instanceof ItemArmor?((ItemArmor)p_75214_1_.func_77973_b()).field_77881_a == var44:(p_75214_1_.func_77973_b() != Item.func_150898_a(Blocks.field_150423_aK) && p_75214_1_.func_77973_b() != Items.field_151144_bL?false:var44 == 0));
}
@SideOnly(Side.CLIENT)
public IIcon func_75212_b() {
- return ItemArmor.func_94602_b(var4);
+ return ItemArmor.func_94602_b(var44);
}
});
}
@@ -0,0 +1,14 @@
diff -r -U 3 minecraft\net\minecraft\network\PacketBuffer.java minecraft_patched\net\minecraft\network\PacketBuffer.java
--- minecraft\net\minecraft\network\PacketBuffer.java
+++ minecraft_patched\net\minecraft\network\PacketBuffer.java
@@ -713,10 +713,4 @@
public boolean release(int p_release_1_) {
return this.field_150794_a.release(p_release_1_);
}
-
- // $FF: synthetic method
- // $FF: bridge method
- public int compareTo(Object p_compareTo_1_) {
- return this.compareTo((ByteBuf)p_compareTo_1_);
- }
}
@@ -0,0 +1,13 @@
diff -r -U 3 minecraft_server\net\minecraft\server\dedicated\DedicatedServer.java minecraft_server_patched\net\minecraft\server\dedicated\DedicatedServer.java
--- minecraft_server\net\minecraft\server\dedicated\DedicatedServer.java
+++ minecraft_server_patched\net\minecraft\server\dedicated\DedicatedServer.java
@@ -261,7 +261,7 @@
System.exit(0);
}
- protected void func_71190_q() {
+ public void func_71190_q() {
super.func_71190_q();
this.func_71333_ah();
}
@@ -0,0 +1,12 @@
diff -r -U 3 minecraft\net\minecraft\server\integrated\IntegratedServer.java minecraft_patched\net\minecraft\server\integrated\IntegratedServer.java
--- minecraft\net\minecraft\server\integrated\IntegratedServer.java
+++ minecraft_patched\net\minecraft\server\integrated\IntegratedServer.java
@@ -95,7 +95,7 @@
return true;
}
- protected void func_71217_p() {
+ public void func_71217_p() {
boolean var1 = this.field_71348_o;
this.field_71348_o = Minecraft.func_71410_x().func_147114_u() != null && Minecraft.func_71410_x().func_147113_T();
if(!var1 && this.field_71348_o) {
@@ -0,0 +1,11 @@
diff -r -U 3 minecraft\net\minecraft\world\storage\ThreadedFileIOBase.java minecraft_patched\net\minecraft\world\storage\ThreadedFileIOBase.java
--- minecraft\net\minecraft\world\storage\ThreadedFileIOBase.java
+++ minecraft_patched\net\minecraft\world\storage\ThreadedFileIOBase.java
@@ -21,6 +21,7 @@
}
public void run() {
+ while(true)
this.func_75736_b();
}
-155
View File
@@ -1,155 +0,0 @@
diff -r -U 3 minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java
--- minecraft_server\net\minecraft\src\CallableSuspiciousClasses.java Tue Sep 17 14:00:13 2013
+++ minecraft_server_patched\net\minecraft\src\CallableSuspiciousClasses.java Tue Sep 17 14:01:07 2013
@@ -21,9 +21,14 @@
public String func_85085_a() throws SecurityException, NoSuchFieldException, IllegalAccessException, IllegalArgumentException {
StringBuilder var1 = new StringBuilder();
+ ArrayList var3;
+ try {
Field var2 = ClassLoader.class.getDeclaredField("classes");
var2.setAccessible(true);
- ArrayList var3 = new ArrayList((Vector)var2.get(CrashReport.class.getClassLoader()));
+ var3 = new ArrayList((Vector)var2.get(CrashReport.class.getClassLoader()));
+ } catch(Exception ex) {
+ return "";
+ }
boolean var4 = true;
boolean var5 = !CrashReport.class.getCanonicalName().equals("net.minecraft.CrashReport");
HashMap var6 = new HashMap();
@@ -98,6 +103,10 @@
// $FF: synthetic method
public Object call() {
- return this.func_85085_a();
+ try {
+ return this.func_85085_a();
+ } catch(Exception ex) {
+ return null;
+ }
}
}
diff -r -U 3 minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java
--- minecraft_server\net\minecraft\src\ComponentStrongholdRightTurn.java Tue Sep 17 14:00:14 2013
+++ minecraft_server_patched\net\minecraft\src\ComponentStrongholdRightTurn.java Tue Sep 17 14:01:07 2013
@@ -11,6 +11,10 @@
public class ComponentStrongholdRightTurn extends ComponentStrongholdLeftTurn {
+ public ComponentStrongholdRightTurn(int p_i2074_1_, Random p_i2074_2_, StructureBoundingBox p_i2074_3_, int p_i2074_4_) {
+ super(p_i2074_1_, p_i2074_2_, p_i2074_3_, p_i2074_4_);
+ }
+
public void func_74861_a(StructureComponent p_74861_1_, List p_74861_2_, Random p_74861_3_) {
if(this.field_74885_f != 2 && this.field_74885_f != 3) {
this.func_74989_b((ComponentStrongholdStairs2)p_74861_1_, p_74861_2_, p_74861_3_, 1, 1);
diff -r -U 3 minecraft_server\net\minecraft\src\DedicatedServer.java minecraft_server_patched\net\minecraft\src\DedicatedServer.java
--- minecraft_server\net\minecraft\src\DedicatedServer.java Tue Sep 17 14:00:14 2013
+++ minecraft_server_patched\net\minecraft\src\DedicatedServer.java Tue Sep 17 14:01:07 2013
@@ -209,7 +209,7 @@
System.exit(0);
}
- protected void func_71190_q() {
+ public void func_71190_q() {
super.func_71190_q();
this.func_71333_ah();
}
diff -r -U 3 minecraft_server\net\minecraft\src\EnumChatFormatting.java minecraft_server_patched\net\minecraft\src\EnumChatFormatting.java
--- minecraft_server\net\minecraft\src\EnumChatFormatting.java Tue Sep 17 14:00:14 2013
+++ minecraft_server_patched\net\minecraft\src\EnumChatFormatting.java Tue Sep 17 14:01:07 2013
@@ -38,7 +38,7 @@
private final String field_96304_B;
private EnumChatFormatting(char p_i1336_3_) {
- this(p_i1336_1_, p_i1336_2_, p_i1336_3_, false);
+ this(p_i1336_3_, false);
}
private EnumChatFormatting(char p_i1337_3_, boolean p_i1337_4_) {
diff -r -U 3 minecraft_server\net\minecraft\src\MemoryConnection.java minecraft_server_patched\net\minecraft\src\MemoryConnection.java
--- minecraft_server\net\minecraft\src\MemoryConnection.java Tue Sep 17 14:00:15 2013
+++ minecraft_server_patched\net\minecraft\src\MemoryConnection.java Tue Sep 17 14:01:07 2013
@@ -11,13 +11,18 @@
public class MemoryConnection implements INetworkManager {
private static final SocketAddress field_74444_a = new InetSocketAddress("127.0.0.1", 0);
- private final List field_74442_b;
+ private final List field_74442_b = java.util.Collections.synchronizedList(new java.util.ArrayList());
private final ILogAgent field_98214_c;
private MemoryConnection field_74443_c;
private NetHandler field_74440_d;
private boolean field_74441_e;
private String field_74438_f;
private Object[] field_74439_g;
+
+ public MemoryConnection(ILogAgent p_i1392_1_, NetHandler p_i1392_2_) {
+ this.field_74440_d = p_i1392_2_;
+ this.field_98214_c = p_i1392_1_;
+ }
public void func_74425_a(NetHandler p_74425_1_) {
this.field_74440_d = p_74425_1_;
diff -r -U 3 minecraft_server\net\minecraft\src\RConThreadClient.java minecraft_server_patched\net\minecraft\src\RConThreadClient.java
--- minecraft_server\net\minecraft\src\RConThreadClient.java Tue Sep 17 14:00:15 2013
+++ minecraft_server_patched\net\minecraft\src\RConThreadClient.java Tue Sep 17 14:01:07 2013
@@ -32,8 +32,8 @@
}
public void run() {
- while(true) {
- try {
+ try {
+ while(true) {
if(!this.field_72619_a) {
break;
}
@@ -84,20 +84,14 @@
continue;
}
}
- } catch (SocketTimeoutException var17) {
- break;
- } catch (IOException var18) {
- break;
- } catch (Exception var19) {
- System.out.println(var19);
- break;
- } finally {
- this.func_72653_g();
}
-
- return;
+ } catch (SocketTimeoutException var17) {
+ } catch (IOException var18) {
+ } catch (Exception var19) {
+ System.out.println(var19);
+ } finally {
+ this.func_72653_g();
}
-
}
private void func_72654_a(int p_72654_1_, int p_72654_2_, String p_72654_3_) throws IOException {
diff -r -U 3 minecraft_server\net\minecraft\src\TcpMasterThread.java minecraft_server_patched\net\minecraft\src\TcpMasterThread.java
--- minecraft_server\net\minecraft\src\TcpMasterThread.java Tue Sep 17 14:00:16 2013
+++ minecraft_server_patched\net\minecraft\src\TcpMasterThread.java Tue Sep 17 14:01:07 2013
@@ -11,6 +11,7 @@
this.field_74504_a = p_i1395_1_;
}
+ @SuppressWarnings("deprecation")
public void run() {
try {
Thread.sleep(5000L);
diff -r -U 3 minecraft_server\net\minecraft\src\ThreadedFileIOBase.java minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java
--- minecraft_server\net\minecraft\src\ThreadedFileIOBase.java Tue Sep 17 14:00:16 2013
+++ minecraft_server_patched\net\minecraft\src\ThreadedFileIOBase.java Tue Sep 17 14:01:07 2013
@@ -20,6 +20,7 @@
}
public void run() {
+ while(true)
this.func_75736_b();
}
+3 -3
View File
@@ -1,4 +1,4 @@
[VERSION]
MCPVersion = 8.11
ClientVersion = 1.6.4
ServerVersion = 1.6.4
MCPVersion = 9.04
ClientVersion = 1.7.9
ServerVersion = 1.7.9
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -1,6 +1,6 @@
#Tue Oct 29 18:00:54 CDT 2013
#Tue May 06 21:57:37 CEST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip
Vendored Regular → Executable
View File
File mode changed.
+37
View File
@@ -0,0 +1,37 @@
-------------------------------------------
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 'gradlew setupDevWorkspace' to create
a gradle environment primed with FML. Run 'gradlew eclipse' or 'gradlew idea' to
create an IDE workspace of your choice.
Refer to ForgeGradle for more information about the gradle environment
Note: On macs or linux you run the './gradlew.sh' instead of 'gradlew'
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@.
LexManos' Install Video
=======================
https://www.youtube.com/watch?v=8VEdtQLuLO0&feature=youtu.be
For more details update more often refer to the Forge Forums:
http://www.minecraftforge.net/forum/index.php/topic,14048.0.html
+44 -3
View File
@@ -5,9 +5,13 @@ buildscript {
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.0-SNAPSHOT'
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
}
}
@@ -18,5 +22,42 @@ group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-
archivesBaseName = "modid"
minecraft {
version = "${version}"
}
version = "${version}"
assetDir = "eclipse/assets"
}
dependencies {
// you may put jars on which you depend on in ./libs
// or you may define them like so..
//compile "some.group:artifact:version:classifier"
//compile "some.group:artifact:version"
// real examples
//compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
//compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
// for more info...
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
// http://www.gradle.org/docs/current/userguide/dependency_management.html
}
processResources
{
// this will ensure that this task is redone when the versions change.
inputs.property "version", project.version
inputs.property "mcversion", project.minecraft.version
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
// replace version and mcversion
expand 'version':project.version, 'mcversion':project.minecraft.version
}
// copy everything else, thats not the mcmod.info
from(sourceSets.main.resources.srcDirs) {
exclude 'mcmod.info'
}
}
@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/Minecraft/lib/net/minecraft/launchwrapper/1.3/launchwrapper-1.3.jar"/>
<listEntry value="/Minecraft/lib/net/minecraft/launchwrapper/1.8/launchwrapper-1.8.jar"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="1"/>
</listAttribute>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="net.minecraft.launchwrapper.Launch"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="--version 1.6 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker --accessToken FML"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Minecraft"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xincgc -Xmx1024M -Xms1024M"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:Minecraft/jars}"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xincgc -Xmx1024M -Xms1024M -Dfml.ignoreInvalidMinecraftCertificates=true"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
</launchConfiguration>
@@ -9,5 +9,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="cpw.mods.fml.relauncher.ServerLaunchWrapper"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Minecraft"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xincgc -Xmx1024M -Xms1024M"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:Minecraft/jars}"/>
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
</launchConfiguration>
@@ -0,0 +1,20 @@
package com.example.examplemod;
import net.minecraft.init.Blocks;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLInitializationEvent;
@Mod(modid = ExampleMod.MODID, version = ExampleMod.VERSION)
public class ExampleMod
{
public static final String MODID = "examplemod";
public static final String VERSION = "1.0";
@EventHandler
public void init(FMLInitializationEvent event)
{
// some example code
System.out.println("DIRT BLOCK >> "+Blocks.dirt.getUnlocalizedName());
}
}
+16
View File
@@ -0,0 +1,16 @@
[
{
"modid": "examplemod",
"name": "Example Mod",
"description": "Example placeholder mod.",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["ExampleDude"],
"credits": "The Forge and FML guys, for making this example",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
]
+7 -7
View File
@@ -1,17 +1,17 @@
{
"install": {
"profileName": "FML",
"target":"@minecraft_version@-FML@version@",
"path":"cpw.mods:fml:@version@",
"version":"FML @version@",
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple FML installer.",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png"
},
"versionInfo": {
"id": "@minecraft_version@-FML@version@",
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
@@ -20,7 +20,7 @@
"minimumLauncherVersion": 4,
"libraries": [
{
"name": "cpw.mods:fml:@version@",
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
+203
View File
@@ -0,0 +1,203 @@
{
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--version FML_DEV --tweakClass cpw.mods.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "net.minecraft:launchwrapper:1.9",
"comment" : "Important for FML, we add this"
},
{
"name": "org.ow2.asm:asm-debug-all:4.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "org.scala-lang:scala-library:2.10.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "org.scala-lang:scala-compiler:2.10.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5"
},
{
"name": "lzma:lzma:0.0.1"
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.3"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"natives": {
"linux": "natives-linux",
"windows": "natives-windows"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"natives": {
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.launchwrapper.Launch",
"minimumLauncherVersion": 9
}
+219
View File
@@ -0,0 +1,219 @@
{
"install": {
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${game_assets} --uuid ${auth_uuid} --accessToken ${auth_access_token} --tweakClass cpw.mods.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
"name": "net.minecraft:launchwrapper:1.9",
"serverreq":true
},
{
"name": "org.ow2.asm:asm-all:4.1",
"serverreq":true
},
{
"name": "org.scala-lang:scala-library:2.10.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "6ba65d12cd09d441083262d6f73d2257fec7c663", "65de4339eaed1c3675485fb03a3532fecfd8e8cd" ],
"comment" : "Important for FML, we add this",
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-compiler:2.10.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "64c8b1380cc53d6850823d6e4e7ae984aa44ef9c", "99fd0ffb66f3088b0cd1071315fd5eb2b2b070ff" ],
"comment" : "Important for FML, we add this",
"serverreq":true,
"clientreq":true
},
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5",
"serverreq":true
},
{
"name": "lzma:lzma:0.0.1",
"serverreq":true
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.3"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"natives": {
"linux": "natives-linux",
"windows": "natives-windows"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"natives": {
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.launchwrapper.Launch",
"minimumLauncherVersion": 9
}
}
+173
View File
@@ -0,0 +1,173 @@
{
"id": "1.7.2",
"time": "2014-04-02T12:00:00+02:00",
"releaseTime": "2013-10-25T15:00:00+02:00",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${game_assets} --uuid ${auth_uuid} --accessToken ${auth_access_token}",
"minimumLauncherVersion": 9,
"libraries": [
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5"
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.3"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows"
},
"extract": {
"exclude": [
"META-INF/"
]
},
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20131017",
"natives": {
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
},
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.client.main.Main"
}
+179
View File
@@ -0,0 +1,179 @@
{
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--version FML_DEV --tweakClass cpw.mods.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "net.minecraft:launchwrapper:1.9",
"comment" : "Important for FML, we add this"
},
{
"name": "org.ow2.asm:asm-debug-all:4.1",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "org.scala-lang:scala-library:2.10.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "org.scala-lang:scala-compiler:2.10.2",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2",
"comment" : "Important for FML, we add this"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5",
"children" : ["sources"],
"url" : "http://repo.maven.apache.org/maven2"
},
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5"
},
{
"name": "lzma:lzma:0.0.1"
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "commons-codec:commons-codec:1.9"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.5.13"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1"
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1"
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "tv.twitch:twitch:5.16"
},
{
"name": "tv.twitch:twitch-platform:5.16",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "linux"
}
}
],
"natives": {
"linux": "natives-linux",
"windows": "natives-windows-${arch}",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "tv.twitch:twitch-external-platform:4.5",
"rules": [
{
"action": "allow",
"os": {
"name": "windows"
}
}
],
"natives": {
"windows": "natives-windows-${arch}"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.launchwrapper.Launch",
"minimumLauncherVersion": 9
}
+219
View File
@@ -0,0 +1,219 @@
{
"install": {
"profileName": "@project@",
"target":"@minecraft_version@-@project@@version@",
"path":"@artifact@",
"version":"@project@ @version@",
"filePath":"@universal_jar@",
"welcome":"Welcome to the simple @project@ installer.",
"minecraft":"@minecraft_version@",
"mirrorList" : "http://files.minecraftforge.net/mirror-brand.list",
"logo":"/big_logo.png"
},
"versionInfo": {
"id": "@minecraft_version@-@project@@version@",
"time": "@timestamp@",
"releaseTime": "1960-01-01T00:00:00-0700",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${game_assets} --uuid ${auth_uuid} --accessToken ${auth_access_token} --tweakClass cpw.mods.fml.common.launcher.FMLTweaker",
"libraries": [
{
"name": "@artifact@",
"url": "http://files.minecraftforge.net/maven/"
},
{
"name": "net.minecraft:launchwrapper:1.9",
"serverreq":true
},
{
"name": "org.ow2.asm:asm-all:4.1",
"serverreq":true
},
{
"name": "org.scala-lang:scala-library:2.10.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "6ba65d12cd09d441083262d6f73d2257fec7c663", "65de4339eaed1c3675485fb03a3532fecfd8e8cd" ],
"comment" : "Important for FML, we add this",
"serverreq":true,
"clientreq":true
},
{
"name": "org.scala-lang:scala-compiler:2.10.2",
"url" : "http://files.minecraftforge.net/maven/",
"checksums" : [ "64c8b1380cc53d6850823d6e4e7ae984aa44ef9c", "99fd0ffb66f3088b0cd1071315fd5eb2b2b070ff" ],
"comment" : "Important for FML, we add this",
"serverreq":true,
"clientreq":true
},
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5",
"serverreq":true
},
{
"name": "lzma:lzma:0.0.1",
"serverreq":true
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.3"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.0",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "osx"
}
}
],
"natives": {
"linux": "natives-linux",
"windows": "natives-windows"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20131017",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"natives": {
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.launchwrapper.Launch",
"minimumLauncherVersion": 9
}
}
+150
View File
@@ -0,0 +1,150 @@
{
"id": "1.7.9",
"time": "2014-04-14T15:29:23+02:00",
"releaseTime": "2014-04-14T15:29:23+02:00",
"type": "release",
"minecraftArguments": "--username ${auth_player_name} --version ${version_name} --gameDir ${game_directory} --assetsDir ${assets_root} --assetIndex ${assets_index_name} --uuid ${auth_uuid} --accessToken ${auth_access_token} --userProperties ${user_properties} --userType ${user_type}",
"minimumLauncherVersion": 13,
"assets": "1.7.4",
"libraries": [
{
"name": "java3d:vecmath:1.3.1"
},
{
"name": "net.sf.trove4j:trove4j:3.0.3"
},
{
"name": "com.ibm.icu:icu4j-core-mojang:51.2"
},
{
"name": "net.sf.jopt-simple:jopt-simple:4.5"
},
{
"name": "com.paulscode:codecjorbis:20101023"
},
{
"name": "com.paulscode:codecwav:20101023"
},
{
"name": "com.paulscode:libraryjavasound:20101123"
},
{
"name": "com.paulscode:librarylwjglopenal:20100824"
},
{
"name": "com.paulscode:soundsystem:20120107"
},
{
"name": "io.netty:netty-all:4.0.10.Final"
},
{
"name": "com.google.guava:guava:15.0"
},
{
"name": "org.apache.commons:commons-lang3:3.1"
},
{
"name": "commons-io:commons-io:2.4"
},
{
"name": "commons-codec:commons-codec:1.9"
},
{
"name": "net.java.jinput:jinput:2.0.5"
},
{
"name": "net.java.jutils:jutils:1.0.0"
},
{
"name": "com.google.code.gson:gson:2.2.4"
},
{
"name": "com.mojang:authlib:1.5.13"
},
{
"name": "org.apache.logging.log4j:log4j-api:2.0-beta9"
},
{
"name": "org.apache.logging.log4j:log4j-core:2.0-beta9"
},
{
"name": "org.lwjgl.lwjgl:lwjgl:2.9.1"
},
{
"name": "org.lwjgl.lwjgl:lwjgl_util:2.9.1"
},
{
"name": "org.lwjgl.lwjgl:lwjgl-platform:2.9.1",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "net.java.jinput:jinput-platform:2.0.5",
"natives": {
"linux": "natives-linux",
"windows": "natives-windows",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "tv.twitch:twitch:5.16"
},
{
"name": "tv.twitch:twitch-platform:5.16",
"rules": [
{
"action": "allow"
},
{
"action": "disallow",
"os": {
"name": "linux"
}
}
],
"natives": {
"linux": "natives-linux",
"windows": "natives-windows-${arch}",
"osx": "natives-osx"
},
"extract": {
"exclude": [
"META-INF/"
]
}
},
{
"name": "tv.twitch:twitch-external-platform:4.5",
"rules": [
{
"action": "allow",
"os": {
"name": "windows"
}
}
],
"natives": {
"windows": "natives-windows-${arch}"
},
"extract": {
"exclude": [
"META-INF/"
]
}
}
],
"mainClass": "net.minecraft.client.main.Main"
}
+5
View File
@@ -1,4 +1,9 @@
^org/bouncycastle
^org/apache
^com/google
^com/mojang/authlib
^com/mojang/util
^gnu/trove
^io/netty
^javax/annotation
^argo
@@ -0,0 +1,18 @@
--- ../src-base/minecraft/net/minecraft/block/Block.java
+++ ../src-work/minecraft/net/minecraft/block/Block.java
@@ -1,5 +1,6 @@
package net.minecraft.block;
+import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Iterator;
@@ -32,7 +33,7 @@
public class Block
{
- public static final RegistryNamespaced field_149771_c = new RegistryNamespacedDefaultedByKey("air");
+ public static final RegistryNamespaced field_149771_c = GameData.getBlockRegistry();
private CreativeTabs field_149772_a;
protected String field_149768_d;
public static final Block.SoundType field_149769_e = new Block.SoundType("stone", 1.0F, 1.0F);
@@ -7,8 +7,8 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@@ -8,6 +9,6 @@
{
@@ -10,6 +11,6 @@
public static String getClientModName()
{
- return "vanilla";
@@ -0,0 +1,26 @@
--- ../src-base/minecraft/net/minecraft/client/LoadingScreenRenderer.java
+++ ../src-work/minecraft/net/minecraft/client/LoadingScreenRenderer.java
@@ -1,5 +1,6 @@
package net.minecraft.client;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.Gui;
@@ -138,6 +139,8 @@
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
}
+ if (!FMLClientHandler.instance().handleLoadingScreen(scaledresolution))
+ {
Tessellator tessellator = Tessellator.field_78398_a;
this.field_73725_b.func_110434_K().func_110577_a(Gui.field_110325_k);
float f = 32.0F;
@@ -175,6 +178,7 @@
OpenGlHelper.func_148821_a(770, 771, 1, 0);
this.field_73725_b.field_71466_p.func_78261_a(this.field_73726_c, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2, i1 / 2 - 4 - 16, 16777215);
this.field_73725_b.field_71466_p.func_78261_a(this.field_73727_a, (l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2, i1 / 2 - 4 + 8, 16777215);
+ }
this.field_146588_g.func_147609_e();
if (OpenGlHelper.func_148822_b())
@@ -1,18 +1,16 @@
--- ../src-base/minecraft/net/minecraft/client/Minecraft.java
+++ ../src-work/minecraft/net/minecraft/client/Minecraft.java
@@ -1,6 +1,11 @@
package net.minecraft.client;
import com.google.common.collect.Lists;
+
@@ -9,6 +9,9 @@
import com.google.common.util.concurrent.ListenableFutureTask;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.registry.GameData;
+import cpw.mods.fml.common.registry.ItemData;
+import cpw.mods.fml.common.StartupQuery;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.image.BufferedImage;
@@ -130,6 +135,8 @@
import io.netty.util.concurrent.GenericFutureListener;
@@ -169,6 +172,8 @@
import org.lwjgl.opengl.PixelFormat;
import org.lwjgl.util.glu.GLU;
@@ -21,20 +19,43 @@
@SideOnly(Side.CLIENT)
public class Minecraft implements IPlayerUsage
{
@@ -362,9 +369,12 @@
@@ -344,21 +349,23 @@
File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt");
System.out.println(p_71377_1_.func_71502_e());
+ int retVal;
if (p_71377_1_.func_71497_f() != null)
{
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_1_.func_71497_f());
- System.exit(-1);
+ retVal = -1;
}
else if (p_71377_1_.func_147149_a(file2))
{
System.out.println("#@!@# Game crashed! Crash report saved to: #@!@# " + file2.getAbsolutePath());
- System.exit(-1);
+ retVal = -1;
}
else
{
System.out.println("#@?@# Game crashed! Crash report could not be saved. #@?@#");
- System.exit(-2);
+ retVal = -2;
}
+ FMLCommonHandler.instance().handleExit(retVal);
}
public void func_71367_a(String p_71367_1_, int p_71367_2_)
@@ -471,7 +478,7 @@
this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an);
this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab);
this.field_110451_am.func_110542_a(this.field_135017_as);
- this.func_110436_a();
+ FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
this.field_71446_o = new TextureManager(this.field_110451_am);
this.field_110451_am.func_110542_a(this.field_71446_o);
this.field_71416_A = new SoundManager(this.field_110451_am, this.field_71474_y, this.field_110446_Y);
+ this.field_71416_A.LOAD_SOUND_SYSTEM = false;
this.field_110451_am.func_110542_a(this.field_71416_A);
this.func_71357_I();
this.field_71466_p = new FontRenderer(this.field_71474_y, new ResourceLocation("textures/font/ascii.png"), this.field_71446_o, false);
+
+ FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am);
if (this.field_71474_y.field_74363_ab != null)
{
@@ -400,6 +410,7 @@
this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az);
@@ -532,12 +539,13 @@
this.field_71446_o.func_130088_a(TextureMap.field_110576_c, new TextureMap(1, "textures/items"));
GL11.glViewport(0, 0, this.field_71443_c, this.field_71440_d);
this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o);
@@ -42,50 +63,59 @@
this.func_71361_d("Post startup");
this.field_71456_v = new GuiIngame(this);
@@ -418,6 +429,7 @@
if (this.field_71475_ae != null)
{
- this.func_147108_a(new GuiConnecting(new GuiMainMenu(), this, this.field_71475_ae, this.field_71477_af));
+ FMLClientHandler.instance().connectToServerAtStartup(this.field_71475_ae, this.field_71477_af);
}
else
{
@@ -553,6 +561,7 @@
this.func_71352_k();
}
+ FMLClientHandler.instance().onInitializationComplete();
}
public void func_110436_a()
@@ -733,6 +745,7 @@
try
{
this.func_71405_e();
}
+
}
private void func_71411_J()
@@ -801,9 +814,11 @@
Display.setVSyncEnabled(this.field_71474_y.field_74352_v);
@@ -970,9 +979,11 @@
if (!this.field_71454_w)
{
+ FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c);
+ FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c);
this.field_71424_I.func_76318_c("gameRenderer");
this.field_71460_t.func_78480_b(this.field_71428_T.field_74281_c);
this.field_71424_I.func_76319_b();
+ FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c);
+ FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c);
}
GL11.glFlush();
@@ -1325,10 +1340,14 @@
public void func_71407_l()
{
+ FMLCommonHandler.instance().rescheduleTicks(Side.CLIENT);
+
if (this.field_71467_ac > 0)
{
@@ -1554,6 +1565,8 @@
--this.field_71467_ac;
}
+
+ FMLCommonHandler.instance().onPreClientTick();
this.field_71424_I.func_76320_a("stats");
this.field_71413_E.func_77449_e();
@@ -1785,6 +1804,8 @@
+ FMLCommonHandler.instance().onPreClientTick();
+
this.field_71424_I.func_76320_a("gui");
if (!this.field_71445_n)
@@ -1698,6 +1711,7 @@
this.field_71462_r.func_146274_d();
}
}
+ FMLCommonHandler.instance().fireMouseInput();
}
if (this.field_71429_W > 0)
@@ -1834,6 +1848,7 @@
}
}
}
+ FMLCommonHandler.instance().fireKeyInput();
}
}
@@ -2025,12 +2040,15 @@
this.field_71453_ak.func_74428_b();
}
@@ -94,31 +124,31 @@
this.field_71424_I.func_76319_b();
this.field_71423_H = func_71386_F();
}
@@ -1808,8 +1829,27 @@
public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_)
{
+ FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_);
this.func_71403_a((WorldClient)null);
System.gc();
ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
@@ -2066,6 +2084,12 @@
while (!this.field_71437_Z.func_71200_ad())
{
+ if (!StartupQuery.check())
+ {
+ func_71403_a(null);
+ func_147108_a(null);
+ return;
+ }
String s2 = this.field_71437_Z.func_71195_b_();
if (s2 != null)
@@ -2141,6 +2165,7 @@
this.field_110448_aq.func_148529_f();
this.func_71351_a((ServerData)null);
this.field_71455_al = false;
+ FMLClientHandler.instance().handleClientWorldClosing(this.field_71441_e);
}
this.field_71413_E.func_77450_a(StatList.field_75936_f, 1);
+
+ GameData.initializeServerGate(2);
+
this.field_71437_Z = new IntegratedServer(this, p_71371_1_, p_71371_2_, p_71371_3_);
this.field_71437_Z.func_71256_s();
+
+ MapDifference<Integer, ItemData> idDifferences = GameData.gateWorldLoadingForValidation();
+ if (idDifferences!=null)
+ {
+ FMLClientHandler.instance().warnIDMismatch(idDifferences, true);
+ }
+ else
+ {
+ GameData.releaseGate(true);
+ continueWorldLoading();
+ }
+
+ }
+
+ public void continueWorldLoading()
+ {
this.field_71455_al = true;
this.field_71461_s.func_73720_a(I18n.func_135053_a("menu.loadingLevel"));
this.field_147127_av.func_147690_c();
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/audio/SoundManager.java
+++ ../src-work/minecraft/net/minecraft/client/audio/SoundManager.java
@@ -27,6 +27,7 @@
@SideOnly(Side.CLIENT)
public class SoundManager implements ResourceManagerReloadListener
{
+ public boolean LOAD_SOUND_SYSTEM = true;
private static final String[] field_130084_a = new String[] {"ogg"};
private SoundSystem field_77381_a;
private boolean field_77376_g;
@@ -67,6 +68,7 @@
public void func_110549_a(ResourceManager p_110549_1_)
{
+ if (!this.LOAD_SOUND_SYSTEM) return; //Stop the sound system from initializing three times at startup. Causing race conditions on some machines.
this.func_82464_d();
this.func_77370_b();
this.func_77363_d();
@@ -0,0 +1,24 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiButton.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiButton.java
@@ -23,6 +23,7 @@
public boolean field_146125_m;
protected boolean field_146123_n;
private static final String __OBFID = "CL_00000668";
+ public int packedFGColour;
public GuiButton(int p_i1020_1_, int p_i1020_2_, int p_i1020_3_, String p_i1020_4_)
{
@@ -76,8 +77,12 @@
this.func_146119_b(p_146112_1_, p_146112_2_, p_146112_3_);
int l = 14737632;
- if (!this.field_146124_l)
+ if (packedFGColour != 0)
{
+ l = packedFGColour;
+ }
+ else if (!this.field_146124_l)
+ {
l = 10526880;
}
else if (this.field_146123_n)
@@ -1,11 +1,11 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java
@@ -212,6 +212,8 @@
@@ -211,6 +211,8 @@
}
}
+ WorldType.field_77139_a[this.field_73916_E].onGUICreateWorldPress();
+ WorldType.field_77139_a[this.field_146331_K].onGUICreateWorldPress();
+
EnumGameType enumgametype = EnumGameType.func_77142_a(this.field_73927_m);
WorldSettings worldsettings = new WorldSettings(i, enumgametype, this.field_73925_n, this.field_73933_r, WorldType.field_77139_a[this.field_73916_E]);
worldsettings.func_82750_a(this.field_82290_a);
WorldSettings.GameType gametype = WorldSettings.GameType.func_77142_a(this.field_146342_r);
WorldSettings worldsettings = new WorldSettings(i, gametype, this.field_146341_s, this.field_146337_w, WorldType.field_77139_a[this.field_146331_K]);
worldsettings.func_82750_a(this.field_146334_a);
@@ -0,0 +1,21 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngame.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngame.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.Color;
@@ -314,6 +315,11 @@
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 2, 14737632);
s = "Allocated memory: " + j5 * 100L / i5 + "% (" + j5 / 1024L / 1024L + "MB)";
this.func_73731_b(fontrenderer, s, k - fontrenderer.func_78256_a(s) - 2, 12, 14737632);
+ int offset = 22;
+ for (String brd : FMLCommonHandler.instance().getBrandings(false))
+ {
+ this.func_73731_b(fontrenderer, brd, k - fontrenderer.func_78256_a(brd) - 2, offset+=10, 14737632);
+ }
j3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70165_t);
k3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70163_u);
int l3 = MathHelper.func_76128_c(this.field_73839_d.field_71439_g.field_70161_v);
@@ -0,0 +1,31 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngameMenu.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.gui.achievement.GuiAchievements;
@@ -29,8 +30,9 @@
this.field_146292_n.add(new GuiButton(4, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 24 + b0, I18n.func_135052_a("menu.returnToGame", new Object[0])));
this.field_146292_n.add(new GuiButton(0, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.options", new Object[0])));
+ this.field_146292_n.add(new GuiButton(12, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, "Mod Options..."));
GuiButton guibutton;
- this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
+ this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 72 + b0, 200, 20, I18n.func_135052_a("menu.shareToLan", new Object[0])));
this.field_146292_n.add(new GuiButton(5, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.achievements", new Object[0])));
this.field_146292_n.add(new GuiButton(6, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.stats", new Object[0])));
guibutton.field_146124_l = this.field_146297_k.func_71356_B() && !this.field_146297_k.func_71401_C().func_71344_c();
@@ -64,6 +66,10 @@
break;
case 7:
this.field_146297_k.func_147108_a(new GuiShareToLan(this));
+ break;
+ case 12:
+ FMLClientHandler.instance().showInGameModOptions(this);
+ break;
}
}
@@ -14,78 +14,77 @@
import java.util.Date;
+import java.util.List;
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;
import net.minecraft.client.Minecraft;
import net.minecraft.client.mco.ExceptionMcoService;
@@ -26,6 +29,9 @@
import org.apache.commons.io.Charsets;
import org.lwjgl.opengl.GL11;
@@ -35,6 +38,9 @@
import org.lwjgl.opengl.GLContext;
import org.lwjgl.util.glu.Project;
+
+import com.google.common.base.Strings;
+import com.google.common.collect.Lists;
+
@SideOnly(Side.CLIENT)
public class GuiMainMenu extends GuiScreen
@@ -55,6 +61,8 @@
private ResourceLocation field_110351_G;
public class GuiMainMenu extends GuiScreen implements GuiYesNoCallback
{
@@ -67,6 +73,8 @@
private GuiButton field_130023_H;
private static final String __OBFID = "CL_00001154";
+ private GuiButton fmlModButton = null;
+
public GuiMainMenu()
{
BufferedReader bufferedreader = null;
@@ -206,13 +214,22 @@
this.field_146972_A = field_96138_a;
@@ -267,13 +275,22 @@
private void func_130022_h()
{
this.field_130023_H.field_73748_h = true;
+ fmlModButton.field_73747_a = 98;
+ fmlModButton.field_73746_c = this.field_73880_f / 2 + 2;
this.field_130023_H.field_146125_m = true;
+ fmlModButton.field_146120_f = 98;
+ fmlModButton.field_146128_h = this.field_146294_l / 2 + 2;
}
private void func_73969_a(int p_73969_1_, int p_73969_2_)
{
this.field_73887_h.add(new GuiButton(1, this.field_73880_f / 2 - 100, p_73969_1_, I18n.func_135053_a("menu.singleplayer")));
this.field_73887_h.add(new GuiButton(2, this.field_73880_f / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.func_135053_a("menu.multiplayer")));
- this.field_73887_h.add(this.field_130023_H = new GuiButton(14, this.field_73880_f / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135053_a("menu.online")));
this.field_146292_n.add(new GuiButton(1, this.field_146294_l / 2 - 100, p_73969_1_, I18n.func_135052_a("menu.singleplayer", new Object[0])));
this.field_146292_n.add(new GuiButton(2, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.func_135052_a("menu.multiplayer", new Object[0])));
- this.field_146292_n.add(this.field_130023_H = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0])));
+ //If Minecraft Realms is enabled, halve the size of both buttons and set them next to eachother.
+ fmlModButton = new GuiButton(6, this.field_73880_f / 2 - 100, p_73969_1_ + p_73969_2_ * 2, "Mods");
+ this.field_73887_h.add(fmlModButton);
+ fmlModButton = new GuiButton(6, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, "Mods");
+ this.field_146292_n.add(fmlModButton);
+
+ field_130023_H = new GuiButton(14, this.field_73880_f / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135053_a("menu.online"));
+ field_130023_H.field_73747_a = 98;
+ field_130023_H.field_73746_c = this.field_73880_f / 2 - 100;
+ this.field_73887_h.add(field_130023_H);
this.field_130023_H.field_73748_h = false;
+ field_130023_H = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online"));
+ field_130023_H.field_146120_f = 98;
+ field_130023_H.field_146128_h = this.field_146294_l / 2 - 100;
+ this.field_146292_n.add(field_130023_H);
this.field_130023_H.field_146125_m = false;
}
@@ -259,6 +276,11 @@
if (p_73875_1_.field_73741_f == 4)
{
this.field_73882_e.func_71400_g();
+ }
+
+ if (p_73875_1_.field_73741_f == 6)
+ {
+ this.field_73882_e.func_71373_a(new GuiModList(this));
@@ -322,6 +339,11 @@
this.field_146297_k.func_71400_g();
}
if (p_73875_1_.field_73741_f == 11)
@@ -520,7 +542,16 @@
+ if (p_146284_1_.field_146127_k == 6)
+ {
+ this.field_146297_k.func_147108_a(new GuiModList(this));
+ }
+
if (p_146284_1_.field_146127_k == 11)
{
this.field_146297_k.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a);
@@ -585,7 +607,15 @@
s = s + " Demo";
}
- this.func_73731_b(this.field_73886_k, s, 2, this.field_73881_g - 10, 16777215);
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings());
- this.func_73731_b(this.field_146289_q, s, 2, this.field_146295_m - 10, -1);
+ List<String> brandings = Lists.reverse(FMLCommonHandler.instance().getBrandings(true));
+ for (int i = 0; i < brandings.size(); i++)
+ {
+ String brd = brandings.get(i);
+ if (!Strings.isNullOrEmpty(brd))
+ {
+ this.func_73731_b(this.field_73886_k, brd, 2, this.field_73881_g - ( 10 + i * (this.field_73886_k.field_78288_b + 1)), 16777215);
+ this.func_73731_b(this.field_146289_q, brd, 2, this.field_146295_m - ( 10 + i * (this.field_146289_q.field_78288_b + 1)), 16777215);
+ }
+ }
+
String s1 = "Copyright Mojang AB. Do not distribute!";
this.func_73731_b(this.field_73886_k, s1, this.field_73880_f - this.field_73886_k.func_78256_a(s1) - 2, this.field_73881_g - 10, 16777215);
this.func_73731_b(this.field_146289_q, s1, this.field_146294_l - this.field_146289_q.func_78256_a(s1) - 2, this.field_146295_m - 10, -1);
@@ -0,0 +1,27 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiMultiplayer.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiMultiplayer.java
@@ -2,6 +2,7 @@
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
@@ -40,6 +41,7 @@
public GuiMultiplayer(GuiScreen p_i1040_1_)
{
this.field_146798_g = p_i1040_1_;
+ FMLClientHandler.instance().setupServerList();
}
public void func_73866_w_()
@@ -366,7 +368,7 @@
private void func_146791_a(ServerData p_146791_1_)
{
- this.field_146297_k.func_147108_a(new GuiConnecting(this, this.field_146297_k, p_146791_1_));
+ FMLClientHandler.instance().connectToServer(this, p_146791_1_);
}
public void func_146790_a(int p_146790_1_)
@@ -0,0 +1,18 @@
--- ../src-base/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
+++ ../src-work/minecraft/net/minecraft/client/gui/GuiSelectWorld.java
@@ -1,5 +1,6 @@
package net.minecraft.client.gui;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.text.DateFormat;
@@ -179,7 +180,7 @@
if (this.field_146297_k.func_71359_d().func_90033_f(s))
{
- this.field_146297_k.func_71371_a(s, s1, (WorldSettings)null);
+ FMLClientHandler.instance().tryLoadExistingWorld(this, s, s1);
}
}
}
@@ -0,0 +1,31 @@
--- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
+++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java
@@ -2,6 +2,7 @@
import com.google.common.base.Charsets;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
@@ -83,7 +84,7 @@
boolean flag2 = this.field_148301_e.field_82821_f < 5;
boolean flag3 = flag1 || flag2;
this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_148279_2_ + 32 + 3, p_148279_3_ + 1, 16777215);
- List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_148279_4_ - 32 - 2);
+ List list = this.field_148300_d.field_71466_p.func_78271_c(FMLClientHandler.instance().fixDescription(this.field_148301_e.field_78843_d), p_148279_4_ - 32 - 2);
for (int l1 = 0; l1 < Math.min(list.size(), 2); ++l1)
{
@@ -174,6 +175,11 @@
int k2 = p_148279_7_ - p_148279_2_;
int l2 = p_148279_8_ - p_148279_3_;
+ String tooltip = FMLClientHandler.instance().enhanceServerListEntry(this, this.field_148301_e, p_148279_2_, p_148279_4_, p_148279_3_, k2, l2);
+ if (tooltip != null)
+ {
+ this.field_148303_c.func_146793_a(tooltip);
+ } else
if (k2 >= p_148279_4_ - 15 && k2 <= p_148279_4_ - 5 && l2 >= 0 && l2 <= 8)
{
this.field_148303_c.func_146793_a(s1);
@@ -1,13 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java
+++ ../src-work/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java
@@ -131,4 +131,10 @@
{
return p_98096_0_.field_73882_e;
}
+
+ public static void forceTermination(GuiConnecting gui)
+ {
+ gui.field_74258_b = true;
+ gui.field_74259_a = null;
+ }
}
@@ -1,119 +0,0 @@
--- ../src-base/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
+++ ../src-work/minecraft/net/minecraft/client/multiplayer/NetClientHandler.java
@@ -1,6 +1,8 @@
package net.minecraft.client.multiplayer;
import com.google.common.base.Charsets;
+
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -205,11 +207,14 @@
private GuiScreen field_98183_l;
Random field_72557_e = new Random();
+ private static byte connectionCompatibilityLevel;
+
public NetClientHandler(Minecraft p_i1176_1_, String p_i1176_2_, int p_i1176_3_) throws IOException
{
this.field_72563_h = p_i1176_1_;
Socket socket = new Socket(InetAddress.getByName(p_i1176_2_), p_i1176_3_);
this.field_72555_g = new TcpConnection(p_i1176_1_.func_98033_al(), socket, "Client", this);
+ FMLNetworkHandler.onClientConnectionToRemoteServer(this, p_i1176_2_, p_i1176_3_, this.field_72555_g);
}
public NetClientHandler(Minecraft p_i1177_1_, String p_i1177_2_, int p_i1177_3_, GuiScreen p_i1177_4_) throws IOException
@@ -218,6 +223,7 @@
this.field_98183_l = p_i1177_4_;
Socket socket = new Socket(InetAddress.getByName(p_i1177_2_), p_i1177_3_);
this.field_72555_g = new TcpConnection(p_i1177_1_.func_98033_al(), socket, "Client", this);
+ FMLNetworkHandler.onClientConnectionToRemoteServer(this, p_i1177_2_, p_i1177_3_, this.field_72555_g);
}
public NetClientHandler(Minecraft p_i1178_1_, IntegratedServer p_i1178_2_) throws IOException
@@ -225,6 +231,7 @@
this.field_72563_h = p_i1178_1_;
this.field_72555_g = new MemoryConnection(p_i1178_1_.func_98033_al(), this);
p_i1178_2_.func_71343_a().func_71754_a((MemoryConnection)this.field_72555_g, p_i1178_1_.func_110432_I().func_111285_a());
+ FMLNetworkHandler.onClientConnectionToIntegratedServer(this, p_i1178_2_, this.field_72555_g);
}
public void func_72547_c()
@@ -296,6 +303,7 @@
public void func_72513_a(Packet252SharedKey p_72513_1_)
{
+ this.func_72552_c(FMLNetworkHandler.getFMLFakeLoginPacket());
this.func_72552_c(new Packet205ClientCommand(0));
}
@@ -311,6 +319,7 @@
this.field_72563_h.field_71439_g.field_70157_k = p_72455_1_.field_73561_a;
this.field_72556_d = p_72455_1_.field_73562_h;
this.field_72563_h.field_71442_b.func_78746_a(p_72455_1_.field_73557_d);
+ FMLNetworkHandler.onConnectionEstablishedToServer(this, field_72555_g, p_72455_1_);
this.field_72563_h.field_71474_y.func_82879_c();
this.field_72555_g.func_74429_a(new Packet250CustomPayload("MC|Brand", ClientBrandRetriever.getClientModName().getBytes(Charsets.UTF_8)));
}
@@ -765,6 +774,7 @@
{
this.field_72555_g.func_74429_a(p_72546_1_);
this.field_72555_g.func_74423_d();
+ FMLNetworkHandler.onConnectionClosed(this.field_72555_g, this.getPlayer());
}
}
@@ -804,6 +814,7 @@
public void func_72481_a(Packet3Chat p_72481_1_)
{
+ p_72481_1_ = FMLNetworkHandler.handleChatMessage(this, p_72481_1_);
this.field_72563_h.field_71456_v.func_73827_b().func_73765_a(ChatMessageComponent.func_111078_c(p_72481_1_.field_73476_b).func_111068_a(true));
}
@@ -1403,6 +1414,11 @@
public void func_72494_a(Packet131MapData p_72494_1_)
{
+ FMLNetworkHandler.handlePacket131Packet(this, p_72494_1_);
+ }
+
+ public void fmlPacket131Callback(Packet131MapData p_72494_1_)
+ {
if (p_72494_1_.field_73438_a == Item.field_77744_bd.field_77779_bT)
{
ItemMap.func_77874_a(p_72494_1_.field_73436_b, this.field_72563_h.field_71441_e).func_76192_a(p_72494_1_.field_73437_c);
@@ -1514,6 +1530,11 @@
public void func_72501_a(Packet250CustomPayload p_72501_1_)
{
+ FMLNetworkHandler.handlePacket250Packet(p_72501_1_, field_72555_g, this);
+ }
+
+ public void handleVanilla250Packet(Packet250CustomPayload p_72501_1_)
+ {
if ("MC|TrList".equals(p_72501_1_.field_73630_a))
{
DataInputStream datainputstream = new DataInputStream(new ByteArrayInputStream(p_72501_1_.field_73629_c));
@@ -1707,4 +1728,20 @@
{
return this.field_72555_g;
}
+
+ @Override
+ public EntityPlayer getPlayer()
+ {
+ return field_72563_h.field_71439_g;
+ }
+
+ public static void setConnectionCompatibilityLevel(byte connectionCompatibilityLevel)
+ {
+ NetClientHandler.connectionCompatibilityLevel = connectionCompatibilityLevel;
+ }
+
+ public static byte getConnectionCompatibilityLevel()
+ {
+ return connectionCompatibilityLevel;
+ }
}
@@ -0,0 +1,41 @@
--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
+++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java
@@ -5,6 +5,9 @@
import com.mojang.authlib.exceptions.InvalidCredentialsException;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.util.concurrent.Future;
@@ -23,6 +26,7 @@
import net.minecraft.network.login.server.S00PacketDisconnect;
import net.minecraft.network.login.server.S01PacketEncryptionRequest;
import net.minecraft.network.login.server.S02PacketLoginSuccess;
+import net.minecraft.network.play.client.C17PacketCustomPayload;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.CryptManager;
import net.minecraft.util.IChatComponent;
@@ -100,7 +104,7 @@
public void func_147390_a(S02PacketLoginSuccess p_147390_1_)
{
- this.field_147393_d.func_150723_a(EnumConnectionState.PLAY);
+ FMLNetworkHandler.fmlClientHandshake(this.field_147393_d);
}
public void func_147231_a(IChatComponent p_147231_1_)
@@ -114,7 +118,10 @@
if (p_147232_2_ == EnumConnectionState.PLAY)
{
- this.field_147393_d.func_150719_a(new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d));
+ NetHandlerPlayClient nhpc = new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d);
+ this.field_147393_d.func_150719_a(nhpc);
+ FMLClientHandler.instance().setPlayClient(nhpc);
+
}
}
@@ -0,0 +1,18 @@
--- ../src-base/minecraft/net/minecraft/client/network/OldServerPinger.java
+++ ../src-work/minecraft/net/minecraft/client/network/OldServerPinger.java
@@ -4,6 +4,7 @@
import com.google.common.base.Splitter;
import com.google.common.collect.Iterables;
import com.mojang.authlib.GameProfile;
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.bootstrap.Bootstrap;
@@ -147,6 +148,7 @@
p_147224_1_.func_147407_a((String)null);
}
+ FMLClientHandler.instance().bindServerListData(p_147224_1_, serverstatusresponse);
networkmanager.func_150725_a(new C01PacketPing(Minecraft.func_71386_F()), new GenericFutureListener[0]);
this.field_147403_d = true;
}
@@ -1,85 +1,87 @@
--- ../src-base/minecraft/net/minecraft/client/renderer/RenderBlocks.java
+++ ../src-work/minecraft/net/minecraft/client/renderer/RenderBlocks.java
@@ -35,6 +35,7 @@
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.TextureMap;
@@ -40,6 +40,7 @@
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
+import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFlowerPot;
import net.minecraft.util.Direction;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
@@ -223,7 +224,51 @@
@@ -245,7 +246,53 @@
{
p_78612_1_.func_71902_a(this.field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_);
this.func_83018_a(p_78612_1_);
- return l == 0 ? this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 4 ? this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 31 ? this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 1 ? this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 2 ? this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 20 ? this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 11 ? this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 39 ? this.func_96445_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 5 ? this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 13 ? this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 9 ? this.func_78586_a((BlockRailBase)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 19 ? this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 23 ? this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 6 ? this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 3 ? this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 8 ? this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 7 ? this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 10 ? this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 27 ? this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 32 ? this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 12 ? this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 29 ? this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 30 ? this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 14 ? this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 15 ? this.func_78610_x((BlockRedstoneRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 36 ? this.func_94176_a((BlockRedstoneLogic)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 37 ? this.func_94171_a((BlockComparator)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 16 ? this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false) : (l == 17 ? this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true) : (l == 18 ? this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 21 ? this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 24 ? this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 33 ? this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 35 ? this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 25 ? this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 26 ? this.func_78567_v((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 28 ? this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 34 ? this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : (l == 38 ? this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_) : false))))))))))))))))))))))))))))))))))))));
p_147805_1_.func_149719_a(this.field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_);
this.func_147775_a(p_147805_1_);
- return l == 0 ? this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 4 ? this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 31 ? this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 1 ? this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 40 ? this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 2 ? this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 20 ? this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 11 ? this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 39 ? this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 5 ? this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 13 ? this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 9 ? this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 19 ? this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 23 ? this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 6 ? this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 3 ? this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 8 ? this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 7 ? this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 10 ? this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 27 ? this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 32 ? this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 12 ? this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 29 ? this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 30 ? this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 14 ? this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 15 ? this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 36 ? this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 37 ? this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 16 ? this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) : (l == 17 ? this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) : (l == 18 ? this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 41 ? this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 21 ? this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 24 ? this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 33 ? this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 35 ? this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 25 ? this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 26 ? this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 28 ? this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 34 ? this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : (l == 38 ? this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) : false))))))))))))))))))))))))))))))))))))))));
+
+ switch (l)
+ {
+ //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line!
+ case 0: return this.func_78570_q(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 4: return this.func_78621_p(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 31: return this.func_78581_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 1: return this.func_78620_l(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 2: return this.func_78572_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 20: return this.func_78598_k(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 11: return this.func_78582_a((BlockFence)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 39: return this.func_96445_r(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 5: return this.func_78589_i(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 13: return this.func_78584_s(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 9: return this.func_78586_a((BlockRailBase)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 19: return this.func_78603_m(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 23: return this.func_78566_o(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 6: return this.func_78614_n(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 3: return this.func_78590_h((BlockFire)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 8: return this.func_78576_j(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 7: return this.func_78601_u(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 10: return this.func_78565_t((BlockStairs)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 27: return this.func_78618_a((BlockDragonEgg)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 32: return this.func_82779_a((BlockWall)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 12: return this.func_78594_e(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 29: return this.func_78577_f(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 30: return this.func_78619_g(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 14: return this.func_78574_w(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 15: return this.func_78610_x((BlockRedstoneRepeater)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 36: return this.func_94176_a((BlockRedstoneLogic)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 37: return this.func_94171_a((BlockComparator)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 16: return this.func_78593_b(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, false);
+ case 17: return this.func_78608_c(p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_, true);
+ case 18: return this.func_78592_a((BlockPane)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 21: return this.func_78580_a((BlockFenceGate)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 24: return this.func_78615_a((BlockCauldron)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 33: return this.func_82780_a((BlockFlowerPot)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 35: return this.func_82775_a((BlockAnvil)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 25: return this.func_78585_a((BlockBrewingStand)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 26: return this.func_78567_v((BlockEndPortalFrame)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 28: return this.func_78616_a((BlockCocoa)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 34: return this.func_82778_a((BlockBeacon)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ case 38: return this.func_94172_a((BlockHopper)p_78612_1_, p_78612_2_, p_78612_3_, p_78612_4_);
+ default: return FMLRenderAccessLibrary.renderWorldBlock(this, field_78669_a, p_78612_2_, p_78612_3_, p_78612_4_, p_78612_1_, l);
+ //regex: ' : \(l == ([\d]+) \?' replace: ';\ncase \1: return' ::: IMPORTANT: REMEMBER THIS ON FIRST line!
+ case 0 : return this.func_147784_q(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 4: return this.func_147721_p(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 31: return this.func_147742_r(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 1: return this.func_147746_l(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 40: return this.func_147774_a((BlockDoublePlant)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 2: return this.func_147791_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 20: return this.func_147726_j(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 11: return this.func_147735_a((BlockFence)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 39: return this.func_147779_s(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 5: return this.func_147788_h(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 13: return this.func_147755_t(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 9: return this.func_147766_a((BlockRailBase)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 19: return this.func_147724_m(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 23: return this.func_147783_o(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 6: return this.func_147796_n(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 3: return this.func_147801_a((BlockFire)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 8: return this.func_147794_i(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 7: return this.func_147760_u(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 10: return this.func_147722_a((BlockStairs)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 27: return this.func_147802_a((BlockDragonEgg)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 32: return this.func_147807_a((BlockWall)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 12: return this.func_147790_e(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 29: return this.func_147723_f(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 30: return this.func_147756_g(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 14: return this.func_147773_v(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 15: return this.func_147759_a((BlockRedstoneRepeater)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 36: return this.func_147748_a((BlockRedstoneDiode)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 37: return this.func_147781_a((BlockRedstoneComparator)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 16: return this.func_147731_b(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, false) ;
+ case 17: return this.func_147809_c(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_, true) ;
+ case 18: return this.func_147767_a((BlockPane)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 41: return this.func_147733_k(p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 21: return this.func_147776_a((BlockFenceGate)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 24: return this.func_147785_a((BlockCauldron)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 33: return this.func_147752_a((BlockFlowerPot)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 35: return this.func_147725_a((BlockAnvil)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 25: return this.func_147741_a((BlockBrewingStand)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 26: return this.func_147743_a((BlockEndPortalFrame)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 28: return this.func_147772_a((BlockCocoa)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 34: return this.func_147797_a((BlockBeacon)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_) ;
+ case 38: return this.func_147803_a((BlockHopper)p_147805_1_, p_147805_2_, p_147805_3_, p_147805_4_);
+ default: return FMLRenderAccessLibrary.renderWorldBlock(this, field_147845_a, p_147805_2_, p_147805_3_, p_147805_4_, p_147805_1_, l);
+ }
}
}
@@ -7636,6 +7681,10 @@
this.func_96447_a((BlockHopper)p_78600_1_, 0, 0, 0, 0, true);
@@ -8089,6 +8136,10 @@
this.func_147799_a((BlockHopper)p_147800_1_, 0, 0, 0, 0, true);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
+ else
+ {
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_78600_1_, p_78600_2_, j);
+ FMLRenderAccessLibrary.renderInventoryBlock(this, p_147800_1_, p_147800_2_, j);
+ }
}
else
{
@@ -7694,7 +7743,25 @@
@@ -8147,7 +8198,24 @@
public static boolean func_78597_b(int p_78597_0_)
public static boolean func_147739_a(int p_147739_0_)
{
- return p_78597_0_ == 0 ? true : (p_78597_0_ == 31 ? true : (p_78597_0_ == 39 ? true : (p_78597_0_ == 13 ? true : (p_78597_0_ == 10 ? true : (p_78597_0_ == 11 ? true : (p_78597_0_ == 27 ? true : (p_78597_0_ == 22 ? true : (p_78597_0_ == 21 ? true : (p_78597_0_ == 16 ? true : (p_78597_0_ == 26 ? true : (p_78597_0_ == 32 ? true : (p_78597_0_ == 34 ? true : p_78597_0_ == 35))))))))))));
+ switch (p_78597_0_)
- return p_147739_0_ == 0 ? true : (p_147739_0_ == 31 ? true : (p_147739_0_ == 39 ? true : (p_147739_0_ == 13 ? true : (p_147739_0_ == 10 ? true : (p_147739_0_ == 11 ? true : (p_147739_0_ == 27 ? true : (p_147739_0_ == 22 ? true : (p_147739_0_ == 21 ? true : (p_147739_0_ == 16 ? true : (p_147739_0_ == 26 ? true : (p_147739_0_ == 32 ? true : (p_147739_0_ == 34 ? true : (p_147739_0_ == 35 ? true : (p_147739_0_ == -1 ? false : false))))))))))))));
+ switch (p_147739_0_)
+ {
+ case 0: return true;
+ case 0 : return true ;
+ case 31: return true ;
+ case 39: return true ;
+ case 13: return true ;
@@ -93,9 +95,8 @@
+ case 32: return true ;
+ case 34: return true ;
+ case 35: return true ;
+ default: return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_78597_0_);
+ default: return FMLRenderAccessLibrary.renderItemAsFull3DBlock(p_147739_0_);
+ }
+
}
public Icon func_94170_a(Block p_94170_1_, IBlockAccess p_94170_2_, int p_94170_3_, int p_94170_4_, int p_94170_5_, int p_94170_6_)
public IIcon func_147793_a(Block p_147793_1_, IBlockAccess p_147793_2_, int p_147793_3_, int p_147793_4_, int p_147793_5_, int p_147793_6_)
@@ -7,12 +7,12 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.model.ModelVillager;
@@ -52,7 +53,7 @@
@@ -53,7 +54,7 @@
case 4:
return field_110906_m;
default:
- return field_110903_f;
+ return VillagerRegistry.getVillagerSkin(p_110902_1_.func_70946_n(), field_110903_f);
+ return VillagerRegistry.getVillagerSkin(p_110775_1_.func_70946_n(), field_110903_f);
}
}
@@ -9,7 +9,7 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
@@ -80,6 +82,7 @@
@@ -83,6 +85,7 @@
}
field_135049_a.func_135022_a(p_110549_1_, arraylist);
@@ -1,13 +1,15 @@
--- ../src-base/minecraft/net/minecraft/client/settings/GameSettings.java
+++ ../src-work/minecraft/net/minecraft/client/settings/GameSettings.java
@@ -1,5 +1,6 @@
package net.minecraft.client.settings;
@@ -2,6 +2,8 @@
import com.google.common.collect.Maps;
import com.google.gson.Gson;
+
+import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedReader;
@@ -705,6 +706,7 @@
@@ -1049,6 +1051,7 @@
public void func_74303_b()
{
@@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/crash/CallableSuspiciousClasses.java
+++ ../src-work/minecraft/net/minecraft/crash/CallableSuspiciousClasses.java
@@ -130,13 +130,6 @@
public Object call()
{
- try
- {
- return this.func_85085_a();
- }
- catch (Exception ex)
- {
- return null;
- }
+ return "FML is installed";
}
}
@@ -7,10 +7,10 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -43,6 +44,7 @@
this.field_85061_c.func_71500_a("AABB Pool Size", new CallableCrashMemoryReport(this));
this.field_85061_c.func_71500_a("Suspicious classes", new CallableSuspiciousClasses(this));
this.field_85061_c.func_71500_a("IntCache", new CallableIntCache(this));
@@ -140,6 +141,7 @@
return IntCache.func_85144_b();
}
});
+ FMLCommonHandler.instance().enhanceCrashReport(this, this.field_85061_c);
}
@@ -1,16 +1,28 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityList.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityList.java
@@ -3,6 +3,9 @@
import java.util.HashMap;
@@ -5,6 +5,7 @@
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.logging.Level;
import java.util.Set;
+
+import cpw.mods.fml.common.FMLLog;
import net.minecraft.entity.ai.EntityMinecartMobSpawner;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.boss.EntityWither;
@@ -126,9 +129,10 @@
@@ -63,9 +64,13 @@
import net.minecraft.stats.StatBase;
import net.minecraft.stats.StatList;
import net.minecraft.world.World;
+
+import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.FMLLog;
+
public class EntityList
{
private static final Logger field_151516_b = LogManager.getLogger();
@@ -145,9 +150,10 @@
p_75615_0_.func_82580_o("Type");
}
@@ -22,7 +34,7 @@
if (oclass != null)
{
@@ -142,7 +146,17 @@
@@ -161,7 +167,17 @@
if (entity != null)
{
@@ -33,7 +45,7 @@
+ }
+ catch (Exception e)
+ {
+ FMLLog.log(Level.SEVERE, e,
+ FMLLog.log(Level.ERROR, e,
+ "An Entity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author",
+ p_75615_0_.func_74779_i("id"), oclass.getName());
+ entity = null;
@@ -1,15 +1,15 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityTracker.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityTracker.java
@@ -4,6 +4,8 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
+
@@ -39,6 +39,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.registry.EntityRegistry;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.entity.boss.EntityDragon;
@@ -51,6 +53,11 @@
+
public class EntityTracker
{
private static final Logger field_151249_a = LogManager.getLogger();
@@ -56,6 +58,11 @@
public void func_72786_a(Entity p_72786_1_)
{
@@ -1,15 +1,15 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityTrackerEntry.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityTrackerEntry.java
@@ -5,6 +5,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -57,6 +57,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
+
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import net.minecraft.entity.ai.attributes.ServersideAttributeMap;
import net.minecraft.entity.boss.EntityDragon;
import net.minecraft.entity.item.EntityBoat;
@@ -378,6 +380,14 @@
public class EntityTrackerEntry
{
private static final Logger field_151262_p = LogManager.getLogger();
@@ -377,6 +379,14 @@
this.field_73138_k = this.field_73132_a.field_70181_x;
this.field_73135_l = this.field_73132_a.field_70179_y;
@@ -18,23 +18,22 @@
+ int posZ = MathHelper.func_76128_c(this.field_73132_a.field_70161_v * 32.0D);
+ if (posX != this.field_73128_d || posY != this.field_73129_e || posZ != this.field_73126_f)
+ {
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a.field_70157_k, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
+ FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f);
+ }
+
if (this.field_73143_t && !(packet instanceof Packet24MobSpawn))
if (this.field_73143_t && !(packet instanceof S0FPacketSpawnMob))
{
p_73117_1_.field_71135_a.func_72567_b(new Packet28EntityVelocity(this.field_73132_a.field_70157_k, this.field_73132_a.field_70159_w, this.field_73132_a.field_70181_x, this.field_73132_a.field_70179_y));
@@ -455,6 +465,13 @@
if (this.field_73132_a.field_70128_L)
{
this.field_73132_a.field_70170_p.func_98180_V().func_98236_b("Fetching addPacket for removed entity");
+ }
+
p_73117_1_.field_71135_a.func_147359_a(new S12PacketEntityVelocity(this.field_73132_a.func_145782_y(), this.field_73132_a.field_70159_w, this.field_73132_a.field_70181_x, this.field_73132_a.field_70179_y));
@@ -456,6 +466,12 @@
field_151262_p.warn("Fetching addPacket for removed entity");
}
+ Packet pkt = FMLNetworkHandler.getEntitySpawningPacket(this.field_73132_a);
+
+ if (pkt != null)
+ {
+ return pkt;
}
+ }
if (this.field_73132_a instanceof EntityItem)
{
return new S0EPacketSpawnObject(this.field_73132_a, 2, 1);
@@ -1,11 +1,9 @@
--- ../src-base/minecraft/net/minecraft/entity/boss/IBossDisplayData.java
+++ ../src-work/minecraft/net/minecraft/entity/boss/IBossDisplayData.java
@@ -1,9 +1,5 @@
package net.minecraft.entity.boss;
@@ -4,7 +4,6 @@
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.util.IChatComponent;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-@SideOnly(Side.CLIENT)
public interface IBossDisplayData
{
@@ -1,20 +1,20 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityItem.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityItem.java
@@ -1,6 +1,8 @@
package net.minecraft.entity.item;
@@ -17,6 +17,8 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.Iterator;
+import cpw.mods.fml.common.FMLCommonHandler;
+
+import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
@@ -277,6 +279,8 @@
p_70100_1_.func_71029_a(AchievementList.field_76027_z);
public class EntityItem extends Entity
{
private static final Logger field_145803_d = LogManager.getLogger();
@@ -325,6 +327,8 @@
}
}
+ GameRegistry.onPickupNotification(p_70100_1_, this);
+ FMLCommonHandler.instance().firePlayerItemPickupEvent(p_70100_1_, this);
+
this.func_85030_a("random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
this.field_70170_p.func_72956_a(p_70100_1_, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F);
p_70100_1_.func_71001_a(this, i);
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/entity/monster/EntitySlime.java
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java
@@ -237,7 +237,7 @@
@@ -247,7 +247,7 @@
{
Chunk chunk = this.field_70170_p.func_72938_d(MathHelper.func_76128_c(this.field_70165_t), MathHelper.func_76128_c(this.field_70161_v));
@@ -7,16 +7,16 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Collections;
@@ -420,6 +421,7 @@
@@ -422,6 +423,7 @@
MerchantRecipeList merchantrecipelist;
merchantrecipelist = new MerchantRecipeList();
+ VillagerRegistry.manageVillagerTrades(merchantrecipelist, this, this.func_70946_n(), this.field_70146_Z);
int j;
int k;
label50:
@@ -624,7 +626,7 @@
public EntityLivingData func_110161_a(EntityLivingData p_110161_1_)
@@ -626,7 +628,7 @@
public IEntityLivingData func_110161_a(IEntityLivingData p_110161_1_)
{
p_110161_1_ = super.func_110161_a(p_110161_1_);
- this.func_70938_b(this.field_70170_p.field_73012_v.nextInt(5));
@@ -1,14 +1,16 @@
--- ../src-base/minecraft/net/minecraft/entity/player/EntityPlayer.java
+++ ../src-work/minecraft/net/minecraft/entity/player/EntityPlayer.java
@@ -1,5 +1,7 @@
package net.minecraft.entity.player;
@@ -2,6 +2,9 @@
import com.google.common.base.Charsets;
import com.mojang.authlib.GameProfile;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.network.FMLNetworkHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.Collection;
@@ -181,6 +183,7 @@
@@ -193,6 +196,7 @@
public void func_70071_h_()
{
@@ -16,21 +18,23 @@
if (this.field_71074_e != null)
{
ItemStack itemstack = this.field_71071_by.func_70448_g();
@@ -304,6 +307,7 @@
{
@@ -316,6 +320,7 @@
this.field_71100_bB.func_75118_a(this);
this.func_71064_a(StatList.field_75948_k, 1);
}
+ FMLCommonHandler.instance().onPlayerPostTick(this);
}
public int func_82145_z()
@@ -1906,4 +1910,9 @@
{
return this.func_70096_w().func_111145_d(17);
@@ -2031,6 +2036,11 @@
}
}
+
+ public void openGui(Object mod, int modGuiId, World world, int x, int y, int z)
+ {
+ FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z);
+ }
}
+
public static enum EnumStatus
{
OK,
@@ -3,15 +3,15 @@
@@ -1,5 +1,6 @@
package net.minecraft.inventory;
+import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
+import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@@ -89,6 +90,7 @@
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@@ -103,6 +104,7 @@
public void func_82870_a(EntityPlayer p_82870_1_, ItemStack p_82870_2_)
{
+ GameRegistry.onItemCrafted(p_82870_1_, p_82870_2_, field_75239_a);
+ FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a);
this.func_75208_c(p_82870_2_);
for (int i = 0; i < this.field_75239_a.func_70302_i_(); ++i)
@@ -3,16 +3,16 @@
@@ -1,5 +1,6 @@
package net.minecraft.inventory;
+import cpw.mods.fml.common.registry.GameRegistry;
+import cpw.mods.fml.common.FMLCommonHandler;
import net.minecraft.entity.item.EntityXPOrb;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@@ -82,6 +83,8 @@
import net.minecraft.init.Items;
@@ -83,6 +84,8 @@
this.field_75228_b = 0;
+ GameRegistry.onItemSmelted(field_75229_a, p_75208_1_);
+ FMLCommonHandler.instance().firePlayerSmeltedEvent(field_75229_a, p_75208_1_);
+
if (p_75208_1_.field_77993_c == Item.field_77703_o.field_77779_bT)
if (p_75208_1_.func_77973_b() == Items.field_151042_j)
{
this.field_75229_a.func_71064_a(AchievementList.field_76016_k, 1);
@@ -1,20 +1,20 @@
--- ../src-base/minecraft/net/minecraft/item/Item.java
+++ ../src-work/minecraft/net/minecraft/item/Item.java
@@ -2,6 +2,8 @@
@@ -3,6 +3,8 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.Sets;
+
+import cpw.mods.fml.common.registry.GameData;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.List;
@@ -224,6 +226,8 @@
}
import java.util.HashSet;
@@ -46,7 +48,7 @@
field_77698_e[256 + p_i1875_1_] = this;
+
+ GameData.newItemAdded(this);
}
public Item func_77625_d(int p_77625_1_)
public class Item
{
- public static final RegistryNamespaced field_150901_e = new RegistryNamespaced();
+ public static final RegistryNamespaced field_150901_e = GameData.getItemRegistry();
protected static final UUID field_111210_e = UUID.fromString("CB3F55D3-645C-4F38-A497-9C13A33DB5CF");
private CreativeTabs field_77701_a;
protected static Random field_77697_d = new Random();
@@ -0,0 +1,11 @@
--- ../src-base/minecraft/net/minecraft/item/ItemEmptyMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemEmptyMap.java
@@ -25,7 +25,7 @@
int i = 128 * (1 << mapdata.field_76197_d);
mapdata.field_76201_a = (int)(Math.round(p_77659_3_.field_70165_t / (double)i) * (long)i);
mapdata.field_76199_b = (int)(Math.round(p_77659_3_.field_70161_v / (double)i) * (long)i);
- mapdata.field_76200_c = (byte)p_77659_2_.field_73011_w.field_76574_g;
+ mapdata.field_76200_c = p_77659_2_.field_73011_w.field_76574_g;
mapdata.func_76185_a();
--p_77659_1_.field_77994_a;
@@ -1,6 +1,6 @@
--- ../src-base/minecraft/net/minecraft/item/ItemMap.java
+++ ../src-work/minecraft/net/minecraft/item/ItemMap.java
@@ -52,7 +52,7 @@
@@ -57,7 +57,7 @@
int i = 128 * (1 << mapdata.field_76197_d);
mapdata.field_76201_a = Math.round((float)p_77873_2_.func_72912_H().func_76079_c() / (float)i) * i;
mapdata.field_76199_b = Math.round((float)(p_77873_2_.func_72912_H().func_76074_e() / i)) * i;
@@ -1,28 +0,0 @@
--- ../src-base/minecraft/net/minecraft/logging/LogAgent.java
+++ ../src-work/minecraft/net/minecraft/logging/LogAgent.java
@@ -1,5 +1,6 @@
package net.minecraft.logging;
+import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.util.logging.ConsoleHandler;
@@ -26,7 +27,7 @@
private void func_98238_b()
{
- this.field_98242_a.setUseParentHandlers(false);
+ this.field_98242_a.setParent(FMLLog.getLogger());
Handler[] ahandler = this.field_98242_a.getHandlers();
int i = ahandler.length;
@@ -37,9 +38,6 @@
}
LogFormatter logformatter = new LogFormatter(this, (LogAgentEmptyAnon)null);
- ConsoleHandler consolehandler = new ConsoleHandler();
- consolehandler.setFormatter(logformatter);
- this.field_98242_a.addHandler(consolehandler);
try
{
@@ -1,47 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/MemoryConnection.java
+++ ../src-work/minecraft/net/minecraft/network/MemoryConnection.java
@@ -1,5 +1,6 @@
package net.minecraft.network;
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.net.InetSocketAddress;
@@ -7,6 +8,11 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+
+import com.google.common.collect.Queues;
+
import net.minecraft.logging.ILogAgent;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet;
@@ -14,7 +20,7 @@
public class MemoryConnection implements INetworkManager
{
private static final SocketAddress field_74444_a = new InetSocketAddress("127.0.0.1", 0);
- private final List field_74442_b = Collections.synchronizedList(new ArrayList());
+ private final Queue<Packet> field_74442_b = Queues.newConcurrentLinkedQueue();
private final ILogAgent field_98214_c;
private MemoryConnection field_74443_c;
private NetHandler field_74440_d;
@@ -65,7 +71,7 @@
while (i-- >= 0 && !this.field_74442_b.isEmpty())
{
- Packet packet = (Packet)this.field_74442_b.remove(0);
+ Packet packet = field_74442_b.poll();
packet.func_73279_a(this.field_74440_d);
}
@@ -77,6 +83,7 @@
if (this.field_74441_e && this.field_74442_b.isEmpty())
{
this.field_74440_d.func_72515_a(this.field_74438_f, this.field_74439_g);
+ FMLNetworkHandler.onConnectionClosed(this, this.field_74440_d.getPlayer());
}
}
@@ -1,71 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/NetLoginHandler.java
+++ ../src-work/minecraft/net/minecraft/network/NetLoginHandler.java
@@ -11,11 +11,15 @@
import java.util.List;
import java.util.Random;
import javax.crypto.SecretKey;
+
+import cpw.mods.fml.common.network.FMLNetworkHandler;
+import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.network.packet.NetHandler;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet1Login;
import net.minecraft.network.packet.Packet205ClientCommand;
+import net.minecraft.network.packet.Packet250CustomPayload;
import net.minecraft.network.packet.Packet252SharedKey;
import net.minecraft.network.packet.Packet253ServerAuthData;
import net.minecraft.network.packet.Packet254ServerPing;
@@ -54,7 +58,7 @@
this.func_72529_d();
}
- if (this.field_72535_g++ == 600)
+ if (this.field_72535_g++ == 6000)
{
this.func_72527_a("Took too long to log in");
}
@@ -155,11 +159,18 @@
}
}
- public void func_72455_a(Packet1Login p_72455_1_) {}
+ public void func_72455_a(Packet1Login p_72455_1_)
+ {
+ FMLNetworkHandler.handleLoginPacketOnServer(this, p_72455_1_);
+ }
public void func_72529_d()
{
- String s = this.field_72534_f.func_71203_ab().func_72399_a(this.field_72538_b.func_74430_c(), this.field_72543_h);
+ FMLNetworkHandler.onConnectionReceivedFromClient(this, this.field_72534_f, this.field_72538_b.func_74430_c(), this.field_72543_h);
+ }
+
+ public void completeConnection(String s)
+ {
if (s != null)
{
@@ -282,4 +293,22 @@
{
return p_72531_0_.field_72544_i = p_72531_1_;
}
+
+
+ public void func_72501_a(Packet250CustomPayload p_72501_1_)
+ {
+ FMLNetworkHandler.handlePacket250Packet(p_72501_1_, field_72538_b, this);
+ }
+
+ @Override
+ public void handleVanilla250Packet(Packet250CustomPayload payload)
+ {
+ // NOOP for login
+ }
+
+ @Override
+ public EntityPlayer getPlayer()
+ {
+ return null;
+ }
}
@@ -1,58 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/NetServerHandler.java
+++ ../src-work/minecraft/net/minecraft/network/NetServerHandler.java
@@ -6,6 +6,8 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
+
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.entity.Entity;
@@ -36,6 +38,7 @@
import net.minecraft.network.packet.Packet108EnchantItem;
import net.minecraft.network.packet.Packet10Flying;
import net.minecraft.network.packet.Packet130UpdateSign;
+import net.minecraft.network.packet.Packet131MapData;
import net.minecraft.network.packet.Packet13PlayerLookMove;
import net.minecraft.network.packet.Packet14BlockDig;
import net.minecraft.network.packet.Packet15Place;
@@ -618,6 +621,7 @@
public void func_72481_a(Packet3Chat p_72481_1_)
{
+ p_72481_1_ = FMLNetworkHandler.handleChatMessage(this, p_72481_1_);
if (this.field_72574_e.func_71126_v() == 2)
{
this.func_72567_b(new Packet3Chat(ChatMessageComponent.func_111077_e("chat.cannotSend").func_111059_a(EnumChatFormatting.RED)));
@@ -1013,6 +1017,11 @@
}
public void func_72501_a(Packet250CustomPayload p_72501_1_)
+ {
+ FMLNetworkHandler.handlePacket250Packet(p_72501_1_, field_72575_b, this);
+ }
+
+ public void handleVanilla250Packet(Packet250CustomPayload p_72501_1_)
{
DataInputStream datainputstream;
ItemStack itemstack;
@@ -1182,4 +1191,18 @@
{
return this.field_72576_c;
}
+
+
+ @Override
+ public void func_72494_a(Packet131MapData p_72494_1_)
+ {
+ FMLNetworkHandler.handlePacket131Packet(this, p_72494_1_);
+ }
+
+ // modloader compat -- yuk!
+ @Override
+ public EntityPlayerMP getPlayer()
+ {
+ return field_72574_e;
+ }
}
@@ -1,20 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/NetworkListenThread.java
+++ ../src-work/minecraft/net/minecraft/network/NetworkListenThread.java
@@ -4,6 +4,9 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.logging.Level;
+
+import cpw.mods.fml.common.FMLLog;
import net.minecraft.crash.CrashReport;
import net.minecraft.crash.CrashReportCategory;
import net.minecraft.server.MinecraftServer;
@@ -51,6 +54,7 @@
throw new ReportedException(crashreport);
}
+ FMLLog.log(Level.SEVERE, exception, "A critical server error occured handling a packet, kicking %s", netserverhandler.getPlayer().field_70157_k);
this.field_71750_c.func_98033_al().func_98235_b("Failed to handle packet for " + netserverhandler.field_72574_e.func_70023_ak() + "/" + netserverhandler.field_72574_e.func_71114_r() + ": " + exception, exception);
netserverhandler.func_72565_c("Internal server error");
}
@@ -0,0 +1,50 @@
--- ../src-base/minecraft/net/minecraft/network/NetworkManager.java
+++ ../src-work/minecraft/net/minecraft/network/NetworkManager.java
@@ -2,6 +2,8 @@
import com.google.common.collect.Queues;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
+import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.bootstrap.Bootstrap;
@@ -142,7 +144,7 @@
final EnumConnectionState enumconnectionstate = EnumConnectionState.func_150752_a(p_150732_1_);
final EnumConnectionState enumconnectionstate1 = (EnumConnectionState)this.field_150746_k.attr(field_150739_c).get();
- if (enumconnectionstate1 != enumconnectionstate)
+ if (enumconnectionstate1 != enumconnectionstate && !( p_150732_1_ instanceof FMLProxyPacket))
{
field_150735_g.debug("Disabled auto read");
this.field_150746_k.config().setAutoRead(false);
@@ -150,7 +152,7 @@
if (this.field_150746_k.eventLoop().inEventLoop())
{
- if (enumconnectionstate != enumconnectionstate1)
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof FMLProxyPacket))
{
this.func_150723_a(enumconnectionstate);
}
@@ -164,7 +166,7 @@
private static final String __OBFID = "CL_00001241";
public void run()
{
- if (enumconnectionstate != enumconnectionstate1)
+ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof FMLProxyPacket))
{
NetworkManager.this.func_150723_a(enumconnectionstate);
}
@@ -315,6 +317,11 @@
this.channelRead0(p_channelRead0_1_, (Packet)p_channelRead0_2_);
}
+ public Channel channel()
+ {
+ return field_150746_k;
+ }
+
static class InboundHandlerTuplePacketListener
{
private final Packet field_150774_a;
@@ -0,0 +1,20 @@
--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java
+++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java
@@ -1,6 +1,8 @@
package net.minecraft.network;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.bootstrap.ServerBootstrap;
@@ -84,7 +86,7 @@
;
}
- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
+ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(NetworkManager.field_152462_h)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(NetworkManager.field_152462_h));
NetworkManager networkmanager = new NetworkManager(false);
NetworkSystem.this.field_151272_f.add(networkmanager);
p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager);
@@ -0,0 +1,27 @@
--- ../src-base/minecraft/net/minecraft/network/ServerStatusResponse.java
+++ ../src-work/minecraft/net/minecraft/network/ServerStatusResponse.java
@@ -8,6 +8,8 @@
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.mojang.authlib.GameProfile;
+import cpw.mods.fml.client.FMLClientHandler;
+import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import java.lang.reflect.Type;
import java.util.UUID;
import net.minecraft.util.IChatComponent;
@@ -233,6 +235,7 @@
serverstatusresponse.func_151320_a(JsonUtils.func_151200_h(jsonobject, "favicon"));
}
+ FMLClientHandler.instance().captureAdditionalData(serverstatusresponse, jsonobject);
return serverstatusresponse;
}
@@ -260,6 +263,7 @@
jsonobject.addProperty("favicon", p_serialize_1_.func_151316_d());
}
+ FMLNetworkHandler.enhanceStatusQuery(jsonobject);
return jsonobject;
}
@@ -1,17 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/TcpConnection.java
+++ ../src-work/minecraft/net/minecraft/network/TcpConnection.java
@@ -1,5 +1,6 @@
package net.minecraft.network;
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.BufferedOutputStream;
@@ -392,6 +393,7 @@
if (this.field_74472_n && this.field_74473_o.isEmpty())
{
this.field_74485_r.func_72515_a(this.field_74481_v, this.field_74480_w);
+ FMLNetworkHandler.onConnectionClosed(this, this.field_74485_r.getPlayer());
}
}
@@ -1,18 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/packet/NetHandler.java
+++ ../src-work/minecraft/net/minecraft/network/packet/NetHandler.java
@@ -1,4 +1,6 @@
package net.minecraft.network.packet;
+
+import net.minecraft.entity.player.EntityPlayer;
public abstract class NetHandler
{
@@ -382,4 +384,8 @@
{
return false;
}
+
+ public abstract void handleVanilla250Packet(Packet250CustomPayload payload);
+
+ public abstract EntityPlayer getPlayer();
}
@@ -1,11 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/packet/Packet.java
+++ ../src-work/minecraft/net/minecraft/network/packet/Packet.java
@@ -355,7 +355,7 @@
func_73285_a(107, true, true, Packet107CreativeSetSlot.class);
func_73285_a(108, false, true, Packet108EnchantItem.class);
func_73285_a(130, true, true, Packet130UpdateSign.class);
- func_73285_a(131, true, false, Packet131MapData.class);
+ func_73285_a(131, true, true, Packet131MapData.class);
func_73285_a(132, true, false, Packet132TileEntityData.class);
func_73285_a(133, true, false, Packet133TileEditorOpen.class);
func_73285_a(200, true, false, Packet200Statistic.class);
@@ -1,77 +0,0 @@
--- ../src-base/minecraft/net/minecraft/network/packet/Packet1Login.java
+++ ../src-work/minecraft/net/minecraft/network/packet/Packet1Login.java
@@ -3,6 +3,8 @@
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
+
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import net.minecraft.world.EnumGameType;
import net.minecraft.world.WorldType;
@@ -17,7 +19,12 @@
public byte field_73556_g;
public byte field_73562_h;
- public Packet1Login() {}
+ private boolean vanillaCompatible;
+
+ public Packet1Login()
+ {
+ this.vanillaCompatible = FMLNetworkHandler.vanillaLoginPacketCompatibility();
+ }
public Packet1Login(int p_i1440_1_, WorldType p_i1440_2_, EnumGameType p_i1440_3_, boolean p_i1440_4_, int p_i1440_5_, int p_i1440_6_, int p_i1440_7_, int p_i1440_8_)
{
@@ -29,6 +36,7 @@
this.field_73556_g = (byte)p_i1440_7_;
this.field_73562_h = (byte)p_i1440_8_;
this.field_73560_c = p_i1440_4_;
+ this.vanillaCompatible = false;
}
public void func_73267_a(DataInput p_73267_1_) throws IOException
@@ -46,7 +54,16 @@
this.field_73560_c = (b0 & 8) == 8;
int i = b0 & -9;
this.field_73557_d = EnumGameType.func_77146_a(i);
- this.field_73558_e = p_73267_1_.readByte();
+
+ if (vanillaCompatible)
+ {
+ this.field_73558_e = p_73267_1_.readByte();
+ }
+ else
+ {
+ this.field_73558_e = p_73267_1_.readInt();
+ }
+
this.field_73555_f = p_73267_1_.readByte();
this.field_73556_g = p_73267_1_.readByte();
this.field_73562_h = p_73267_1_.readByte();
@@ -64,7 +81,16 @@
}
p_73273_1_.writeByte(i);
- p_73273_1_.writeByte(this.field_73558_e);
+
+ if (vanillaCompatible)
+ {
+ p_73273_1_.writeByte(this.field_73558_e);
+ }
+ else
+ {
+ p_73273_1_.writeInt(this.field_73558_e);
+ }
+
p_73273_1_.writeByte(this.field_73555_f);
p_73273_1_.writeByte(this.field_73556_g);
p_73273_1_.writeByte(this.field_73562_h);
@@ -84,6 +110,6 @@
i = this.field_73559_b.func_77127_a().length();
}
- return 6 + 2 * i + 4 + 4 + 1 + 1 + 1;
+ return 6 + 2 * i + 4 + 4 + 1 + 1 + 1 + (vanillaCompatible ? 0 : 3);
}
}
@@ -1,55 +1,64 @@
--- ../src-base/minecraft/net/minecraft/server/MinecraftServer.java
+++ ../src-work/minecraft/net/minecraft/server/MinecraftServer.java
@@ -1,5 +1,6 @@
package net.minecraft.server;
@@ -5,6 +5,11 @@
import com.mojang.authlib.GameProfileRepository;
import com.mojang.authlib.minecraft.MinecraftSessionService;
import com.mojang.authlib.yggdrasil.YggdrasilAuthenticationService;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.common.Loader;
+import cpw.mods.fml.common.LoaderState;
+import cpw.mods.fml.common.StartupQuery;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.awt.GraphicsEnvironment;
@@ -368,7 +369,11 @@
import io.netty.buffer.ByteBuf;
@@ -343,7 +348,7 @@
public void func_71260_j()
{
- if (!this.field_71290_O)
+ if (!this.field_71290_O && Loader.instance().hasReachedState(LoaderState.SERVER_STARTED) && !field_71316_v) // make sure the save is valid and we don't save twice
{
field_147145_h.info("Stopping server");
@@ -394,6 +399,7 @@
{
if (this.func_71197_b())
{
+ FMLCommonHandler.instance().handleServerStarted();
+
long i = func_130071_aq();
+
+ FMLCommonHandler.instance().onWorldLoadTick(field_71305_c);
for (long j = 0L; this.field_71317_u; this.field_71296_Q = true)
{
@@ -407,6 +412,7 @@
Thread.sleep(1L);
long l = 0L;
this.field_147147_p.func_151315_a(new ChatComponentText(this.field_71286_C));
@@ -438,12 +444,20 @@
Thread.sleep(Math.max(1L, 50L - l));
this.field_71296_Q = true;
}
+ FMLCommonHandler.instance().handleServerStopping();
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
}
else
{
@@ -415,6 +421,10 @@
}
catch (Throwable throwable)
{
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
+ {
+ return;
+ }
throwable.printStackTrace();
this.func_98033_al().func_98234_c("Encountered an unexpected exception " + throwable.getClass().getSimpleName(), throwable);
CrashReport crashreport = null;
@@ -445,6 +455,10 @@
{
try
{
+ if (FMLCommonHandler.instance().shouldServerBeKilledQuietly())
+ {
+ return;
+ }
this.func_71260_j();
this.field_71316_v = true;
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
this.func_71228_a((CrashReport)null);
}
@@ -454,6 +468,8 @@
}
+ catch (StartupQuery.AbortedException e)
+ {
+ // ignore silently
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
+ }
catch (Throwable throwable1)
{
field_147145_h.error("Encountered an unexpected exception", throwable1);
@@ -469,6 +483,7 @@
field_147145_h.error("We were unable to save this crash report to disk.");
}
+ FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions
this.func_71228_a(crashreport);
}
finally
@@ -484,6 +499,8 @@
}
finally
{
@@ -58,18 +67,15 @@
this.func_71240_o();
}
}
@@ -470,8 +486,10 @@
@@ -529,6 +546,7 @@
public void func_71217_p()
{
+ FMLCommonHandler.instance().rescheduleTicks(Side.SERVER);
long i = System.nanoTime();
AxisAlignedBB.func_72332_a().func_72298_a();
+ FMLCommonHandler.instance().onPreServerTick();
++this.field_71315_w;
if (this.field_71295_T)
@@ -517,6 +535,7 @@
@@ -582,6 +600,7 @@
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76319_b();
@@ -77,7 +83,7 @@
}
public void func_71190_q()
@@ -544,6 +563,7 @@
@@ -608,6 +627,7 @@
}
this.field_71304_b.func_76320_a("tick");
@@ -85,7 +91,7 @@
CrashReport crashreport;
try
@@ -568,6 +588,7 @@
@@ -632,6 +652,7 @@
throw new ReportedException(crashreport);
}
@@ -93,7 +99,15 @@
this.field_71304_b.func_76319_b();
this.field_71304_b.func_76320_a("tracker");
worldserver.func_73039_n().func_72788_a();
@@ -695,7 +716,7 @@
@@ -663,6 +684,7 @@
public void func_71256_s()
{
+ StartupQuery.reset();
(new Thread("Server thread")
{
private static final String __OBFID = "CL_00001418";
@@ -715,7 +737,7 @@
public String getServerModName()
{
@@ -102,3 +116,12 @@
}
public CrashReport func_71230_b(CrashReport p_71230_1_)
@@ -1117,7 +1139,7 @@
return false;
}
- public abstract String func_71206_a(WorldSettings.GameType var1, boolean var2);
+ public abstract String func_71206_a(WorldSettings.GameType p_71206_1_, boolean p_71206_2_);
public int func_71259_af()
{
@@ -1,26 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/ServerListenThread.java
+++ ../src-work/minecraft/net/minecraft/server/ServerListenThread.java
@@ -1,5 +1,6 @@
package net.minecraft.server;
+import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
@@ -10,6 +11,8 @@
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
+import java.util.logging.Level;
+
import net.minecraft.network.NetLoginHandler;
import net.minecraft.network.NetworkListenThread;
@@ -50,6 +53,7 @@
catch (Exception exception)
{
netloginhandler.func_72527_a("Internal server error");
+ FMLLog.log(Level.SEVERE, exception, "Error handling login related packet - connection from %s refused", netloginhandler.func_72528_e());
this.field_71771_f.func_71746_d().func_98033_al().func_98235_b("Failed to handle packet for " + netloginhandler.func_72528_e() + ": " + exception, exception);
}
@@ -6,39 +6,47 @@
+import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -62,6 +63,8 @@
this.func_98033_al().func_98236_b("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
import java.io.BufferedReader;
@@ -46,6 +47,7 @@
private boolean field_71338_p;
private WorldSettings.GameType field_71337_q;
private boolean field_71335_s;
+ public static boolean allowPlayerLogins = false;
private static final String __OBFID = "CL_00001784";
public DedicatedServer(File p_i1508_1_)
@@ -110,6 +112,8 @@
field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
}
+ FMLCommonHandler.instance().onServerStart(this);
+
this.func_98033_al().func_98233_a("Loading properties");
this.field_71340_o = new PropertyManager(new File("server.properties"), this.func_98033_al());
field_155771_h.info("Loading properties");
this.field_71340_o = new PropertyManager(new File("server.properties"));
@@ -132,6 +135,8 @@
this.func_98033_al().func_98236_b("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.");
this.func_98033_al().func_98236_b("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
@@ -192,6 +196,7 @@
}
+
+ FMLCommonHandler.instance().onServerStarted();
else
{
+ FMLCommonHandler.instance().onServerStarted();
this.func_152361_a(new DedicatedPlayerList(this));
long j = System.nanoTime();
this.func_71210_a(new DedicatedPlayerList(this));
long j = System.nanoTime();
@@ -174,6 +179,7 @@
this.func_71191_d((this.func_71207_Z() + 8) / 16 * 16);
this.func_71191_d(MathHelper.func_76125_a(this.func_71207_Z(), 64, 256));
this.field_71340_o.func_73667_a("max-build-height", Integer.valueOf(this.func_71207_Z()));
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
this.func_98033_al().func_98233_a("Preparing level \"" + this.func_71270_I() + "\"");
this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2);
long i1 = System.nanoTime() - j;
@@ -194,7 +200,7 @@
this.field_71339_n.func_72602_a();
@@ -237,6 +242,7 @@
this.func_71191_d((this.func_71207_Z() + 8) / 16 * 16);
this.func_71191_d(MathHelper.func_76125_a(this.func_71207_Z(), 64, 256));
this.field_71340_o.func_73667_a("max-build-height", Integer.valueOf(this.func_71207_Z()));
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
field_155771_h.info("Preparing level \"" + this.func_71270_I() + "\"");
this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2);
long i1 = System.nanoTime() - j;
@@ -257,7 +263,8 @@
this.field_71339_n.func_72602_a();
}
- return true;
+ allowPlayerLogins = true;
+ return FMLCommonHandler.instance().handleServerStarting(this);
}
- return true;
+ return FMLCommonHandler.instance().handleServerStarting(this);
}
public boolean func_71225_e()
@@ -0,0 +1,34 @@
--- ../src-base/minecraft/net/minecraft/server/gui/MinecraftServerGui.java
+++ ../src-work/minecraft/net/minecraft/server/gui/MinecraftServerGui.java
@@ -13,6 +13,7 @@
import java.awt.event.FocusEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
+import java.util.concurrent.CountDownLatch;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
@@ -79,6 +80,7 @@
System.exit(0);
}
});
+ minecraftservergui.latch.countDown();
}
public MinecraftServerGui(DedicatedServer p_i2362_1_)
@@ -164,8 +166,15 @@
return jpanel;
}
+ private CountDownLatch latch = new CountDownLatch(1);
public void func_164247_a(final JTextArea p_164247_1_, final JScrollPane p_164247_2_, final String p_164247_3_)
{
+ try
+ {
+ latch.await();
+ } catch (InterruptedException e)
+ {
+ }
if (!SwingUtilities.isEventDispatchThread())
{
SwingUtilities.invokeLater(new Runnable()
@@ -7,9 +7,9 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.File;
@@ -113,9 +114,10 @@
@@ -105,9 +106,10 @@
this.func_71245_h(true);
this.field_98130_m.func_98233_a("Generating keypair");
field_147148_h.info("Generating keypair");
this.func_71253_a(CryptManager.func_75891_b());
+ if (!FMLCommonHandler.instance().handleServerAboutToStart(this)) { return false; }
this.func_71247_a(this.func_71270_I(), this.func_71221_J(), this.field_71350_m.func_77160_d(), this.field_71350_m.func_77165_h(), this.field_71350_m.func_82749_j());
@@ -1,9 +0,0 @@
--- ../src-base/minecraft/net/minecraft/server/integrated/IntegratedServerListenThread.java
+++ ../src-work/minecraft/net/minecraft/server/integrated/IntegratedServerListenThread.java
@@ -1,5 +1,6 @@
package net.minecraft.server.integrated;
+import cpw.mods.fml.common.network.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import java.io.IOException;
Loaded 100 of 368 files, more files were not shown because too many files have changed in this diff. Show more